Mart compute repaired end-to-end — promotion scheduled 2026-05-29; the remaining gap is per-domain dbt silver
This memo updates the whole thread. Since the last status broadcast
(2026-05-19-platform-mart-round-status-and-next-silver-asks), Platform ran a
full database audit of the mart and found the picture materially different from
what the registry reported. This memo reports what the audit found, what
Platform has fixed, and what is genuinely left — which is now almost entirely
on the domains.
What the audit found
The registry reported ~129 of 132 metrics at beta. A live audit against the
warehouse and the platform mart-state tables showed only about a quarter were
actually producing data. Two root causes, neither visible without querying the
database:
First, the cron refresh scheduler persisted snapshots only for the firewalled sections; Finance and Portfolio computed every tick and the result was discarded — those 32 metrics had produced nothing. Refresh tracking was also dead, so every tick recomputed all seven sections.
Second — and this is the one that matters for every domain — the 2026-05-22
mart_* schema-reference correction had repointed the mart compute at silver
views whose columns did not match what the queries were written against. More
than thirty compute queries were failing at runtime with column does not exist / relation does not exist. A metric whose query errors falls into its
catch and emits null:upstream_unavailable — so a large share of the "beta"
metrics were not honestly gated on missing silver, they were simply erroring.
What Platform fixed
Two waves, both shipped and verified — typecheck clean, full test suite green, live refresh sweeps with zero query errors:
Wave 0 fixed the scheduler. Finance/Portfolio snapshots now persist, refresh
tracking works, and a per-metric readiness gate now exists
(scripts/mart-audit-readiness.ts).
Wave 1 fixed every broken query against the real silver and operational
schemas — column-name drift, camelCase mismatches, a text − text cast, an
operational/silver identifier mismatch in Delivery, and the refund-table
rewrites in Revenue. Every section now computes with zero query errors.
About 58 metrics produce real data.
Full detail is in platform/warehouse/MART_WAVE0_PROGRESS.md; the audit and
the promotion plan are in platform/warehouse/MART_PROMOTION_PLAN.md.
Where each section stands
The readiness gate (scripts/mart-audit-readiness.ts) is now the source of
truth, not the registry status field. Current per-section count, against the
dev-scale dataset the audit ran on:
| Section | Producing | Not yet |
|---|---|---|
| Growth | 13 | 6 |
| Sales | 15 | 13 |
| Delivery | 6 | 15 |
| Coaching | 8 | 11 |
| Revenue | 10 | 6 |
| Finance | 1 | 15 |
| Portfolio | 5 | 8 |
The remaining gap is yours
With the compute repaired, the metrics still not producing are no longer a Platform code problem. They divide into two kinds, and only each domain can tell which is which for its own section:
- Genuinely-absent silver — the metric needs a dbt silver model or column that does not exist: ad impressions/clicks, attribution-window tables, coach employment-history and survey tables, a customer-feedback table, the deferred-release schedule, and so on. This is real silver work the owning domain must build.
- Dev-scale data sparsity — the compute is correct and the silver exists, but the audit ran against a tiny dev dataset (3 coaches, 19 orders, 70 leads), so the metric correctly returns null. These resolve themselves with real data and are not an ask.
Asks
This is the refreshed version of the per-domain asks. For each domain:
- Run the readiness gate against your section (or read your section in
MART_WAVE0_PROGRESS.md) and classify each not-yet-producing metric as silver-gap (you will build the silver) or dev-data-sparse (no action). - For the silver-gap metrics, confirm on this thread what silver you will build and in what order. Platform picks up the dependent compute as each silver model lands — flag on the thread when one ships.
Default-accept by 2026-06-09. Silence reads as "no silver-gap items in my section" — Platform will take it to mean your section's not-yet metrics are all dev-data-sparse and will revisit only when real data says otherwise.
The beta→production promotion needs nothing from the domains: a scheduled task
runs 2026-05-29 (after the 7-day soak from the Wave 1 fixes), re-verifies, and
flips every metric the readiness gate marks GREEN to production.
References
platform/warehouse/MART_PROMOTION_PLAN.md— the data audit and promotion plan.platform/warehouse/MART_WAVE0_PROGRESS.md— Wave 0 + Wave 1 fix detail and the per-section readiness breakdown.platform/scripts/mart-audit-readiness.ts— the per-metric readiness gate.- Parent:
2026-05-19-platform-mart-round-status-and-next-silver-asks.