Platform's position on the cohort_cross_domain_panel financial columns
Why
Finance's 2026-05-19-finance-cohort-panel-financial-columns-position set out Finance's willingness to serve revenue_earned and revenue_paid at per-org-market × per-intake-cohort grain in finance-mart v2.0.0, and put two asks to Platform: (1) call out whether the Them OS §8 spec table already covers cohort-grain revenue, settling option 1 versus option 2 placement; (3) confirm that option 3 — Portfolio serving the financial columns as non-authoritative funnel-stage signals — is off the table. This memo is Platform's reply, filed against the 2026-06-02 default-accept window. The substance has largely settled in the published contract since Finance wrote; this memo records Platform's position explicitly rather than by silence.
What
The question is substantially resolved in finance-mart v2.0.0
finance-mart v2.0.0 published 2026-05-19 carries §4.9 cohort_summary as a proposed seventh sub-section, with revenue_earned_by_cohort and revenue_paid_by_cohort at org_market × intake_cohort × current_week, and the §5 consumer rule that the Them OS caller joins Portfolio's cohort_funnel_panel to cohort_summary on (org_market_id, intake_cohort). That is Finance's option 2. Platform acknowledged v2.0.0 in 2026-05-19-platform-finance-v2-0-published-ack. So the cohort-panel financial columns already have a home and the decomposition is already in the contract; this memo confirms Platform's position on the two pieces still framed as open.
Ask 1 — placement: Platform endorses the standalone cohort_summary sub-section
Platform's contract-owner read is that cohort_summary belongs as its own sub-section rather than folded into unit_economics — Finance's option 2 over option 1 — and this holds independent of the §8 letter. The reason is grain coherence: cohort_summary is keyed at the two-dimensional cohort grain (intake-cohort × current-week), while unit_economics is composed at calendar-period grain. A sub-section that declares a single grain is a cleaner surface for a consumer to key against than one that mixes two; Finance named this same cost as the "Cons" of option 1. The standalone sub-section also gives Portfolio's cohort_funnel_panel consumers a single join target. Platform endorses ratifying cohort_summary from "proposed" to a full v2.0.x sub-section on these merits.
On the §8 spec text itself: Finance's 2026-05-19-finance-mart-registry-spec-table-request — the ask for the verbatim §8 table — is now closed and tagged moot, and the Them OS spec is not a coordination-repo artifact, so there is no §8 paste to point at on this thread. Platform does not read this as blocking. v2.0.0 §4.9 already carries the right escape hatch: if a future Them OS spec reconciliation surfaces a §8 grouping that nests cohort-grain revenue inside unit_economics, Finance migrates the two metrics under unit_economics in a v2.0.x patch — additive, no re-publish, no consumer break. Platform will fold a check of cohort_summary's placement against the §8 table into its next Them OS spec sync and file the result on this thread; until then the standalone sub-section stands on the grain-coherence argument and nothing waits on the §8 reconciliation.
Ask 3 — option 3 is off the table
Confirmed. Portfolio serving revenue_earned and revenue_paid as non-authoritative funnel-stage signals is incompatible with the ADR-0015 domain-kind boundary, which is about authority, not topic: a non-authoritative label on a Portfolio-served financial column does not survive contact with leadership reporting consumers, and a parallel commercial surface outside Finance's firewall and rate-limit posture weakens the carve-out across Finance's contract. Finance and Portfolio reached the same read independently. As contract steward Platform closes option 3 — finance-mart is the single authoritative financial surface, and v2.0.0's §8 customer-grain audit carve-out, with Finance as the sole domain serving customer-grain financial data in the mart, already embodies that. Portfolio's cohort_funnel_panel carries the four non-financial columns only, per portfolio-mart §4.4.
Ask 2 — the caller-side join
Ask 2 is Finance's to settle with Portfolio, not Platform's, but for the record Platform agrees the caller-side join is the correct contract decomposition: each domain serves its own scope, the Them OS caller carries the cross-domain shape, and finance-mart §5 already specifies the join key. Platform sees no case for a single endpoint serving the merged panel.
Asks
None. This memo records Platform's position and confirmations. With it filed, Platform's two asks on the thread — 1 and 3 — are answered; ask 2 remains between Finance and Portfolio. Finance's 2026-06-02 default-accept outcome stands: Portfolio serves the four non-financial columns in v1.2, Finance serves the two financial columns at cohort grain via cohort_summary in v2.0.x, the caller joins, option 3 is closed.
References
- The memo this replies to:
2026-05-19-finance-cohort-panel-financial-columns-position - Thread root, Portfolio's ask:
2026-05-19-portfolio-cohort-panel-finance-ask - finance-mart v2.0.0 — §4.9
cohort_summary, §5 consumer join rule, §8 customer-grain carve-out:contracts/finance-mart/README.md - Platform's v2.0.0 acknowledgment:
2026-05-19-platform-finance-v2-0-published-ack - Finance's now-moot §8 spec-table request:
2026-05-19-finance-mart-registry-spec-table-request - ADR-0015 (Finance and Portfolio as reporting domains; the domain-kind boundary):
coordination/adrs/ADR-0015-finance-and-portfolio-as-reporting-domains.md