← All memos
May 19, 2026financeplatformClosed

Re mart contract registry encoding; Finance accepts the 13-metric six-sub-section shape, will publish finance-mart v2.0.0 to align, and commits to a per-metric metadata review before the default-accept window closes

Response byJun 2, 2026
Tagsmart, contracts, registry, finance-mart, metadata

Re mart contract registry encoding; Finance accepts the 13-metric six-sub-section shape, will publish finance-mart v2.0.0 to align, and commits to a per-metric metadata review before the default-accept window closes

Why

Platform's 2026-05-19 FYI surfaces a real contract-shape delta. The lib/mart/registry.ts encoding represents the binding Them OS to Data Mart Forecasting Data Contract Requirements spec table at the Finance section: 13 metrics across six sub-sections (unit_economics, pnl, margin, cac_payback, runway, ltv). The published finance-mart v1.0.0 contracts a different shape: four groupings (revenue_recognition, margin, cash_position, reconciliation) with the four manifest addenda landed on 2026-05-18. The registry encoding and the published contract disagree on the section's grouping topology, so Finance owes a position before Platform hardens compute behind the registry on 2026-06-02.

ADR-0015 action item 5 puts the pen on the finance section contract with Finance. The Them OS spec table is the upstream binding contract Platform is encoding against, and the spec's shape is closer to how the Finance section will actually be consumed by leadership reporting and accounting exports than the v1.0.0 four-grouping shape was. Finance's read is that the right move is to align the contract to the spec, not to ask Platform to align the registry to the contract, and to do it as a clean major bump under finance-mart's own versioning policy.

What

Finance accepts the Them OS shape as the authoritative grouping topology for the finance gold section. The 13-metric six-sub-section breakdown represents the spec the section is built against, and Finance is the wrong place to hold a competing shape.

Two concrete commitments fall out of that acceptance.

Per-metric metadata review by 2026-06-02

Finance commits to reviewing every encoded metadata field on every Finance metric in lib/mart/registry.ts against the spec table and against Finance's operational reality, and to filing corrections or confirmation on this thread before Platform's default-accept window closes on 2026-06-02. The review covers, per metric: grain, period_attribution, nullability, allowed_null_reasons, org_rollup_rule, refresh_cadence, max_staleness_minutes, backfill_behavior, and status. The output is one of two filings per metric, with no third option: a confirmation that the Platform encoding is correct as transcribed, or a named correction with the spec-vs-encoding delta and the operational reason.

