RevRec brainstorm · Appendix · Appendix · Older gap matrix

16 — Capability gap matrix

Status: living decision aid
Sources: research/zuora-revenue-capability-map.md §§2.1–2.10 · 12-zuora-north-star-scope.md · 03-event-catalog.md · revanu docs/revrec-scenarios
Locks: ADR 0007
Updated: 2026-07-31


0. How to read (lenses)

Every row answers five questions about a Zuora-class capability. We clone product outcomes finance buys, not RevPro staging / RC-template machinery.

Lens Meaning
Our domain need What RevRec Next must produce in the domain model (Contract, PO, schedules, billing, journals, reports) — or “none” if the Zuora surface is an architectural clone we refuse
Maturity When the model must include it (code delivery may lag): Foundation (core path) · Complete (Chargebee ~90% / full product) · Enterprise-deep (public / multi-book / SOX scale) · Out (product or architecture choice — domain purity, not “defer forever by accident”)
CB source fit How Chargebee Billing / catalog / events naturally supply the facts (strong / partial / weak / n/a)
Smoke quarry themes Tags from revanu docs/revrec-scenarios that exercise related behavior (policy quarry, not sheet parity)
Design doc home Where the outcome is specified (docs 03–17, ADRs, research)

Maturity ↔ prior tier language: Foundation ≈ MVP · Complete ≈ Next · Enterprise-deep ≈ Later · Out ≈ deliberate exclusion.

Out framing: Out means we get the finance outcome via a cleaner domain path (e.g. Contract from subscription) or we decline the surface as not part of this product. It is not a vendor-tool preference note.


1. Zuora capability → gap matrix (exhaustive §§2.1–2.10)

One row per capability named in the research inventory. Do not treat section headers as capabilities.

1.1 ASC 606 five steps / core engine (§2.1)

Zuora capability Our domain need Maturity CB source fit Smoke quarry themes Design doc home
Transaction ingestion & staging Normalize Chargebee (and migration) facts into domain events; raw lake retains payload; no RevPro staging tables as SoR Foundation strong file-sync, sales-orders, (untagged) ingest cases 05, 03, ADR 0004
Data collection / RC formation Grouping job that builds RCs from staged lines via templates is not our path; Contract identity comes from subscription (or adapter open) Out n/a ADR 0002, ADR 0007 · note: outcome via Contract from subscription; not cloning Zuora RC template engine
Step 1 — Identify the contract open_contract creates Contract + source_ref; one contract per subscription (or explicit multi-sub policy later) Foundation strong contract-term, sales-orders 14, 03, ADR 0003, ADR 0002
Step 2 — Identify performance obligations POs from subscription items / product rules; multi-PO + bundles as Complete Foundation (1:1) / Complete (multi-PO, bundles) strong recognition-plan, (untagged) perf-obligation* 14, 15 §2–3, 11
Step 3 — Determine transaction price TP from subscription/price (prefer) or policy-backed invoice amount read; VC as Complete/Enterprise-deep Foundation (fixed TP) / Complete (credits/discounts) / Enterprise-deep (full VC engine) partial credit-note, mrr, (untagged) product-discount 15 §4, 03, 11
Step 4 — Allocate TP to POBs (SSP) Relative SSP allocation across POs; MVP degenerate 100% single-PO Foundation (degenerate) / Complete (relative) partial ssp 15 §5, 14, ADR 0005
Step 5 — Recognize revenue when POB satisfied Period recognize + release schedules; earned vs deferred Foundation strong recognition-plan, deferred-revenue, journal-posting 15 §6, ADR 0005, 08
Touchless automation Default apply path without manual intervention; exceptions surface for review Foundation strong 13 §7, 10 F1–F3
Configurable policies (engine-wide) Named policies (mod, CN, recog, cancel) — thin Foundation set, rich Complete Foundation strong modification, credit-note, pause-revenue 11, 14 §7, ADR 0005
Revenue Workbench Finance review of contract/PO/schedule/holds — our UX from use cases, not RevPro Workbench clone Complete (review UX) · Out (literal Workbench clone) n/a subledger-ac (ops surfaces) 10, 13 · note: outcome = review/exception UX; not cloning Zuora Workbench
Earned & deferred revenue tracking Schedule balances through release lifecycle; CL/CA projectors Foundation strong deferred-revenue, billing-invoice 15 §8, 14

