A loan file arrives with the documents the checklist asked for: two recent paystubs, last year’s W-2, and two months of bank statements. The stub reports year-to-date gross pay of US$ 96,400. The W-2 reports US$ 88,110 in Box 1. The largest recurring credit in the account is US$ 2,844, twice a month, which annualizes to US$ 68,256. Three numbers, no two alike, under a line item that reads “verify income”.

The reflex is to ask the applicant to explain the discrepancy. Usually there is nothing to explain. The three documents were never measuring the same quantity: one reports what an employer owed for a period, one reports what the tax code counted as wages for a year, and one reports what survived withholding and reached a single account. Agreement between all three would be the anomaly.

This article is about telling the two kinds of disagreement apart — the gap the documents produce by design, which is closed with arithmetic you can name, and the gap that is actually a signal, which is what a reviewer’s attention is for.

What each document is a record of

The three artifacts are routinely described as “income documents”, as though they were three copies of one fact. They are records of three different events, produced by three different systems, on three different calendars.

  • The paystub — one pay period, plus running totals as of that period, exactly as the employer’s payroll system computed them on the pay date. It is an internal accounting document, not a filing, and its layout is whatever the payroll provider chose.
  • The W-2 — a wage and tax statement filed for a completed calendar year, whose boxes are defined by tax-reporting rules rather than by any everyday meaning of income (see the IRS General Instructions for Forms W-2 and W-3, accessed 2026-09-18).
  • The bank credit — one deposit into one account, after every deduction and allocation, on the date the bank posted it, labelled with whatever text the payment descriptor carried.

So the stub answers what was earned in a period, the W-2 answers what was taxable for a year, and the deposit answers what arrived somewhere. A verification step that compares them as three readings of a single number will report a mismatch on nearly every honest file, and a reviewer who sees a mismatch on every file stops reading them.

The gaps that are correct by design

Most divergence in an income packet is structural. It has a cause you can state in one sentence and an arithmetic path from one document to the other.

PairWhy they differHow to close it
YTD gross vs W-2 Box 1Pre-tax amounts — retirement deferrals, health premiums, health and dependent-care accounts, transit — reduce taxable wages but not gross pay.Subtract the year-to-date pre-tax deduction lines from year-to-date gross and compare the result, not the gross.
W-2 Box 1 vs Boxes 3 and 5The three boxes have different bases. Elective retirement deferrals leave Box 1 but stay in Social Security and Medicare wages.Expect Box 1 below Boxes 3 and 5 by roughly the deferral, and treat the three as separate quantities.
Box 3 vs Box 5Social Security wages stop accruing once the year’s wage base limit is reached; Medicare wages have no limit.Above the limit, Box 3 is capped and Box 5 keeps climbing. The cap is a published figure, not a rounding error.
Net pay vs the depositNet pay can be split across several accounts, and part of it may be routed to a pay card or withheld under an order.Reconcile against the stub’s deposit allocation lines, one per destination, not against the net total.
Pay date vs posting dateA credit posts on or after the pay date, which can push a period into the next month or the next year in the statement.Match on the pay date from the stub, with a tolerance window, rather than on the statement date.
Late-December period vs the W-2Wages are reported for the year they are paid, not the year they are worked.A period worked in December and paid in January belongs to the following year’s W-2. Count pay dates, not work dates.

The last structural gap deserves naming separately because it is the one applicants get asked about most: annualizing a deposit does not recover gross pay. The credit is what remained after taxes, benefits and allocations, so multiplying it by the pay frequency understates gross by the whole withholding stack — and the shortfall grows with income, which is exactly when the number looks most suspicious.

Reconcile the identities, not the totals

The question worth asking is not “do these documents agree” but “does each documented figure follow from the others by a stated rule”. That turns verification into a handful of identities, each with named terms and a residual you can look at.

1. Gross to taxable wages

For one employer and one year, year-to-date gross minus the year-to-date pre-tax deduction lines should land on Box 1. Run the subtraction with the lines named, and read the residual. A residual of a few dollars is rounding across periods. A residual you cannot attribute to a line on the stub is the finding — and it is a far more useful one than “gross does not match Box 1”, which is true on every file.

2. Period parity

Year-to-date figures are accumulators, so two stubs from the same employer test each other for free: the later year-to-date gross minus the earlier one should equal the periods between them. A year-to-date total that moves backwards between two stubs of the same employer and year is arithmetically impossible, and it is the cheapest inconsistency in the whole packet to detect.

