Extract data from pay stubs
Unstract reads pay stubs, payslips and other proof of income, from payroll portal PDFs to phone photos of a folded earnings statement, and sends employer, gross and net pay, deductions and year-to-date earnings to your loan origination system.
| DESCRIPTION | CURRENT | YTD |
|---|---|---|
| EARNINGS | ||
| Regular · 80.00 hrs @ 32.50 | 2,600.00 | 57,200.00 |
| Overtime · 6.00 hrs @ 48.75 | 292.50 | 4,826.25 |
| Gross pay | 2,892.50 | 62,026.25 |
| DEDUCTIONS | ||
| Federal income tax | 248.62 | 5,318.40 |
| State income tax · IL | 131.20 | 2,804.75 |
| Social Security | 173.36 | 3,714.14 |
| Medicare | 40.54 | 868.63 |
| 401(k) · 6% | 173.55 | 3,721.58 |
| Health insurance · medical | 96.40 | 2,120.80 |
| Total deductions | 863.67 | 18,548.30 |
| NET PAY | ||
| Direct deposit · checking ****4471 | 2,028.83 | — |
| Net pay | 2,028.83 | 43,477.95 |
OT in 2025? need W-2 to average it — TL
Non-negotiable · Direct deposit advice
{ "employer": "Brightwater Logistics, Inc.", "employee": "Marcus J. Okafor", "employee_id": "40718", "pay_period": "10/05/2026 – 10/18/2026", "pay_date": "10/23/2026", "gross_pay": 2892.5, "overtime_pay": 292.5, "net_pay": 2028.83, "ytd_gross": 62026.25, "confidence": 0.94}
Trusted by lending and onboarding teams around the globe
Applicants send whatever proof of income their payroll gives them
One borrower prints a stub from the payroll portal. The next sends a photo of the paper copy that came with a paper check, and a third sends a screenshot from an app.
Paper stubs photographed after being folded into an envelope
Three payroll providers, three headings for the same year-to-date column
A small employer's hand-filled stub, gross pay corrected in pen
Two stubs, two years of W-2s and an offer letter in one upload
A year of earnings exported from the payroll portal instead of stubs
Processors divide year-to-date pay by the weeks worked, separate overtime from base pay and compare each stub with the W-2 on a spreadsheet, so income stays unverified and the loan sits in processing.
Unstract reads every stub in its payroll provider's layout, extracts earnings, deductions and year-to-date totals, checks them against the W-2 and the deposits, and records the verified income in your loan origination system.
Read pay stubs, extract the income, verify it on one platform
LLMWhisperer reads the stub, Document Studio turns it into income figures, Flow runs the income verification around them. Start with one product, or put all three together for the whole income file.
Parse pay stubs with every earning and deduction kept in its column
Get the full text of a pay stub, whether it is a payroll portal PDF, a scan from the employer's HR office or a photo of a creased paper copy. Current and year-to-date amounts stay on the line they belong to, so this period's overtime is never read as the year's, and the employer block, pay period and pay date are read apart from the earnings table. UK and Australian payslips, with their tax code, National Insurance or superannuation lines, are read the same way.
Send the text to your own LLM, or make payslip OCR the first step of an income verification workflow.
Learn more about LLMWhispererTurn pay stubs into income figures an underwriter can calculate from
Use Document Studio as a payslip data extractor: name the fields once, from employer and pay frequency to each earnings line, each deduction and every year-to-date total, and stubs from any payroll provider come back in one JSON structure. Overtime, bonus and commission arrive as their own figures, separate from base pay. Each stub is checked on the way out: earnings must add up to gross pay, gross minus deductions must equal net pay, and a net amount that differs from the deposit on the bank statement is flagged with both figures.
Call it as an API from your borrower portal, run it as an ETL pipeline on the folder where income documents land, or make it one step in an orchestrated income verification run.
Learn more about Document StudioRun income verification from the first pay stub to a verified figure
Describe how your team verifies income from pay stubs in plain English, and Flow's agents build the workflow. Stubs, W-2s, offer letters, tax returns and bank statements come in from the applicant, each one is read, year-to-date pay is compared with the pay period and the W-2, and net pay is matched to the payroll deposits. Monthly income is worked out by pay frequency the same way on every file, with overtime and bonus kept apart, and the result goes to your loan origination system, such as ICE Encompass or Dark Matter Empower. You approve the workflow once, and each applicant's income runs through it identically.
Decide what sends a file to a person: year-to-date pay that does not reconcile, deposits that do not match, an employer that differs from the application, or a stub older than 30 days. Only those files stop, and the underwriter sees the stub line behind each question.
Learn more about FlowExtract pay stub data now. Automate income verification when you're ready.
Start for free and run your applicants' pay stubs through parsing and extraction today. Cross-checks, income calculation and posting to your loan origination system begin with a consultation.
Pay stubs, payslips and the other proof of income in a loan file
Documents
- Pay stubs
- Payslips (UK and Australia)
- Earnings statements
- Direct deposit advices
- Hand-written pay stubs from small employers
- Payroll portal earnings exports
- W-2 forms
- 1099 forms
- Offer letters
- Verification of employment forms
- Employer income letters
- Income verification documents
- Pension and annuity statements
- Social Security benefit letters
- Tax returns
- Bank statements
Fields captured
Processes these pay stubs feed
For the people who qualify a borrower's income
Loan officers quote from verified base pay rather than the figure on the application, and know at once when overtime needs a two-year history before it can count.
Processors stop dividing year-to-date pay by hand, and underwriters see base, overtime and bonus already separated, each tied to the stub and W-2 it came from.
Stubs from local employers, school districts and the hospital down the road are read in their own layouts, so a small team verifies member income without a calculator.
Consumer and auto applicants are approved on income read from their latest stub in minutes, while the applicant is still at the dealership or on the phone.
Income verified before the file reaches underwriting
Guarding the paperwork that shows what a borrower earns
A pay stub shows a person's salary, employer, the last digits of their Social Security number and the bank account their pay goes into. With those, someone can impersonate the employee to the employer's HR team or redirect the next paycheck.




