Unused session packs are money you owe, not money you made
In short
A session pack is cash on the day it sells and revenue only as the sessions are delivered. Until then the balance is an obligation to deliver, and a club reading prepaid sales as income cannot tell a strong month from one that borrowed next term's capacity. Outstanding credits by expiry cohort is the report that separates them.
Key takeaways
- A sold credit is an obligation to deliver a session. It becomes earned when the session happens.
- Two months with identical cash can differ completely once delivery is counted alongside sales.
- Report outstanding credits by expiry cohort, not as one balance — the cohorts are the forecast.
- Expiry has to be an event a job writes, not a comparison a report makes at read time.
- Recognition and breakage policy belong to your accountant. The system's job is to record what happened.
When a member buys 10 sessions, the club receives cash and takes on a debt payable in coaching. Nothing is earned yet. It is earned in 10 instalments as the sessions are delivered, and the unused portion sits on the books as something owed. A studio treating the sale as the moment of income is reading a cash movement as trading performance, and the two diverge most in the months that feel best.
Two months, identical cash, opposite trading
| March | April | |
|---|---|---|
| Credits sold | 600 | 600 |
| Credits delivered | 540 | 290 |
| Outstanding at month end | 1,180 | 1,490 |
| Cash collected | Identical | Identical |
| What actually happened | Delivery kept pace with sales | The club pre-sold next term's capacity |
April is not a better month than March; it is March plus 250 sessions of unpaid future work. The obligation arrives later as a crowded timetable, coaches on overtime and a quiet cash month while everyone redeems. Read cash alone and you hire on April and are surprised by June.
Sold, delivered, lapsed: what each transition means
- Sold. Cash in, and a deferred balance — the amount your accountant may call a contract liability. The club owes sessions, and the terms of that debt are the credit's own fields, set out in what one credit actually is.
- Delivered. The session happens and that slice stops being owed. Delivery, not booking, is the event that counts, which is why a booking nobody attended is an accounting question as well as an attendance one.
- Lapsed. The credit expires unused, and the residue is what the trade calls breakage. It is the one transition where treatment genuinely varies — by jurisdiction, and by whether your expiry terms are enforceable where you sell.
The one report: outstanding credits by expiry window
| Expiry window | Credits outstanding | Members holding them | What it tells you |
|---|---|---|---|
| Lapsed last month | 310 | 84 | Breakage, and 84 conversations you may be about to have |
| Within 30 days | 420 | 96 | Delivery you must staff for, or refund pressure |
| 31 to 90 days | 560 | 150 | The normal working balance |
| Beyond 90 days | 200 | 61 | Long-dated obligation, usually sold at a discount |
One number for outstanding credits is nearly useless — the same total means opposite things depending on when it expires. Split by window it becomes a capacity forecast: the 30-day row is next month's timetable pressure, the lapsed row is next month's complaints. Set cash collected beside it and the club's two real questions stop being one question.
Five things the system has to record for any of this to work
- Every credit as its own row, with issue date, valid-from, expiry, consumed-at and the booking that consumed it. A balance counter cannot answer which cohort a delivered session came out of.
- The sale as a separate object from the entitlement it created. One payment can issue credits with different scopes and expiries, and refunds have to point at entitlements, not at the payment.
- Delivery as a timestamped event distinct from booking. Where attendance is marked late or corrected, the amendment trail is what keeps the period figure defensible.
- Expiry as an event a scheduled job writes, not a comparison a report makes at read time. A credit that expires at query time never triggered a notification and cannot be reported the same way twice.
- The terms the credit was sold on, copied onto the row. If the pack product is later edited, credits already issued must keep the expiry they were sold with — the same copy-or-reference decision made in a linked template or a copy when you assign a block.
Prepaid sales flatter every month until the month everyone turns up, and by then the coaching has to be delivered whether or not the cash is still there.
Three neighbouring errors that look like this one
- Cash counted that never arrived. The mirror image: sessions delivered against dues that failed months ago, unnoticed because nothing surfaced them — nobody noticed the payment failed until the season was over.
- An outstanding balance that stops growing. On auto-renewing packs this reads as healthy delivery and is often a dead mandate topping nothing up, separated into its 4 states in the autopay mandate has quietly stopped collecting.
- Refunding an unused balance by eye. What is returned when a member leaves mid-pack is a proration rule, and it should be the same rule used everywhere else — the method in computing pro-rata for mid-cycle joins, freezes and upgrades.
Building the credit ledger and the cohort report is unglamorous internal tools and ops work, and it is the reporting floor the rest of memberships, session packs and dues stands on, in our sports and fitness practice.
Frequently asked questions
Short answers to the follow-ups this page tends to raise.
When is a session pack recognised as revenue?
As the sessions are delivered, not when the pack is sold. Each delivered session releases its share of the balance; the rest stays as an obligation to deliver. Your accountant sets the policy and the exact treatment differs by market, but no policy can be applied unless the system records delivery as its own event.
Are unused class credits a liability for a gym?
Yes — they are coaching you have been paid for and have not yet provided. That makes the outstanding balance a forward capacity commitment as well as a balance-sheet item: 1,490 outstanding credits is a claim on coach hours and studio space you have to staff if members redeem.
What happens when a class pack expires unused?
The lapsed portion becomes breakage, and how it is treated depends on where you sell. Some markets restrict how quickly prepaid entitlements may expire, and an unenforceable expiry term does not stop being an obligation because a report calls it lapsed. Confirm the position for your market.
Which billing report should a studio owner read every month?
Outstanding credits by expiry window, next to cash collected and credits delivered. Cash alone cannot separate a month that traded well from one that pre-sold capacity, and a single outstanding total cannot separate an obligation due in 3 weeks from one due next year.
- deferred revenue
- credits
- reporting
- breakage
The work behind this page
Builds from our portfolio that this page draws on.
AP Copilot
An AI accounts-payable copilot that reads invoices, matches them to POs, and routes clean approvals
FintechQuoteForge
An AI CPQ and proposal platform that builds enterprise quotes from your catalog, guards every discount against the margin floor, routes approvals, and generates the proposal.
Sales AIRead next
- What one credit actually is, before you sell ten of themA credit is not a number on an account. It is a row with a scope, an expiry, an owner and a moment of consumption, and every credit dispute is about a field somebody never decided.definition
- Freeze, pause, hold: three words, three different billing outcomesA freeze moves dates. Which dates — the next collection, the agreement end, or both — is a product decision most clubs never wrote down, and every freeze argument starts there.definition
- Nobody noticed the payment failed until the season was overThe decline was recorded the day it happened. It simply never reached anyone who sees the member — and the two places a club touches members daily are the two places payment state is missing.diagnostic
- The autopay mandate exists, and it has quietly stopped collectingA mandate that stops collecting produces no failed payment, no decline code and no alert. It is in one of four states, each with a different recovery path, and most clubs treat all four as the same problem.diagnostic
- A guardian is not a member: the account type most club software lacksMost club systems model a parent as a member who happens to have children attached. That works until a household disagrees about who may do what, which happens constantly.definition
- A session series is not eighteen sessions: the recurrence record explainedA series is a rule plus an exception list, not a pile of rows. Every confusing this-event-or-all-events prompt comes from that one storage decision.definition
Working on something in this space?
Tell us where you are in a sentence or two. We'll tell you honestly whether we're the right team, and what a sensible first slice of the work looks like.
Start the conversation