Gym Staff Attendance in India: Why One Sheet Cannot Pay a Personal Trainer
In short
A trainer earns on floor hours and on PT sessions, often with a commission slab. Attendance apps hold one ledger. How money leaks out of the other.
A three branch gym in Bengaluru closes its month on the 2nd. The floor staff are easy: the attendance app has their in and out times and payroll runs itself. Then the personal trainers arrive, and the owner spends two evenings on the same argument he had last month. One trainer says he delivered thirty one sessions. The register in the drawer says twenty four. Neither of them is lying. The trainer counted every session he took, and the drawer only has the ones somebody wrote down.
He pays the thirty one. The trainer is good, members ask for him by name, and an argument about seven sessions is not worth losing him over. That decision is correct, and it is also the reason this happens again in October.
The problem is not the drawer and it is not the trainer. It is that a personal trainer’s month is two separate ledgers, and every attendance app on the market holds one of them.This piece is about the second ledger, the three specific ways money leaks out of it, and the one thing about a trainer’s working day that even the attendance half gets wrong.
Two ledgers, one payslip
A floor trainer on a fixed monthly wage is an attendance problem, and a solved one. Hours in, hours out, overtime past the threshold, a payslip. Nothing in this article changes that.
A personal trainer is that plus a second thing. A member buys a package, twelve sessions, say, at a price agreed when they signed. The trainer delivers those sessions one at a time over the next several weeks and earns a commission on each one. At month end the gym owes the trainer a wage for the floor hours and a commission for the sessions. Two numbers, two sources, one payslip.
The second source is almost always a notebook, a WhatsApp thread, or a spreadsheet somebody rebuilds from memory on the 1st. That is not carelessness. It is that the software the gym bought was built for the first ledger and has no concept of the second, so the second went wherever there was room for it.
The test. Ask your system this question: on the 14th of last month, which member did session seven of which package, with which trainer, and had that session been paid for yet?If you cannot answer it in one screen, the second ledger is not in your system. It is in somebody’s head.
Leak one: the commission you paid before the member did
This is the expensive one, and it is arithmetic rather than opinion.
Take a twelve session package sold at a package price. The price of one session is the package price divided by twelve. The trainer’s commission on one session is that figure times the commission rate agreed for that package. So far so ordinary, and most gyms get this part right.
Now add the thing that makes it a gym and not a shop: almost nobody pays for a package in full on day one. Part payment at signup and the rest next month is the normal case, not the exception. Say the member has paid two thirds. Two thirds of twelve sessions is eight. The member has funded eight sessions and the other four are not paid for yet.
Meanwhile the trainer trains. Sessions nine, ten, eleven and twelve get delivered because the member turned up and nobody at the desk is doing division. At month end the gym pays commission on all twelve, and four of those commissions come out of money the gym has not collected. If the member then stops coming, and members do, the gym has paid a trainer to deliver a service it will now have to chase somebody for.

