Pay stub verification is the work of proving that the pay shown on a stub actually reached the applicant, and the only way to do that from inside the file is to find the deposit. Net pay on the stub is a specific amount on a specific date; the bank statement either holds a credit for it or does not. Everything else a lender can do with a stub — check the arithmetic, check the fonts, ask the employer — tests the document. The deposit tests the money. Botminds’ Income and Document Verification builds the pay calendar from the stubs and the payroll response, then goes looking for every deposit that calendar predicts, and puts the two columns side by side with the gap numbered where there is one.
The examples are from the fictional sample files in the solution: Marcus Ellery, whose six pay dates all match, and Kayla Brandt, whose two August stubs have no deposit behind them. People, employers and banks named here are invented. Research figures and rules come from the agencies that publish them, linked under each figure.
Pay stub verification in Income and Document Verification, step by step
Agent
Read the stubsPull net pay, the pay period, the pay date and the pay frequency from every stub in the file, with the page each figure sits on.
Never: Never guesses a figure it cannot read — it asks for a better copy
Agent
Build the pay calendarWork out every pay date that should fall inside the statement period, from the frequency on the stubs and the salary on the payroll response.
Agent
Classify every creditSort each deposit in the statements by source: payroll from the named employer, side income, transfers in, refunds, everything else.
Never: Never reads beyond the statements provided
Agent
Match date to date, cent to centPair each predicted pay date with the credit that lands on or about it, and show the difference where the amounts are not identical.
Agent
Check the statement is wholeConfirm every page is present and that the balances carry from page to page, so a missing page cannot hide a pay date.
A person decides
The analyst decidesReads the unmatched pay dates with the pages behind them, and approves, requests a document or refers the file.
What is pay stub verification, and what does it actually prove?
Pay stub verification, as lenders practise it, means three different jobs that often get the same name. The first is extraction: reading the salary, the net pay, the pay dates and the year-to-date totals off the page. The second is integrity: testing whether the document is what it claims to be. The third is corroboration: comparing what the stub says with something that did not come from the applicant’s hands.
Only the third is verification in the sense the rules mean. Regulation Z, setting the standard for mortgage lending, requires a creditor to verify income “using third-party records that provide reasonably reliable evidence of the consumer’s income or assets” and lists both “payroll statements” and “financial institution records” among them (12 CFR 1026.43(c)(4)). A stub and a bank statement are two such records, and they are independent: the applicant can produce a convincing stub far more easily than they can produce a convincing three months of statements with a matching credit on every pay date, running balances that carry, and nothing else out of place.
That independence is the whole value. A stub that passes every arithmetic check and matches its deposit to the cent has been corroborated twice. A stub that passes every arithmetic check and has no deposit behind it has been contradicted by a document the applicant also sent, which is a much stronger position for a lender than a doubt about a font.
How to match a pay stub to a bank deposit, step by step
The method is short enough to do by hand on one file and long enough to be skipped on the eleventh. Read it as the specification the solution implements, and as the procedure to write into your own.
First, establish the pay frequency, because it sets which dates to look for. Two in three US private business establishments pay either every two weeks or weekly (BLS), so an assumption of a semi-monthly calendar is wrong more often than it is right. Second, list every pay date that falls inside the statement period, not just the dates on the stubs you were sent: a file with two stubs and three months of statements has four or more pay dates with no stub, and each of them should still have a deposit. Third, for each predicted date, find the credit. Fourth, compare the amount with net pay on the stub, or with net pay implied by the salary where no stub covers that date. Fifth, write down every date where there is no credit, and every date where the credit differs from net pay, with the page and line behind each.
Six pay dates, matched: the Income and Document Verification lineup on one sample file
| Pay date | Net pay on the stub or implied by salary | Credit in the account | Difference |
|---|---|---|---|
| 15 July | $2,607.18 | $2,607.18 — Kessler Logistics payroll | $0.00 |
| 31 July | $2,607.18 | $2,607.18 — Kessler Logistics payroll | $0.00 |
| 15 August | $2,607.18 | $2,607.18 — Kessler Logistics payroll | $0.00 |
| 31 August | $2,607.18 | $2,607.18 — Kessler Logistics payroll | $0.00 |
| 15 September | $2,607.18 | $2,607.18 — Kessler Logistics payroll | $0.00 |
| 30 September | $2,607.18 | $2,607.18 — Kessler Logistics payroll | $0.00 |
That last sentence is the part most procedures leave out. A missing statement page is only a problem if something you need falls inside it. Here the gap covers 16 to 22 August, and the applicant’s pay dates are the 15th and the 31st, so no deposit hides in it — but a recurring debit could, which is why the page was still requested. On a two-weekly calendar the same gap would have swallowed a pay date, and the match for that date would have been unknown rather than absent. Say which of the two it is, every time.
Why net pay and the deposit differ even when both are true
An exact match to the cent is the clean case. Several common arrangements break it without anyone doing anything wrong, and a method that treats every difference as a signal will bury its analysts.
The most frequent is a split deposit: the employee has told payroll to send a fixed amount or a percentage to a savings account, or to a second institution, and the statement you were sent holds only part of the net. The giveaway is consistency — the same two amounts, summing to net pay, on every pay date. Next is a mid-period change: a benefit election, a new deduction or a wage rise alters net pay from one cheque to the next, so the stub you hold matches three dates and not the other three. Then there is timing: a pay date that falls on a weekend or a holiday lands the business day before or after, and an employer that pays early in December does it once a year. Finally, some employers pay a portion as an expense reimbursement that arrives as a separate credit on the same day.
None of these should produce a signal on its own. All of them should produce a visible line that says what the difference was, because an analyst who can see “net $2,607.18, two credits of $2,107.18 and $500.00, same employer, every pay date” resolves it in four seconds and moves on.
The five honest reasons a stub has no deposit behind it
A pay date with no credit at all is the finding the method exists to produce — but before it is a finding it has to survive five explanations, and a lender who skips them will accuse the wrong people.
Before a missing deposit becomes a finding: the five explanations to rule out
- The applicant is paid somewhere else
The pay goes to an account the lender was not sent — a joint account, a second bank, a credit union. Ask which account the salary arrives in before asking anything else.
- The applicant is not paid into a bank account at all
Pay cards and cheques still exist, and 4.2% of US households had no bank or credit union account in 2023. A stub with no deposit is the expected result, not a signal.
- A statement page or a whole month is missing
If the pay date falls inside a gap in the pages, the match is unknown. Request the page; do not record an absence.
- The deposit is there under a name you did not search for
Payroll bureaux, umbrella companies and acquisitions mean the credit may carry a processor’s name rather than the employer’s. Match on amount and date as well as on name.
- The pay was late, not absent
A credit a few days after the pay date, for the right amount, is a payroll problem, not a document problem. Look either side of the date before concluding.
The two population facts that decide how often the method is inconclusive
4.2%
of US households had no bank or credit union account in 2023 — 5.6 million households
14.2%
were banked but used mostly non-bank services, so pay may not land where you are looking
30%
of adults had income that varied at least occasionally through 2025, so an irregular deposit pattern is normal
When a missing deposit is the finding
Rule out the five, and what is left is specific and hard to argue with. The sample file shows the shape of it. Kayla Brandt is paid every two weeks, net $2,410.00, into an account whose statements the lender holds in full. Five of her seven pay dates carry the credit. The 14 and 28 August dates do not — and the two stubs covering them claim $4,820.00 of pay in a month when the account received $0.00 from her employer.
Month by month, the stubs against the bank: the second sample file
| Month | Pay claimed on the stubs | Credited by the employer | What the file also holds |
|---|---|---|---|
| July | $4,820.00 | $4,820.00 — two credits of $2,410.00 | Nothing unusual |
| August | $4,820.00 | $0.00 | A payroll response recording unpaid leave from 3 to 28 August |
| September | $4,820.00 | $4,820.00 — two credits of $2,410.00 | The 25 September stub repeats August’s year-to-date total |
Notice how little weight the document checks are carrying here. The August stubs may well have perfect gross-to-net arithmetic and exact tax percentages. What convicts them is that the pay did not arrive, that the employer says the applicant was not working, and that the year-to-date total stood still — three independent facts, two of which came from outside the stub. The arithmetic checks that get the file to this point are set out in how to identify fake pay stubs.
What happens next is a procedure question, not a software one. In the solution a signal of this kind holds the file and refers it to a fraud analyst with every sign attached; no notice goes to the applicant until the fraud analyst has decided, and clearing the signal takes a written reason that a second person reads. Nothing is declined because a deposit was not found.
How many stubs, how recent, and how far back the statements go
The method needs an overlap: stubs whose pay dates fall inside the statement period. Three settings decide how much overlap there is, and they are worth setting deliberately rather than inheriting.
For stubs, two covering 30 days is the common floor, which is also the sample lender’s setting in the solution, with one stub within 30 days or two stubs plus a W-2 as the alternatives. The mortgage rulebooks are stricter about recency than most consumer policies: “the most recent paystub must be dated no earlier than 30 days prior to the initial loan application date,” and “it must include all year-to-date earnings” (Fannie Mae Selling Guide B3-3.1-02). For statements, two months is a common minimum and three is better, because three months of a semi-monthly calendar gives six pay dates to match rather than four, and because recurring debts show their pattern over three cycles rather than two. And there is an outer limit on the whole file: credit documents “must be no more than four months old on the note date,” where that means “credit reports and employment, income, and asset documentation” (Selling Guide B1-1-03).
Two ways to spend the same ten minutes on a pay stub
Reading the stub: That a document exists and is internally consistent.
Matching the money: That the pay on the document arrived in an account in the applicant’s name.
Reading the stub: A careful forger. Stub builders get the arithmetic right.
Matching the money: Nothing the applicant controls, short of forging the statements too — a far larger job.
Reading the stub: The stub, and the published tax rates.
Matching the money: The stub, the statements, and the pay calendar.
Reading the stub: Silently: a clean stub tells you nothing was found.
Matching the money: Loudly: an unmatched pay date is a date and an amount.
Reading the stub: Rarely — the arithmetic either holds or it does not.
Matching the money: When the applicant is unbanked, paid elsewhere, or a page is missing.
Reading the stub: A reason to look harder.
Matching the money: A verified income figure with a source for every dollar.
The lineup: every document in a column, every pay date a row