3. Statutory withholding

Two of the withholding lines are percentages fixed in statute rather than employer choices. For 2026, the employee share of Social Security tax is 6.2% of Social Security wages up to a wage base limit of US$ 184,500, and the Medicare rate is 1.45% with no wage base limit (IRS Publication 15, accessed 2026-09-18). Dividing the withheld amounts on a document by the wages on that same document reproduces those rates within rounding on a genuine stub or W-2. Income tax withholding is not a fixed rate and proves nothing here.

4. Allocation parity

Most stubs state how net pay was distributed. Those allocation lines, not the net figure, are what the bank statement can corroborate: one credit per destination, on or just after the pay date. A single deposit equal to the full net is one possible allocation, not the expected one.

5. Identity across the three

The employer appears as a trade name on the stub, as an employer identification number on the W-2, and as a payment descriptor on the statement. Those are three kinds of identifier and only the second is canonical. A descriptor naming a payroll processor instead of the employer is ordinary; a descriptor naming an unrelated party, or a W-2 whose tax year does not contain the stub’s pay date, is not.

Two adjacent problems are deliberately out of scope here. Sorting every line of an account into recurring obligations, one-off transfers and returned items is its own exercise, and the statement is worth its lines covers it; in this article the account is asked to corroborate one fact, not to describe itself. Normalizing several documents into a single period view for credit analysis is a different shape again, handled in four documents, one spread: there each cell carries a distinct fact, while here three documents describe the same fact and are expected to differ.

Divergence that earns a second look

Once the structural gaps are closed, a short list of residuals remains, and these are worth a person’s time.

  • A year-to-date total that moves backwards — two stubs from one employer and year where the later accumulator is smaller. No legitimate payroll operation produces it.
  • Taxable wages above gross pay — pre-tax amounts can only reduce taxable wages, so Box 1 exceeding year-to-date gross for the same employer and year is a contradiction, not a variance.
  • Withholding that does not track its own wage base — Social Security or Medicare amounts that fail to reproduce the statutory rates against the wages printed beside them.
  • A pay series with a hole — pay dates that should form a regular semi-monthly or biweekly sequence and skip one, with the accumulator advancing as though nothing were missing.
  • A deposit that exists only on the stub — an allocation line with no matching credit in the account it names, within the posting window.
  • Totals that are too round — accumulated taxes and net figures normally carry cents that follow from the rates; whole-dollar values across an entire stub are a template artifact.

None of these is proof of anything on its own, and consistency is not the opposite of them. A document generated from a template can satisfy every identity above, because whoever built the template worked from the same arithmetic — which is why these checks are a floor rather than a verdict, and why a plausible document is not a genuine one.

What the extraction has to deliver

Every check above is arithmetic over fields, so it stands or falls on what the extraction step actually returns. Five properties decide whether a reviewer can reconcile a packet or only compare totals.

  • One schema per document type — the same field names whichever payroll provider produced the file, so the identities are written once instead of per layout.
  • Period and accumulator figures together — a stub read that keeps only the current period discards the year-to-date values that period parity and the gross-to-taxable path depend on.
  • Deduction lines itemized — gross to taxable cannot be reconciled when the pre-tax amounts arrive as a single total, because the residual then has nothing to be attributed to.
  • Every figure citing its line — a residual is actionable only if the reviewer can jump to the line that produced each term.
  • The cross-check before the decision — accumulators tested against period totals at extraction time, surfaced as a flag, rather than after a model has already scored the file.

Payroll and W-2 extraction describes the normalized schema and the year-to-date parity check on the platform side, and mortgage document extraction covers the packet those fields land in. Both return structured fields with an audit trail behind each extraction, which is the part that makes a residual worth showing to a person.

Reconcile, then review

An income packet is not three copies of one number. It is a period record, a tax filing and a bank credit, and the distances between them are mostly explained by pre-tax deductions, different wage bases, allocation splits and the calendar. Those distances are computable, and computing them is cheaper than asking an applicant to account for a gap that the documents were always going to have.

What remains after the arithmetic is the real output of verification: a small set of residuals nobody can attribute to a named line. That set is short enough to read, specific enough to ask about, and it is the only part of the packet where a reviewer’s judgement was ever needed.