The fix is not to stop the trainer training. It is to make the commission follow the money on its own, so the four overhanging sessions are recorded, visible, owed, and not yet payable. Each session gets a number. Every session whose number falls inside the funded count is payable this cycle. Every session past it sits on hold, the trainer and the owner are both told the moment it happens, and the held sessions release themselves the day the next payment is confirmed as received.
That last property is what makes the arrangement survivable for the trainer, and it is the part gyms get wrong when they try to run it by hand. A held session that somebody has to remember to release is a held session that gets forgotten, and a forgotten one turns into a grievance. A held session that releases itself when the payment lands is just a slightly later payday.
Note the word confirmed. The person who writes down that a member paid and the person who checks the cash is in the drawer, or the UPI is in the bank app, should not be the same person. If the front desk can both record a payment and release a trainer’s commission on the strength of it, a payment that never arrived still pays out.
Leak two: the same session, paid twice
The second leak is quieter, and it is a direct consequence of the count being rebuilt by hand every month.
A hand count has no memory. On the 1st of October somebody goes through the notebook and adds up September. On the 1st of November somebody does the same for October. The sessions near the boundary, the ones delivered on the 29th and 30th and written into the book on the 2nd, are the ones that land in both counts or in neither. Whether a trainer is overpaid or underpaid is decided by which page the biro was on.
The structural fix is a latch. When a payroll run pays a session, that session is stamped with the run that paid it, and no later run can see it as unpaid. A paid session should also be locked: nobody edits or deletes it afterwards, because changing a session that is already inside a payslip quietly makes the payslip wrong. It stops being a matter of whoever is counting being careful. The same principle already governs any decent payroll engine when it settles a salary advance or a loan instalment, which we took apart in the article on calculating payroll in India. A PT session is the same kind of object: a small amount of money that must be paid exactly once.
Worth checking tonight. Pick one trainer and one week from four months ago. Count the sessions in that week, then find them in the four payslips since. If any session appears twice, or nowhere, the count is not a record. It is a reconstruction, and reconstructions drift in whichever direction the person doing them is feeling.
Leak three: the sessions nobody delivered
The third leak runs the other way, and it is the one gym owners find hardest to look at, because on the profit and loss statement it looks like a good month.
A package has an end date. A member who bought twelve sessions in June, came nine times, and stopped answering the phone in August leaves the gym holding the money for three sessions it never delivered. The books look fine. The member does not come back, tells three people the gym took their money, and if they do ask for it back the gym has no good answer, because the record shows it knew in July and said nothing.
This is an alerting problem, not an accounting one, and the alert has to fire before the end date rather than after it. Two thresholds do almost all the work: flag a package when the end date is about a week away, and flag it again when it is down to its last few sessions. Both are moments when a phone call from the trainer converts a lapse into a renewal. After expiry the same call is an apology.
There is a related trap in how expiry is computed, and we found it in our own product before we found it in anybody else’s: a package whose status is recalculated only when somebody opens the screen will report itself active for weeks after it expired, because nothing woke it up. If your system shows a package status, ask what refreshes it and how often.
Commission slabs: the extra percent after a monthly line
Most gyms that grow past a handful of trainers add a second layer to the commission, and it is where the arithmetic gets argued about most. The owner wants to reward the trainer who carries the evening floor, so the deal becomes: forty percent of every session, and ten percent more once you do Rs 60,000 of PT in a month. Owners call it a commission slab or an incentive slab. The sentence is simple. It hides four decisions, and a slab that has not made all four in writing is a slab that gets renegotiated on the 2nd.
What does the line measure? Sessions, or rupees? Counting sessions rewards a trainer for selling cheap packages. Counting the rupee value of PT delivered, each session at its own package’s price per session, rewards the work the gym is actually paid for. Measure the calendar month, and measure what was delivered, not what was sold.
Does the extra go back to session one? This is the one that causes fights. If crossing the line lifts every session of the month to fifty percent, then one extra session on the 30th can be worth thousands of rupees, and trainers will, reasonably, chase that session. The calmer rule is marginal: only the sessions from the line on earn the extra, and the session that crosses the line gets it.
Worked through with a package of twelve sessions sold for Rs 19,200, which is Rs 1,600 a session. At forty percent the trainer earns Rs 640 a session. After thirty seven sessions the month stands at Rs 59,200, still under the line. Session thirty eight takes it to Rs 60,800, crosses the line, and earns fifty percent, Rs 800. A trainer who finishes the month on forty five sessions, Rs 72,000 of PT, earns 37 × Rs 640 plus 8 × Rs 800, which is Rs 30,080 rather than a flat Rs 28,800. The slab is worth Rs 1,280 to him, and it grows with every session he adds, rather than jumping by thousands on one of them.

