📖 All guides
Pay rates and rate history — raises, back-dating, and roles
Every pay rate in SafeShift is dated: set a raise from a date, back-date one and let payroll propose the difference, schedule one ahead, and give each additional role its own dated rate.
SafeShift does not store one pay rate per person; it stores a history of rates, each starting on a date. Payroll prices every workday at the rate in effect that day, so a raise from the 15th pays the 14th at the old rate and the 15th at the new one with nothing to split by hand. The same model covers each additional role a person holds. Everything here lives on the Team page → open the employee → Edit.
- 1
Where the rate lives
The Roles & Pay Rates section of the Edit modal shows the person's primary role with its hourly rate, and a row for each additional role with its own rate. Under the primary row, Rate history lists every rate entry: the amount, the date it took effect, and a note. The first entry is marked initial rate — the rate on record before dated history began.
- 2
Give a raise from a date
Open Rate history, enter the new rate, pick the date it takes effect (today is the default), add a note if you like, and click Add. The rate field above updates to whatever is in effect today. You can also just change the rate field and save the modal — that records an entry effective today.
- 3
Back-date a raise into a paid period
Pick a date in the past and SafeShift warns you in amber if it reaches into a pay period that has already been approved. That is allowed — it is how a retro raise is expressed — and the next payroll draft proposes the exact difference for those approved days as correction lines, which the manager reviews like any other line. Nothing already approved is changed in place.
- 4
Schedule a raise ahead
Pick a future date. The person keeps paying at today's rate until that morning, when SafeShift flips the current rate automatically; the Team page shows the change the same day. Dates more than a year out are refused.
- 5
Additional roles have their own dated rates
Each extra role's row has a rate, a from date (today by default) and a Save button. Change the rate, set the date if it is not today, and click Save — nothing is written until you do, so the order you fill the two fields in does not matter. Click History on the row to see that role's entries and void one. Back-dating a role rate into an approved period warns and proposes correction lines exactly like the primary rate.
- 6
Adding a role
When you add a role to a person, it starts today at the rate you enter. Shifts worked under that role name before today were paid at the person's primary rate and stay that way; the role's rate applies from the day it was added. A role cannot be added with a future start — add it with the rate it pays now, then schedule a future change from its row.
- 7
Fix a mistake: void, never delete
Every entry can be voided with the ✕ on its row. A voided entry stays visible, struck through, and the rate in effect falls back to the previous entry — so a wrong raise is undone in one click and the record of what happened is kept. Rates are never silently overwritten; the history is what payroll and the court-ready reports rely on.
- 8
Accounts whose rates come from the POS
If Pay Schedule → Pay rates come from is set to POS punches, each shift pays the wage your point-of-sale recorded at punch time and the rate table is the fallback for shifts without one. The history here still governs paid time off and still proposes corrections; it just does not override a POS wage. Most accounts use the default, SafeShift rate table, where this history is the source of truth.
Good to know
- Set the rate on the Team page before the first payroll — a person without any rate is flagged on the run rather than paid at a guess.
- Give a raise from the day it was promised, even if that day has passed; the correction lines on the next draft are the paper trail an auditor expects.
- A removed role keeps its rate history. Re-adding the role later starts a fresh dated entry at the rate you enter, and the old days keep what they were paid.
If something goes wrong
Why did my raise create correction lines on the next payroll draft?
Because the effective date reached into a pay period that was already approved. SafeShift never changes an approved period in place; it proposes the difference on the next run so the employee is paid what the raise owes them and the manager sees exactly why.
A shift shows the old rate even though I changed the rate.
Check the effective date on the entry. A shift prices at the rate in effect on its own day, so a raise effective today does not reach yesterday's shift — back-date the entry if the raise should.
What rate does paid sick leave or PTO use?
Sick leave pays at the prior 90-day average of the person's non-overtime wages, as California requires. PTO and personal days pay at the hourly rate in effect that day — from this history on a SafeShift-rate-table account, or the latest punch wage first on an account whose rates come from POS punches. Neither is changed by a bonus true-up.