1.2 Contract modifications & policies (§2.2)

Zuora capability Our domain need Maturity CB source fit Smoke quarry themes Design doc home
Contract modification detection Detect plan/qty/term/price/scope changes from subscription change events Foundation strong modification, contract-term 03, 15 §7
Modification rule engine Named mod policies (mod.upgrade, mod.downgrade, …) — not Zuora rule-matrix UI clone Foundation (thin) / Complete (rich) strong modification, contract-term 11, ADR 0005
Retrospective (cumulative catch-up) Reallocate + catch-up prior open amounts when policy says retrospective Complete partial modification, ppa 15 §7, ADR 0005
Prospective allocation Closed amounts unchanged; remaining reallocated forward — MVP default Foundation strong modification 15 §7, ADR 0005, 04 S03
Retro-prospective treatment Same-period mix when new PO added under retrospective mod Enterprise-deep weak modification 15 §7, research §2.2
Contractual prospective recast Optional recast of remaining contractual ratable from mod date Enterprise-deep weak modification research §2.2, 12 Later
Adjustment revenue release Separate contractual vs adjustment release % on mods Enterprise-deep weak deferred-revenue, modification research §2.2
Contract impairment Impairment accounting on cancel / unposted adjustment Enterprise-deep partial termination 15 §7, 12 Later
Workbench mod review & override Operator switch prospective↔retrospective / retain allocation — via our review UX + policy override Complete n/a modification 10, 11
Advanced contract modification framework Enterprise rule sprawl beyond named policies Enterprise-deep weak modification 12 Later
Contract modification report (SOX) Audit report: lines, policy triggered, allocation treatment Complete (basic) / Enterprise-deep (SOX pack) n/a modification 15 §9, 2.7 SOX
Ramp contracts — straight-line accounting Ramp deal straight-line / average pricing as first-class amend or open Complete partial (ramps/IBM later) 12, 03 ramps, 15

1.3 SSP & allocation (§2.3)

Zuora capability Our domain need Maturity CB source fit Smoke quarry themes Design doc home
SSP formula Configurable SSP derivation (list, % of list, formula filters) Complete partial ssp 15 §5, 11
SSP upload External SSP estimates / ranges (low/mid/high) into SSP library Complete n/a (admin) ssp 15 §5, gaps ssp-admin
SSP Analyzer Historical transaction bands / compliance optimizer Enterprise-deep weak ssp research §2.3, 12 Later
AI-assisted SSP modeling Marketing AI SSP — not a core subledger requirement Out n/a 12 · note: product choice — analytics/AI packaging outside ASC core; outcome via SSP library + analyzer later if needed
Residual SSP (RSSP) Residual method when no standalone evidence Enterprise-deep weak (untagged) multiple-residual-items 15 §5, research §2.3
SSP hierarchy on RC template Zuora ties SSP source to RC grouping template tabs Out n/a ADR 0007 · note: outcome via Contract from subscription + SSP policy on PO/product; not cloning Zuora RC template engine
Perform revenue allocations based on SSP Relative allocation of TP to POs Foundation (1 PO) / Complete (multi) partial ssp 15 §5, 14
Ramp allocation Group by ramp ref; volume/term average methods Complete partial 12, research §2.3
VC allocation (2-step / line SSP range) Allocate VC when TP outside SSP range Enterprise-deep weak 15 §4–5, research
Bundle explosion Split parent catalog/bundle into child POs for allocation Complete partial (CB bundles) (untagged) product-bundle 14, 15 §3
SSP exception reporting Lines/POs where SSP cannot be derived Complete n/a ssp 15 §5, close checks

1.4 Recognition methods (§2.4)

