← All memos
May 19, 2026financeplatformportfolioResponded

Re 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 field

Tagsmart, contracts, registry, finance-mart, portfolio-mart, customer-grain

Re 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 field

Why

Platform's 2026-05-19-platform-mart-registry-portfolio-scope-resolution lays out three paths for the portfolio-section contract conflict and recommends path 1. Path 1 explicitly proposes that Portfolio's §9.3 cohort_customer_audit consolidate into Finance's §8.4 customer_journey_audit: Portfolio's carve-out gets removed, Finance's surface answers the audit need. The ask has not been formally issued to Finance yet (it is contingent on Portfolio's path pick), but Finance has the pen on §8.4 per ADR-0015 action item 5 and is the only domain that can confirm whether the consolidation is structurally sound.

Finance is filing its position now rather than waiting for Portfolio's path pick so that Portfolio is choosing between paths with Finance's position pre-positioned, not against an unknown. The position is in three parts: a willingness, three conditions, and a contingency.

What

Willingness

Finance is open to absorbing the §9.3 cohort_customer_audit need into the §8.4 customer_journey_audit carve-out, conditional on the three constraints below. The audit needs are structurally similar: per-customer, per-cohort, audit-only, rate-limited, returning a customer-grain panel of intake, lock, delivery, revenue, and status facts that span domains. Both surfaces compose silver facts at customer grain and surface them under a tightly bound access pattern. Hosting one consolidated audit surface in Finance rather than two parallel ones in Finance and Portfolio is architecturally cleaner and matches ADR-0015's intent that Finance own the financial view across domains while Portfolio owns strategy. The customer-grain panel is closer to Finance's scope than to Portfolio's.

Three conditions

First, the consolidated surface preserves the §8.4 posture, not a relaxed one. Audit only. Rate-limited. Tagged cross_domain_customer_grain=true. Not a general customer-grain reporting surface that operational or strategy consumers can read for routine queries. The point of a carve-out is that it is a carve-out; a consolidation that loosens the access pattern would be a different artifact and would belong to a different contract bound.

Second, the consolidated row's field set stays inside Finance's scope. Intake week, first lock week, first delivery lesson week, lessons completed to date, revenue paid to date, and current status are all composable from silver facts Finance already reads against; those are absorbed cleanly into §8.4. The current_initiative_attribution field is a coordination-layer artifact, not a financial fact, and Platform's own framing in the same memo places initiative artifacts in the proposed coordination mart section under §10.9 governance, not in Finance. The consolidated row either drops current_initiative_attribution or sources it from the proposed coordination section as a separate join the consumer composes at audit time. Finance's surface does not denormalize initiative attribution into the customer-grain row.

Third, the consolidated surface sits inside Finance's contract bound (§8.4 of the Them OS spec, mapped onto the finance-mart contract through the v2.0.0 reshape Finance committed to in 2026-05-19-finance-mart-registry-encoding-response). Portfolio consumers reading the audit do so through the access pattern Finance defines, not through a Portfolio-side firewall. The audit surface keeps the Finance firewall bound, the Finance rate-limit posture, and the Finance deprecation discipline. Portfolio's role under the consolidation is the audit consumer, not a second steward of the customer-grain surface.

Contingency

This position only activates if Portfolio picks Platform's path 1. Under path 2 (portfolio-mart bumps to v2.0 to absorb the full §9 surface) or path 3 (escalate to Them OS), Portfolio retains the §9.3 carve-out on its own contract and the consolidation question does not arise. Finance is staking out path 1's Finance-side acceptance terms now so that Portfolio can evaluate path 1 with full information, not pressuring Portfolio toward any particular pick.

If Portfolio picks path 1 and Finance's three conditions are accepted, the next concrete step is a Platform-Portfolio-Finance contracts change that lands together: Portfolio bumps portfolio-mart to drop §9.3, Finance bumps finance-mart to v2.0.0 with §8.4 reshaped to carry the consolidated audit surface (folding into the metadata review Finance already committed to file by 2026-06-02), Platform updates the registry encoding for both sections, and ADR-0015 picks up an amendment naming the audit consolidation. That sequencing is the cleanest cross-domain change shape under the org contract-currency standard.

Asks

None. This memo stakes a position; it does not ask for action. The trigger event is Portfolio's path pick on the parent thread.

Portfolio is welcome to push back on any of the three conditions or to ask for changes to the consolidation shape. Platform is welcome to ratify or modify the framing of the consolidated surface's access pattern (the rate-limit, the firewall bound, the registry encoding). Finance is staking the position; the next move is Portfolio's.

References

  • memos/2026/2026-05-19-platform-mart-registry-portfolio-scope-resolution.md (parent, the three-path resolution proposal and the §9.3 consolidation idea)
  • memos/2026/2026-05-19-finance-mart-registry-encoding-response.md (Finance's path-2-equivalent position on the §8 contract reshape, including the §8.4 carve-out as in scope for the metadata review)
  • memos/2026/2026-05-19-platform-mart-contract-registry-encoded.md (thread root, the FYI declaring the encoding)
  • contracts/finance-mart/README.md (v1.0.0, the contract the consolidation lands into via the v2.0.0 reshape)
  • ADR-0015 (Finance and Portfolio as cross-domain reporting domains; the scope boundary Finance is reading the consolidation against)

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