How much to charge for personal training starts with your floor, not other trainers' prices: your target pay plus costs, divided by the sessions clients actually pay for. In the worked example that is about $75, so an $80 single with packs at 5 to 15 per cent off roughly holds. ChatGPT builds the sheet that tests packs and no-shows.
Two things push that floor higher than a quick guess suggests. Only about 22 of every 24 booked slots bring in money, and a session pays for far more than the hour on the floor: programming, admin and changeovers come with it. In the example, a $75 session pays about $43 for every hour actually worked, which is the number to hold in mind when a prospect says the price is "a lot for an hour".
The cost table: what every paid session has to cover
Take a solo trainer, invented for illustration, who wants $65,000 a year in pay before income tax. They work 46 weeks (six go on holidays, illness and quiet spells) and fill 24 booked slots a week. Two of those slots a week end up unpaid, from late cancellations and no-shows, so that is 22 paid sessions a week and 1,012 a year. These are their costs:
| Line | Per year | Per paid session |
|---|---|---|
| Pay target, before income tax | $65,000 | $64.23 |
| Studio floor fee ($350 a month) | $4,200 | $4.15 |
| Insurance | $600 | $0.59 |
| Booking and payment software | $480 | $0.47 |
| Equipment and replacement | $900 | $0.89 |
| Courses and certification renewals | $500 | $0.49 |
| Marketing and website | $1,200 | $1.19 |
| Accounting | $600 | $0.59 |
| Card fees (2.6% plus 15 cents a payment) | $2,117 | $2.09 |
| Revenue needed | $75,597 | $74.70 |
The card-fee line is the one that trips people up, because it depends on the answer. Fees are a percentage of revenue, so you can't add them to the costs first and divide afterwards. The formula is: revenue needed = (pay + fixed costs + 15 cents x sessions) divided by (1 - 0.026). On Square's Free plan, in-person card payments list at 2.6% plus 15 cents and online or invoice payments at 3.3% plus 30 cents (as of October 2026); your processor's rates will differ. If most clients pay a 10-pack by invoice, the fixed 30 cents falls once per pack, so the fee works out at about $2.41 a session for a $720 pack, against about $2.10 for a $75 session paid in person.
Paid hours are not worked hours
It is easy to quote "an hour of my time" and forget that the week holds far more working hours than selling hours. A realistic week for the same trainer looks like this:
- 22 paid sessions, 22 hours.
- Programme writing and client messages: 5 hours.
- Posts, enquiries and marketing: 2 hours.
- Changeovers, warm-ups, setting up and walking between clients: 4 hours.
That is 33 hours a week for 22 sessions, or 1.5 hours of work behind every paid session. Pay per hour worked is $65,000 divided by 46 weeks and 33 hours, which is $42.82, and each worked hour brings in $49.80 of revenue. If you copy a rate from a trainer who delivers 24 sessions in a 30-hour week, you inherit their efficiency without having it.
Log your own week for two weeks before you trust the 11 non-session hours. You will probably find one block you had never counted, such as travel between clients or answering messages in the evening. Whatever the figure turns out to be, enter it in the sheet.
Why a 30-minute session can't cost half of a 60-minute one
The 11 non-session hours behind 22 sessions are half an hour of overhead per session: the changeover, the programme tweak, the message afterwards. That half hour is the same whether the session lasts 30 minutes or 60, so price by total work time, not by minutes on the floor. Revenue per worked hour in the example is $49.80, which gives these floors:
| Session length | Minutes of work behind it | Floor price | Price if charged pro rata by minutes |
|---|---|---|---|
| 30 minutes | 60 | $49.80 | $37.35 |
| 45 minutes | 75 | $62.25 | $56.03 |
| 60 minutes | 90 | $74.70 | $74.70 |
A 30-minute session priced at half the hourly rate, $37.35, loses $12.45 every time it is sold, and the trainer who offers it as a cheap entry point is paying out of their own pay. Either price the short session at its own floor or limit it to clients who book it alongside a longer one, so the overhead is shared.
Build the model in a spreadsheet with ChatGPT
Formulas are the part an assistant does quickly, and the inputs are the part only you can supply. Ask for three tabs, with every number you might want to change in one labelled block, and for formulas rather than pasted values, so that you can see how each result is reached:
Build me a pricing spreadsheet for a solo personal trainer with three tabs.
INPUTS (one labelled block, I will change these): target annual pay before income tax; each annual cost line (list below); working weeks; booked slots per week; unpaid slots per week; card fee percentage and fixed fee; non-session hours per week; list price per single session; pack sizes and discount percentages (5, 10, 20 sessions).
FLOOR: paid sessions per year; revenue needed = (pay + fixed costs + fixed card fee x sessions) / (1 - card percentage); floor price per session; pay per hour worked.
PACKS: price per pack, price per session, difference from the floor, and the average price per session for a mix I type in (share of sessions sold as singles, 5-packs, 10-packs and 20-packs). Show annual pay at that mix.
Show every formula. Don't hard-code numbers inside formulas.
My inputs: [paste]
Whichever assistant you use, the useful output is the formulas, and a downloadable .xlsx file is a bonus. If your plan can't create files, ask for the table and the formulas as text and paste them into a sheet. The ChatGPT and Excel guide shows how to ask for spreadsheet formulas and check what comes back.
Four checks before you trust the sheet
- Re-add the headline by hand. 1,012 sessions at $74.70 is $75,596, which should match the revenue-needed cell to within a few dollars. If it doesn't, a formula is wrong.
- Look at the card-fee line. Leaving card fees out gives a floor of $72.61, which is $2.09 too low. The right cell follows the formula in the cost-table section, with the percentage taken from revenue.
- Change one input. Set the unpaid slots to 3 a week and the floor should rise to about $78.25. If it barely moves, the sheet isn't using that cell.
- Check the weeks. A sheet that assumes 52 working weeks flatters every figure; the example allows six weeks off.
The first check earns its keep more often than you would think. In one illustrative run, the sheet showed the 10-pack at $64.80 a session. It had applied the 10 per cent discount to the session price and then again to the pack total. The sheet's pack price came out at $648, but doing the sum by hand (10 sessions at $72 is $720) showed it was wrong, and the mismatch pointed straight at the double discount.
Pack pricing: what a discount really costs
With a floor of $74.70, an $80 list price leaves $5.30 of room. Packs spend that room. Here is the example trainer's price list, with each pack's price per session set against the floor:
| Option | Discount | Price | Per session | Against the $74.70 floor |
|---|---|---|---|---|
| Single session | None | $80 | $80.00 | $5.30 above |
| 5-pack | 5% | $380 | $76.00 | $1.30 above |
| 10-pack | 10% | $720 | $72.00 | $2.70 below |
| 20-pack | 15% | $1,360 | $68.00 | $6.70 below |
The two big packs sit under the floor, so whether the business works depends on the mix of what clients buy. Ask the AI to run two mixes:
- A balanced mix: 30 per cent of sessions as singles, 20 per cent in 5-packs, 35 per cent in 10-packs and 15 per cent in 20-packs. The average comes to $74.60 a session, which gives annual pay of $64,901 and keeps the plan on track.
- A drift towards the biggest pack: 10 per cent singles, 10 per cent 5-packs, 30 per cent 10-packs and 50 per cent 20-packs. The average falls to $71.20, and annual pay drops to $61,549, which is $3,351 less for the same 1,012 sessions.
That second line is why list price and discounts have to be set together. Offering a 15 per cent discount to anyone who asks quietly moves the mix. The sums behind it are short. To bring in the same revenue, a 5 per cent discount needs 5.3 per cent more sessions, 10 per cent needs 11.1 per cent more and 15 per cent needs 17.6 per cent more. A trainer with a full diary can't deliver them, so a discount there is a pure cut in pay. Discounts earn their keep only where the slot would otherwise sit empty (off-peak hours, for example), or where the cash up front and the commitment keep a client who might otherwise drift away.
A pack is money received for work not yet done
Treat the cash from a 10-pack as a promise, not income. Keep it visible in your records as sessions owed, set an expiry that you are comfortable defending (for example 12 weeks), and write down what happens to unused sessions, to a client who moves away and to a refund request. The rules on expiry and refunds vary, so have a solicitor check the wording; drafting a personal trainer contract with AI lists what to ask them. How packs are sold and tracked inside booking software is covered in whether Vagaro is enough for a personal trainer, and pricing yoga classes as drop-ins, packs and memberships works the same logic through for a class-based business.
No-shows: the cost of an empty hour
Two unpaid slots a week over 46 weeks is 92 sessions, and at about $75 each that is $6,900 a year, roughly 9 per cent of the revenue the trainer needs. It also moves the floor, because the same pay and costs are spread over fewer paid sessions:
| Unpaid slots a week | Paid sessions a year | Floor price per session |
|---|---|---|
| 0 | 1,104 | $68.49 |
| 1 | 1,058 | $71.46 |
| 2 | 1,012 | $74.70 |
| 3 | 966 | $78.25 |
| 4 | 920 | $82.16 |
Each extra lost slot a week adds roughly $3 to $4 to every session you sell, which clients end up paying for whether or not they are the ones who cancel. That is the fair argument for a cancellation policy. Here is what three policies would recover from those 92 slots (illustrative; real clients change their behaviour once a policy exists, so the 92 itself will shrink):
- No charge: recovers nothing, $0.
- Half the session fee inside the notice window, always enforced: 92 x $75 x 50% is $3,450.
- Full fee inside the window, enforced 70 per cent of the time: 92 x $75 x 70% is $4,830. The other 30 per cent are waivers, such as illness, and the sheet needs a "waiver rate" input so that generosity shows up in the numbers.
With packs, the simplest rule needs no invoice: a session cancelled or moved inside the notice window counts as used. A line such as "Sessions cancelled or moved with less than 24 hours' notice are counted as used" is easy to say and hard to dispute, and it applies the same way to everyone. Ask the AI to turn your rule into a plain-English clause and a reminder message, then have a solicitor check the final wording. A reminder 24 hours before each session, from your booking software or by hand, prevents some of the losses before any policy is needed.
Three diaries: lean, steady and full
The floor assumes you fill 22 paid sessions a week. Real diaries fluctuate, so ask the AI to run the model at three volumes, all at a $75 price and 1.5 hours of work behind each paid session (illustrative):
| Paid sessions a week | Revenue a year | Pay after costs and fees | Hours of work a week | Price needed to reach $65,000 |
|---|---|---|---|---|
| 16 (lean) | $55,200 | $45,174 | 24 | $102.66 |
| 22 (steady) | $75,900 | $65,295 | 33 | $74.70 |
| 28 (full) | $96,600 | $85,415 | 42 | $58.73 |
The lean row is the real test of a price. At 16 sessions a week the trainer earns about $45,000, and getting back to $65,000 would need a price of about $103 or a bigger diary. The full row looks attractive until you see the 42 hours of work, before any slack for illness or a bad week, and that is why a sensible trainer prices for the steady diary and treats the full one as a bonus. The same cost-first method, applied to a business with chairs rather than clients, is in a salon pricing calculator built from real costs.
Check your number against your market without copying it
Your floor is the lowest price that works. What clients will pay is a separate question, and the answer comes from real prices, not from a price guide. Guides written for clients mix different markets, venues and session types, so treat them as background. The better evidence is eight to ten public price pages from trainers comparable with you: the same kind of venue, similar credentials and specialism, and a similar session length. Use public pages only, and leave out anything behind a login or sent to you privately.
Below are the public price pages of 10 personal trainers in my market, labelled A to J. For each, extract: session length, single-session price, each pack size and price, effective price per session for each pack, cancellation terms, and anything included (programme, check-ins). Put them in one table. Where a page doesn't say, write "not stated" rather than guessing. Then give the median and the range for the single-session price per 60 minutes (convert shorter sessions by the minute) and for the 10-pack price per session.
Compare three things: your floor, your planned list price and the median. If the list price sits near the median, you are priced like everyone else, and you need a reason a client would choose you, such as a specialism or a waiting list. If your floor is above the median, you have a cost problem or a positioning problem, and the sheet shows which. And if the list price is far below the median, ask whether you are underselling yourself before you worry about competitors.
If your floor is above the market: what to change first
Change a lever, rather than quietly working harder. Four levers move the floor, and the sheet lets you test each before you commit:
- Fewer unpaid slots. Going from 2 lost slots a week to 1 drops the example floor from $74.70 to $71.46, with no change in the price list.
- A small-group format. Three clients at $38 each is $114 for the hour against $75 one-to-one, and a no-show costs $38, not $75. But if two of the three turn up, the hour pays $76, so set a minimum attendance and a late-cancellation rule for group places too.
- Fewer awkward hours. Slots that need a long trip or leave a gap in the day cost more than they pay. Ask the AI to rank your slots by pay per hour of time they use up.
- A higher price for new clients first. Existing clients keep their rate for a notice period, and new enquiries see the new list. When it is time to tell them, a price increase letter drafted and tested with AI covers the wording.
What a price rise has to survive
Before you raise the list price, ask the AI how many sessions you can lose before the rise stops paying. The sum is simple: a 10 per cent rise breaks even on revenue if you lose up to about 9 per cent of sessions, which for 22 sessions a week is two. It is slightly better than that in practice, because a lost client also saves you the card fee and some changeover time. If you expect to lose more than two sessions' worth, raise by less, or raise for new clients only and let existing ones step up at their next pack.
Re-run the model after eight weeks of real bookings. By then you have an actual lost-slot rate, an actual mix of packs and an actual number of hours, and any one of them may differ from the estimates by enough to move the floor by several dollars.
Questions trainers ask when they set a rate
Should I charge by the hour or by the session?
Sell a session of a fixed length and use the hour only as your own measure of effort. If you offer 30, 45 and 60 minutes, compare them by price per minute so the short one isn't a bargain for the client and a loss for you. Count the changeover time after each client, because it belongs to the session, not to the next one.
Is a 10 per cent discount on a pack too much?
It depends on whether the slot would otherwise be empty. A 10 per cent discount needs about 11 per cent more sessions to keep the same revenue, and a full diary can't deliver them. Set your list price so that the average after packs lands at your floor, and offer the deeper discounts only on the packs you want to sell less often.
What no-show policy should I use?
Pick a notice window you can live with, decide what a late cancellation costs the client (a used session is the simplest rule with packs), write it into your booking terms before the first session, and apply it the same way to everyone. Have a solicitor check the wording, because the rules on cancellation charges vary.
How do group or online sessions fit into the same model?
Run each format through the same sheet with its own costs and attendance. For a small group, price per person times the number who usually attend, minus a larger allowance for no-shows, since one absence now costs a third of the session. Online sessions drop floor fees and travel but keep programming and admin time.
Further reads
- AI Prompts for Personal Trainers: Session Recaps and Renewal Texts — Renewal texts for when a pack runs out
- AI Software for Personal Trainers: Scheduling, Check-Ins, Billing — Booking and billing software for solo trainers
- Gym Referral Programme: Set Rewards and Test the Maths With AI — Test referral rewards with the same kind of sums
- Personal Trainer Intake Forms: Build One With AI, Protect Health Data — Intake forms that protect client health data
- How to Plan and Announce a Price Increase With AI's Help — Plan and announce a price increase step by step
- AI Agent for Personal Trainers: Check-Ins and Where It Must Stop — How a personal trainer can run AI check-ins between sessions: cadence, replies that escalate, the hard stops and the weekly review.
- Best Free AI for Personal Training: Client Programmes and When to Pay — What a personal trainer gets from four free AI plans, which client details never go in, and the time sums that show when a paid plan earns its fee.
- How Much to Charge for Dog Walking: Solo, Group and Holiday Rates — A worked rate card for solo walks, group walks and holiday cover, built from your cost per diary hour, travel time and cancellation losses.
- Personal Trainer Progress Reports: Monthly Client Summaries With AI — A worked month for one client: measurement table in, honest report out, with a three-step check so the AI never adds results you didn't record.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Square's pricing page (Free plan: 2.6% + 15 cents in person, 3.3% + 30 cents online or by invoice). Every other cost, rate, session count and discount in the worked example is illustrative; replace them with your own records.