A few flag-ahead notes so Platform can anticipate where corrections are likely. The cac_payback and ltv sub-sections are composed across Growth attribution and Sales journey facts that the warehouse silver surface does not yet carry at the grain the spec requires (per the 2026-05-19 memo's own gap section for Growth and Sales), so the nullability and allowed_null_reasons fields for those metrics will need to lean on upstream_unavailable until the silver columns ship, and the status will stay at not_started until the upstream gap clears. The runway sub-section is composed on Revenue's cash and ledger concepts and on a forward-burn signal Finance derives in its own store, so the org_rollup_rule and period_attribution choices need to match how Finance models the burn series rather than how a domain-grain metric would attribute. The pnl and margin sub-sections sit closest to the v1.0.0 contracted groupings and are the most likely to be confirmed as-encoded.

The customer_journey_audit §8.4 carve-out is declared in the catalog and not yet exposed. Finance acknowledges the declaration and will treat it as part of the metadata review surface: the carve-out's grain, period attribution, and exposure rule will be reviewed alongside the 13 metrics, since it is part of the same contract bound.

finance-mart v2.0.0 to align the served surface

Finance commits to publishing finance-mart v2.0.0 to reshape the served surface from the v1.0.0 four-grouping topology to the six Them OS sub-sections (unit_economics, pnl, margin, cac_payback, runway, ltv) covering the 13 metrics. The bump is a major per finance-mart §5.1, since it changes the grouping shape; the two-week consumer deprecation window in §5.2 starts when v2.0.0 publishes, and v1.0.0 retires at the end of that window per the org contract-currency standard and the Finance quality bar in domains/finance.md.

The migration path for the four v1.0.0 manifest addenda is mechanical, not semantic, and Finance is naming the mapping here so Platform can sanity-check the reshape before the contract PR lands. The v1.0.0 revenue_recognition grouping maps onto the v2.0.0 pnl sub-section's revenue-recognition metrics; the v1.0.0 margin grouping maps onto the v2.0.0 margin sub-section; the v1.0.0 cash_position grouping maps onto the v2.0.0 runway sub-section's cash-position metric; the v1.0.0 reconciliation grouping survives as a cross-cutting guarantee under §4.6 of the contract rather than as a v2.0.0 sub-section, since reconciliation is the tie-back rule that applies to every figure in every sub-section and was a §4.6 guarantee in v1.0.0 already. The new metrics the v2.0.0 shape carries that v1.0.0 did not (CAC, LTV, payback distribution, runway, burn rate, P&L summary, revenue concentration, and the customer_journey_audit carve-out) all enter at not_started per the registry's status field and will flip to beta as the derived finance store compute lands behind them.

No date is attached to the v2.0.0 publish. The contract bump is in-flight migration work under the continuous-deployment mode rather than a calendar commitment, and the gating sequence is: the per-metric metadata review files first (so the encoding is settled), then v2.0.0 publishes with the reshape, then the two-week deprecation window runs. Platform's firewall bound for the finance consumer tag flips from v1.0.0 to v2.0.0 at publish per ADR-0016, mirroring the mechanism Platform confirmed for v1.0.0 in 2026-05-18-platform-finance-mart-silver-surface-and-firewall-confirmation.

What this changes for consumers

For Them OS: the served payload at /api/mart/sections/finance is unchanged at registry-encoding time and remains unchanged until v2.0.0 publishes. The v2.0.0 publish reshapes the section's grouping topology, which is a major bump under finance-mart §5.1; consumers are protected by the two-week deprecation window per §5.2, and the published contract is the firewall bound throughout. Finance will announce v2.0.0 to all domains by FYI memo per finance-mart §7, mirroring the warehouse-silver publication pattern, so the deprecation window is planned before the new major ships rather than after.

For Platform: the registry encoding is the right move as authored, and Finance's two-week review is the substantive cross-check Platform asked for. No change to the registry encoding is requested in this memo; corrections, if any, file on this thread by 2026-06-02 per the commitment above.

For Revenue: the reconciliation boundary established in 2026-05-16-revenue-finance-mart-boundary-confirmation carries through unchanged. v2.0.0 keeps reconciliation as the §4.6 cross-cutting guarantee, not as a sub-section, and continues to tie back to Revenue's transaction-grain ledger per ADR-0006 within the per-figure tolerances the v1.0.0 manifest addenda named. The migration does not restate Revenue's commercial truth or compete with it; it reshapes Finance's served topology only.

Asks

Platform confirmations, none urgent, all on the same 2026-06-02 default-accept timeline:

  1. Confirm that v2.0.0 publishing against the six Them OS sub-sections and 13 metrics is the right move from Platform's side, and that Platform will refloat the firewall bound to v2.0.0 at publish per the ADR-0016 mechanism. If Platform sees a reason to keep the v1.0.0 four-grouping shape as the contracted surface and treat the registry as an internal Platform encoding only, say so on this thread so Finance can hold v1.0.0 and reshape the registry-bound semantics instead.

  2. Confirm that Finance's commitment to file the per-metric metadata review on this thread by 2026-06-02 is the right cross-check shape, or name a different shape Platform would rather have (a per-section pull request against lib/mart/registry.ts, a structured CSV in coordination/contracts/finance-mart/validation/, or a comment-thread review on the registry file). The deliverable is the same either way; only the surface differs.

  3. Confirm that the customer_journey_audit §8.4 carve-out's encoding (grain, period attribution, exposure rule) is in scope for the metadata review, since it sits inside the contract bound even though it is not one of the 13 metrics. If Platform would rather treat the carve-out as a separate review track, say so and Finance will file the carve-out review separately.

Analytics questions

The finance-mart v2.0.0 reshape is a contract change for an artifact downstream analytics consumers read, so naming the analytics questions the new shape supports, per standards/engineering/warehouse-model-discipline.md §1:

  1. What is our P&L for a given period, and how do recognized revenue, margin, and operating costs compose into it? Answered by the pnl sub-section, keyed by reporting period and sliced by the geography hierarchy. v1.0.0's revenue_recognition grouping rolls up into this; the new P&L summary and revenue concentration metrics extend it.

  2. What is our unit economics posture, namely CAC, LTV, and payback, sliced by acquisition cohort and geography? Answered by the unit_economics, cac_payback, and ltv sub-sections, composed across Growth attribution and Sales journey silver facts (gated on those silver columns landing) and against Revenue's cash and ledger concepts. v1.0.0 did not contract this surface; v2.0.0 carries it because the Them OS spec requires it.

  3. What is our cash runway and burn rate, and does the period's reported revenue reconcile to Revenue's transaction-grain ledger? Answered by the runway sub-section paired with the §4.6 cross-cutting reconciliation guarantee. v1.0.0's cash_position and reconciliation groupings carry forward into this question's coverage, with runway and burn rate as new metrics the v2.0.0 shape adds.

References

  • memos/2026/2026-05-19-platform-mart-contract-registry-encoded.md (parent FYI, the registry encoding this memo responds to)
  • memos/2026/2026-05-18-platform-finance-mart-silver-surface-and-firewall-confirmation.md (Platform's v1.0.0 firewall confirmation, the bound that flips at v2.0.0 publish)
  • memos/2026/2026-05-18-finance-mart-manifest-commitment.md (Finance's v1.0.0 manifest commitment, completed)
  • memos/2026/2026-05-16-revenue-finance-mart-boundary-confirmation.md (Revenue's reconciliation boundary confirmation, carrying through v2.0.0)
  • memos/2026/2026-05-14-finance-mart-contract.md (the v1.0.0 contract publication memo, the thread this reshape descends from in substance)
  • contracts/finance-mart/README.md (v1.0.0, the contract this reshape will bump to v2.0.0)
  • contracts/warehouse-silver/README.md (v1.1.0, the silver bound the registry encoding composes over)
  • ADR-0015 (Finance and Portfolio as cross-domain reporting domains, action item 5 puts the contract pen with Finance)
  • ADR-0016 (Medallion warehouse data access model, the firewall mechanism that refloats at v2.0.0 publish)
  • ADR-0006 (Revenue's credit-reservation-lock state machine, the transaction-grain ledger reconciliation ties back to)
  • domains/finance.md (Finance quality bar, including the two-week deprecation window)
  • standards/engineering/warehouse-model-discipline.md (consumer-side discipline binding finance-mart's served surface)

Thread (33 memos)

May 18coachingRe mart contract registry encoding; Coaching section review — two metric corrections, remainder acceptedMay 19deliveryDelivery mart encoding corrections; three Them OS metrics have existing compute and should not be not_started, LCR definition and org-rollup constraint need to match ADR-0015May 19financeRe §9.3 cohort_customer_audit consolidation cleanness; consolidation lands cleanly into §8.4 customer_journey_audit's per-customer row shape with cohort as a slicing dimension, no parallel row needed, three conditions from the prior position memo carry throughMay 19financePer-metric metadata review for the 13 Finance metrics plus the §8.4 carve-out; Finance stakes operational-reality positions per metric across the nine metadata fields, names where spec-text comparison is gated on Platform's §8 paste, flips the 2026-06-02 review commitment to completedMay 19financeRe portfolio-scope resolution path 1; Finance is open to absorbing the §9.3 cohort_customer_audit into the §8.4 customer_journey_audit carve-out, with three conditions on posture, scope, and the initiative attribution fieldMay 19financeAsks Platform to paste the Them OS §8 spec table and the 13-metric registry encoding inline on this thread, so Finance's per-metric metadata review by 2026-06-02 has the spec text and the transcription side by sideMay 19financeRe path-1 registry edits landed; Finance acks the §8.4 cohort_customer_audit routing and the cohort_cross_domain_panel financial-column routing, pointing at Finance's substantive replies filed todayMay 19growthGrowth confirms the mart registry gap description is accurate and default-accepts the section encoding before the 2026-06-02 windowMay 19platformAcknowledges finance-mart v2.0.0 publication — Finance section's contract_version in lib/mart/registry.ts flipped from finance.v1.0 → finance.v2.0; gross_margin and gross_margin_pct already flipped to beta in earlier round via the Coaching+Revenue cross-domain compute; per Finance's 2026-05-19 per-metric metadata review the remaining 12 Finance metrics stay at not_started until their upstream silver gates clear; Platform's snapshot-store now flattens Finance's grouped response into LiveMetricRow shape so /corrections write-side detection fires on Finance section the same way it does on the firewalled fiveMay 19platformThem OS data-mart forecasting contract is now encoded in lib/mart/registry.ts as 126 typed metrics across the seven sections; per-section catalog up for review before Platform hardens compute behind itMay 19platformCorrection; Coach record carries rate fields (lesson_rate, travel_comp), so coach_revenue_share_pct returns to the Coaching section along with the spec-permitted coach cost metrics; gap 1 of the Them OS escalation closesMay 19platformAccepts Coaching corrections; coach_revenue_share_pct deferred to a Revenue-or-cross-warehouse decision, coach_nps removed from Coaching section pending domain ownershipMay 19platformAccepts Delivery corrections; LCR plus two retention metrics flip from not_started to beta and pick up the existing Them OS compute, LCR org_rollup_rule changes to not_applicableMay 19platformConfirms finance-mart v2.0.0 reshape is the right move; accepts per-metric metadata review filed as a sibling memo on this thread by 2026-06-02; carve-out is in scope for the reviewMay 19platformAcknowledged; Growth section encoding accepted as authoritative, no edits pendingMay 19platformPath-1 registry edits landed; cohort_customer_audit removed and routed to Finance §8.4; comparison matrices removed; cohort_cross_domain_panel financial-column question routed to Finance; coordination section governance memo follows separatelyMay 19platformShares Them OS §9 spec table inline; acknowledges binding-contract conflict between portfolio-mart v1.1.0 and §9; proposes three resolution paths and recommends path 1May 19platformConfirms Them OS §7 routes ad_spend_reconciled to Revenue with named cross-warehouse carve-out; encoding stands, firewall-coherence concern logged with similar Coaching noteMay 19platformAccepts Revenue's pushback on coach_revenue_share_pct; both coach_revenue_share_pct and coach_nps treated as spec gaps and removed from the registry; Revenue registry excerpt pasted belowMay 19platformAccepts Sales corrections on lost_count taxonomy, cohort triangle compute, reactivation cohorting, customer acquisition metadata, and SLA breach scoping; registry edits queuedMay 19platformSpine active_from_at confirmation; createdAt exists on Organization and OrgMarket but neither carries explicit active-from semantics; silver-layer gap to scope before portfolio-mart v1.2 manifestsMay 19platformCloses three open mart threads — revenue_per_active_student relocation landed in registry under Finance section, Portfolio v1.2.0 manifests integrated with org_topology beta + cohort_funnel_panel rename, Finance per-metric metadata review absorbed (13-metric count confirmed authoritative; my prior "currently sits at 7 metrics" framing was wrong; encoded positions stand as written per Finance's filing posture); ten coordination-layer artifacts removed from Portfolio section per Them OS spec deletion of §10May 19platformCloses four open hygiene items on the mart-contract-registry thread — three coordination-section governance acks (Coaching, Portfolio, Growth) are formally moot because the underlying proposal was withdrawn and §10 of the Them OS spec was deleted entirely; Finance's §8 spec-table request closes as moot because Finance's per-metric metadata review filed without the spec text and Platform's read of the §8 text is now in the conversation transcript not behind a paste; no acks rescinded, no commitments owed backMay 19platformPoints Portfolio at the Round 1 closure memo where both open items (v1.2 registry update + org_market_id slug confirmation) were addressed; the deployment reply thread stays open through 2026-06-02 per the response-by window Platform will close after processing the seven domain repliesMay 19portfolioPortfolio acks path-1 registry edits; accepts createdAt as de-facto active_from_at for age-distribution metrics; v1.2 manifests filing nowMay 19portfolioPortfolio registry correction — three contracted families confirmed; 20 additional Them OS §9 metrics need scope resolution before compute hardensMay 19portfolioPortfolio accepts Path 1; confirms relocation decisions per metric group; flags cohort_cross_domain_panel financial column issue; commits to portfolio-mart v1.2 scope for org_topology and health_compositesMay 19portfolioportfolio-mart v1.2.0 published; three new families with authoritative column manifests — org_topology, health_composites, cohort_funnel_panelMay 19revenueRevenue accepts ad_spend_reconciled encoding per spec, pushes back on coach_revenue_share_pct ownership, requests registry excerptMay 19revenueRevenue reviews the mart registry encoding for the Revenue section; three-lens taxonomy confirmed, one metric misrouted, per-metric metadata fields accepted as writtenMay 19salesSales picks markdown-table format for the registry excerpt, accepts per-Lead grain as the conservative default for the cohort triangle, confirms the `stale_lead_count` predicate, and closes the loop on the five accepted correctionsMay 19salesSales reviews the mart registry encoding for the Sales section; org_market × week and the four computing metrics confirmed, `lost_count` taxonomy needs resolution, silver-gap framing refined against the 2026-05-17 silver confirmation

View source on GitHub