mart_customers
certifiedEvery customer with their lifetime order rollup.
One row per customer carrying lifetime order count, lifetime revenue, and first/last order timestamps. The customer-keyed input to `mart_customer_support_health` and to per-customer queries. PII (email) is masked out for AI personas via column grants — row-level access is gated by row policies (e.g. `region_us_analyst` sees only `country='US'`).
- mediumCounting rows here for "distinct customers"
This mart is one row per customer, so a naive COUNT over a filtered window double-counts nothing — but a multi-bucket metric query should use `customer_health.customers_count` (uniqExact) instead of summing row counts.
- mediumReading `email` from an AI persona
`email` is PII and excluded from `bi_reader` / `ai_readonly` via column grants. A query that selects it as those personas returns a permission error, not a null.
- “How many customers are in each segment?”
- “Who are the highest lifetime-revenue customers in the US?”