Financial Services

Extract pay stubs to structured JSON

Pay stubs detail earnings, deductions, taxes, and net pay for a given pay period. Every employer and payroll provider formats them differently. Sensible normalizes pay stub data into consistent JSON for income verification, lending decisions, and payroll auditing.

income verification | underwriting | payroll audits

Validated JSON

Schema-enforced output; every field matches your contract

Source coordinates

Every value links back to page + bounding box for audit

Per-document pricing

Predictable cost. No token-volatility surprises

Trusted by teams turning documents into production data

What makes pay stubs hard to standardize

Pay stubs are a normalization problem. Thousands of payroll providers label earnings and deductions their own way, and YTD and current-period figures sit side by side. We reconcile them into one consistent schema.

01

Payroll Provider Variation

ADP uses one layout. Paychex another. Gusto, QuickBooks, and in-house payroll systems each invent their own. Sensible adapts to each provider while outputting the same JSON schema: gross pay, deductions, net pay, YTD totals.

02

Deduction Categorization

One employer labels it '401(k)'. Another says 'Retirement Plan'. A third uses a payroll code. Sensible normalizes deduction labels across employers into consistent categories that your downstream systems can process without custom mapping.

03

YTD vs. Current Period Disambiguation

Every pay stub shows both current-period and year-to-date figures, often in adjacent columns with similar labels. Extracting the wrong column produces silently incorrect data: a YTD gross of $45,000 where a current-period gross of $3,750 was expected. Sensible distinguishes the two and validates the math between them.

Managed services

Don't want to build it? We'll write your configs from your samples.

Solutions engineers handle plan, build, deploy, and adjust on your behalf. You see clean JSON in your API response. Same engine as self-serve, just with the configuration work outsourced.

What's included

01Plan.Engineers review your samples and pick the right method

02Build.SenseML configs written from your samples

03Deploy.Same engine as self-serve, ready for production

04Adjust.We update configs when formats shift or new edge cases appear

05Integrate.Help with custom integration into your downstream systems

Fields we extract

We configure every pay stub extraction to your exact schema, not a fixed field list. The fields below are the ones lending teams pull most often — tell us what your lending or payroll-audit workflow needs and we map the rest.

01

Earnings

Employee name, employer name, pay period dates, pay date, gross pay, regular hours/rate, overtime hours/rate, bonuses, commissions

02

Deductions and taxes

Federal tax, state tax, local tax, Social Security, Medicare, health insurance, dental, vision, 401k, HSA, garnishments

03

Net pay and YTD

Net pay, current period totals, YTD gross, YTD net, YTD federal tax, YTD state tax, YTD Social Security, YTD Medicare

config.json

SenseML

{ /* SenseML: pay stub extraction */
"fields": [
{
"method": {
"id": "queryGroup",
"queries": [
{ "id": "employee_name", "description": "employee name, employee, pay to" },
{ "id": "gross_pay", "description": "gross pay, gross earnings, total gross" },
{ "id": "net_pay", "description": "net pay, take home pay, net amount" },
{ "id": "pay_period_end", "description": "pay period ending, period end date, pay period through" }
// + more fields, mapped to your schema
]
}
}
]
}

Supported pay stub formats

Pre-built templates cover major payroll providers. Any employer or provider format can be configured using SenseML. The hybrid approach handles layout variation while deterministic rules enforce output accuracy.

By payroll provider

ADP, Paychex, Gusto, QuickBooks, Paylocity, Rippling, custom employer formats

By pay type

Salaried, hourly, commission-based, mixed compensation, contractor payment summaries

Common Questions

Answers about payroll provider support, deduction normalization, and YTD validation.

Can Sensible validate pay stub calculations?

Yes. Validation rules can check that gross minus deductions equals net, that YTD totals are consistent, and that tax withholding percentages fall within expected ranges.

Does Sensible handle pay stubs from any employer?

Yes. Pay stubs vary by payroll provider and employer, and the configuration library has pre-built configs to start from. Sensible adapts to any format and returns consistent JSON, and when a stub layout hasn't been seen before, the config is extended to fit it.

Does Sensible extract year-to-date (YTD) totals?

Yes. Sensible captures current-period and YTD totals for gross pay, net pay, federal tax, state tax, Social Security, Medicare, and each deduction line by default. The fields are defined in configuration, so you can add or reshape what gets pulled to match your downstream system.

What deduction details does Sensible extract?

By default, each deduction line comes out with its type (health insurance, 401k, HSA, garnishment), current-period amount, and YTD total. The deduction fields live in configuration, so you can extend or reshape them for the deduction categories your workflow tracks.

Do you support webhooks?

Yes. Sensible sends extraction results to your webhook endpoint when processing completes. You can also poll the API for status.

Does Sensible support human review?

Yes. Sensible flags extractions with low confidence for human review. You can configure review thresholds and workflows.

What security certifications does Sensible have?

Sensible is SOC 2 Type II certified and HIPAA compliant. Data is encrypted in transit and at rest.

How long is document data retained?

Document data is stored indefinitely by default. Custom retention policies are available and can be configured for same-day deletion if needed.

Is there a free trial?

Yes. Sensible offers a 14-day free trial on the Growth plan. No credit card required to start.

How is pricing structured?

Sensible uses per-document pricing for predictable costs. No token-based billing or usage surprises. Volume discounts are available for higher throughput.

How do I integrate with Sensible?

Sensible provides REST APIs and SDKs for Python and Node.js. Most integrations take a few hours. Webhooks, Zapier, and direct API calls are all supported.

What file formats does Sensible support?

Sensible processes PDFs (native or scanned), Microsoft Word (DOC, DOCX), spreadsheets (XLSX, XLS, CSV), single-page images (JPEG, PNG), multi-page images (TIFF), and email bodies with attachments.

How accurate is the extraction?

Accuracy depends on document quality and configuration. Most production deployments achieve 95%+ accuracy with proper validation rules and confidence signals.

How fast is document processing?

Processing speed depends on document size, page count, OCR requirements, and which extraction methods are used. Simple single-page documents process in seconds. Larger or more complex documents that use LLM-based extraction take longer.

Start free

Turn your next pay stub into JSON.

Free 14-day trial. No credit card required. Start extracting in minutes.