Zuora capability Our domain need Maturity CB source fit Smoke quarry themes Design doc home
Over-time vs point-in-time (POB Satisfied display) PO recognition pattern: over-time vs PIT Foundation (over-time) / Complete (PIT) strong recognition-plan, service-delivery 15 §6, 11, ADR 0005
Ratable methods Contract ratable, monthly/daily/mid-month, 30/360, user calendars Foundation strong recognition-plan ADR 0005, 11, 08
Point-in-time (immediate) Immediate on open/start/event Complete partial service-delivery 15 §6, 11
User-defined / milestone schedules Percent/duration sequences on PO Enterprise-deep weak service-delivery 15 §6, research
Delivery / quantity events record_delivery proportional / qty release Complete partial service-delivery 14, 03, gaps delivery
Budgeted cost / budgeted hours events % complete by cost/hours (PS proxy) Enterprise-deep weak service-delivery research §2.4, 12 Later
POB dependencies Release child when parent satisfied Enterprise-deep weak 15 §6, research
Upon Expiry release Auto-release after configured days from book/open Complete n/a 11, 15 §6
Consumption / usage POB templates Usage/consumption recognition models Complete (basic) / Enterprise-deep (PayGo, drawdown suite) partial (untagged) cb-metered 15 VC/usage, 04 S07, 12
Daily vs partial monthly accounting method Schedule granularity / proration knobs Foundation strong recognition-plan ADR 0005

1.5 Billing / booking / events-based recognition modes (§2.5)

Zuora capability Our domain need Maturity CB source fit Smoke quarry themes Design doc home
Upon Booking (Full Booking Release) Open from subscription = booking signal; optional full booking release policy Foundation (open) / Complete (full booking release) strong sales-orders, contract-term 03, ADR 0002
Upon Billing (Billed Release) Recognize billed % when invoice recorded — sibling to AR; not invent POs from invoice Complete strong billing-invoice 03, 15 §6, ADR 0002
Upon Billing (Full Booking Release) Recognize full booking when any bill collected Complete strong billing-invoice 15 §6, 11
Events-based recognition Custom revenue/cost/hold events beyond CB delivery Complete (delivery) / Enterprise-deep (generic event upload) partial service-delivery 03 record_delivery, research §2.5
Manual release Operator-forced release of PO revenue Complete n/a pause-revenue (control sibling) 11, 10
Billing–Revenue Integration sync Native Chargebee → extract → apply (our advantage) Foundation strong billing-invoice, file-sync 05, 03, ADR 0004
Usage Sync (integrated) Rated usage → recognition/accrual Complete partial (untagged) cb-metered 03, 12 Next
Standalone manual upload File/adapter ingest for migration & non-CB Complete n/a file-sync, sales-orders 05, ADR 0007 migration adapter

1.6 Close / continuous accounting / journals / reconciliation (§2.6)

Zuora capability Our domain need Maturity CB source fit Smoke quarry themes Design doc home
Continuous accounting Frequent recognize + reconcile through period; not only month-end batch Foundation (period) / Complete (near-continuous) strong period-close, journal-posting 13 §7, 10 F3
Close Process dashboard Pre-close checks, exceptions, trial-balance-ish views Foundation (thin) / Complete (dashboard) n/a period-close, subledger-ac 10 F3, 13
Period-close template & task orchestration Period state machine: soft close, reopen, lock Foundation n/a period-close ADR 0005, 08
Netting process (CA/CL) Contract asset/liability net presentation Complete n/a deferred-revenue 15 §8–9
LT/ST reclassification process Long-term vs short-term CA/CL split Enterprise-deep n/a (untagged) short-and-long-term-def-revenue 12 Later, research §2.6
Accounting transfer to GL post_journals summarized/detail export to GL Foundation n/a journal-posting, export 14, 17, ADR 0006
Manual journal entries (MJE) Manual JE with approval — mostly AC/close ops Enterprise-deep n/a journal-posting 17, 12 Later
Sweep unposted schedules Move unposted schedule lines to next period before close Complete n/a period-close ADR 0005, close flows
Reporting summarization programs Period snapshots for waterfall/history Foundation n/a deferred-revenue, export 15 §9, serve layer
Report reconciliation (automated in dashboard) Tie Accounting Detail ↔ waterfall ↔ rollforward Complete n/a subledger-ac, deferred-revenue 13, 10
Revenue holds & transfer holds Block release and/or GL transfer until cleared Complete n/a pause-revenue 11, ADR 0005 (period lock Foundation)
RC / MJE approvals Approval workflows before release/post Enterprise-deep n/a 12 Later, SOX

