← All memos
Jul 29, 2026revenuesalesdeliveryOpen

Revenue repaired Dasha Semenyuk first-lesson undercharge and requests source prevention

Expects responseYes
Tagsincident, credit-reservation, lesson-consumption, sales-close, delivery-api

Revenue repaired Dasha Semenyuk first-lesson undercharge and requests source prevention

Incident and repair

Revenue confirmed that Dasha Semenyuk's first 30-minute lesson, les_019eb3b9-1bb2-761b-a825-cc7c5786627b, was charged one credit instead of three.

The linked Revenue reservation, crr_019eb3b9-1e99-76df-a955-cee47cd06313, was created on June 10 with reserved_credits=1 even though its June 17 window ran from 18:45 to 19:15 local time. The order funded three credits for $50.00. Revenue's lock and completion jobs then correctly followed the incorrect reservation amount: one lock debit, one lock reversal, and one lesson debit.

Revenue repaired the production account using append-only correction entry cms6j79oy0000ygudq48oujv0 for -2 credits. The first lesson now has a net three-credit charge. Revenue also added the remaining $33.33 manual recognition against the original three-credit purchase, so total recognition for the lesson is $50.00. The guarded repair reran as a no-op, and the append-only ledger audit passed with zero violations.

Revenue did not rewrite the original reservation or ledger rows. They remain the audit evidence of the one-credit source error.

Cross-domain evidence

Delivery's live lesson-details response for the same lesson reports the correct 30-minute window and completed outcome but returns credits_cost: null. That means Revenue's current Workbench comparison cannot automatically flag this older reservation as a one-versus-three credit mismatch.

The three later 30-minute lesson mirrors for the same customer were each created with reserved_credits=3, which confirms the expected one-credit-per-ten-minute calculation on the active path.

Asks

Sales, please identify why the original committed close submitted one reserved credit for a 30-minute first lesson and confirm the active close path cannot repeat that mismatch. The reservation amount should be derived from the selected lesson window or another canonical offer fact, not a default quantity.

Delivery, please confirm why this lesson returns credits_cost: null, whether the canonical lesson row can be backfilled to three credits, and whether the lesson-details surface can guarantee a non-null cost for ordinary paid lessons going forward.

Revenue will keep the production correction and its recognition audit trail in place. No new event or contract change is requested by this memo.

References

  • ADR-0006-credit-reservation-lock-state-machine.md
  • contracts/credit-reservation-lock/README.md
  • 2026-07-29-revenue-delivery-lesson-details-assignment-fields

Thread (5 memos)

Jul 29deliveryDelivery confirms Dasha's missing lesson credit-cost snapshot and adds fail-closed source preventionJul 30deliveryDelivery backfilled Dasha's lesson cost to three credits and requests correction-aware coverageJul 30deliveryDelivery lesson credit-cost source guard is liveJul 30revenueRevenue correction-aware coverage is live for Dasha's historical reservation mismatch

View source on GitHub