Writing the rule into credit policy
A match rule has to answer four questions before it can run the same way at nine in the morning and five in the afternoon: how far from the pay date a credit may land and still count; how large a difference between net pay and the credit is tolerated; what a split deposit counts as; and what an unmatched pay date does to the file. The sample lender in the solution answers the fourth one explicitly — an unmatched pay date raises a signal, a signal holds the file, and only a named person refers or clears it — and leaves the first three to the analyst, which is the honest arrangement when the volume is low and the wrong one when it is high.
The regulators’ interest here is in consistency rather than in any particular threshold. The OCC expects a bank’s policies to define “expectations for obtaining and assessing borrower information,” and warns that banks “relying on customer assertions rather than direct verifications face greater uncertainty, assume an inherently higher quantity of credit risk, and should have enhanced risk management practices to compensate” (OCC, Retail Lending, version 2.0). A deposit match is about as direct as a verification gets without leaving the file, which is why writing its tolerances down is worth the argument it will cause.
Regulation B sets one boundary on the whole exercise. A creditor “may consider the amount and probable continuance of any income,” but it may not “discount or exclude from consideration the income of an applicant … because the income is derived from part-time employment or is an annuity, pension, or other retirement benefit” (12 CFR 1002.6(b)(5)). An irregular deposit pattern is a reason to look at continuance; it is not a reason to count part-time pay at less than it is.
What the match cannot do
Three limits are worth stating out loud, because a method oversold is a method distrusted. The match says nothing about income the applicant does not deposit, which matters for cash earnings and for anyone who is paid by cheque and cashes it. It says nothing about whether the income will continue — a perfectly matched three months is still three months. And it cannot distinguish between an employer who pays late and an employer who did not pay at all without the payroll response or the applicant’s answer.
It also only works on statements that are whole and real, which is its own body of checks: page completeness, balances that carry, credits classified, debits read for debts nobody declared. Those are set out in bank statement verification software: six checks it must run, and the wider question of which documents a lender may rely on at all is in how do lenders verify income.
A stub with no deposit behind it, shown as a month

