Skip to content
VerifyStub
  • Loan processors
  • Brokers' assistants
  • Landlord screening
  • Small-business bookkeepers

Pay stubs to an income worksheet, with the YTD chain checked

Upload one applicant's pay stubs as PDFs or phone photos. VerifyStub reads each stub into a row, checks gross minus taxes and deductions against net pay, and tests that year-to-date totals add up from one stub to the next. You get a CSV and a short list of what to look at before you calculate income.

Pay stub intake

Free: 1 file per day, up to 10 pages, no account

Used only for files over 10 pages or a second file in a day.

No file handy? Open a built-in sample (fictional people and employers).

Files are processed in memory and deleted after conversion. How uploads are handled.

  • Arithmetic consistency only. It does not detect altered documents or verify employment.
  • Files are processed in memory and deleted after conversion.
  • Only the last four digits of a Social Security number appear in results.

Sample result: three weekly stubs, one period missing, one stub off by $12.40

Brightwater Home Care (fictional), March to April 2025. The 03/17 to 03/23 stub is not in the file. Upload your own file above and this area is replaced with its stubs.

  1. Stub 1 · Weekly

    Paid Mar 14, 2025

    Period Mar 3 – Mar 9, 2025

    Math checks pass
    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

    LineHoursRateCurrentYTD
    Regular4022.50900.009,000.00
    Overtime033.750.00405.00
    Shift Differential121.5018.00243.00

    Taxes read

    LineCurrentYTD
    Federal Withholding74.42763.82
    Social Security Tax52.97593.73
    Medicare Tax12.39138.87
    State Income Tax24.81287.01

    Deductions read

    LineCurrentYTD
    401(k) Employee pre-tax27.54289.44
    Health Insurance pre-tax54.00522.00
    Dental Insurance pre-tax9.6092.80
  2. Stub 2 · Weekly

    Paid Mar 21, 2025

    Period Mar 10 – Mar 16, 2025

    2 to review
    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

    LineHoursRateCurrentYTD
    Regular4022.50900.009,900.00
    Overtime433.75135.00540.00
    Shift Differential121.5018.00261.00

    Taxes read

    LineCurrentYTD
    Federal Withholding86.20850.02
    Social Security Tax61.34655.07
    Medicare Tax14.35153.22
    State Income Tax28.73315.74

    Deductions read

    LineCurrentYTD
    401(k) Employee pre-tax31.59321.03
    Health Insurance pre-tax54.00576.00
    Dental Insurance pre-tax9.60102.40
    Parking pre-tax12.4012.40
  3. Stub 3 · Weekly

    Paid Apr 4, 2025

    Period Mar 24 – Mar 30, 2025

    1 to review
    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

    LineHoursRateCurrentYTD
    Regular4022.50900.0011,700.00
    Overtime033.750.00607.50
    Shift Differential141.5021.00300.00

    Taxes read

    LineCurrentYTD
    Federal Withholding74.681,013.39
    Social Security Tax53.16769.33
    Medicare Tax12.43179.94
    State Income Tax24.89370.20

    Deductions read

    LineCurrentYTD
    401(k) Employee pre-tax27.63378.23
    Health Insurance pre-tax54.00684.00
    Dental Insurance pre-tax9.60121.60

What is a pay stub income worksheet?

A pay stub income worksheet is a one-row-per-stub table of the figures an income calculation needs: pay period, pay date, gross pay, taxes, deductions, net pay and year-to-date totals, with earnings split into regular, overtime, bonus and commission.

VerifyStub builds that table from PDFs and photos, then adds the two arithmetic checks a careful processor does by hand: does each stub's math close, and does the YTD chain hold from one stub to the next.

How it works: four steps from upload to worksheet

  1. Upload the stubs

    Drop a PDF or phone photos of the pay stubs. The free allowance is 1 file per day, up to 10 pages, no account, which fits one file holding a full stack of stubs. More files can be added to the same worksheet.

  2. Each stub is read into a row

    Pay period, pay date, gross, taxes, deductions, net and year-to-date figures are read from every stub, along with the earnings lines. Stubs are grouped by employer and employee and put in pay-date order.

  3. The checks run

    Net-pay math and earnings sums are tested on each stub. Then the YTD chain is tested between neighbouring stubs, with missing pay periods and year-end resets handled.

  4. Review the flags and download

    Amber items tell you which stub or link to compare with the original. Download the CSV for your system or spreadsheet, and the chain report to keep with the file.

What gets checked, and what cannot be

Every check is arithmetic on the numbers printed on the stubs. That is useful for catching typos, misreads and missing stubs, and it has limits worth knowing before you rely on it.

  • Checked

    Net pay math

    Gross minus taxes minus deductions must equal net pay, within $0.02. Reimbursements added to net are handled, and the difference is shown when a stub is off.

  • Checked

    Earnings add up to gross

    Regular, overtime, bonus, commission and other earnings lines are summed and compared with the printed gross.

  • Checked

    Printed totals match the lines

    Total taxes and total deductions on the stub are compared with the line items under them.

  • Checked

    YTD chain

    For consecutive pay periods, each stub's YTD gross should equal the previous stub's YTD plus this stub's gross. Ties, breaks and year resets are shown on the rail between stubs.

  • Checked

    Missing pay periods

    A jump in pay dates is flagged with the missing period, and the YTD difference shows how much gross that missing stub would have to hold.

  • Checked

    Variable income share

    Overtime, bonus and commission as a share of gross, so the stable part of the income is easy to see.

