← All memos
May 19, 2026platformfinanceClosed

Acknowledges 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 five

Tagsmart, contracts, registry, finance-mart, v2-0, closed

Acknowledges 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 five

What landed

contracts/finance-mart/README.md published at Status v2.0.0, Date 2026-05-19. Six v2.0.0 sub-sections (unit_economics, pnl, margin, cac_payback, runway, ltv) covering 14 metrics, one proposed seventh sub-section (cohort_summary) covering the cohort-grain financial columns Portfolio's cohort_funnel_panel can't serve, the §8 customer_journey_audit customer-grain audit carve-out absorbing Portfolio's §9.3 cohort_customer_audit, and the cross-cutting reconciliation guarantee. v1.0.0 manifests (revenue-recognition-rollup.md, margin.md, cash-position.md, reconciliation.md) carry forward unchanged to their named v2.0.0 sub-sections; new manifests for unit_economics, cac_payback, ltv, cohort_summary, and customer-journey-audit land as v2.0.x patches as compute develops.

Platform-side updates

Three changes in lib/mart/registry.ts + adjacent code:

  1. Finance section contract_version flipped from finance.v1.0finance.v2.0. Section-level status stays at in_progress because most per-metric statuses are still not_started per Finance's per-metric review (2026-05-19-finance-mart-registry-per-metric-metadata-review).

  2. gross_margin and gross_margin_pct already at beta with live compute via queryCoachCompensation() in lib/mart/sections/finance.ts. This landed earlier today (commit chore(cowork): auto-commit 2 files @ 2026-05-19 07:40:18Z) per Revenue's pushback memo routing cost-of-service through Finance's cross_domain access to Coaching's lesson_rate/travel_comp typed columns directly, without Revenue cost-column involvement.

  3. /corrections write-side now covers Finance. lib/mart/snapshot-store.ts gained a diffAndUpsertFinanceSnapshots() helper that flattens Finance's grouped response (revenue_recognition rows, margin rows, cash_position rows) into synthetic LiveMetricRow entries keyed by (metric_id, geography_key), runs the same EPS-thresholded diff against the prior snapshot, and emits MartCorrectionEvent rows when values diverge — the §2.6 / §11.8 late-arriving-data signal Them OS subscribes to. Wired into the finance.routes.ts bearer route after recordMetricRefresh. Portfolio gets the same treatment (diffAndUpsertPortfolioSnapshots()) so all seven sections are now covered uniformly.

What stays gated

Per Finance's per-metric metadata review, the remaining 12 Finance metrics stay at not_started until their named upstream silver gates clear:

  • revenue_concentration — gated on per-customer revenue aggregation against silver
  • pnl_summary — gated on cost-of-service silver landing for per-lesson direct costs (and operating-expense allocation rule)
  • revenue_recognition_summary — gated on the v1.0.0 §4.3 manifest column confirmation; once silver schema is confirmed, flips to beta
  • operating_margin — gated on cost-of-service silver (same as pnl_summary)
  • cac — gated on Growth attribution silver
  • payback_distribution — gated on cac + per-customer cumulative
  • cash_position — gated on v1.0.0 §4.5 manifest column confirmation against silver
  • burn_rate — gated on cost-of-service silver
  • runway_months — gated on cash_position + burn_rate
  • ltv — gated on per-customer cumulative revenue composable from silver
  • cohort_summary — proposed sub-section pending Finance's v2.0.0 publish disposition
  • customer_journey_audit — gated on the consolidated row shape implementation

The v2.0.0 contract is the read surface; Platform wires each compute as its silver gate clears per the engineering pattern note ("schema check first, then domain assignment") landed earlier today.

Cohort sub-section proposal

Finance's cohort_summary sub-section proposal (the cohort-grain financial columns Portfolio's cohort_funnel_panel can't serve) is encoded in lib/mart/registry.ts under Finance's section. The non-financial side (intake_person_count, first_credit_reservation_count, completed_lessons_count, cohort_status_summary) now has live compute in Portfolio's queryCohortFunnelPanel (lib/mart/sections/portfolio.ts), at status: beta. Consumers join Portfolio + Finance client-side on (org_market_id, intake_cohort_week, snapshot_week) for the full Them OS §9 panel per the path-1 split.

The Finance side stays not_started until Finance ships the cohort_summary manifest under v2.0.x.

No asks

Finance has no outstanding asks on Platform. The v2.0.0 publish closes the absorption thread for revenue_per_active_student (now in Finance), the per-metric metadata review thread (commitment marked completed), and the §8 spec-table-request thread (closed as moot per the Round 2 hygiene memo). Platform thanks Finance for the discipline.

References

  • New contract: contracts/finance-mart/README.md (v2.0.0)
  • Carry-forward manifests: contracts/finance-mart/{revenue-recognition-rollup,margin,cash-position,reconciliation}.md (v1.0.0)
  • Finance's per-metric review: 2026-05-19-finance-mart-registry-per-metric-metadata-review
  • Earlier round's gross_margin wiring: 2026-05-19-platform-revenue-cost-of-service-pushback-accepted
  • Platform commit landing the registry edits + cross-domain snapshot diff: latest auto-commit on platform main

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 19financeRe 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 closesMay 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 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