Great news! Chalk It Pro now handles payroll for your coaches and staff. You can pay coaches for the classes they teach, pay staff by the hour for other work like cleaning, and see it all in one payroll report.
📝 Note: Want to practice first? Try the interactive guide, where you can click through every step in a practice copy of Chalk It Pro without changing anything in your gym.
Who can use it
Only gym admins see PAYROLL in the left menu. The report always covers the gym you currently have selected, so if you manage more than one gym, switch to the right one first.
Coaches, admins and anyone you add as staff see MY HOURS and STAFF SCHEDULE in the ME section of the menu.
📝 Note: You’ll see a red count on PAYROLL when work hours are waiting for review, and on STAFF SCHEDULE when there are shift or time off requests.
Quick start
Here’s the short version. Each step is explained in more detail below.
Click PAYROLL in the left menu to open the report.
Click Setup, then Class Types. Add the kinds of classes you run (like CrossFit, Spin or Personal Training) and pick one for each class in the list.
Click Setup, then Coach Pay Rates. Fill in a default rate for each coach, add class type rates where a coach is paid differently, then click Save Rates.
Click Setup, then Pay Period. You only need to do this once. After that, the report opens on your last pay period.
Review each coach. Rows are grouped by coach, so expand a coach to see every class behind their total.
Click Summary, then Export, to get one line per person to enter in your payroll provider.
Step 1: Set your coach pay rates
At the top of the report, click Setup, then Coach Pay Rates.
You’ll see a card for every coach at your gym. The top row on each card is that coach’s default rate.
Fill in the three fields:
Rate Type: Per Class pays the rate once for every class the coach teaches. Per Hour multiplies the rate by the length of the class, so a 45-minute class pays three quarters of the hourly rate. New coaches start on Per Class.
Rate ($): The base amount.
Per-Head Bonus ($): Optional. An extra amount for every person who attended the class. Leave it empty if you don’t pay a bonus.
Click Save Rates. One click saves every coach in the window, and the report refreshes on its own.
Paying different rates for different class types
Want to pay a coach more for CrossFit than for Spin? Here’s how:
On the coach’s card, click Add class type rate.
Pick the Class Type, then enter its Rate Type, Rate and Per-Head Bonus.
Repeat for any other class types, then click Save Rates.
Once you add a class type rate, the top row changes from All class types to All other class types.
Each class is paid at the coach’s rate for that class type. If the coach doesn’t have one, their default rate is used. If they have neither, the class shows no pay.
📝 Note: A coach can have one rate per class type, and different coaches can have different rates for the same class type. To remove a class type rate, click the trash can next to it. That coach then falls back to their default rate for that type.
💡 Tip: To remove a default rate, clear both the Rate and the Per-Head Bonus (or set them to 0) and save. Rate accepts $0 to $100,000, and Per-Head Bonus accepts $0 to $1,000.
⚠️ Heads up: Rate changes apply to past classes. Pay is worked out each time you open the report using the rate saved at that moment, and Chalk It Pro doesn’t keep a rate history. If a raise starts partway through a period, run and export the earlier period first, then change the rate.
Step 2: Assign class types to your classes
The quickest way is to set them all at once:
On the payroll report, click Setup, then Class Types.
Add your class types.
Under Your classes, pick a type for each class. Each pick saves right away.
A few things to know about the list:
It shows classes running now or in the last year, grouped by name, with the track and when each one runs.
Picking a type for a class name sets it on every schedule with that name. If a class says Mixed, its schedules have different types, so expand it to see them.
The list opens on No class type so you can work through what’s left. Switch to All to change classes that already have one.
Expand a class to set its schedules one at a time, for example when the 6:00 AM CrossFit is really a Bootcamp.
You can also set the type on a single class. Open it in the class editor and use the Class Type field in Class Details. Start typing to find a class type, and if it doesn’t exist yet, pick Add “Spin” (or whatever you typed) to create it on the spot.
📝 Note: For recurring classes, the class type comes from the series editor, and changing it there applies to every date in that series, including past dates on the report. Classes with no class type are paid at each coach’s default rate. Deleting a class type removes it from its classes and deletes any coach rates set for it.
Step 3: Set your pay period
Click Setup, then Pay Period.
Choose how often you pay staff:
Every week: Seven days, starting on the day you choose.
Every two weeks: Fourteen days. Pick the first day of any one pay period so the app knows which weeks pair up.
Twice a month: The 1st to the 15th, and the 16th to the last day of the month.
Once a month: The whole calendar month. This is the default.
Choose which day your weeks start. This also sets the weeks your staff see on MY HOURS, so if your gym runs Monday to Sunday, choose Monday.
Check the current and last pay periods shown in the window, then save.
Choosing a period on the report
The report opens on your Last Pay Period, the most recent one that has fully ended. Use the Payroll Range menu to pick a different period, and the report reloads right away:
Last Pay Period: The most recent pay period that has ended.
Current Pay Period: The period you’re in now, handy for checking hours before it ends.
This Week: The current week, starting on your week start day.
This Month / Previous Month: The current or last calendar month.
Last 3, 6 or 12 Months: The previous months plus the current month.
Custom Date Range: Any dates you pick in the date picker next to the menu.
Both the first and last day are included in full. Classes after today are never counted, so if a range hasn’t ended yet, the report tells you above the grid.
Step 4: Read the report
Along the top you’ll find:
Payroll Range on the left, to pick your period.
Work Hours, which opens the review queue and shows how many entries are waiting.
Summary, which totals the period per person for your payroll provider.
Setup, which lists the setup steps in order: Class Types, Coach Pay Rates, Staff & Hourly Rates, then Pay Period.
The grid has one row for each coach for each class they taught. If two coaches share a class, each gets a row. Rows are grouped by coach, and each coach’s line shows their totals for the period.
Here’s what the main columns mean:
Coach: The coach on the class that day. A class with no coach shows as Unassigned.
Class Type: Decides which of the coach’s rates is used. It’s blank when the class doesn’t have one.
Hours: The class length in hours.
Checked In, Reserved and No Shows: Attendance counts for the class.
Attendance: Everyone who counts toward the Per-Head Bonus. That’s all attendees except no shows and people on the waitlist, and it includes people who reserved but haven’t checked in.
Rate Type, Rate and Per Head: The rate used for that class.
Pay: The amount earned for that class.
💡 Tip: Groups start collapsed, so you first see one total line per coach. Use Expand all and Collapse all to open or close every group, Columns to show or hide columns (the grid remembers your choice), and Filters or the search box to narrow things down.
How pay is calculated
Each row is calculated on its own, then the rows are added up under the coach:
Per Class: Pay = Rate + (Per-Head Bonus × Attendance)
Per Hour: Pay = (Rate × class minutes ÷ 60) + (Per-Head Bonus × Attendance)
Amounts are rounded to the cent, with halves rounding up. If a class is shared by two coaches, each coach is paid the full amount for that class, so split the rate between them if you only want to pay for the class once.
What gets counted
The report follows your class schedule and then applies payroll rules, so it can differ a little from the attendance report.
Included:
Each date a recurring class actually runs, including every-other-week classes
One-time classes on their date
Today’s classes, even if they haven’t started yet
Substitute coaches: if you changed the coach for one day, that coach gets the pay
A changed start time or length for a single day
Every coach listed on a class
Left out:
Classes cancelled for the whole series
A single cancelled date (the attendance report still lists these)
Dates after today
Appointments that came in from GoHighLevel, since they aren’t coached classes
📝 Note: If a coach had approved time off on the staff schedule but is still listed on a class that day, the row is marked Coach on time off in the Check column and the report warns you. If someone else coached, change the coach for that day on the class schedule and the pay moves to them.
Step 5: Set up staff work hours
Use work hours for anything that isn’t a class, like programming, cleaning, front desk or events.
On the payroll report, click Setup, then Staff & Hourly Rates.
Add the kinds of work your staff log, like Programming or Cleaning.
Coaches and admins can always log hours. Use Add Staff to let anyone else, like a cleaner, log hours too. They’ll see MY HOURS in their menu the next time they sign in or switch gyms.
Give each person a default hourly rate, and add an activity rate where they’re paid differently.
Click Save Rates.
How staff log their hours
Here’s what your staff will do:
Open MY HOURS in the left menu. It shows one week at a time, starting on your gym’s week start day.
Click Log Hours, pick the date and activity, enter the hours in quarter hours (for example, 1.5), and add a note about what they worked on.
Each entry shows Pending review, Approved or Needs changes. If you send an entry back, your reason shows under it so they can edit and resubmit.
Staff can edit or delete anything that isn’t approved yet. Approved hours are locked, so they’ll need to ask you to change them.
Reviewing and approving hours
When hours are waiting, you’ll see a red count on PAYROLL and on the Work Hours button, plus a warning on the report. Click Work Hours or Review.
The Pending tab lists every entry waiting for review, whatever its date. The other tabs use the report’s dates.
Tick the entries and click Approve, or click Reject and add a reason the staff member will see.
💡 Tip: Use Add Hours to log time for someone yourself, or the edit icon to fix an entry. Hours you add or edit are approved right away.
Approved hours show on the report as Work rows under the person, with their note, and are added to their total.
⚠️ Heads up: When hours are approved, the person’s hourly rate at that moment is locked in. Changing their rate later only affects hours approved after the change. (This is different from class pay, which always uses the current rate.) Also, you can’t approve hours for someone who doesn’t have an hourly rate for that activity or a default rate. The message tells you who needs one.
Step 6: Plan the week with the staff schedule
The staff schedule shows one week of who works when. Each coach’s classes come straight from your class schedule, so there’s nothing to enter twice. You add shifts for everything else, like front desk or cleaning.
There’s nothing new to set up. The schedule uses what payroll already has: the activities from Staff & Hourly Rates, your coaches, admins and staff, your pay period’s week start day, and the coaches on your class schedule.
Here’s how to plan your week:
Click Add shift, or the + in a person’s day. Pick the person, the activity and the times. Shifts you add go on the schedule right away.
To let anyone pick up a shift, choose Open shift instead of a person. You confirm who gets it.
Click Copy last week to repeat last week’s shifts, including open ones. Shifts already on this week aren’t copied twice.
Review requests. A red count shows on STAFF SCHEDULE and on Requests. Approve or decline each one, or click Approve all. Declining a shift or time off request needs a reason, which the staff member sees.
Use Time off to add time off for someone yourself. It’s approved right away.
📝 Note: A time off request lists the classes that person is down to coach under Needs a sub. Find cover, then change the coach for those days on the class schedule.
What staff can do on the schedule
See the whole team’s week, with themselves at the top. On a phone, they pick a day to see everyone working it.
Request a shift by picking the activity, day and times. It shows as Pending until you approve it.
Pick up an open shift by selecting it and clicking Pick up this shift. You confirm it.
Ask for time off by choosing the first and last day. Only admins see their note.
Log hours from a shift once it’s happened by selecting it and choosing Log hours, or from Shifts to log on MY HOURS.
How the schedule feeds payroll
The schedule is the plan, and payroll pays what actually happened. Shifts are paid once their hours are logged and approved, through the same Work Hours review, so a shift is never paid twice.
Shift hours show the shift’s time in the Scheduled column of Work Hours. It turns orange if the logged hours are different, for example when someone stayed late.
If a shift was worked but nobody logged it, the report tells you. Click Review, tick the shifts that were worked and choose Approve as worked.
Approved shifts show on the report as Shift rows at the shift’s start time.
Open shifts nobody picked up aren’t paid or counted.
Step 7: Pay your staff each pay period
Chalk It Pro works out what each person earned. It doesn’t pay anyone, withhold taxes or file payroll taxes. Every amount on the report is gross pay, before taxes or deductions. You’ll run the actual payroll in your payroll provider, like QuickBooks Payroll, Gusto or ADP, or hand the numbers to your accountant.
Here’s your routine each pay period:
Approve all hours. Clear the Work Hours queue so nothing is still pending. Pending hours aren’t paid.
Run the report for the pay period. Set the Payroll Range to the exact dates of the pay period and check each person’s total.
Clear unlogged shifts. If the report says scheduled shifts were never logged, click Review and approve the ones that were worked.
Check classes on a day off. If the report flags a coach on time off, change the coach for that day on the class schedule.
Open the summary. Click Summary to see one line per person: classes, class hours and pay, work hours and pay, total hours and gross pay, plus their email. It warns you about anyone with classes that have no pay.
Export it. In the summary, click Export, then choose Excel or CSV. Keep the file as your record.
Enter pay in your payroll provider. For each person, enter their total gross pay, plus hours if your provider asks for them. Your provider handles withholding, payments and tax forms.
💡 Tip: Keep your exports. Since rates have no history, an export is your record of what was calculated at the time.
Importing into QuickBooks and other providers
The summary export is a standard spreadsheet with one row per person. It isn’t built for any particular payroll system, so check your provider’s import format first. Most people type the totals in or copy them across.
Most payroll imports are based on hours. Pay per class and per-head bonuses aren’t hours, so enter those as a pay amount (for example, a commission or other earning).
If you import a spreadsheet, names must match the employee names in your provider exactly.
The report’s own Export keeps one row per class or logged entry, which is handy as a detailed record. To send a coach their own breakdown, filter or search for their name first, then export.
📝 Note: Whether someone is an employee or an independent contractor changes how they’re paid and taxed. Your payroll provider or accountant sets that up, and Chalk It Pro doesn’t track it.
Troubleshooting
A coach shows no pay.
A coach shows no pay.
Open Setup → Coach Pay Rates and check the coach has a default rate or a rate for that class type. If the row says Unassigned, the class has no coach on the schedule. Older classes that store a coach as typed text instead of a member also show no pay, so assign the class to a coach and run the report again.
A coach is missing from the Coach Pay Rates window.
A coach is missing from the Coach Pay Rates window.
The window lists coaches for the gym you have selected. Check that the person is marked as a coach at this gym and that the right gym is active.
A class type is missing from the list.
A class type is missing from the list.
Create it in Setup → Class Types or in the class editor, set it on the class, then reopen Coach Pay Rates.
A class I expected isn’t on the report.
A class I expected isn’t on the report.
Check whether it was cancelled for that date, falls after today, or runs every other week and skips that week. Also make sure your date range includes that day.
Pay changed on a period I already paid.
Pay changed on a period I already paid.
Rates are applied when the report runs, so changing a rate changes every period. Export each period before you change a rate.
Attendance is higher than the number checked in.
Attendance is higher than the number checked in.
Attendance includes people who reserved but didn’t check in. If you only want to pay a bonus for people who showed up, mark absent people as no shows before running payroll.
I see an error when saving rates.
I see an error when saving rates.
The message names the problem. Rates must be numbers, can’t be negative, and must stay within $100,000 for Rate and $1,000 for Per-Head Bonus. Only gym admins can save rates.
I approved time off. Why is the coach still paid for a class that day?
I approved time off. Why is the coach still paid for a class that day?
Time off doesn’t change who’s on a class, because only you know who covered it. The report marks those classes Coach on time off. Change the coach for that day on the class schedule and the pay moves to whoever taught.
A shift was worked but isn’t on the report.
A shift was worked but isn’t on the report.
Shifts are paid once their hours are logged and approved. Check the Work Hours queue for pending hours, and look for the “never logged” warning on the report, where you can approve the shift as worked.
Staff can’t pick an activity for a shift.
Staff can’t pick an activity for a shift.
Shifts use the activities in Setup → Staff & Hourly Rates. Add one there, like Front Desk. An activity that already has shifts or logged hours can’t be deleted, but you can rename it.