How to price prepaid session packages as a personal trainer

A practical pricing framework for solo personal trainers selling prepaid session packages — set your hourly floor, size your discount, plug the revenue leaks

You’ve just sold someone a 10-session package. Did you charge enough? If the answer is “I think so”, you’ve got a pricing problem — and you’re not alone.

Most solo trainers price their packages the same way they priced their single session: pick a number that feels right, multiply by ten, knock off a tenner because it feels generous. That’s not pricing. That’s hoping.

Here’s a framework that gets you out of guessing and into numbers that actually pay the bills.

Start with your hourly revenue floor

Before you think about discounts or package sizes, work out what one session has to earn just to keep the lights on. The honest answer is rarely “my single-session price.”

Add up:

  • Direct costs per session — gym hire, equipment hire, mileage, parking.
  • Unbillable time — travel between clients, admin, marketing, the half-hour you spent on the phone with someone who never booked.
  • Tax and pension — if you’re full-time and self-employed, set aside 25–30% of what you keep.
  • Income target — what you actually want to pay yourself per month, divided by the number of sessions you can realistically deliver.

Stack those up and you’ve got your floor. If your single-session price is below this number, packages aren’t going to fix it — your whole pricing is wrong.

Decide what a package discount really costs

The whole point of a package is that the client commits and pays upfront, and they get something for the commitment. Usually that something is a discount. The question is: how much?

A 10% discount on a 10-session package sounds small until you do the maths. If your single rate is £50 and you offer £450 for 10 — that’s £45 a session. Over a year of 8 active clients each going through two packages, that’s £800 you’ve given back in exchange for the prepay.

That can be worth it. Cash up front means no chasing payments, no gaps when someone “forgets” their card. But it has to be a deliberate trade, not a default. Decide what the prepay is actually buying you — predictable revenue, a sticky client, a no-show buffer — and make sure the discount is sized for that, not just because the round number looked nice.

A common pattern that holds up: pay-as-you-go full price, 5-session package 5% off, 10-session package 10% off, 20-session package 15% off. The discount scales with commitment, but never to the point where the package rate undercuts your floor.

Match package size to client behaviour

Package size isn’t just a discount mechanism — it’s a commitment device, and it has to fit the client.

  • 5 sessions — good entry point for someone who’s testing the relationship. Low risk for them, low cash for you, but it gets them out of pay-as-you-go.
  • 10 sessions — the default. Roughly six to eight weeks of training for someone going twice a week. Long enough for habit, short enough that they can see the end.
  • 20 sessions — for committed clients on a longer arc. Bigger cash-flow win, bigger risk if the relationship breaks down.

Don’t offer all three to everyone. Start a new client on 5, move them to 10 once they’re sticking, only go to 20 if they ask. Packages that don’t match the client’s actual training rhythm sit half-burned for months and turn into a problem.

Set an expiry that respects both sides

A package without an expiry isn’t a package — it’s an open tab. Six months later a client resurfaces wanting to use their five remaining sessions at a price you’ve since raised, and you’ve got an awkward conversation.

Expiry rules of thumb:

  • 5-session package: 8 weeks.
  • 10-session package: 16 weeks.
  • 20-session package: 6 months.

Build in a one-time, no-questions extension for illness, holiday, or work crunches. People will respect the policy more if there’s a release valve.

Make the count visible

Whatever price you land on, the model only works if the client believes the count is right. Most disputes about pricing don’t start with the price — they start with “I had three sessions left, not two.” A spreadsheet you maintain and they can’t see isn’t going to settle that.

Build the visibility in from day one: a shared running total, ideally one they can check themselves. It removes the awkward conversation before it happens.

That’s where Seshman comes in — you and your client see the same package balance, every completed session drops the count, and pricing stops being the thing you get pulled back into every Friday. Get the app — it’s on the App Store and Google Play, and it’s free for your clients.