The session block problem
Training is sold in blocks and delivered one session at a time. Almost all the accounting pain in this business lives in that gap.
Key points
- A block is a liability, not revenue
- Manual tallies drift in one direction
- The fix is decrementing at the point of delivery
- Standing slots are the other half
- Late cancellation policies only work if the system holds them
- Worked example: the block that never closes
- Expiry, refunds and the awkward conversation
- Expiry is not a trick
A block is a liability, not revenue
When a client pays for ten sessions, that money is not earned. It is an obligation to deliver ten hours of work at some point in the future, and until they are delivered the cash in the account overstates how well the business is doing.
Trainers who do not track this carefully end up in a familiar position: a healthy-looking balance and a diary full of sessions that have already been paid for. The work is real and the income for that month is not.
Manual tallies drift in one direction
Session counts kept in a notebook or a spreadsheet drift, and they drift towards the client. Nobody wants to insist on a session the client believes they already used, so the disputed one gets given away.
One session given away per client per block, on a client base of thirty, is thirty unpaid hours a year. That is a meaningful number for a business that sells hours.
The fix is decrementing at the point of delivery
A block that counts down automatically as sessions are booked and delivered removes the ambiguity for both sides. The client can see what they have left, which reduces the questions, and the trainer never has to adjudicate a disagreement about last March.
It also makes the liability visible: unused sessions across all clients is a number you can look at, which is the first step to pricing blocks sensibly.
Standing slots are the other half
Most training relationships are a fixed time every week. Rebooking that by hand every week is unnecessary work, and it is where slots get lost — a week gets missed, the client fills the time with something else, and the habit breaks.
A recurring booking protects the habit, which is the actual product you are selling.
Late cancellation policies only work if the system holds them
Every trainer has a cancellation policy and most do not enforce it, because enforcing it means a conversation. A policy applied by the system is applied evenly, which is both easier to defend and fairer than one applied when you happen to feel firm enough.
Worked example: the block that never closes
A client buys ten sessions for $700 — $70 each. They use four in the first month, two in the second, then travel, then come back in March and use two more. Where does that money sit?
On the day it is paid it is not revenue. It is $700 the business owes in future work, and it stays a liability until the sessions are delivered. After four sessions, $280 has been earned and $420 is still owed. A business that booked the whole $700 in January has overstated its January income by $420 and will understate the months in which it does the work.
For one client that is a rounding error. For twenty clients on ten-session blocks it is $8,400 of unearned money sitting in an account that looks like profit, and it is the single most common reason a training business feels flush in a good month and squeezed in a quiet one.
Count your open blocks. Multiply the unused sessions by the per-session rate. That number is a debt, not a balance.
Expiry, refunds and the awkward conversation
The other half of the problem is the block that never gets used. Two sessions left from eighteen months ago, a client who has moved away, and a trainer who has no record of whether it was ten sessions or twelve.
A block with a stated expiry avoids most of this, but only if it is tracked somewhere the client can also see. An expiry that exists in the business's records and not in the client's is a dispute waiting to happen, and it is a dispute you will usually lose in goodwill even if you win it in fact.
The workable version is simple: sessions bought, sessions used, sessions left, and a date — visible to both sides, decremented automatically when a session is delivered rather than when someone remembers. It removes the arithmetic from the end of a workout, which is the worst possible moment to be doing arithmetic in front of a customer.
Expiry is not a trick
Blocks that never expire accumulate as an open-ended obligation, and clients who drift away still hold sessions they may claim a year later. A reasonable expiry protects both sides: it keeps the liability bounded and it gives the client a reason to book.
The key is that it is stated plainly at the point of sale and enforced by the system rather than by a conversation. A policy applied evenly is far easier to defend than one applied when you happen to feel firm enough.
Frequently asked
Is a prepaid session block revenue?
Not yet. It is an obligation to deliver hours in the future. Until the sessions are delivered the cash overstates how the business is doing, which is why trainers can have a healthy balance and a diary already paid for.
Why do manual session counts always drift?
Because they drift towards the client. Nobody wants to insist on a session the client believes they already used, so disputed sessions get given away. One per client per block across thirty clients is thirty unpaid hours a year.
How should session packages be tracked?
Decrementing automatically as sessions are booked and delivered, visible to both sides. That removes the ambiguity entirely and makes total unused sessions a number you can actually look at.
Are recurring bookings worth setting up?
Yes, because the standing slot is the product. Rebooking by hand each week is where slots get lost: a week gets missed, the client fills the time with something else, and the habit breaks.
Free booking and business software
TotalPro360 is free for service businesses — no subscription, no per-seat fee, no card to start. Read more about personal trainer software.