Do sessions the member has not paid for yet count towards the line? Leak one says their commission waits for the money. Whether they still count towards the month’s total is a separate choice, and both answers are defensible: counting them rewards the work, counting only paid sessions protects the gym. Pick one and write it on the slab.
When does a changed slab start? Moving the line in the middle of a month re-prices sessions already delivered. The safe rule is that a new slab starts on a date you choose, usually the 1st of next month, and a start date in the past touches only sessions not yet in a salary. A salary already paid never changes because somebody edited a slab.
Two smaller rules keep it sane. A senior trainer can have their own slab while everybody else follows the gym’s, which is where the side agreements from the table further down usually come from. And the package percent plus the slab extra can never go above one hundred percent, however generous the slab.
Now the other ledger: the split shift your app reads as a sixteen hour day
Back to attendance, because a gym trainer breaks it in a specific way that a shop assistant does not.
Members come before work and after work. So the trainer comes at six in the morning, works the floor until ten, goes home, and comes back at five for the evening rush until ten at night. That is nine hours of work spread across sixteen hours of day, with a seven hour hole in the middle during which the trainer is asleep on his own sofa.
A system that records one check in and one check out per date records that day as sixteen hours. Everything downstream is then wrong in the same direction: the day looks like eight hours of overtime that nobody worked, the labour cost report for the month is inflated by the same fiction, and if the gym has overtime pay switched on, it is being invoiced for a sofa.
The fix is unglamorous. A date has to be able to hold more than one attendance session. Check in at six, out at ten, in again at five, out at ten. Two sessions, one date, nine hours, no overtime. A system that models attendance as a single row per person per day cannot represent a split shift at all, and the workaround people reach for, marking the morning only and paying the evening off the books, is how a gym ends up unable to answer a wage question about its own staff.
Spread over is a legal limit, and it is not the same as hours worked
There is a second reason to record the shape of that day and not only its total, and it catches gym owners out because it is a limit on something most people do not realise is measured at all.
Section 25 of the Occupational Safety, Health and Working Conditions Code, 2020 says no worker shall be required or allowed to work more than eight hours in a day, and then does something people miss: it says the period of work in each day shall be so fixed as not to exceed such hours, with such intervals and spread overs as may be notified by the appropriate Government. The Code itself does not print the spread over number. It hands that number to the government that applies to you.
Spread over is the total elapsed time from the start of duty to the end of it, rest intervals included. It is not hours worked. Our trainer works nine hours and has a spread over of sixteen, and the two figures have almost nothing to do with each other.
Which notification binds a gym is worth a minute of thought, because a gym is a commercial establishment rather than a factory, and in most states the instrument that actually governs its hours is the state Shops and Establishments Act. Take Maharashtra as the worked example. Section 14 of the Maharashtra Shops and Establishments (Regulation of Employment and Conditions of Service) Act, 2017 sets the spread over at ten and a half hours in any day, extendable to twelve for urgent work, and a later ordinance raised the ordinary limit for non managerial employees to twelve. Whichever of those figures applies, a six in the morning to ten at night day is over it.