1.7 Audit / SOX / controls (§2.7)

Zuora capability Our domain need Maturity CB source fit Smoke quarry themes Design doc home
Audit Trail report Immutable applied_events + config change log; drill event → balance → raw Foundation strong (untagged) doc-audit-delete-flow 10 F5, 14, ADR 0004
Audit trail scope Cover policies, SSP, books, roles, period ops Complete n/a 13, 11
SOX report pack Approvals, mods, access, SSP/VC changes, holds, orphans Enterprise-deep n/a modification, period-close 12 Later, research §2.7
Granular authorization / role-based access RBAC on functions/reports Complete n/a platform / 00
Segregation of duties (marketing) Finance subledger vs GL governance Complete n/a ADR 0006, 17
Stage validation framework Ingest/normalize validation exceptions (not RevPro stage tables) Foundation strong (untagged) doc-staging-validation, load-errors 05, 03
Soft freeze on period close Freeze writes that would corrupt close sequence Foundation n/a period-close ADR 0005

1.8 Reporting / waterfalls / disclosures / RPO / trial balance (§2.8)

Zuora capability Our domain need Maturity CB source fit Smoke quarry themes Design doc home
Waterfall Report Prior/current/future recognized + deferred schedules Foundation n/a deferred-revenue 15 §9, 10 F6, 00 A5
Historical Waterfall (13 periods) Multi-period actual activity from chosen period Complete n/a deferred-revenue 15 §9
Billing Waterfall / Billing RollForward Invoice-level CL / billed revenue rollforward Complete strong billing-invoice 15 §9, smoke billingrollforward*
RC Rollforward CA/CL beginning/activity/ending Complete n/a deferred-revenue, subledger-ac 15 §8–9
Trial Balance Report Account balances; recon to rollforward/waterfall Complete n/a subledger-ac, journal-posting 17, 13
Revenue Insight / Revenue Summary PTD/QTD/YTD activity Complete n/a (untagged) dashboard-revenue-api 00 A6, 10
ASC 606 disclosure — Prior/Current CL/CA Disclosure categories from prior/current CL/CA Complete n/a deferred-revenue 15 §9, UC12
Disclosure — Prior/Current satisfied POBs Catch-up-aware prior vs current satisfaction Complete n/a ppa, modification 15 §9
Unsatisfied POB Balances (RPO proxy) Remaining unsatisfied/partial PO balances Complete n/a deferred-revenue 15 §9, 00 A5
Unreleased POB(s) Report POs not fully released Complete n/a pause-revenue, service-delivery 15 §9
Track unbilled receivables Unbilled AR / contract asset rollforward Foundation partial deferred-revenue, (untagged) unbilled* ADR 0005, 15 §8
VC Insight / VC Rollforward VC activity and balances Enterprise-deep weak 15 §4, research
Cost Insight / Cost Rollforward Capitalized cost reporting Enterprise-deep weak expense-commission 12, 17 boundary
Consumption Usage Waterfall Usage revenue by period Enterprise-deep partial (untagged) cb-metered 12 Later
Forecast Revenue Forecast templates / waterfall forecast Enterprise-deep weak 12 Later
Period FX Waterfall / Unbilled FX / Trial Balance FX Multi-currency FX reporting Complete (FX in AC/RevRec) / Enterprise-deep (full FX waterfall suite) partial multi-currency 00 A8, 17
Disclosure Aggregation config Second-level summarization fields Enterprise-deep n/a 15 §9
60+ pre-built reports (marketing) Report catalog breadth as product claim Complete (core set) / Enterprise-deep (full catalog) n/a export, subledger-ac 10, 00 · note: outcome = finance-usable report set; not cloning Zuora report count

1.9 Integrations (billing, ERP, CPQ) (§2.9)

