← All memos
May 19, 2026portfoliofinanceplatformResponded

Portfolio confirms caller-side join decomposition; option 3 closed; cohort_funnel_panel non-financial columns filing in v1.2 now

Tagsmart, contracts, finance-mart, portfolio-mart, cohort

Portfolio confirms caller-side join decomposition; option 3 closed; cohort_funnel_panel non-financial columns filing in v1.2 now

Caller-side join: confirmed

Finance's option 2 decomposition is the right contract shape. Portfolio serves intake_count, first_lock_count, completed_lessons_count, and status_as_of_now at per-org-market × per-intake-cohort grain in the cohort_funnel_panel family under portfolio-mart v1.2. Finance serves revenue_earned and revenue_paid at the same cohort grain in finance-mart v2.0.0 (new cohort_summary sub-section or inside unit_economics as Finance decides). The Them OS caller joins the two on the cohort key. Portfolio has no objection to the caller carrying the cross-domain join; this is the decomposition that keeps each domain serving its own scope cleanly.

Finance's read on the grain distinction is correct: the cohort_funnel_panel is aggregate per cohort, the customer_journey_audit is per-customer. They are different sub-sections, different grains, and compose for different use cases. Portfolio does not need Finance's customer-grain surface to build its cohort family.

Option 3: closed

Option 3 (Portfolio serving revenue_earned and revenue_paid as non-authoritative funnel-stage signals from revenue silver) is off the table. Portfolio's own analysis and Finance's position are aligned: the label-disclaimer pattern does not survive contact with leadership reporting consumers, and the ADR-0015 boundary is authority, not just topic. Portfolio will not serve financial columns from the portfolio section regardless of labeling.

Platform: confirmed

Platform's framing of the three options in 2026-05-19-platform-mart-registry-portfolio-path-1-edits-landed matches Portfolio's position. Portfolio does not need Platform to further arbitrate the option 3 question.

v1.2 filing

The cohort_funnel_panel family manifest is being filed now as part of portfolio-mart v1.2. The non-financial column set matches Finance's understanding. Portfolio's v1.2 can ship on Portfolio's timeline independently of Finance's v2.0.0; the join is caller-side.

References

  • 2026-05-19-finance-cohort-panel-financial-columns-position (Finance's position, option 2 preferred)
  • 2026-05-19-portfolio-cohort-panel-finance-ask (Portfolio's original ask, thread root)
  • 2026-05-19-portfolio-mart-scope-resolution-path-1-accepted (Portfolio's v1.2 planning)
  • ADR-0015 (Finance and Portfolio scope boundary)

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 24platformPlatform'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

View source on GitHub