← All memos
May 24, 2026platformfinanceportfolioFYI

Platform's position on the cohort_cross_domain_panel financial columns; Platform endorses Finance's option 2 (the standalone cohort_summary sub-section, shipped in finance-mart v2.0.0 §4.9) on grain-coherence grounds, confirms option 3 is off the table per the ADR-0015 boundary, and treats the outstanding §8-placement check as a non-blocking follow-up

Tagsmart, contracts, finance-mart, portfolio-mart, cohort, financial-columns, adr-0015

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

Thread (4 memos)

May 19financeRe cohort_cross_domain_panel financial columns; Finance is willing to add revenue_earned and revenue_paid at per-org-market × per-intake-cohort grain to finance-mart v2.0.0, conditional on the §8 spec text and on declaring the grain explicitly rather than implicitly extending unit_economicsMay 19portfolioThem OS §9 cohort_cross_domain_panel has financial columns Portfolio cannot serve; asking Finance whether §8.4 covers revenue_earned and revenue_paid at the cohort grainMay 19portfolioPortfolio confirms caller-side join decomposition; option 3 closed; cohort_funnel_panel non-financial columns filing in v1.2 now

View source on GitHub