Skip to main content

Compensation History & Change Logs

Track every pay rate change over time - schedule future raises, see who changed what and why, and understand how dated rates keep past job costs accurate.

Written by Nick Stanisavljevic

Overview

MotionOps keeps a full history of every pay rate change you make. You can see what someone is paid now, what they were paid before, what's scheduled to start later, and who changed it and why.

Because the history is dated, each job is costed using the rate that was in effect when the work happened - not whatever the rate is today.

Available in the Web App.


When to Use This Feature

  • You're giving a tech a raise and want it to start on a specific date.

  • Last quarter's job costs look wrong and you need to know what rate was applied.

  • A team member disputes their pay rate for a period.

  • You need to know who changed someone's rate and when.

  • You want to schedule a rate change now for a review date months out.

  • You're overriding someone's normal rate for one particular job.


How It Works

A pay rate isn't a single value - it's a rule with a date range. Each rule has an effective start, an optional end, and one of three states:

  • Current - in effect today.

  • Scheduled - set up to start on a future date.

  • Past - no longer in effect, kept for history.

You'll see these as a timeline on the team member's base pay, so past, present, and future rates are visible together.

Separately, an audit trail records every change: who made it, when, what the values were before and after, and the reason they gave. Audit entries can't be edited or deleted - they're append-only, which is what makes them useful in a pay dispute.


Scheduling a Rate Change

Because rules carry dates, you can set a change up in advance. Enter the new rate with an effective date in the future and it sits as Scheduled until that date arrives, then becomes current on its own.

That's the clean way to handle an annual review - set it when you agree it, not on the day it starts.

Cancelling a scheduled rule is also recorded in the audit trail, so a raise that was set up and then withdrawn leaves a trace.


When a New Rate Overlaps an Existing One

If the dates on a new rule collide with a rule that already exists, MotionOps shows you a confirmation window before saving anything.

The window shows you three things:

  • The existing rule that conflicts

  • The new rule you're creating

  • A field to enter your reason for the change

On confirming, the existing rule is trimmed to make room for the new one. Both the trim and the new rule are recorded as separate audit entries, so the history shows exactly what happened rather than just the end result.

This window appears whether the new rule starts inside an existing one, starts on the same date as one, splits one in the middle, or covers one entirely. When there's no conflict you'll still be asked to confirm and give a reason.


Viewing Pay Rate History

Open a team member and look at their pay rate history to see every rate they've had.

Each entry shows:

  • Whether it's current, scheduled, or past

  • The rate type and amount

  • The fully loaded rate

  • The dates it applies from and to

  • Who changed it and when

  • The reason given

Entries are listed newest first.

The audit trail is the more granular view - every individual change with its before and after values. Use the history to answer "what was this person paid in March", and the audit trail to answer "who changed this and when".


The Fully Loaded Rate

The fully loaded rate is the base rate plus overhead - what a person actually costs you per hour rather than what lands in their pay.

This value is calculated and stored when the rate is set, not recalculated later. So a job costed last year keeps the fully loaded figure that applied then, even if your overhead assumptions have since changed.


Overriding a Rate on a Single Job

A team member's rate can be overridden for one specific job, without touching their standing rate.

You'll be asked to confirm the override, and the change is recorded. Job-level compensation is captured as a snapshot, so the job keeps the rate that applied to it.

One override worth understanding is no compensation. Setting it means that person's cost is excluded from the job's cost totals and from the Job Costing report - useful for an owner working their own job, or a salaried person whose time you don't want loaded onto individual work.

Reverting the override restores their normal rate and recalculates their cost from the hours logged.


What Counts as Payable Hours

Compensation is calculated from logged hours, and which hours count depends on your business settings.

  • Work time always counts.

  • Break time counts only if you pay for breaks.

  • Drive time counts only if you pay for drive time.

If labor costs look lower than the raw hours suggest, these settings are the first place to check. See How to Set Up Your Company Profile and Settings.


Tips & Best Practices

  • Write a real reason. "Annual review, agreed 12 March" is worth having in six months. "Update" isn't.

  • Schedule raises when you agree them. Set the future date immediately and it applies itself, rather than depending on someone remembering.

  • Set the effective date deliberately. It's what decides which jobs get costed at the new rate. Backdating changes what past jobs appear to have cost.

  • Check the history before a pay conversation. The dated record settles most disputes in a minute.

  • Use job-level overrides sparingly. A standing rate that's right is better than a pile of exceptions.

  • Read the overlap window rather than clicking through. It shows you exactly which existing rule is about to be trimmed.


Things to Know

  • Pay rates are dated rules, not single values. Each has a start and optionally an end.

  • Only one rate is current at a time. Overlaps trim the existing rule.

  • Audit entries are permanent. They can't be edited or deleted.

  • Both the trim of an existing rule and the new rule are recorded as separate audit entries.

  • Cancelling a scheduled rate change is recorded too.

  • The fully loaded rate is stored at the time of the change, not recalculated on viewing.

  • Jobs are costed using the rate that applied when the work was done.

  • A no compensation override excludes that person's cost from the job's totals and from the Job Costing report.

  • Break and drive time only count toward compensation if your business settings pay for them.

  • Viewing compensation history requires permission to create or edit user compensation. It isn't visible to everyone.

  • A note can be added when creating or editing compensation.


Troubleshooting

I can't see pay rate history.
It's restricted to roles with permission to create or edit user compensation. Ask an admin to review your role.

An old job's cost changed after I updated someone's rate.
Check the effective date on the new rule. If it was backdated to before that job, the job is recosted at the new rate. Set effective dates forward to leave completed work alone.

A confirmation window appeared that I didn't expect.
The new rate's dates overlap an existing rule. The window shows which rule will be trimmed. Read it before confirming - it's telling you the change is bigger than it looks.

Someone's labor cost is lower than their logged hours suggest.
Check whether your business pays for break and drive time. Unpaid categories don't count toward compensation.

A team member's cost is missing from a job entirely.
Their compensation may be overridden to no compensation on that job, which excludes them from the totals. It's also worth checking whether they were removed from the job - see Unassign vs. Remove a Team Member from a Job.

A scheduled raise didn't take effect.
Check the pay rate history for that person. If the rule shows as cancelled, the audit trail will show who cancelled it and when.


Have questions? Reach out via the support chat or email support@motionops.com.

Did this answer your question?