My pay stub adds up — can I still have been underpaid?
Published August 21, 2026
The short answer
Yes. A stub can be internally correct and still pay you less than you agreed to. The hours and the gross agree with each other, every line adds up, and the rate those two numbers imply is simply lower than your rate.
It happens because most checking looks at whether the stub is consistent, not at what it is consistent with. Multiply the hours by the rate on the page and you get the gross — so the stub passes. Nothing on it is compared to the deal you were actually offered, because the deal is not printed on it.
The way to see it is to work backwards. Take the gross, divide by the hours the stub says it paid, and you have the rate the stub is really paying. Set that against the rate you agreed. If it comes out lower, the difference is real however neatly the rest of it adds up.
What you can do
- 1
Find the rate you agreed
Offer letter, contract, a message confirming it. This is the half that is never on the stub.
- 2
Take the hours and the gross off the stub
The hours it says it paid, and the gross before deductions.
- 3
Check whether any of those hours were overtime
If they were, the ordinary and overtime hours have to be separated before dividing.
- 4
Divide gross by hours
That is the rate the stub is really paying — your arithmetic on their numbers.
- 5
Keep every stub
One is a period. A run of them is what tells you whether it was a one-off or a pattern.
Where the exact rules matter: the specifics — figures, thresholds, deadlines, and which rules apply — vary by state and by your situation. Check them with the U.S. Department of Labor (dol.gov) or your state labor department rather than relying on a number from anywhere else.
In plain terms
- Gross
- What you were paid before deductions. The figure the hours have to be divided into.
- Derived rate
- Gross ÷ hours — the rate a stub implies when it does not print one. It is arithmetic on the employer's figures, not something the employer stated.
- Reconciles
- The numbers on the stub agree with each other. It says nothing about whether they match what you agreed.
- Tolerance
- The rounding wobble payroll systems produce. A couple of cents, or about 1% on bigger rates — below that it is arithmetic, not a dispute.
Where rippedoffworker comes in
The guide tells you what to do — the app does it with you.
rippedoffworker helps you log the hours, pay, and treatment as they happen and builds a dated record over time — so what your hours came to against what you were paid, as your own estimate, and the pattern behind it are organized in one place, ready to take to the people who can help.
rippedoffworker is a record-keeping tool, not a law firm, and does not give legal advice. Any amounts are arithmetic on the figures you entered — apparent, not a guaranteed or legally determined amount.
How can a stub be correct and wrong at the same time?
Because those are two different tests. Being correct means the numbers on the page agree with each other. Being right means they match what you were promised. A stub can pass the first completely and fail the second, and only you can run the second — your agreed rate is not on the document.
That is also why it survives so long. Nobody querying the stub finds an error, because there isn't one on it. The mistake, if there is one, happened before the stub was printed.
How do I work out what my stub is really paying?
Divide the gross by the hours it says it paid for. That gives the rate those two figures imply — not a rate your employer stated, but our arithmetic on their two numbers.
If your stub does state an hourly rate, you do not need to work anything out: compare that against what you agreed, directly. Working it out backwards is for the many stubs that print a gross and hours and no rate at all.
Why does overtime break this?
Because gross covers every hour the stub paid, and if some were paid at a higher rate the division blends the two together. The answer is not your ordinary rate and not your overtime rate — it is a number in between that matches neither.
So it is worth knowing before you divide. If some of those hours were overtime, the ordinary hours and the overtime hours have to be separated first. The check below asks rather than assuming, and refuses to give a figure it cannot stand behind.
What if it works out higher than I agreed?
That is normal and it is not a finding. An overtime premium, a shift differential, holiday pay, back pay or a bonus all push gross above hours × your base rate. Gross is not a multiplication of your ordinary rate, and a stub that works out higher usually just means you were paid something extra.
It only becomes a question when the figure comes out lower — and even then, by more than payroll rounding. A couple of cents is arithmetic, not a dispute.
What is worth writing down?
The rate you agreed, and where that came from — an offer letter, a contract, a message. Then, for each stub: the hours it paid, the gross, and whether any of those hours were overtime.
One stub tells you about one period. What makes it worth anything is a run of them: whether the rate drifted once or has been wrong since a particular date is a completely different conversation, and it is only answerable if the stubs were kept.
One stub that reconciles perfectly, and is still short
| What the stub shows | What it means | |
|---|---|---|
| Hours it paid | 40 | the hours are not in dispute |
| Gross | $920.00 | every line on the stub adds up |
| Rate it works out to | $23.00/hr | our arithmetic — $920 ÷ 40 |
| The rate you agreed | $24.00/hr | not printed on the stub |
| Difference | $1.00/hr | below the agreed rate, not a rounding gap |
| Across this stub | $40.00 | 40 hours × $1.00 |
Nothing on this stub is inconsistent — 40 × $23.00 is exactly $920.00, which is why checking the stub against itself finds nothing. The $23.00 is worked out from the gross and the hours; the stub never stated a rate. Had it worked out higher than $24.00 there would be nothing to raise: a premium, a differential or holiday pay all do that.
Check it against your own week
Put in the rate you agreed, and the hours and gross off one stub. We’ll show you what it actually works out to — and say so plainly if it comes out fine.
Check my stubFree, no account needed. Private to you — nobody is contacted or notified.