Zuora capability Our domain need Maturity CB source fit Smoke quarry themes Design doc home
Zuora Billing ↔ Revenue Integration Chargebee Billing ↔ RevRec native adapter (equivalent outcome) Foundation strong billing-invoice, contract-term 05, 03, ADR 0007
Zuora CPQ / quote-to-cash Quote impact / CPQ upstream Enterprise-deep weak 12 Later · note: CB CPQ/quotes not day-one contract path
NetSuite Revenue Inbound Connector ERP orders/invoices inbound (optional adapter) Enterprise-deep n/a ADR 0007 SourceAdapter
NetSuite GL Connector JE → NetSuite Complete n/a journal-posting, export 17, existing connector reuse
Workday Accounting Center Connector JE / billing → Workday Complete n/a export 17
Workday Financials GL Connector Revenue JE transfer Complete n/a export 17
Microsoft Dynamics 365 Connector Listed enterprise GL path Enterprise-deep n/a export 17
Open APIs / SDK Apply API + read APIs for contracts/schedules/journals Foundation n/a (untagged) public-api / admin-apis 14, 13, 08
Standalone file upload Migration / edge file SourceAdapter Complete n/a file-sync 05, ADR 0007
Salesforce / SAP (marketing FAQ) CRM/ERP inbound examples Enterprise-deep weak ADR 0007 adapters

1.10 Advanced (§2.10)

Zuora capability Our domain need Maturity CB source fit Smoke quarry themes Design doc home
Multi-book revenue accounting Primary/secondary books (GAAP vs IFRS vs local) Enterprise-deep n/a 12 Later, research §2.10
Revenue Book Comparison Report Compare two books Enterprise-deep n/a 12 Later
Advanced Variable Consideration Analyzer VC constraint / analyzer beyond basic TP adjustments Enterprise-deep weak 15 §4, research
Advanced SSP Analyzer Historical SSP optimizer (see §2.3 Analyzer) Enterprise-deep weak ssp research §2.3/2.10
Cost processing (COGS, commissions, rebates, accruals) Capitalize/amortize incremental costs — often sibling pack, not RevRec recognition core Enterprise-deep partial expense-commission 12, 17 · note: domain purity — cost amortization may ship as separate capability pack
Consumption revenue suite Usage models, unbilled usage accrual, prepaid drawdown Complete (basic) / Enterprise-deep (full suite) partial (untagged) cb-metered 12, 15
Financing / significant financing component Financing accrual / payment exception Enterprise-deep weak 12 Later · rare for pure SaaS
Mass actions Batch hold/release, re-allocate, close/open contracts Complete n/a 13 ops, 11
Simulations / quote impact (marketing) Pre-ledger GTM simulations Out n/a 12 · note: product choice — GTM simulation is not ASC subledger core
AI-assisted validations / SSP (marketing) AI validation packaging Out n/a 12 · note: product choice — deterministic validation + audit first
Dedicated shard / migration sandbox / managed services Deployment packaging Out n/a 12 · note: ops/entitlement packaging, not domain model

2. Smoke theme coverage

Source: revanu docs/revrec-scenarios/README.md (generated 2026-07-30; 317 case specs). Tags are a policy/use-case quarry for engine replacement and accounting-equality tests — not Hotglue sheet parity.