What a clean result does not tell you

  • Not covered

    Altered or forged documents

    A stub edited so that its numbers still add up passes every check here. This is not fraud detection.

  • Not covered

    Employment or income verification

    Nothing here confirms that the employer exists or that the person works there. Verification goes through the employer or an approved service.

  • Not covered

    The underlying payroll

    YTD figures are tested against each other, not against the payroll system that produced them.

  • Not covered

    A misread photo

    A blurred digit can create a flag that is not on the document. Compare any flagged figure with the original page.

Manual entry, generic OCR and VerifyStub compared

Three ways to get a stack of pay stubs into a worksheet, and what each one leaves for you to do.

What you need By hand in a spreadsheet Generic PDF-to-Excel / OCR VerifyStub
What you get Whatever you type, laid out your own way Raw text or table cells, often one sheet per page One row per stub in a fixed set of columns, in pay-date order
Pay period and frequency Read from each stub and typed in Left as text; stubs stay in upload order Dates read, stubs ordered by pay date, weekly, biweekly, semimonthly or monthly detected
Gross - taxes - deductions = net Only if you build the formula for every row Not checked Checked on every stub within $0.02, with the difference shown
YTD chain across stubs Rarely done; easy to skip with six stubs on the desk Not checked Each YTD gross compared with the previous YTD plus this gross
A stub missing from the stack Found only if you notice the date jump Not detected Flagged with the missing pay period and the gross it would have to hold
Phone photos Re-typed from the image Quality varies; no signal when a digit is misread Read as images. A misread figure often breaks a check, which points you to the line to compare
SSN in the output Whatever you copy across Whatever is printed on the page Last four digits only
Who decides You You You. It lists what to look at; it does not approve or reject a document

Who uses a stub worksheet

Anyone who has to turn a pile of pay stubs into one defensible set of numbers.

  • Loan processors

    Build the income worksheet from the stub package before it goes to underwriting, and see straight away whether the YTD figures hold together.

  • Brokers' assistants

    Turn a borrower's phone photos into one clean sheet for the broker, and catch the missing stub before you ask the borrower for another upload.

  • Landlord screening staff

    Get every applicant's stubs into the same columns, so the monthly-income comparison is done the same way each time.

  • Small-business bookkeepers

    Pull an earnings history out of stubs when the payroll export is not available, with the arithmetic already tested.

Frequently asked questions

What does VerifyStub check on a pay stub?

Three things. First, on each stub, gross pay minus taxes minus deductions has to equal net pay within $0.02, and the earnings lines have to add up to gross. Second, the printed totals for taxes and deductions are compared with the lines under them. Third, across stubs for the same employer and employee, each year-to-date gross is compared with the previous stub's YTD plus the new gross, and missing pay periods are flagged.

How the YTD chain check works

Does it detect fake or altered pay stubs?

No. It tests arithmetic consistency only. A stub that was edited so that its numbers still add up will pass. It also does not verify employment or income. Treat a clean result as 'the math holds together', not as 'the document is genuine'.

Which pay stub formats can it read?

PDFs from payroll providers and employers, plus phone photos and scans (PNG, JPG, WebP, TIFF). Layouts differ a lot between payroll systems, so each stub is read on its own, and anything it could not read with confidence is shown as a warning instead of being filled in.

How many stubs and pages can I upload?

The free allowance is 1 file per day, up to 10 pages, no account. That fits one multi-page PDF with a stack of stubs. If you have separate photos, combine them into one PDF first with your phone's scanner. A longer file is not refused: its first 10 pages are converted and the page says how many were left out. A page code converts the whole file, up to 150 pages. Pro allows files up to 150 pages and 300 stubs per month.

See the plans

What does a broken YTD chain mean?

It means the year-to-date gross on a stub does not equal the previous stub's YTD plus the new gross. Common reasons are a stub that is not in the stack, an off-cycle payment such as a bonus check that is missing from the file, a payroll correction, or a misread number. None of these proves anything about the document by itself; they are the places to look first.

A stub is flagged but the original looks right. What now?

Open 'Lines read from this stub' under the card and compare each line with the original page. The usual causes are a deduction line that is not in the printed total, a figure misread from a photo, or an earnings line the reader classed differently. Fix the figure in the CSV if needed and note why.

Can I combine stubs from several files?

Yes. After a result appears, use 'Add another file'. The new stubs are merged in, duplicates are dropped, and the chain is checked again across the full set. You can also select several files at once. Each file counts against your allowance: the free allowance covers one file a day, and a page code covers a second file in a day.

Is the full Social Security number kept?

No. Only the last four digits appear in the worksheet, the CSV and the JSON. The uploaded file itself may show the full number, so it is handled as described in the privacy page.

Read how uploads are handled

Does it calculate qualifying income?

No. It reports average gross per pay period, an annualized estimate (average gross times pay periods per year), the latest YTD gross and the share of variable pay. Which method counts as qualifying income depends on the lender, program or landlord policy, so the final figure is yours to set.

Monthly income from pay-period figures

Can it read W-2s, bank statements or tax returns?

No. It is built for pay stubs. A W-2 or a bank statement uploaded here will most likely be rejected with a message that no pay stub figures were found.

Pay stub vs W-2

Run the next applicant's stubs through the checks

Free: 1 file per day, up to 10 pages, no account. Nothing to install.

Convert pay stubs