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.

Model the final seat and the last credit
EventRequired result
Two requests for one remaining seatOne booking succeeds; the other retains its credit
Same successful request retriedReturn the original booking without another deduction
Cancellation approved twiceRelease 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.

Put this into practice