Smoke theme Case count Domain capability / policy Maturity pressure Design / quarry notes
(untagged) 102 Mixed ingest, admin, conversion, backlog, tax, writeoff, CB connect, PO formation Foundation–Complete Triage into tagged policies over time; many are harness/ops
subledger-ac 72 Accounting Central sibling: journals, AR balances, recon, FX, tax mapping, aging Foundation (AC) / Complete 17, ADR 0006 — amounts from RevRec
billing-invoice 25 record_billing; billing schedules; invoice-as-signal not contract Foundation 03, ADR 0002
deferred-revenue 22 Earned/deferred schedules; adjustments; unearned-by-*; rollforward Foundation 15 §8, waterfall
journal-posting 16 post_journals; mapping; rounding; posting jobs; unbilled postings Foundation 14, 17
service-delivery 15 record_delivery; PSD; proportional / date / discard Complete 03 later, gaps delivery-*
contract-term 12 Service window on open/amend; term sync; CN allocation interaction Foundation 03, 14
multi-currency 12 FX rates, home currency, FX gain/loss, MC PPA Complete 00 A8, AC FX
modification 11 amend_contract; prospective (MVP); catch-up Complete Foundation / Complete ADR 0005, 15 §7
credit-note 10 record_credit + named CN policy Foundation 03, 11 cn.*
expense-commission 10 Cost/commission amortization (sibling / Enterprise-deep pack) Enterprise-deep 12 boundary
recognition-plan 9 Ratable methods, plan types, 30/360, long plans Foundation ADR 0005, 11
ppa 7 Prior-period adjustment / reopen / catch-up journaling Foundation ADR 0005
sales-orders 7 Legacy SO projection / migration adapter emitting same events Complete (compat) ADR 0007 migration
ssp 7 SSP library, list SSP, analyzer, versioning Complete / Enterprise-deep (analyzer) 15 §5
export 6 Continuous/journal/data export Foundation 05 egress, 17
voided-invoice 6 Void policy on billing identity Complete 11 billing void policy
file-sync 3 File/zip ingest adapter Complete 05, migration
period-close 3 Period close / freeze / transaction-date vs closed period Foundation ADR 0005
mrr 2 MRR metrics / disabled MRR paths Complete (metrics) 00 A6
reprocess-sales-order 2 Replay/reprocess apply idempotency Foundation 03 §6, 13
termination 2 terminate + cancel policy Foundation 03, 11 term.cancel
clone 1 Tenant/config clone (ops) Complete (ops) platform
hotglue 1 Legacy sync failure path — migration quarry only Out as product bar ADR 0001 · note: behavior may inform migration adapter; CSV byte-parity is Out
pause-revenue 1 Hold/pause recognition Complete gaps pause-revenue, 11

2.1 Priority quarry fixtures (accounting-equality first)

Priority Smoke case / theme Why
1 simple-mod Multi-period amend + reopen + allocation integrity
2 plan-types Ratable proration shapes
3 contract-term-modification Mod treatment classification
4 deferred-revenue-adj Deferred/unbilled + rollforward export
5 prospective-modification Prospective waves + SSP reload + terminate
6 Expand by tag modification, credit-note, ssp, service-delivery, ppa, multi-currency

Gap specs (proposed): revanu docs/revrec-scenarios/gaps/ — prospective helper, allocation strategy, delivery-date, pause, close, SSP admin, etc.

2.2 Theme → apply op map (quick)

Theme cluster Primary apply ops
contract-term, sales-orders, recognition-plan open_contract, recognize
modification, termination amend_contract, terminate
billing-invoice, voided-invoice, credit-note record_billing, record_credit
service-delivery, pause-revenue record_delivery, hold policies, recognize
deferred-revenue, ppa, period-close recognize, period lock/reopen
journal-posting, export, subledger-ac post_journals (+ AC projectors)
ssp, expense-commission, multi-currency allocate / cost pack / FX projectors

3. Chargebee stream → domain event → apply op

From 03-event-catalog.md. Rule: source facts become domain events; invoices do not invent contracts.

3.1 Domain operations (apply API)

Operation Intent Maturity ASC / policy home
open_contract Steps 1–4 Foundation 14, 15, ADR 0003
amend_contract Modification (prospective Foundation; catch-up Complete) Foundation / Complete 15 §7, ADR 0005
record_billing Invoice → AR + deferred timing Foundation ADR 0002, 03
record_payment Cash application Foundation 03, 17 AR
record_credit CN with named policy Foundation (one default) / Complete (policy table) 11 cn.*
record_delivery Proportional / PIT / qty Complete 14, 03
recognize Period Step 5 Foundation ADR 0005
post_journals GL summary Foundation 14, 17, ADR 0006
terminate Cancel remaining Foundation (policy TBD) 11 term.cancel

3.2 Streams → emit → op

