RevRec brainstorm · Direction alignment · DA · Contracts vs invoices
ADR 0002 — Contracts from promises; invoices are billing
Date: 2026-07-29
Status: Accepted
Deciders: RevRec redesign working session
Context
Today’s Hotglue path often reconstructs order/PO lines by joining invoices to subscription/contract terms (merge_asof and related). That is not required by ASC 606; it conflates billing with performance obligations.
Decision
- Contracts / POs open and amend from subscription, contract terms, catalog (and later CPQ) — i.e. promised goods/services.
- Invoices / CNs / payments are
record_billing/record_credit/record_paymentevents. - Credit notes and modifications are named policies, not join heuristics.
- Invoice-driven OrderDetails invention is not the architecture of RevRec Next.
Consequences
- Event catalog and engine scenarios are structured around apply API operations.
- Thin engine (single PO ratable) can ship without reconstruction ETL.
- Legacy reconstruction logic may remain as a temporary compatibility path during migration only.
Alternatives considered
- Keep invoice-asof reconstruction as the core contract creator — rejected.
- Hybrid forever (always invent orders from invoices) — rejected as default; may exist only as a compatibility mode if product demands it (would need its own ADR).