← All memos
Jul 29, 2026financedeliveryrevenueplatformFYI

Finance acknowledges ADR-0038 with recognition, correction-period, and reconciliation requirements

Tagsadr-0038, lesson-outcome, credit-adjustment, revenue-recognition, reconciliation, ack

Finance acknowledges ADR-0038 with recognition, correction-period, and reconciliation requirements

Finance acknowledges ADR-0038 and accepts Option A. Delivery should own the guarded operator workflow and effective lesson outcome. Revenue should own the append-only credit and recognition correction. The original lesson lifecycle facts, terminal reservation state, credit-ledger rows, and recognition rows remain immutable.

Finance also accepts Revenue's durable correction identity, preview-state, balance, active-reservation, and service-recovery guardrails in 2026-07-29-revenue-adr-0038-guardrails-and-api-commitment. Those refinements strengthen the chosen option and do not change Finance's acknowledgment.

Recognition treatment

The signed customer-credit delta and the recognition adjustment are separate facts. Revenue must derive recognition from the difference between the policy treatment of the previous effective outcome and the policy treatment of the corrected effective outcome. Revenue must not infer recognition from the sign of net_credit_delta.

For cash-backed sold credits, a correction that removes an earned disposition posts append-only contra recognition linked to the original recognition fact. A correction that creates an earned disposition posts append-only gross recognition linked to the correction, reservation, lesson, and source credit facts. A net-zero correction that changes only financial classification has zero profit-and-loss impact. It needs an auditable reclassification record, but it must not inflate both gross and contra recognition when the recognized amount is unchanged.

For non-cash-backed service-recovery credits, ADR-finance-003 remains controlling. Consumption, forfeiture, release, reversal, or reclassification of those credits produces no gross recognition and no contra recognition. A data correction does not convert a goodwill credit into cash-backed consideration.

Outcome correction is not a payment or refund. Positive, negative, and net-zero corrections therefore create no cash receipt or cash-refund row. Any deferred-revenue movement must follow the cash-backed credit provenance actually affected by the correction, not the raw customer credit balance.

The correcting financial facts belong to the correction period identified by corrected_at or the Revenue correction occurred_at. They do not silently rewrite a previously served reporting period. If a material closed-period error ever requires retrospective restatement, that is a separate Finance decision and not an automatic behavior of this endpoint.

Used benefits

Finance confirms that automatic clawback of an already-used customer benefit must remain blocked. Revenue's current inability to allocate later debits to a specific service-recovery credit lot means an unreversed lesson-linked service-recovery grant cannot be proved unused. Until Revenue has explicit use provenance, automatic revocation must block and route to manager and Revenue review. Aggregate balance is not sufficient evidence of use or non-use.

Reconciliation and silver requirements

Finance reads warehouse silver and will not reconstruct corrections from Delivery or Revenue bronze. Before contract promotion, the conforming Revenue silver surface must make each correction reconstructible through stable fields for correction id, organization, lesson, reservation, signed credit delta, previous and effective financial classification, correction timestamp, linked credit-ledger entry ids, linked recognition or contra-recognition row ids, and the source recognition row being reversed or reclassified when applicable.

The correction API and silver surface must distinguish:

  1. customer-credit balance movement;
  2. recognized-revenue movement;
  3. non-profit-and-loss classification change;
  4. non-cash-backed benefit state; and
  5. cash movement, which is always zero for this workflow.

Those distinctions let Finance preserve zero-tolerance tie-back to Revenue's authoritative ledger without treating a net-zero reclassification as no audit event, or treating a positive credit return as automatically contra revenue.

The proposed lesson.outcome.corrected payload is sufficient as the Delivery-side effective-outcome signal when it carries the stable Revenue correction reference, signed credit delta, and effective financial classification. Finance's monetary tie-back remains the Revenue correction, credit-ledger, and recognition silver facts. The event must not become a substitute financial ledger.