Questions people ask
What if a pay stub has no matching deposit?
Rule out the five honest explanations first: the pay goes to an account you were not sent, the applicant has no bank account, the relevant statement page is missing, the credit carries a payroll processor’s name rather than the employer’s, or the pay was late rather than absent. If the pay date survives all five, you have a specific date on which specific money did not arrive — which is a question for the applicant and, where the pattern repeats, a referral to whoever handles fraud. It is not grounds for a decision on its own.
Why does my net pay not match my deposit?
Most often because the deposit is split: a fixed amount or a percentage goes to a savings account or a second bank, so the statement shows part of the net. Other common reasons are a mid-period change to a deduction or a wage rate, a pay date that fell on a weekend or holiday and landed a business day either side, and an expense reimbursement paid as a separate credit. A lender should be able to show you which of these it concluded, and from which lines.
How many pay stubs do lenders need?
Two covering 30 days is the usual minimum for a salaried applicant, because one stub shows a single period while two show whether year-to-date pay advances the way the pay calendar says it should. Self-employed and commission income usually needs more history. Whether your lender asks for one stub, two, or two plus a W-2 is a credit policy setting, not a legal requirement.
How recent does a pay stub have to be?
Common practice is within 30 days of the application. The mortgage rulebooks make that explicit — Fannie Mae requires the most recent stub to be “dated no earlier than 30 days prior to the initial loan application date” — and set an outer limit of four months on income documentation at closing. Consumer lenders are freer, but the logic is the same: a stub from six months ago proves last spring’s income.
Can a pay stub be verified without the employer?
Yes, and it usually has to be. Payroll data networks answer for many large employers and few small ones, and a direct approach to a very small employer may not be independent of the applicant. The bank deposit behind the stub needs nobody’s cooperation but the applicant’s, who has already sent the statements — which is why it does most of the work in practice.
How do lenders verify pay stubs at volume?
By doing the same five steps on every file rather than on the suspicious ones. The arithmetic checks need only the page; the deposit match needs the pay calendar and the statements. Doing both on every referred file is what turns verification from a judgement about which files look odd into a figure, with a source, on every file — which is the difference the solution is built to make.