Two things follow, and neither of them is that a gym must stop running morning and evening batches. The first is that the rosters worth building keep the spread over inside whatever your state has notified, which usually means the morning block ends later or the evening block starts later rather than the hours being cut. The second is that you cannot demonstrate you are inside the limit unless the record holds the shape of the day and not only the total. We went through how a roster is checked against the hours rules, including the rest interval that sits alongside spread over, in the piece on shift management.
Do not take Maharashtra’s figure as yours. Read your own state’s Shops and Establishments Act, find the spread over section, and write the number on the roster.
What the record has to hold before payroll can run itself
Everything above reduces to seven fields. If your system has them, a trainer’s payslip computes itself and the argument on the 2nd stops happening. If it does not, no amount of discipline in the notebook will fix it, because the discipline is the thing that fails.
| What the record holds | What breaks without it |
|---|---|
| Package price and session count, on the package | There is no price per session, so the commission is a number somebody remembers rather than one anybody can derive |
| Commission rate on the package, not on the gym | A senior trainer and a new one are paid the same rate, or the difference lives in a side agreement nobody can audit |
| Any commission slab: the monthly line, the extra percent, who it covers and the date it started | The slab is paid from memory, applied to the whole month in one trainer’s favour, or changed mid month so that a salary already paid no longer adds up |
| How much the member has actually paid, to date | Leak one. The gym pays commission on sessions nobody has funded |
| A number on every session, and the date it was delivered | Leak two. The boundary sessions land in two months or in none |
| Which payroll run settled which session | Leak two again, from the other side. Nothing stops a session being paid a second time |
| The package end date, watched before it passes | Leak three. Undelivered sessions expire quietly and the member does not renew |
The product that does this
A thirty day fix if you are running on a notebook
In order, because the later steps are worthless without the earlier ones.
- Write down every live package. Member, trainer, total sessions, price, start date, end date, sessions already delivered, amount actually received. This is the painful week, and it only happens once.
- Work out the funded count for each one. Amount received divided by price per session. Anything already delivered past that number is money you have lent out. Total it. That number is usually the moment the project gets approved.
- Fix the commission rate per package, in writing. Not per gym, and not in a conversation. A rate that is not written on the package is a rate that gets renegotiated at month end. If you pay a commission slab, write it down too: the monthly line, the extra percent, whether unpaid sessions count, and the date it starts.
- Move session recording to the trainer’s phone, on the day. A session recorded three days later by a third person is the origin of both counting leaks.
- Split the roster properly. Two attendance sessions on a split day, not one. Then read the spread over off the record and check it against your state’s Shops and Establishments Act.
- Run one payroll cycle in parallel with the notebook before you retire the notebook. The differences are the bugs, and they will nearly all be in the first two weeks.
Questions gym owners ask
Do I need a biometric machine for a gym?
No, and for a multi branch gym it is usually the wrong purchase. A fingerprint reader tells you somebody touched a box in the lobby, which is exactly the thing a colleague can do on your behalf. Phone based attendance with a location check and a selfie answers the question the machine cannot, and it costs nothing per extra branch. We set out the trade in full in GPS attendance without a biometric device.
How do I pay a trainer who works at two branches?
The trainer needs one employment record and one payslip, with each attendance session carrying the branch it happened at. Two employee records, one per branch, is the common workaround and it breaks everything downstream: overtime thresholds get computed twice, statutory contributions get computed on two half salaries, and neither payslip shows what the person actually earned. One record, many locations, is the shape that works.
Can I record a session I forgot to record last week?
You have to be able to, or the system will not survive contact with a real gym floor. What matters is that a backdated session is recorded against the date it happened rather than the date it was typed, that it keeps its place in the package numbering, and that it is visible as backdated. A system that silently stamps it today has quietly moved a session from one payroll cycle into another. It also helps to put a limit on it: a few past-day entries per package, within the last so many days, with anything outside that waiting for the owner to OK it rather than counting on its own.
What commission rate should a gym pay on PT packages?
There is no single right answer, and anyone quoting you one number is guessing. It varies with the city, the trainer’s seniority, whether the trainer sourced the member, and whether the package sold at list price or at a discount. The point that does generalise is a systems point: the rate has to live on the package, so a discounted package and a full price one can pay different commissions without anybody doing mental arithmetic at month end. If you want to reward volume on top of that, do it with a commission slab that pays extra only on the sessions past a monthly line, as worked through above, rather than by raising the rate on every package.
What happens to a held session if the member never pays the balance?
That is a commercial decision and software should not make it for you. What software should do is stop the question being invisible. A held session sits on the package where the owner can see it, with the shortfall attached, so the choice between writing it off, paying the trainer anyway and chasing the member gets made deliberately once, rather than by default every month.
The short version
- A personal trainer’s pay is two ledgers, floor hours and sessions delivered, and attendance software holds only the first.
- Price per session is the package price divided by the session count, and the member’s payments fund a whole number of sessions. Commission paid past that number is the gym’s own cash.
- A hand rebuilt count has no memory, so boundary sessions get paid twice or never. A settled session needs stamping with the run that settled it.
- Packages expiring with sessions undelivered look like profit and behave like churn. The alert has to fire before the end date.
- A commission slab should measure the rupee value of PT delivered in the month and pay its extra only from the session that crosses the line, never back to session one.
- A split shift is two attendance sessions on one date. Recorded as one, it invents overtime and hides the spread over.
- Section 25 of the OSH Code leaves the spread over figure to the appropriate Government, so a gym’s real limit usually sits in its state Shops and Establishments Act. Maharashtra’s section 14 is the worked example above. Go and read your own.
Keep reading
See how Shiftelio does this in practice with building a roster that puts two shifts on one date.
Still deciding what to buy? Compare what nine attendance apps cost for 25 employees with GPS switched on.
Work your own numbers with the free shift roster template. No signup, no email.