Chargebee stream / fact Domain emit Apply op(s) Maturity Notes
customers upsert Customer (identity only) Foundation No ASC step alone
subscriptions created Contract opened open_contract Foundation POs from items + term
subscriptions changed Contract amended amend_contract Foundation Plan/qty/term; prospective default
subscriptions cancelled Contract terminated terminate Foundation Policy on remaining schedule
contract_term (nested/related) Feeds open/amend dates open_contract / amend_contract Foundation Service window for ratable PO
items / item_prices / plans / addons Product + list/sale hints catalog upsert → SSP later Foundation / Complete PO product_ref
invoices Billing recorded record_billing Foundation Never open_contract
credit_notes Credit recorded record_credit Foundation reason_code → policy id
transactions Payment recorded record_payment Foundation Link to invoice
unbilled_charges Optional billing / CA signal record_billing (partial) or CA projector Complete
events Realtime trigger for extract (orchestration) Complete Poll OK without stream
coupons / discounts on invoice TP / billing line attributes attributes on open/bill Complete MVP: amounts on lines may suffice
ramps / IBM Structured amend amend_contract Complete First-class if API exposes; don’t infer via asof
orders (CB shipping orders) Usually ignore for SaaS RevRec Out Not ASC PO by default
Usage / metered (usage events or invoice usage lines) Usage satisfaction record_delivery / usage recognize Complete Smoke: cb-metered
File / migration adapter Same domain emits same ops Complete ADR 0007

3.3 Field-level MVP anchors

Apply op Key domain fields Typical CB source
open_contract source_ref, customer, currency, service_start/end, product_ref, TP, method subscription.id, customer_id, contract_term / current_term_*, item_price/plan, item amounts
record_billing source_ref, date, totals/lines, contract_link, customer_id invoice.id, date, line_items, subscription_id
record_payment source_ref, invoice_id, amount transaction.id, linked invoice, amount
record_credit source_ref, reason→policy, amounts, invoice_link credit_note.id, reason_code, lines

3.4 Named policies (CB-facing)

Policy ID Applies Maturity default
mod.upgrade Mid-term up Foundation → prospective
mod.downgrade Mid-term down Foundation → prospective
cn.refund_unrecog Most CNs Foundation → reduce unrecognized/deferred
cn.reverse_recog Return-like Complete
cn.ar_only Billing credit only Complete
term.cancel Cancellation Foundation (ADR TBD)
recog.method PO method Foundation → ratable
recog.billing_release Upon billing variants Complete
hold.release Pause / revenue hold Complete

4. Exhaustiveness review

4.1 Covered well (Foundation model + strong CB fit + smoke quarry)

Area Evidence
Contract from subscription (Step 1 outcome) ADR 0002/0003; §1.1 Step 1; themes contract-term, sales-orders
Ratable Step 5 + earned/deferred ADR 0005; themes recognition-plan, deferred-revenue
Prospective amend + terminate + default CN §1.2 / §3; themes modification, termination, credit-note
Billing/payment as billing ops (not PO factory) §1.5 / §3; themes billing-invoice
Period close + journals export §1.6; themes period-close, journal-posting, export
Audit drill event → balance → raw §1.7; applied_events design
Waterfall / unbilled basics §1.8; deferred-revenue, unbilled* cases
Native CB extract path §1.9 / §3; 05 + 03
AC sibling journaling §2 subledger-ac; ADR 0006 / 17

4.2 Still thin (model may name it; policy/tests/docs incomplete)

Area Gap Next pressure
Multi-PO + relative SSP Degenerate Foundation only; smoke ssp thin vs Zuora Complete — CB markets multi-PO
Retrospective / catch-up mods Spec’d Complete; few golden fixtures Complete — expand modification + ppa
Delivery / PSD record_delivery later in 03; smoke strong Complete
Usage / consumption Basic Next; PayGo/drawdown Enterprise-deep Complete for CB usage merchants
Billing-as-recognition trigger AR path Foundation; billed-release policies thin Complete
CA/CL netting + RPO disclosures Aims exist; report suite incomplete Complete
Trial balance + automated recon matrix AC-heavy; RevRec waterfall tie-out thin Complete
Holds / mass actions / review UX Period lock only Foundation Complete
FX waterfalls Smoke strong on AC FX; RevRec FX disclosure thin Complete
Ramp first-class Catalogued; no smoke tag Complete
VC engine TP discounts partial; analyzer/insight Enterprise-deep Complete (basic) / Enterprise-deep (full)
CN policy table richness One default Foundation Complete
term.cancel ADR TBD Foundation lock needed
Untagged smoke (102) Behavior not mapped to named policies Quarry hygiene

