Payroll Overview
Review staff hours, track estimated pay, close payroll periods, and export pay reports.
Last updated: 05/21/2026
Overview
The Payroll page gives you a running view of what your staff are owed based on the hours they have worked and the classes they have taught. You reach it from Operations > Payroll in the sidebar (/gym/payroll).
Payroll is a tracking and reporting tool, not a payroll processor. GymPoint does not calculate taxes, handle deductions, or issue payments. The numbers shown are estimated gross pay for internal reference. Use a dedicated payroll provider for official payroll runs. A reminder banner at the top of the page states this; you can dismiss it.
To open Payroll you need the manage_payroll permission. Staff without it see an Access Restricted message instead of the page.
How Pay Is Calculated
Estimated pay comes from two sources, both set on each staff member's profile:
- Hourly pay — hours worked (from Time Tracking) multiplied by the staff member's hourly rate.
- Session pay — a flat rate paid per class session taught.
A staff member can have one rate, both, or neither. Set hourly and session rates under Settings > Team, then edit the team member. Staff with no pay rates configured will not appear in the payroll table.
Reviewing Staff Hours and Pay
When the page loads it shows the current month to date. Use the Date range fields near the top to choose a different period, then click Apply.
Four summary cards across the top show the totals for the selected range:
- Total Hours — combined hours worked by all staff.
- Total Sessions — combined class sessions taught.
- Est. Gross Pay — combined estimated gross pay.
- Active Staff — number of staff with pay rates in the range.
Below the cards, the payroll table lists each staff member with their role, hours, hourly pay, sessions, session pay, and estimated gross. Click any row to expand it. The expanded view shows a Daily Hours breakdown (date, hours, pay) and a Class Sessions breakdown (date, class name, rate) so you can see exactly where the totals come from.
Closing a Payroll Period
Closing a period locks every time entry inside the date range so the figures cannot change after you have reviewed them.
- Set the Date range to the period you want to close.
- Click Close Period.
- Optionally add a note (for example, "March first half payroll").
- Click Close Period to confirm.
Once closed, time entries in that range cannot be edited until the period is reopened. A snapshot report of the closed figures is saved at the same time.
Working with Closed Periods
Closed periods appear in the Closed Periods section at the bottom of the page. Expand it to see each period with its date range, who closed it, and any notes. Each closed period has four actions:
- View Report — opens a snapshot report dialog with the summary totals and a per-staff table for that period. Periods closed before report snapshots existed are recomputed live; the report flags this because the figures may differ from what was originally closed.
- Export — downloads that period's figures as a CSV.
- Load Range — loads the period's date range into the filter at the top so the live view reflects that period.
- Reopen — unlocks the time entries in the range so they can be edited again.
Exporting Pay Reports
There are two ways to export payroll data as a CSV:
- Export CSV at the top of the page exports whatever date range is currently selected in the filter.
- Export on a closed period (in the Closed Periods list or inside the View Report dialog) exports that specific period.
The CSV contains each staff member's hours, sessions, and estimated gross pay. This is the file to hand to your accountant or upload into your payroll provider.
Tips
- Set every staff member's pay rate in Settings > Team before your first payroll run, or they will be missing from the table.
- Review the expanded daily-hours and class-session detail before closing a period, so you catch missing or incorrect time entries while they can still be edited.
- Close periods on a consistent schedule (for example, twice a month) so each export lines up cleanly with your payroll provider's pay periods.
- If you find an error after closing, use Reopen, fix the time entry, then close the period again.