Keep all session buckets in the same unit
Synthetic package contains ten sessions and has no expiry or manual adjustment during this example. Available + held + consumed must equal ten. Booking moves a session from available to held; attendance moves held to consumed; eligible cancellation moves held back to available.
| Event | Available | Held | Consumed |
|---|---|---|---|
| Opening | 7 | 2 | 1 |
| New booking holds 1 | 6 | 3 | 1 |
| One held booking attends | 6 | 2 | 2 |
| Another held booking cancels early | 7 | 1 | 2 |
Reconcile movements against booking states
- Start with the opening quantities and package total.
- Match each movement to a booking ID and state change.
- Sum all three buckets and investigate any difference before editing a total.
Expired or adjusted sessions need separate buckets or explicit ledger entries; the fixed-ten equation applies only to the stated scope.
Is the final available balance eight because two actions completed?
Show the worked answer
No. Final available is seven: 7 - 1 + 1. Attendance changed held to consumed, so it did not add availability. The final sum is 7 + 1 + 2 = 10.
A statement showing the buckets and linked changes explains why a booked session cannot be sold or allocated again.