YTD consistency check: does each stub's year-to-date gross follow from the last?
A stack of pay stubs for one job should tell one story. Each stub's year-to-date gross should equal the previous stub's YTD plus the gross printed on it. When it does not, the difference points at a missing stub, a correction or a misread number.
What is a YTD consistency check?
A YTD consistency check tests that the year-to-date gross on consecutive pay stubs adds up:
YTD(n) = YTD(n-1) + gross(n)
It applies to stubs from the same employer and employee, in pay-date order, with no pay period skipped in between. It is arithmetic on the numbers printed on the stubs, and it says nothing about whether the stubs are genuine.
Example: one stub missing, one stub off, on the rail
Built-in sample B (fictional people and employers). The rail between stubs is green where the chain ties and amber where it does not. The third stub's YTD includes the pay of the March 17 to 23 stub, which is not in the file.
- Math checks pass
Stub 1 · Weekly
Paid Mar 14, 2025
Period Mar 3 – Mar 9, 2025
- Gross
- $918.00
- Taxes
- $164.59
- Deductions
- $91.14
- Net
- $662.27
YTD gross $9,648.00 · YTD net $6,960.33
- Gross - taxes - deductions = net. 918.00 - 164.59 taxes - 91.14 deductions = 662.27, matching net pay.
- Earnings lines add up to gross. 3 earnings line(s) add to 918.00.
4 more consistency checks passed.
Lines read from this stub
Earnings read
Line Hours Rate Current YTD Regular 40 22.50 900.00 9,000.00 Overtime 0 33.75 0.00 405.00 Shift Differential 12 1.50 18.00 243.00 Taxes read
Line Current YTD Federal Withholding 74.42 763.82 Social Security Tax 52.97 593.73 Medicare Tax 12.39 138.87 State Income Tax 24.81 287.01 Deductions read
Line Current YTD 401(k) Employee pre-tax 27.54 289.44 Health Insurance pre-tax 54.00 522.00 Dental Insurance pre-tax 9.60 92.80 YTD chain ties
9,648.00 + 1,053.00 = 10,701.00
2 to reviewStub 2 · Weekly
Paid Mar 21, 2025
Period Mar 10 – Mar 16, 2025
- Gross
- $1,053.00
- Taxes
- $190.62
- Deductions
- $107.59
- Net
- $767.19
YTD gross $10,701.00 · YTD net $7,727.52
- Gross - taxes - deductions = net. 1,053.00 - 190.62 taxes - 107.59 deductions = 754.79, but net pay prints 767.19 (higher by 12.40).
- Earnings lines add up to gross. 3 earnings line(s) add to 1,053.00.
- Deduction lines add up to the printed total. Deduction lines add to 107.59 but the stub's total deductions prints 95.19 (differs by 12.40).
3 more consistency checks passed.
Lines read from this stub
Earnings read
Line Hours Rate Current YTD Regular 40 22.50 900.00 9,900.00 Overtime 4 33.75 135.00 540.00 Shift Differential 12 1.50 18.00 261.00 Taxes read
Line Current YTD Federal Withholding 86.20 850.02 Social Security Tax 61.34 655.07 Medicare Tax 14.35 153.22 State Income Tax 28.73 315.74 Deductions read
Line Current YTD 401(k) Employee pre-tax 31.59 321.03 Health Insurance pre-tax 54.00 576.00 Dental Insurance pre-tax 9.60 102.40 Parking pre-tax 12.40 12.40 1 pay period missing (Mar 17 – Mar 23, 2025)
1 pay period between stub 2 and stub 3 is not in the file, so the chain cannot be tied. Printed YTD implies 985.50 was paid in that period.
1 to reviewStub 3 · Weekly
Paid Apr 4, 2025
Period Mar 24 – Mar 30, 2025
- Gross
- $921.00
- Taxes
- $165.16
- Deductions
- $91.23
- Net
- $664.61
YTD gross $12,607.50 · YTD net $9,090.81
- Gross - taxes - deductions = net. 921.00 - 165.16 taxes - 91.23 deductions = 664.61, matching net pay.
- Earnings lines add up to gross. 3 earnings line(s) add to 921.00.
4 more consistency checks passed.
Lines read from this stub
Earnings read
Line Hours Rate Current YTD Regular 40 22.50 900.00 11,700.00 Overtime 0 33.75 0.00 607.50 Shift Differential 14 1.50 21.00 300.00 Taxes read
Line Current YTD Federal Withholding 74.68 1,013.39 Social Security Tax 53.16 769.33 Medicare Tax 12.43 179.94 State Income Tax 24.89 370.20 Deductions read
Line Current YTD 401(k) Employee pre-tax 27.63 378.23 Health Insurance pre-tax 54.00 684.00 Dental Insurance pre-tax 9.60 121.60
What each result means, and what to do
The same six words appear in the chain-report CSV, so the result can be filtered in a spreadsheet.
| Result | What it means | What to do |
|---|---|---|
TIES | The printed YTD gross equals the previous stub's YTD plus this stub's gross, within $0.02. | Nothing to do. |
BREAK | The pay periods are consecutive, but the printed YTD differs from the expected figure. The difference is shown. | Compare both stubs with the originals. Look for a correction, an off-cycle payment, or a misread digit. |
GAP | One or more pay periods are missing between the two stubs. The YTD difference shows the gross the missing stub or stubs would have to hold. | Ask for the missing stub, or confirm that no pay was issued for that period. |
RESET_OK | The pay date falls in a new year and the YTD restarted: it equals this stub's own gross. | Nothing to do. |
RESET_BREAK | The pay date falls in a new year, but the YTD did not restart as expected. | Check the pay date and the YTD printed on the first stub of the year. |
UNCHECKED | A year-to-date figure or a pay date was not read on one of the two stubs, so the link cannot be tested. | Open the lines read from the stub, and compare with the original. |
How to run the check by hand
This is what the converter does for you, in case you want to do one stub pair yourself.
-
Put the stubs in pay-date order
Oldest first, one employer and one employee at a time. A second job or a second person starts a new chain.
-
Look for a skipped pay period
Weekly stubs are 7 days apart, biweekly 14, semimonthly twice a month, monthly once. If a date is missing, the chain cannot tie across it, and the YTD difference tells you how much pay the missing stub holds.
-
Add this stub's gross to the previous YTD
Previous stub's YTD gross plus this stub's gross pay. Use the printed figures, to the cent.
-
Compare with the printed YTD, and handle the new year
A difference above $0.02 is a break. On the first pay date of a new year the YTD should restart, so it should equal that stub's own gross.
Why a chain can break without anything improper
Most breaks have ordinary causes. That is why the result is a pointer to where to look and never a verdict.
A stub is not in the stack
The applicant sent five of six stubs. The next stub's YTD still includes the missing pay.
Pay outside the regular cycle
A bonus, commission or final payout on a separate check adds to YTD without appearing on a regular stub.
A payroll correction or retro pay
An adjustment can change YTD by an amount that is not in the period's gross.
A change of payroll system or entity
YTD can restart or be carried over in a different way partway through the year.
What counts as gross
Some employers treat certain pre-tax benefits or imputed income differently between the period and the YTD line.
A misread digit
Phone photos and scans can turn a 3 into an 8. A break next to a photo is worth comparing with the page before anything else.
What this check cannot do. It does not detect altered documents, and a stub edited with its arithmetic kept consistent will pass. It does not verify that the employer or the employment exists. Verification of employment and income is a separate step.
Checking the YTD chain: by hand, generic OCR, VerifyStub
| What you need | By hand in a spreadsheet | Generic PDF-to-Excel / OCR | VerifyStub |
|---|---|---|---|
| Putting stubs in order | Sort by eye | Stays in upload order | Ordered by pay date, grouped by employer and employee |
| Adding this gross to the last YTD | One calculator entry per pair | Not done | Done for every neighbouring pair, to the cent |
| Noticing a skipped pay period | Only if you check the dates | Not done | Missing period named, with the gross it would have to hold |
| The turn of the year | Easy to get wrong | Not done | YTD expected to restart on the first pay date of a new year |
| Where it goes wrong | Hunt through the stack | No signal | An amber link between the two stubs involved |
| What a pass means | Depends on who checked | Nothing | The printed figures agree with each other. Nothing more |
YTD consistency check: common questions
What is a YTD chain?
It is the relationship between year-to-date gross figures on consecutive pay stubs from the same employer. Each stub's YTD gross should be the previous stub's YTD gross plus the gross pay printed on the new stub.
How much difference is allowed?
Two cents. Payroll systems round to the cent, so a difference of $0.02 or less counts as a tie. Anything larger is shown as a break, with the amount.
What happens at the start of a new year?
The first stub with a pay date in the new year should show a YTD gross equal to its own gross, because the count restarts. The check uses the pay date to decide which year a stub belongs to, and shows RESET_OK when the restart happens and RESET_BREAK when it does not.
How does it know a stub is missing?
From the pay dates and the pay frequency. Weekly stubs should be about 7 days apart, biweekly about 14, semimonthly follow the 1st-15th and 16th-end-of-month periods, and monthly follow the calendar month. A larger jump is reported as the number of missing periods and their dates.
What is the 'implied missing gross'?
If one stub is missing, the printed YTD on the next stub still includes that stub's pay. The difference between the printed YTD and the expected YTD is therefore the gross the missing stub would have to hold. It is a pointer for conversation, not a figure to use as income.
Does a break mean the stub is fake?
No. Breaks come from missing stubs, off-cycle payments such as bonus checks, payroll corrections, employer payroll changes during the year, pre-tax benefit treatment, and misread digits. The check cannot tell these apart, and it does not detect altered documents.
Does a tie prove the stubs are genuine?
No. A document altered with care to keep the arithmetic consistent will tie. A tie means the printed figures agree with each other, which is useful for catching mistakes and missing stubs and not more than that.
What if a stub does not print year-to-date figures?
Then the link to and from that stub is shown as unchecked, in grey. The per-stub math is still tested, and the warnings list which stubs had no YTD gross.
What if the stubs are from two employers?
They are grouped by employer and employee and each group gets its own chain, so a second job does not cause false breaks. The summary panel covers the first group and the timeline and downloads cover all of them.
Which YTD figure is tested?
YTD gross. If the stub does not print a YTD gross but does print a YTD for every earnings line, those are added up and the stub notes that it was summed. YTD taxes, deductions and net are read and written to the CSV but are not part of the chain test.
Test the chain on your own stubs
Free: 1 file per day, up to 10 pages, no account. The chain report downloads as CSV.
Upload pay stubs