4.3 Out on purpose (domain purity / product boundary)

Item Why Out
Data collection / RC formation via RC grouping templates Outcome via Contract from subscription; not cloning Zuora RC template engine
SSP hierarchy on RC template SSP policy lives on product/PO/Contract — not RC template tabs
Literal Revenue Workbench / advanced mod Workbench UX Design our review UX from 10
AI-assisted SSP / AI validations (marketing) Deterministic SSP library + audit first; AI packaging is not ASC core
Simulations / quote impact (marketing) GTM simulation is not the subledger product
Dedicated shard / managed services entitlements Ops packaging, not domain
CB shipping orders as ASC POs by default Not performance obligations for SaaS RevRec
Hotglue CSV / OrderDetails byte-parity as correctness bar Accidental complexity (ADR 0001); if migrating, adapters emit domain events — correctness remains accounting equality
Invoice/time-series reconstruction of POs Rejected (ADR 0002)
Warehouse as mutable system of record ADR 0004
AC computing recognition amounts ADR 0006 / AC PRD — RevRec owns recognition math
Catalyst / full ERP-as-RevRec Parallel product surface

4.4 Enterprise-deep (in north star; not Foundation)

Multi-book + book comparison · LT/ST reclass · full SOX pack + 7-year retention packaging · MJE approvals · RSSP / SSP Analyzer · advanced VC analyzer · budgeted hours / POB dependencies · financing component · full consumption suite · cost capitalization pack (may be separate product surface) · Dynamics/NetSuite inbound · CPQ quote-to-cash · disclosure aggregation knobs · forecast revenue · VC/cost/consumption waterfalls.

4.5 Count check (inventory completeness)

Research section Capability rows in §1
2.1 Core engine 11
2.2 Contract modifications 12
2.3 SSP & allocation 11
2.4 Recognition methods 10
2.5 Billing/booking/events modes 8
2.6 Close / journals / recon 12
2.7 Audit / SOX 7
2.8 Reporting / disclosures 18
2.9 Integrations 10
2.10 Advanced 11
Total 110

Smoke themes in §2: 25 tags (including (untagged)). Apply ops in §3: 9. CB streams mapped in §3.2: 16 rows.

4.6 Have / need by lens

Lens Have in design (docs 13–17 + ADRs) Still need
Zuora-class outcomes Full capability model in this matrix + 12/15 Delivery phased; Enterprise-deep report/SOX/multi-book
Chargebee ~90% Native stream→op map; Foundation SaaS path Usage, multi-PO SSP, richer mods/CN, delivery
Legacy migration SourceAdapter + same domain events Compat projections; shadow accounting-equality; SO themes
Smoke quarry 317 specs + theme map Policy IDs on every tagged case; golden amounts in engine tests

Doc Role
research/zuora-revenue-capability-map.md Sourced Zuora inventory (§§2.1–2.10)
12-zuora-north-star-scope.md Tier proposals MVP/Next/Later/Out
03-event-catalog.md CB → domain events
14-domain-model.md Contract / PO / apply seam
15-asc606-engineering-spec.md Steps, SSP, mods, release
17-revrec-ac-boundary.md RevRec vs AC
decisions/0007-enterprise-zuora-class-scope.md Scope lock
revanu docs/revrec-scenarios/ Smoke quarry

Changelog

Date Change
2026-07-31 Exhaustive rewrite: 110 Zuora rows §§2.1–2.10, smoke theme coverage, CB stream→op, exhaustiveness review
2026-07-30 Initial living matrix (aggregated capability groups)