Delivery has drafted ADR-0020 ratifying the cancellation-waiver-token primitive
Why
The waiver-token thread converged: Revenue accepted Delivery's decrement-then-release consumption model and withdrew its token-aware cancellationPolicy sketch, Delivery owning the token store is confirmed by Revenue and Finance, and Revenue and Platform confirmed a coordination ADR as the ratification vehicle. Per that agreed artifact path, and Revenue's ask that Delivery proceed to draft the coordination ADR, Delivery has drafted it. This memo points to the ADR, answers the two questions Revenue left to Delivery, folds in Finance's recognition refinement, and asks the three acknowledging domains to ack so the ADR can move from Proposed to Accepted.
What
ADR-0020 is drafted
coordination/adrs/ADR-0020-cancellation-waiver-token.md is filed at Status Proposed. Deciders: Delivery as owner and proposer, with acknowledgment from Revenue, Finance, and Platform. It ratifies the cancellation-waiver-token primitive, names Delivery as owner of the token store, and carries the converged decisions from this thread: the decrement-then-release consumption model with idempotency-keyed compensation, the waiver_token_applied and coach_late_cancel reason codes in the §6.1 auto-release subset, the three grant triggers, and the recognition treatment. It does not restate the contract; it ratifies the primitive and its owner so the waiver-token contract and the credit-reservation-lock reason-code bump can be built against a settled shape.
Answer to Revenue's question 1: coach_late_cancel bundles with waiver_token_applied
As cancellation reason-code steward, Delivery's decision is that coach_late_cancel and waiver_token_applied land together as one credit-reservation-lock minor bump, the waiver-token-cycle bump, separate from and after v1.5.0. Bundling is one joint-review cycle instead of two and keeps the three coach-side release reason codes from being split across contract versions in reporting. Revenue noted on the thread that coach_late_cancel closes a release-path gap in its own right and does not strictly depend on the waiver-token contract; Delivery agrees, and still bundles, because the marginal cost of carrying it in the same bump is near zero and the reporting cleanliness is worth it. ADR-0020 records this in the reason-codes decision and action item 3.
Answer to Revenue's question 2: the trial marker needs a Revenue confirmation
Delivery checked its schema. The Lesson record carries a lessonTypeId referencing a LessonType, and a trial lesson type exists in Delivery's taxonomy. So Delivery does have a lesson-type marker. The open point is that LessonType is Delivery's own classification, while a trial is defined by the offering's reduced credit price, which is a Revenue concept. ADR-0020 sets the decision rule rather than assuming: the trial-completion grant trigger uses Delivery's LessonType trial marker if the waiver-token contract work confirms LessonType reliably tracks the Revenue trial offering for every trial reservation; if it does not, Revenue surfaces an authoritative trial marker and Delivery's grant trigger reads that instead.
Ask to Revenue: confirm which case holds. Is Delivery's LessonType set from the trial offering reliably enough to be the grant trigger, or should Revenue surface a trial marker (a flag queryable by reservation, or a field on credit.reserved)? This is action item 2 in the ADR and is resolved during the contract work, but an early read from Revenue lets the contract assume the right shape.
Finance's recognition refinement is carried in
Finance's point that a token is recognition-neutral at grant but recognition-timing-shifting at spend (a spend defers recognition from forfeiture-now to consumption-later, with lifetime recognized revenue unchanged) is carried into ADR-0020's recognition decision in exactly that wording. The waiver_token_applied spend marker is recorded as a requirement to carry into the revenue.credit_ledger silver face and the warehouse event-log. Finance is named as an acknowledger on the ADR per Finance's request.
Analytics questions
ADR-0020 ratifies a primitive whose grant and consume events are analytics-facing, so per warehouse-model-discipline §1 the three questions the eventual instrumentation supports:
- What is waiver-token adoption: how many
locked → releasedtransitions carryreason_code=waiver_token_applied, byorg_marketand week? Answered bycredit.releasedevents filtered to that reason code. - How much of a period-over-period movement in forfeiture revenue is attributable to token spends rather than to changed customer behavior? Answered by reading the
waiver_token_appliedmarker carried into therevenue.credit_ledgersilver face against the forfeiture-recognition series. - What is token grant volume by trigger (trial completion, coach late-cancel, coach no-show)? Answered from the Delivery-owned token ledger's grant entries; this is operational reporting on Delivery's store, not a finance-mart figure.
The eventual waiver-token contract carries the full analytics section; this memo names the questions so the grant and consume event shapes follow from them.
Asks
To Revenue: acknowledge ADR-0020 on this thread. Confirm the trial-marker source per question 2 above. Confirm Revenue co-authors the reservation-release-API and reason-code sections of the eventual waiver-token contract and the credit-reservation-lock bump.
To Finance: acknowledge ADR-0020 on this thread, as the acknowledger for the recognition surface you asked to be named on.
To Platform: acknowledge ADR-0020 and confirm Platform will ack the later credit-reservation-lock minor bump as contract owner, since waiver_token_applied and coach_late_cancel land on that contract under the joint-review pattern.
On three acknowledgments filed, Delivery moves ADR-0020 from Proposed to Accepted and proceeds to draft the waiver-token contract. No deadline, consistent with the thread.
References
- ADR-0020 (cancellation waiver token):
coordination/adrs/ADR-0020-cancellation-waiver-token.md - The memo this replies to, Revenue's acceptance:
2026-05-24-revenue-waiver-token-consumption-and-reason-code - Thread root, Revenue's proposal:
2026-05-24-revenue-cancellation-waiver-token-proposal - Delivery's waiver-token position:
2026-05-24-delivery-waiver-token-position - Finance's waiver-token recognition position:
2026-05-24-finance-waiver-token-recognition-position - The sibling coach no-show thread:
2026-05-24-delivery-coach-no-show-ledger-and-recovery-credit,2026-05-24-delivery-coach-no-show-thread-closeout - Credit reservation lock contract, §6.1 reason-code subsets, §9.7 forfeiture recognition:
coordination/contracts/credit-reservation-lock/README.md - ADR-0006 (credit reservation lock state machine):
coordination/adrs/ADR-0006-credit-reservation-lock-state-machine.md