Understand how payroll is worked out
GymLedger works out what someone is owed from two things you have already entered. If a number looks wrong, one of those two things is usually what needs fixing. When you mark a month paid you can still change the amount — for a bonus, a deduction or a correction — and that is the figure the month keeps.
The rule
Open Staff → Payroll and pick a month with the ‹ and › arrows. For each person the app works out their salary one of three ways:
Fixed Monthly Salary → the flat amount on their staff profile. Every month, the same, whatever they did. Their Work this month column shows a dash, because sessions and hours have nothing to do with their pay.
Hourly Rate → hours clocked in that month × their hourly rate. A receptionist on ₹150 an hour who clocked 160 hours in August earns ₹24,000. Work this month shows the hours.
Per Session Rate → completed sessions that month × their per-session rate. So a trainer on ₹500 with 18 completed sessions in August earns ₹9,000. Work this month shows the 18, and the Rate column shows the ₹500, so you can see the whole sum on one row.
PT share is added on top for a trainer who has one: their % of every PT session they completed that month, each session worth its package price ÷ its sessions. A trainer on ₹15,000 fixed with a 65% share who completed 10 sessions from a ₹12,000, 12-session package earns ₹15,000 + ₹6,500. On the payroll list, the line under their earnings shows the two parts (₹15,000 + ₹6,500 PT). Tap their row and Earnings spells it out — ₹15,000 salary + ₹6,500 PT share (65% of 10 sessions) — while PT split shows what the sessions were worth, the trainer's part and the gym's part.
PT bonus is the other kind: a fixed amount for every PT session completed that month, package or not. ₹15,000 fixed with ₹200 a session and 20 sessions earns ₹15,000 + ₹4,000.
The Total Payroll box at the bottom right is everyone's earnings added up for that month.
What counts as a session
Only sessions that are all three of these:
Status is Completed. Scheduled and Cancelled sessions are worth nothing. Somebody paid per session is paid for training done, not training booked.
Dated inside the month you are looking at. The date on the session, not the day you typed it in. Log a session on the 2nd of September for a workout that happened on the 31st of August and it counts towards August.
That trainer's name is on it. The trainer picked in the Log Session box.
So there are exactly three ways to change a per-session trainer's pay: log a session, change a session's status or date, or change their rate.
Good to know
Past months keep their own rate. Each month is worked out with the pay that applied that month, so changing a trainer's rate today does not change last month.
A month marked paid shows what you paid. It no longer moves when sessions are logged late or a rate changes. If the amount you paid differs from the calculation, the row shows Calculated ₹… under it, so you can spot the gap.
Paid months can be edited. Edit on a paid row (or Edit payment on their payroll page) changes the amount, method or note and keeps the day it was paid. Unmark removes the payment altogether.
Inactive staff are not on payroll at all. They vanish from the list completely, for every month, including months they worked. Only Active staff appear.
Anyone set to None / Not set is listed separately at the bottom under Not Configured, with a Configure → link. They are not paid and not counted in the total. This is a prompt, not an error.
Rows with ₹0 show a dash instead of a status. A per-session trainer with no sessions this month is neither Paid nor Pending — there is nothing to pay.
Tap any row to open that person's own payroll page, with a session-by-session breakdown, their year-to-date total, and every month you have paid them.
Fixed salary is never pro-rated. Half a month worked still shows the full salary.
When it doesn't work
A trainer shows ₹0 and you know they trained people. Work through the three rules above in order. Nine times in ten it is sessions sitting on Scheduled instead of Completed. Open Sessions → PT Sessions, filter to that trainer and set the period to the month in question, and check the Status column.
The whole Payroll page is empty with "No staff to run payroll for". Nobody has a compensation type set. Tap Go to Staff, open each person, and set their Compensation — see Set up how a staff member is paid.
Someone is missing from the list. They are Inactive, or their compensation is None / Not set — in which case look under Not Configured further down the page.
The › arrow won't move forward. You cannot go past the current month. There is nothing to show for a month that hasn't happened.
"← Back to Payroll" on a person's payroll page lands you on the staff list. Known quirk — that link drops you on Staff → All Staff rather than the Payroll tab. Tap Payroll in the sidebar under Staff to get back.
<!-- SCREENSHOT: Payroll page for a month showing a Fixed row, a Per Session row, and the Not Configured block -->