Pay stub extraction for an income-review queue

A typical pay stub has an earnings block, a deductions block, and a summary that reconciles gross to net. Here is how to read each part.

What a Pay Stub looks like

Pay Stub — sample layoutannotated
Gross pay
Total earnings for the pay period before anything is deducted, including regular hours, overtime, and bonuses.
Net pay
Your actual take-home amount after all taxes and deductions — the number that hits your bank account.
Federal & state income tax
Income tax withheld based on your W-4 elections and state rules.
Social Security & Medicare (FICA)
6.2% for Social Security and 1.45% for Medicare, withheld from most paychecks.
Pre-tax deductions
401(k), health/dental/vision premiums, HSA/FSA contributions — these lower your taxable wages.
Pay period & pay date
The date range the check covers and the date you were paid. Do not confuse the two.
YTD (year-to-date) columns
Running totals of earnings, taxes, and deductions for the calendar year so far.

Illustrative layout for education. A real pay stub may vary by issuer.

Evaluate this workflow

For lending and property-management operations

Prepare pay-period data for a reviewer without treating extraction as employment or income verification.

Check before you accept a record

  • Keep pay-period start, pay-period end, and pay date separate.
  • Compare current gross and net with the source; do not substitute YTD totals.
  • Check whether missing deductions are absent on the source or missed in extraction.

An exception to hold for review

A missing period end leaves the pay frequency unresolved. Hold that record; do not annualize the income.

Run a small evaluation

  1. Collect representative pay-period layouts.
  2. Compare identifiers, periods, earnings, and deductions with each source.
  3. Send reviewed records and unresolved fields to your income-review process.

Record the number of files submitted, failed files, required-field corrections, and minutes spent reviewing each file. Those observations tell you whether this workflow fits your documents; a sample response does not measure extraction accuracy.

Example reviewed September 16, 2026 against the configured field names. Fictional values, partial field set, and a suggested human workflow; not a recorded extraction or a promise of automatic approval.

A measured synthetic extraction

On September 16, 2026 Pacific time, we sent one labeled text PDF for this document type to our production extraction service. It returned HTTP 200 in 4.96 seconds, including network time. This was a backend request, not a test of signup, payment or the complete upload interface.

Every selected expected field matched exactly after the production field mapping. Successful delivery does not establish extraction accuracy.

Expected values were fixed before the run. Comparison uses exact values and types, checks the expected object fields and requires exact array lengths. A numeric string differs from a number; missing and null values differ. These easy, clearly labeled synthetic pages do not represent scanned documents, complex official forms or customer accuracy. One observation cannot establish typical latency.

Field contract correction

We replayed the same recorded response after correcting field aliases, declared tax-number types and bank last-four handling. This is an offline replay, not another extraction request. 0 selected field comparisons still differ from the original expected sample. The original benchmark stays available; unsupported distinctions and source wording are not invented to make the comparison pass.

Inspect the corrected mapping results

Download the 15-page synthetic input packetDownload expected and returned fields

Illustrative structured output

These synthetic values explain the field layout; they are not a measured extraction result or an accuracy benchmark. Actual coverage depends on your document.

{
  "employee_name": "Sample Employee",
  "employer_name": "Example Workshop (fictional)",
  "pay_period_start": "2026-08-01",
  "pay_period_end": "2026-08-15",
  "gross_pay": 2500,
  "net_pay": 1950,
  "ytd_gross": 40000
}

Try the interactive sample without signupReview CSV, Excel, and JSON exportsSee the extraction API

Extract from your own pay stub — 3 free, no credit card

Want the Pay Stub extraction guide?

Get a free step-by-step guide to extracting and reviewing data from Pay Stubs — plus tips for recurring workflows.

Free. No credit card. Unsubscribe anytime.

FAQ

What does a Pay Stub look like?

A typical pay stub has an earnings block, a deductions block, and a summary that reconciles gross to net. Here is how to read each part. The annotated example above shows each region and what it contains.

Can I use this Pay Stub sample as a template?

Use it to understand the layout and fields. When you need the actual data off a real pay stub, upload it and get structured JSON/CSV back — no manual typing.

How do I calculate take-home pay from a pay stub?

Take-home (net) pay = gross pay − all taxes − all deductions. Every line item between gross and net explains the difference.

Can a pay stub be used for income verification?

Yes. Lenders and landlords commonly request one to three recent pay stubs to confirm employment and income.

This page shows an illustrative Pay Stub example for educational purposes and is not tax, legal, or financial advice.