Write the capacity rules
A booking may consume staff time, a room, equipment or a place in a class. Decide which resources can overlap and how long a slot is held during checkout. Include booking cut-offs, waiting lists and branch-specific rules where they apply. Staff and customers should see availability derived from the same source.
Model the final seat and the last credit
Two members try to book the final class seat at the same time. One has a single remaining credit. Treat the seat reservation and credit deduction as one controlled operation, then test the cancellation path.
| Event | Required result |
|---|---|
| Two requests for one remaining seat | One booking succeeds; the other retains its credit |
| Same successful request retried | Return the original booking without another deduction |
| Cancellation approved twice | Release one seat and return at most one credit under the policy |
Define the lifecycle of a credit
Membership plans need more than a remaining-session counter. Specify when a credit is reserved or consumed, whether it expires and what happens after cancellation, absence or a refund. A manual staff adjustment should leave enough history to explain the balance to the customer later.
Test the changes that create disputes
Try simultaneous bookings for the last place, an expired package, a failed payment and a late cancellation. Confirm what each person sees and what staff can correct. When migrating memberships, reconcile credits, expiry dates and existing bookings before customers start using the new system.
Before you proceed
- Supply written policies for cancellation, expiry and refunds.
- Agree staff override permissions and audit history.
- Test concurrency and reconcile imported balances.



