Momentum Tracking

Running the business

How to track prepaid session packs without losing money

A pack is money you've already received for work you haven't done yet. Spend it like income and you will have a month where half your sessions produce no new cash. Here is what a pack ledger actually needs to hold, and the seven situations that quietly break it.

Updated 24 July 2026 12 min read For Australian sole traders
Mostly operational — but three parts aren't. This page is about running prepaid packs, not about tax. Three sections below are exceptions: when pack income is recognised, expiry terms, and refunds on unused sessions. Momentum Tracking is software, not a registered tax agent and not a law firm. All three are general information only — confirm the tax question with your registered tax or BAS agent, and have your expiry and refund wording checked by someone qualified before you rely on it.
The short answer

Track a pack as a running balance that drops on the day you deliver the session, not the day you get around to updating it. The minimum record is purchase date, sessions bought, price paid, every delivered session with its date, and the balance after each one.

The failure mode isn't losing the odd session. It's treating pack money as income the day it lands, then working through a fortnight of sessions that generate nothing new.

A pack is money you owe in sessions

A client pays $900 for ten sessions at $90. The $900 is in your account today. Ten of those sessions haven't happened. Until you deliver them you're holding money against work you still owe — a liability, not a payday, whatever your bank balance says.

Nothing wrong with taking money up front. Packs are good for the business: the cash arrives earlier, the client is more committed, and you spend less of your week chasing $90 at a time. The problem is what happens after, because that money sits in the same account as everything else and spends exactly like everything else.

Then March arrives. Five clients are working through packs bought in January, you deliver twenty sessions, and almost nothing new lands. Nothing has gone wrong — you're repaying a debt in labour, and you already spent the money. The fix is deliberate rather than complicated: know at all times how many sessions you owe, to whom, and what they are worth.

Why a spreadsheet fails at this specifically

This is not a general argument against spreadsheets. A spreadsheet is a perfectly good expense register. It's a bad pack ledger for three reasons that have nothing to do with how careful you are.

1. The balance is only correct at the moment you last updated it

An expense record is history — once entered, it stops changing. A pack balance is a live number that moves every time you train someone. Update it on Sunday nights and it's right one day in seven, and wrong in the direction that costs you, because it reads high. You believe you've delivered fewer sessions than you have.

2. You and the client hold different numbers

The client counts in their head. You count in a sheet you touched last weekend. Both drift, and neither of you notices until they say "I thought I had three left" and you thought they had one. There's no way to settle that except memory, so most trainers give the session away. Right call for the relationship, expensive one to make five times a year.

3. There is no audit trail

A cell reading 7 is a number, not a history. If it's wrong you can't find where it went wrong — you can only replace it with another number you also can't prove. Once a client has bought three packs over a year, "which pack did that Tuesday come out of?" has an answer, and your sheet doesn't contain it.

What a correct pack ledger holds

Whatever you track it in, these are the fields. Miss one and at least one of the seven cases below becomes unanswerable.

That fourth one saves the awkward conversations. When a client says three, you're not arguing about whose memory is better. You are showing them six dates.

The seven cases that break naive tracking

Every trainer's system handles the simple path: buy ten, deliver ten, sell another ten. These are the ones that don't, and each needs a decision you made before it happened rather than at the door with a client waiting.

The situationWhat breaksDecide this up front
A second pack bought before the first is finished The two merge into one balance and the purchase date, price and expiry of each are lost. Keep every purchase as its own dated record with its own price, and treat the oldest sessions as the ones being used first, so a later refund or price question still has an answer.
A no-show Handled case by case, so the same event costs one client a session and another nothing. Whether it consumes a credit. Either answer is defensible. Only inconsistency isn't.
A late cancellation Same as a no-show but with a clock on it, so it becomes a negotiation at the door. The notice period, in hours, in writing, before the first session.
A make-up session It either consumes a second credit or gets no line at all, and the delivered count stops matching the balance. Log it as delivered with a note, and never decrement twice for one paid session.
A refund or partial refund You work out the rate under pressure, in a conversation you'd rather end quickly. Whether unused sessions refund at the pack rate paid or at your casual rate. Your terms help, but they don't override the consumer guarantees that apply to services.
A client who goes quiet with sessions left Nothing happens — which is the problem. No prompt, no dispute, and a liability that ages. How long silence runs before you make contact, and how you will know it has.
A price rise mid-pack Sessions bought at last year's rate get delivered at this year's cost. Honour the rate paid for sessions already bought, and note that rate on the pack record.

Keeping each purchase separate is not a preference, it's what makes the other six work. If a client with two sessions left buys another ten, you owe twelve sessions, but you don't have one pack of twelve. Merge the records and you've thrown away two purchase dates, two prices and two expiry dates, and you can no longer answer a refund or a pricing question correctly.

The client who goes quiet is the expensive one, precisely because it generates no event. No dispute, no request, just a client you haven't seen in seven weeks and four sessions you still owe them. Nothing in a spreadsheet will ever raise its hand about that, because a sheet only tells you things when you go and look, and the reason to look is the thing you've forgotten. If they resurface in ten months you'll deliver four sessions at a rate you set two rises ago. That case is the strongest argument for expiry dates, and the second strongest argument for a system that watches on your behalf.

Seven policies and a live balance per client

