Most people glance at one number on their pay stub, the net pay, and file it away. That misses the point of the document: a stub is an audit trail, and reading it top to bottom takes two minutes and catches real money errors. This guide shows how to read a pay stub in five steps, using one complete gross-to-net example.
The example stub we will read
Our example worker earns $25 an hour, paid biweekly. This period: 80 regular hours and 6 overtime hours.
| Line | Calculation | Amount |
|---|---|---|
| Regular pay | 80 × $25.00 | $2,000.00 |
| Overtime pay | 6 × $37.50 (1.5x) | $225.00 |
| Gross pay | $2,225.00 | |
| Social Security | 6.2% of gross | −$137.95 |
| Medicare | 1.45% of gross | −$32.26 |
| Federal income tax | withheld per W-4 | −$222.50 |
| State income tax | −$111.25 | |
| Health insurance | flat premium | −$75.00 |
| 401(k) | 5% of gross | −$111.25 |
| Total deductions | −$690.21 | |
| Net pay | $2,225 − $690.21 | $1,534.79 |
Step 1: Verify the basics
Check the pay period dates, your name, and the pay date first. A stub for the wrong period explains most "my pay is short" panics: overtime worked in the next period simply has not been paid yet. Confirm the hours too. Here, 86 total hours for two weeks means one 46-hour week and one 40-hour week, which is when the 6 overtime hours should appear.
Step 2: Rebuild gross pay yourself
Do not trust the printed gross; rebuild it. Regular hours times rate, plus overtime hours times 1.5 times rate: 80 × $25 = $2,000, and 6 × $37.50 = $225, totaling $2,225. If your own rebuild differs from the stub, the error is in hours, rate or the overtime multiplier, and it is much easier to fix in the same pay cycle. If you are salaried, gross should equal your annual salary divided by the number of periods: a $65,000 salary paid biweekly is $2,500 per stub.
Step 3: Follow the FICA lines (the fixed math)
Social Security and Medicare, together called FICA, are the easiest lines to verify because the rates are fixed for employees:
- Social Security: 6.2% of gross → $2,225 × 0.062 = $137.95
- Medicare: 1.45% of gross → $2,225 × 0.0145 = $32.26
- Combined: $170.21, exactly 7.65% of gross
If these two lines do not equal 7.65% of gross, something specific is going on: you passed the annual Social Security wage base, you are in a FICA-exempt category, or there is an error. To practice on your own pay, run your gross through the pay stub generator and compare the auto-calculated FICA with your real stub.
Step 4: Read the tax withholding lines (the variable math)
Federal and state income tax lines are withholding, meaning estimates collected each period and settled on your tax return. Unlike FICA they have no single correct percentage: they depend on your W-4, pay frequency and income level. In the example they are $222.50 federal (10.0% of gross) and $111.25 state (5.0%). What you can check: that the lines exist, that they move when your pay moves, and that a changed W-4 actually changed the federal line. A federal line of $0 on a full-time stub, or one that never changes when overtime hits, deserves a question to payroll.
Step 5: Check voluntary deductions and the final math
Health insurance ($75) should match the premium you enrolled for, and the 401(k) line should match your elected percentage: 5% of $2,225 = $111.25. Then do the final check the whole stub exists for:
Gross − total deductions = net pay. $2,225.00 − $690.21 = $1,534.79, and that net should equal the deposit that hit your account, to the cent.
One more useful number: the effective deduction rate, $690.21 ÷ $2,225 = 31.02%. Knowing yours explains why a $2,225 gross paycheck "feels like" a $1,535 one, and it is the honest figure to use when comparing job offers. For what every field on the stub means, see what information is on a pay stub; for the document itself versus the money, see pay stub vs pay check.
Reading the YTD columns
Each line usually has a year-to-date twin. After 12 identical biweekly periods, YTD gross is $2,225 × 12 = $26,700 and YTD FICA is $170.21 × 12 = $2,042.52. YTD is what lenders read, and your December stub's YTD columns should land very close to your W-2 totals.
Red flags worth a payroll question
- Overtime hours present but paid at 1.0x instead of 1.5x
- FICA lines that are not 7.65% of gross with no explanation
- A deduction you never enrolled in
- YTD gross that did not rise by exactly this period's gross
- Net pay on the stub that differs from the actual deposit
FAQ
How do I know if my pay stub is correct?
Rebuild it: hours × rate for gross, 7.65% of gross for FICA, your elected percentages for retirement, then gross minus total deductions must equal net pay and your deposit. Our worked example: $2,225 gross − $690.21 deductions = $1,534.79 net.
What does YTD mean on a pay stub?
Year-to-date: the running total from January 1 to this stub for each line. After 12 biweekly periods at $2,225 gross, YTD gross is $26,700. Lenders and the IRS rely on YTD figures because one period can be atypical.
Why is my net pay different every paycheck?
Usually overtime, bonuses or commissions change gross, and income tax withholding scales with it. FICA also changes because it is a fixed 7.65% of whatever gross is. Flat items like health premiums stay constant, which is why net moves less than gross does.
How much tax should come out of a $2,225 paycheck?
FICA is fixed: $170.21 (7.65%). Income tax withholding varies by W-4 and state; in our example it is $222.50 federal and $111.25 state. Your real figures depend on your elections and tax situation, and the difference is settled on your annual return.
What percentage of my paycheck goes to deductions?
Add total deductions and divide by gross. In the example: $690.21 ÷ $2,225 = 31.02%, including voluntary items like insurance and a 5% 401(k). Statutory items alone (FICA plus income tax) are $503.96, or 22.65% of gross.
What should I do if I find an error on my pay stub?
Raise it with payroll promptly, in writing, with your own calculation attached. Underpayment corrections are normally added to the next run, and keeping the stub plus your note gives you a clear record if it is not fixed.