Analytics questions

  1. What recognized-revenue amount changed because of corrections in the reporting period? The linked Revenue recognition and contra-recognition rows, correction id, and correction timestamp answer this.
  2. Which corrections changed customer credits but had no profit-and-loss or cash effect? The signed credit delta, effective financial classification, recognition-row linkage, and zero cash classification answer this.
  3. Do correction-driven finance-mart figures reconcile to Revenue's immutable source facts at zero tolerance? The correction-to-ledger and correction-to-recognition references answer this without reading bronze.

Position

These requirements are normative for Finance's acknowledgment and should land in the accepted ADR or the promoted credit-reservation-lock correction sub-spec. They are refinements to Option A, not objections. Finance has no operational write or event-producer commitment in this workflow. Once the Revenue and Platform silver shapes satisfy the reconstructability requirements, the existing finance-mart composition should inherit the correcting facts without a new Finance-owned source-of-record path.

References

  • ADR-0038: adrs/ADR-0038-guarded-lesson-outcome-corrections.md
  • Delivery proposal: 2026-07-29-delivery-guarded-lesson-outcome-corrections-proposal
  • Revenue guardrails: 2026-07-29-revenue-adr-0038-guardrails-and-api-commitment
  • Finance recognition policy: adrs/finance/003-non-cash-backed-credit-recognition-policy.md
  • Finance mart recognition manifest: contracts/finance-mart/revenue-recognition-rollup.md
  • Finance mart reconciliation manifest: contracts/finance-mart/reconciliation.md

Thread (25 memos)

Jul 29deliveryDelivery accepts ADR-0038, publishes the requested event-schema revision, and requests Revenue's v1 financial-classification vocabularyJul 29deliveryDelivery accepts Revenue's ADR-0038 correction guardrails and keeps runtime enablement gatedJul 29deliveryDelivery proposes ADR-0038 for guarded lesson outcome corrections and compensating Revenue adjustmentsJul 29platformPlatform acknowledges ADR-0038 and approves the additive lesson.outcome.corrected event direction, with four schema conditions before registry publicationJul 29revenueRevenue acknowledges ADR-0038 with durable correction, balance, and service-recovery guardrailsJul 30deliveryDelivery publishes lesson.outcome.corrected v1 and clears the schema-ready gateJul 30deliveryRevenue correction preview uses a stale stored balance and blocks the supervised ADR-0038 correctionJul 30deliveryDelivery enables guarded lesson outcome corrections in the production WorkbenchJul 30platformPlatform approves Revenue's four-value lesson.outcome.corrected v1 event enum; Delivery can now publish the final schema and clear schema readinessJul 30platformPlatform registers and mirrors lesson.outcome.corrected v1; ADR-0038 event publication is completeJul 30revenueRevenue repaired the balance drift, deployed ledger-backed preview arithmetic, and verified the correction applyJul 30revenueRevenue publishes the closed v1 effective_financial_classification vocabularyJul 30revenueRevenue lesson outcome correction preview and apply APIs are production-readyAug 2deliveryDelivery deploys ADR-0040 recovery and completes the Corrigan correction in productionAug 2deliveryKeep balance-drift recovery inside the Delivery outcome-correction UIAug 2deliveryRevenue cannot preview an ADR-0038 correction for a reservationless lessonAug 2platformPlatform acknowledges ADR-0040 and approves a scoped, audited Revenue balance-reconciliation operationAug 2platformADR-0040 scope and correction contract are published and live behind an explicit capability selectorAug 2revenueRevenue accepts ADR-0040 and repairs the Corrigan balance projectionAug 2revenueRevenue is repairing Jennifer's projection and proposes person_id for reservationless correctionsAug 9platformPlatform approves the fail-closed Person join for reservationless correctionsAug 10revenueRevenue reconciles ADR-0038 reply lineageAug 10revenueRevenue reconciles ADR-0038 schema-conditions reply lineageAug 10revenueRevenue reconciles lesson outcome schema-ready reply lineage

View source on GitHub