That is the part that doesn't survive a busy fortnight. Momentum Tracking decrements the pack on the date the session happened — not the date you got around to entering it — so the balance holds whether you tick sessions off between clients or catch up on Sunday. Pack credit lands when the payment does, empty and nearly-empty packs are flagged on the dashboard before someone turns up expecting a session they haven't got, and a client who has gone quiet with sessions still owed surfaces on its own.

See how it works → Built by an Australian PT of 12 years. Free 30-day trial.

Expiry dates: worth it, with conditions

An open-ended pack is an open-ended liability, priced at whatever you charged the day you sold it, and it never resolves — it just sits on your books getting older. The case against is just as simple: expiry is the most common source of bad feeling between a trainer and a client, and "your sessions expired" is a sentence that ends relationships.

Most trainers land on a generous window: long enough that a client training at a normal frequency finishes without ever thinking about it, disclosed in writing at purchase, with discretion to extend for genuine reasons like injury, pregnancy or a work posting. A term you rarely enforce still does its job. It puts an end date on the liability and gives you a legitimate reason to contact someone who has drifted.

The legal side isn't something to improvise. Australian consumer law includes rules about unfair terms in standard-form consumer contracts, and consumer guarantees that apply to services. An expiry term stands on firmer ground when it's genuinely fair, clearly disclosed before the client pays, and not used to keep money for services you were never realistically going to have to deliver. What counts as fair in your particular wording isn't a guess worth making. Have your terms looked at once by someone qualified, a one-off cost against a term you'll use on every pack you ever sell.

Disclosure is the part people skip

An expiry mentioned for the first time when a client tries to book session nine isn't a term. It's a surprise. It belongs on the invoice, in the terms they agree to when they buy, and in whatever message confirms the purchase — before the money moves, in words a person reads.

Two tax questions worth settling early

When does pack money become income? There are two candidate answers, the day the money hits your account or the day you deliver the session, and there isn't a single setting that decides it. There are two separate questions underneath.

The first is GST. If you're registered, the GST accounting basis you're registered under, cash or accruals, decides which BAS period that sale is attributed to. The second is income tax: when the income is derived is worked out separately, on how your business is properly assessed, and it doesn't automatically follow your GST election. You can be on a cash basis for GST and still get a different answer for which financial year the money belongs to. It's at its most pointed for a pack sold in late June and delivered through July.

Don't guess at either one. Ask your registered tax or BAS agent to confirm both, and write the answers down somewhere you'll find them next June. They're a two-minute conversation for them and an expensive thing to be wrong about on your own. How BAS works for a sole-trader PT → · The full deductions checklist →

The habit that fixes most of it

Decrement the pack at the moment you deliver the session. Not at the end of the day, not on Sunday.

Weekly reconciliation feels like the efficient version. It's the biggest single source of pack errors, for a reason that has nothing to do with discipline: you're reconstructing six days from memory, and memory keeps the sessions that happened and loses the one that moved to Thursday. For those six days the client knows their balance and you don't — which is exactly the gap the "I thought I had three left" conversation grows in.

Thirty seconds at the end of a session does something a Sunday catch-up structurally can't: you and the client see the same number at the same time, both of you standing there. "That's eight, two left — want to sort the next block before Christmas?" is a balance check, a dispute prevented and a renewal conversation in one sentence, at the only moment all three are easy.

Then once a month, look at packs rather than sessions: who has sessions remaining, who hasn't booked, which packs are nearly empty, and how many sessions you owe across the whole book. That last number is the one most trainers have never calculated.

The number to know

Total sessions owed across all clients, multiplied by your rate. That's money sitting in your account that isn't yours to spend yet. If it's bigger than you expected, that's not a reason to stop selling packs — it's a reason to keep the number in front of you. Working out your real hourly rate →

Common questions

How do I stop spending prepaid pack money before I have earned it?

Know the total. Multiply the sessions you owe across every client by your rate, and that's the money sitting in your account against work still to come. Some trainers park it in a second account. Most just need to see the number often enough to stop treating it as spare.

Should personal training packs have an expiry date?

Most trainers are better off with one, because an open-ended pack is an open-ended liability priced at whatever you charged back then. What matters is that the term is genuinely fair, disclosed in writing before the client pays, and applied the same way to everyone. Australian consumer law has rules covering unfair contract terms and consumer guarantees for services, so have your wording checked rather than copying it off another business's website.

Does a no-show use up a session from the pack?

Only if your policy says so, and only if the client knew that before it happened. There is no default answer. Pick one, put it in writing at the point of purchase, and apply it consistently — and record the no-show as a line in the pack either way, so the delivered count and the balance keep agreeing.

When does prepaid pack income count for tax?

It depends on the basis you account on, and the answer can differ for GST and for income tax. The GST accounting basis you're registered under decides which BAS period the sale falls into. When the income is derived for income tax is a separate question about how your business is assessed. It matters most for a pack sold in June and delivered in July. Ask your registered tax or BAS agent to confirm both.

What if a client wants a refund on unused sessions?

Decide the rate before it comes up. A pack is usually discounted against your casual rate, so refunding unused sessions at the casual rate hands back more than the client paid for them. Whichever you choose, state it in your terms at the point of sale — a refund conversation is a poor time to be inventing a policy. Terms help, but they don't override the consumer guarantees that apply to services, so have this wording checked alongside your expiry terms.

Can I just track packs in a spreadsheet?

Yes, and plenty of trainers do it for years. It works while you're small and it fails in three predictable ways: the balance is only correct at the moment you last touched it, you and the client end up holding different numbers, and there's no record of which session came out of which pack.