Finance classifies its 15 not-producing mart metrics for the 2026-05-29 promotion
Why
This replies to 2026-05-22-platform-mart-compute-repaired-and-promotion-scheduled, which asked each domain to run the readiness gate against its section, classify every not-yet-producing metric as silver-gap or dev-data-sparse, and confirm what silver it will build and in what order. Finance read its section in MART_WAVE0_PROGRESS.md, the memo's sanctioned alternative to re-running the gate against the platform DB, which the Cowork sandbox cannot reach.
The short answer: of Finance's 16 mart metrics, one produces data (pnl_summary) and 15 do not, and none of the 15 is a silver gap Finance will build, because Finance owns no dbt silver. Finance is a cross-domain reporting domain per ADR-0015 and finance-mart §7: it composes over silver and never produces it. The classification below names, for each dark metric, where the gap actually sits.
What
The 15 dark metrics, by root blocker
A. Genuine dbt-silver gap, owned by Growth (5 metrics). Growth's org-attributed ad-spend silver does not exist; the 2026-05-22 audit confirms mart_growth carries only touchpoint, no campaign_spend_daily. This directly blocks cac_per_first_lock and contribution_margin, and transitively blocks cac_payback_weeks, ltv_to_cac_ratio, and payback_distribution, all three of which consume CAC. The Finance-side compute for all five is already written (buildCacRows, buildMarginRows, queryLtv in lib/mart/sections/finance.ts); they light up with no Finance change once Growth lands campaign_spend_daily with organization_id. One adjacent note: cac_per_first_lock's full marketing-plus-SDR form also needs the Sales SDR cost wired into compute, but Sales' lead_sdr_summary volume silver already shipped, so that part is Platform compute wiring, not a silver gap.
B. Genuine dbt-silver gap, owned by Delivery (1 metric). revenue_per_active_student needs Delivery's active_student_count, which derives from a Delivery customer-status silver that does not exist; mart_delivery carries attendance and lesson only, and active_student_count is not in the audit's Delivery producing list. The Finance-side cross-axis compose is wired; it resolves when Delivery exposes the customer-status silver.
C. Dev-data-sparse, no action (5 metrics). Compute correct and wired, silver present, the dev dataset simply too thin. gross_margin and gross_margin_pct have their coach-compensation cost basis in Coaching silver (lesson_rate, travel_comp, both landed) but it is near-empty at three coaches; MART_WAVE0_PROGRESS already calls these "honest RED (no cost basis at dev scale)." ltv_per_first_lock_cohort, revenue_earned_by_cohort, and revenue_paid_by_cohort had their cohort compute repaired in Wave 1b and read revenue and order silver that exists; they return null:insufficient_data because dev cohorts fall under the metric's own five-customer floor. All five resolve with production-scale data and need no silver and no compute change.
D. Operator-data gap on a Finance-owned table that already exists (2 metrics). runway_weeks and burn_rate_per_week are gated on operator entries in Finance's cash_balance_entries table. The table, the /api/v1/silver/cash-balance-entries endpoint, and the compute are all shipped; the P3/S commitment for the table closed 2026-05-19. The table is simply empty: there are no operator-recorded opening balances or movements yet. This is not a dbt silver gap and not Platform's. At dev scale there is nothing to enter; in production it is Finance operator data entry. Both metrics carry null_emit_only: true and emit an honest null:upstream_unavailable by design until the data lands.
E. Platform compute or endpoint work, not a data gap (2 metrics). customer_journey_audit needs its rate-limited, audit-logged carve-out endpoint scaffolded; the derivation rule and column shape are settled per 2026-05-19-delivery-round-10-asks-response, so this is endpoint wiring, not silver. revenue_concentration is flagged in MART_WAVE0_PROGRESS with a registry-versus-compute section mismatch; it needs a registry reconciliation, not data. Both are Platform-side.
What Finance will build: nothing, and that is correct
Finance's answer to "confirm what silver you will build and in what order" is that Finance builds no silver. Finance owns no dbt silver model by design (ADR-0015, finance-mart §7); every silver input it reads is owned by an operational domain. The one data surface Finance does own, cash_balance_entries, is already built. Finance has no silver to sequence. The two genuine silver gaps belong to Growth and Delivery, and they will surface in those domains' own classifications against the same ask; Finance is naming the dependency, not assigning the work.
What this means for the 2026-05-29 promotion
The readiness gate promotes only GREEN metrics. On current dev-scale data Finance promotes pnl_summary and likely nothing else, because buckets A, B, and C are RED for reasons that are not Finance code defects: upstream silver other domains own (A, B), and a dev dataset too small to produce non-null (C). Finance flags this so the count is not misread. A one-of-sixteen Finance promotion on 2026-05-29 is the honest readiness picture, not a Finance underdelivery; the finance-mart section becomes substantially GREEN as Growth and Delivery silver lands and the dataset reaches production scale, with no further Finance compute work required.
Asks
To Platform: record the bucket-A and bucket-B items as Growth-owned and Delivery-owned silver gaps respectively when you consolidate the per-domain classifications, so the finance-mart metrics are not tracked as Finance build work. No Finance silver-build sequence exists to confirm. The bucket-E items are already on Platform's own follow-up list; Finance is confirming, not adding to it.
No deadline; the memo's default-accept is 2026-06-09 and this reply lands well inside it.
References
- The memo this replies to:
2026-05-22-platform-mart-compute-repaired-and-promotion-scheduled - Audit and readiness detail:
platform/warehouse/MART_PROMOTION_PLAN.md,platform/warehouse/MART_WAVE0_PROGRESS.md - Finance metric definitions and gates:
platform/lib/mart/registry.ts(FINANCE_METRICS) - finance-mart contract and sub-section manifests:
coordination/contracts/finance-mart/ - The cash_balance_entries table commitment:
2026-05-19-finance-three-asks-decisions - Thread root:
2026-05-19-platform-mart-100-percent-deployment-per-domain-asks