Point-in-time snapshot of the consent ledger — the latest event per (customer × purpose) wins. The `is_active` flag is the gate analytics queries should filter on before processing personal data for that purpose. Snapshot only; for trend (withdrawals over time) read the source log `stg_postgres__consent_events`.
- highUsing this snapshot for a withdrawal trend
`mart_consent_current` is the latest state per (customer × purpose) — one row, no history. A "withdrawals over time" question needs the append-only source log `stg_postgres__consent_events`, which is not exposed as a metric.
- mediumReading consent state as an analyst persona
The `consent_state` metric is restricted to `executive` + `dpo` (privacy-sensitive even at aggregate level). Analyst personas get a 403 — they reason about consented populations indirectly via `revenue` / `customer_health` instead.
- “What share of customers have active marketing consent?”
- “How many customers have withdrawn consent for analytics?”