How Do I Set Up Pay Codes?
Pay codes label the kind of time your team logs—regular hours, PTO, holiday pay, drive time, and more. This guide shows account administrators how to create pay codes, set defaults, and use them in scheduling, time reports, and payroll exports.
How Do I Set Up Pay Codes?
Pay codes tell Clean Smarts what kind of time you're paying for. When a cleaner clocks in, the pay code on that entry might mean regular work, vacation, sick leave, holiday premium, or drive time between sites. Getting pay codes set up early makes payroll exports, overtime calculations, and time reports much easier to read.
Applies to: Account administrators with the Manage Account module. Pay codes are configured in the web portal; managers with Timetracking (Edit) can change pay codes on individual time entries from the web or mobile app.
Before You Start
- Pay codes label time; pay rates set the dollar amount. A pay code describes what happened (regular work, PTO, overtime). A pay rate describes how much the employee earns. They work together, but they're separate settings. If you're setting up wages, you'll also use Standard Pay Rates on the same Timekeeping page and Pay rates on each employee's Time & Pay profile.
- You need Manage Account access. Company Settings, including pay codes, is only available to roles with the Manage Account module. If you don't see Company Settings when you click your profile, ask your account superadmin to grant that module or adjust your role.
- New pay codes save right away; defaults need Save Changes. When you add or edit a pay code in the pay code list, Clean Smarts saves it immediately. Choosing a Default Pay Code or Default driving time pay code on the Timekeeping page still requires clicking Save Changes at the bottom of the page.
What Pay Codes Do
Every clock-in, manual time entry, and batch holiday entry carries a pay code. That code drives several things downstream:
- Payroll exports — Your ADP, QuickBooks, BambooHR, or custom export uses the pay code description (or an abbreviation you embed in the name) to map hours into the right earning type.
- Overtime — Only time logged with pay codes marked Count as working time rolls into working-hour totals used for overtime.
- Time reports — Time Detail, Approve Timesheets, and Budget-to-Actual can group or filter by pay code so you can separate billable work from PTO, drive time, or unpaid breaks.
- Time off policies — If you use embedded payroll time-off policies, each policy links to a pay code so accruals and balances stay tied to the right kind of leave.
Common examples: Regular, Overtime, Vacation (03), Sick, Holiday Premium, Drive Time, and Unpaid Lunch.
Open the Pay Code Settings
- Click your profile in the bottom-left corner and choose Company Settings.
- Select Timekeeping from the settings menu.
- In the Default Pay Code card, click Add/edit pay codes.
The Pay Codes dialog lists every code on your account with its type, linked standard rate, and whether it counts as working time.
Create or Edit a Pay Code
- In the Pay Codes dialog, click Add new pay code (or click an existing row to edit it).
- Fill in the fields:
|
Field |
What it controls |
|---|---|
|
Pay Code Name |
The label you and your team see in schedules, time reports, and exports. Use clear names like |
|
Type |
How Clean Smarts treats the time for calculations and reporting. See the table below. |
|
Standard Pay Rate |
An optional default wage for this code. Choose Use employee rate to fall back to each person's assigned pay rate. Choose a standard rate when everyone on this code should earn the same amount (for example, a flat holiday premium). |
|
Count as working time |
When checked, hours with this code count toward total working hours (including overtime). Turn it off for PTO, unpaid breaks, or other non-work time. |
- Click Create or Update. The pay code is saved immediately and appears in dropdowns across the app.
To remove a code you no longer need, click the delete icon on its row and confirm. If the code is still in use on shifts or time entries, resolve those references first or pick a replacement default before deleting.
Choose the Right Type
The Type field matters for overtime, cost calculations, and time-off tracking. Clean Smarts enforces a few rules automatically:
- PTO, Sick, and Paid Holiday cannot be marked as working time.
- Hourly, Salaried, Overtime, Double Overtime, Piece, Rest and Recovery, and Non-Productive must be marked as working time.
|
Type |
Typical use |
|---|---|
|
Hourly |
Regular paid work time. This is the default for most codes. |
|
Salaried |
Salaried employees' time. Cost calculations treat salaried entries differently from hourly work. |
|
Overtime |
Hours paid at an overtime rate. |
|
Double Overtime |
Hours paid at double-time. |
|
Paid Holiday |
Paid holiday hours that are not worked (for example, a company holiday when the site is closed). |
|
PTO |
Paid time off such as vacation or personal days. |
|
Sick |
Paid sick leave. |
|
Piece |
Piece-rate pay where the amount is a flat value rather than hours × rate. |
|
Rest and Recovery |
Paid rest or recovery periods required by law or contract. |
|
Non-Productive |
Paid time that is not direct cleaning work (for example, a paid meeting). |
If you're unsure which type fits, start with Hourly for any paid work time and PTO or Sick for leave. Your payroll provider's earning-code list is a good cross-check.
Set Account-Wide Defaults
Back on the Timekeeping page, two defaults apply across your account:
Default Pay Code
In the Default Pay Code card, pick the code that most clock-ins should use—usually your regular hourly code. Any time captured without a more specific code inherits this default.
Default driving time pay code
In the Drive Time card, choose Default driving time pay code when you pay for travel between sites and want those minutes tagged separately from on-site work. Leave it blank if drive time should use the same code as regular work.
After changing either default, scroll down and click Save Changes.
Set a Default Pay Code on a Shift or Work Order
Shift-level defaults override the account default for time tied to that shift or job.
For a recurring shift:
- Open the shift from the calendar or from a location's Shifts & Inspections tab.
- Expand the Budget section.
- Choose a Default pay code.
- Save the shift.
For a work order:
- Open the work order.
- Expand the Budget section.
- Choose a Default pay code.
- Save the work order.
When someone clocks into that shift or job, Clean Smarts applies the shift's default pay code to the time entry. If you edit an entry and pick a different code, Clean Smarts may ask whether you want to switch to the shift's default—choose Use default to align with the schedule, or Keep current to leave your manual selection.
Change the Pay Code on Recorded Time
Sometimes you need to reclassify time after the fact—for example, marking holiday hours with a premium code or correcting a misclassified entry.
On the web:
- Go to Time Tracking and open Time Detail or Approve Timesheets.
- Open the check-in you want to change.
- Set Pay Code to the correct code.
- Save the entry.
On the mobile app:
Managers with Timetracking (Edit) can open a team member's time entry, tap Edit, change Pay Code, and submit the update.
For company-wide holidays, you can also use Add Holiday Batch from Time Detail to create paid holiday entries tied to a specific pay code for many employees at once.
Tips for Payroll Exports
Pay code names travel into most payroll exports. A few habits save cleanup later:
- Match your payroll system's earning codes. If your provider expects
REG,OT, orVAC, either name the pay code that way or put the provider's code in parentheses in the description—for example,Vacation (VAC). Some exports use only the text inside parentheses as the external code. - Keep one code per earning type you need to report separately. Separate codes for regular time, overtime, PTO, sick, and holiday make exports and the Approve Timesheets aggregate view easier to reconcile.
- Use non-working types for leave. PTO, sick, and paid holiday codes should not count as working time, or they'll inflate overtime calculations.
- Review drive time separately. If you pay drive time at a different rate or map it to a different payroll item, give it its own pay code and set Default driving time pay code under Drive Time on the Timekeeping page.
Troubleshooting
I don't see Company Settings or pay codes. You need the Manage Account module. See What does each of the user modules do? for details, or ask your account superadmin to update your role.
Overtime looks too high (or too low). Check whether the affected entries use a pay code with Count as working time turned on. PTO, unpaid lunch, and other non-work codes should have that box unchecked. Open Time Detail and sort by Pay Code to spot outliers.
The pay rate disappeared when I picked a pay code on a shift. That's expected when the code uses Use employee rate. The dollar amount comes from the employee's assigned pay rate or the code's linked standard rate—not from the shift's pay rate field. See the pay rates article under Links to verify below.
My payroll export shows the full pay code name instead of our provider's code. Add the provider's abbreviation in parentheses at the end of the Pay Code Name, such as Regular (REG). Re-export and confirm the column shows REG.
I changed the default pay code but old entries didn't update. Defaults apply to new time going forward. Existing check-ins keep the code they had when they were logged. Edit those entries individually or use batch tools like Add Holiday Batch where they fit.