- Encrypted in transit and at rest.
- Applicants' pay stubs are never used for model training.
- Access by role, branch and loan file, with every corrected figure and cleared income flag recorded against the applicant.
- You set retention: income documents are deleted when your record-keeping policy allows.
- Self-hosted deployment for lenders whose examiners expect applicant income data to stay inside their own environment.
What lenders ask about reading pay stubs
One that reads stubs from payroll providers it has never seen, separates base pay from overtime and bonus, and proves its figures add up. Document Studio returns every earning, deduction and year-to-date total in your schema, checks gross minus deductions against net pay, and posts the result to your loan origination system.
LLMWhisperer reads the stub into text with the current and year-to-date columns in place. Document Studio then extracts the fields you named, from employer and pay date to each deduction, and returns one JSON record per stub through an API or an ETL pipeline.
Unstract reads payslips alongside the other employment paperwork that arrives with them: W-2s, offer letters, employment verification forms and employer income letters. The same extraction serves a lender verifying income or an HR team onboarding a new hire who brings payslips from a previous employer.
Look for an endpoint per document type, so pay stubs and the invoices or receipts in another workflow each get their own schema. Document Studio deploys a payslip extraction endpoint you POST a stub to, and the same project runs as an ETL pipeline or an MCP server.
It works as a proof of income data extractor across the whole income file: pay stubs, W-2s, 1099s, offer letters, pension and Social Security benefit letters, and the bank statements that show the deposits. Each document type has its own fields, and all of them land in one income record.
Yes. Proof of income OCR in LLMWhisperer reads phone photos, crooked scans and stubs filled in by hand at a small business, with the handwriting read alongside the printed text. A figure that the extraction cannot confirm is flagged for a processor instead of being guessed.
A payslip parser built on templates needs a new template for every payroll provider and breaks when one changes its layout. Document Studio finds each figure by what it means, so "Calendar YTD" and "Year to date" both fill the same field.
Yes. UK payslips return the tax code, PAYE, National Insurance and pension lines; Australian payslips return PAYG withholding and superannuation. You add those fields to the schema next to the US ones.
Flow converts each pay period to monthly income by its frequency, weekly, biweekly, semi-monthly or monthly, with rules you approve. Overtime, bonus and commission are reported separately, so your underwriter decides how much of each counts.
Unstract is SOC 2, ISO 27001, GDPR and HIPAA compliant. Pay stubs are encrypted in transit and at rest, never used to train models, and deleted on your schedule. Lenders that keep applicant data in-house can self-host; see the Trust Center.
Bring a stack of pay stubs to the consultation
Portal PDFs, a phone photo, a hand-filled stub from a small employer and the W-2s that go with them. We read them live and show the earnings, the year-to-date check and every income flag.









