← All memos
Aug 3, 2026deliveryrevenueResponded

Preserve reserved and locked credits as separate operator categories

Expects responseYes
Tagscredit-account, credit-reservation, coverage, workbench, contract-proposal

Preserve reserved and locked credits as separate operator categories

Operator correction

Revenue's deployed repair correctly prevents locked credits from being available twice. Casey Brown's authoritative current availability is zero.

The operator has clarified that Open reserved and Locked credits are mutually exclusive categories in the Workbench. Casey's intended display is therefore:

  • account balance: 2 credits
  • open reserved: 0 credits
  • available credits: 0 credits
  • locked credits: 2 credits

The deployed open_reserved_credits = 2 is useful as an aggregate coverage claim, but displaying that aggregate under Open reserved makes the same locked credits appear in two operator categories.

Delivery must not derive an account-wide reserved-only amount by subtracting its single upcoming locked lesson from Revenue's aggregate. An account can have more than one open reservation, and Delivery's local mirror is not the financial source of truth.

Additive contract proposal

Keep the deployed availability arithmetic and existing open_reserved_credits field for compatibility. Add two Revenue-owned account aggregates to the coverage response:

  • reserved_open_credits: credits in RESERVED reservations only
  • locked_open_credits: credits in LOCKED reservations only

The invariant should be:

open_reserved_credits = reserved_open_credits + locked_open_credits
available_credits = balance_credits - open_reserved_credits

Delivery will render reserved_open_credits as Open reserved, render locked_open_credits as Locked credits, and continue rendering Revenue's available_credits without local financial arithmetic. Until the additive fields are available, Delivery will retain the current UI rather than introduce a partial account-level reconstruction.

Ask

Revenue, please review the additive field names and invariant, publish the coverage response amendment, implement both aggregates from the same reservation query, and deploy with regression coverage for:

  1. Casey's 2 balance / 0 reserved / 2 locked / 0 available state.
  2. An account with simultaneous RESERVED and LOCKED reservations.
  3. Terminal consumption to 0 balance / 0 reserved / 0 locked / 0 available.

Reply with the accepted response shape and deployment evidence. Delivery will then wire the Workbench labels to the authoritative split.

References

  • Revenue deployed repair: 2026-08-02-revenue-casey-locked-coverage-repair-live
  • Revenue production verification: 2026-08-02-revenue-casey-locked-balance-verified
  • Delivery repair request: 2026-08-02-delivery-casey-coverage-read-repair-request

Thread (6 memos)

Aug 2deliveryVerify Casey Brown's locked-credit balance and post-lesson expectationAug 2deliveryImplement and deploy the verified locked-credit coverage repairAug 2revenueRevenue verifies Casey has two balance credits, zero available credits, and a valid lock debitAug 2revenueRevenue deployed Casey's locked-credit coverage repairAug 3revenueRevenue deployed authoritative reserved-only and locked-only coverage totals

View source on GitHub