*** September 2026 Major Release ***Read and watch
Document type

Extracting data from disability benefit letters

Disability benefit letters come from the Social Security Administration, the VA and private disability insurers, each in its own wording. Mortgage lenders and landlords collect one from every applicant who counts disability income, as a PDF downloaded from the payer's website or a scanned copy.

Underwriting needs the gross monthly benefit, any deductions, the net payment and the month the amounts took effect. The lender's income worksheet carries the gross benefit into the debt-to-income ratio, grossed up where the income is nontaxable.

Page 1 of a sample Disability Benefit Letter, with extracted values outlined
2,675Markdown characters
28parse blocks
25fields extracted
The problem

What makes disability benefit letters hard

Every value inside a sentence

Amounts and dates sit in running prose, such as the premium deducted each month, each written into a sentence of explanation.

Current and past in parallel

Sections for current and past benefits repeat almost the same sentences, each with its own amounts and the months they apply to.

Each payer words it differently

A letter from the SSA, the VA or a private disability insurer names each amount in its own words.

How it works

Parse, extract, verify

1

Parse

Parse turns the document into reading-order Markdown and a hierarchy of blocks (text, tables, figures), and grounds each block to its exact location on the page.

2

Extract

You define the fields in a JSON schema, and Extract returns their values in a consistent, structured format, each linked back to where it appears in the Markdown.

3

Verify

Each value links back to where it appears, down to the character range in the Markdown, and the page and bounding box in the source document, so every result can be verified.

Worked example

One disability benefit letter, end to end

About this document: A Benefit Verification Letter from the Social Security Administration for a Social Security Disability Insurance beneficiary. Two portrait pages of prose: current and past benefit amounts on page 1, then Medicare entitlement and contact details on page 2. Page 1 is featured. The recipient's name, address and identifiers were replaced with stand-ins, and the mailing barcodes removed.

Processing objective: The objective is to follow one benefit calculation from start to finish. The letter states the gross monthly benefit, takes the Medicare premium off it and states the payment that results. Each amount grounds to the sentence that holds it, along with the month the amounts took effect.

Demonstration fields: Benefit amounts effective from, Monthly benefit before deductions, Medicare premium deduction, Net monthly payment

The document

2 of 2 pages
  • Page 1 of the sample Disability Benefit LetterPage 1shown below
  • Page 2 of the sample Disability Benefit LetterPage 2

Where each value came from

Page 1 of the sample Disability Benefit Letter, with every featured field outlined
Benefit amounts effective fromcurrent_benefits.period_start
December 2025
The region of the sample Disability Benefit Letter containing Benefit amounts effective from, with the extracted value outlined
extraction_metadata["current_benefits.period_start"]
{
  "value": "December 2025",
  "page": 1,
  "range": {
    "end": 511,
    "start": 435
  },
  "box": {
    "xmin": 0.11371,
    "ymin": 0.45249,
    "xmax": 0.82556,
    "ymax": 0.47071
  }
}
Monthly benefit before deductionscurrent_benefits.gross_monthly_benefit
1,137.3
The region of the sample Disability Benefit Letter containing Monthly benefit before deductions, with the extracted value outlined
extraction_metadata["current_benefits.gross_monthly_benefit"]
{
  "value": 1137.3,
  "page": 1,
  "range": {
    "end": 536,
    "start": 512
  },
  "box": {
    "xmin": 0.11418,
    "ymin": 0.46935,
    "xmax": 0.33626,
    "ymax": 0.48576
  }
}
Medicare premium deductioncurrent_benefits.medical_insurance_premium_deduction
81.9
The region of the sample Disability Benefit Letter containing Medicare premium deduction, with the extracted value outlined
extraction_metadata["current_benefits.medical_insurance_premium_deduction"]
{
  "value": 81.9,
  "page": 1,
  "range": {
    "end": 598,
    "start": 539
  },
  "box": {
    "xmin": 0.11582,
    "ymin": 0.49715,
    "xmax": 0.69755,
    "ymax": 0.51947
  }
}
Net monthly paymentcurrent_benefits.net_monthly_payment
1,055
The region of the sample Disability Benefit Letter containing Net monthly payment, with the extracted value outlined
extraction_metadata["current_benefits.net_monthly_payment"]
{
  "value": 1055,
  "page": 1,
  "range": {
    "end": 658,
    "start": 601
  },
  "box": {
    "xmin": 0.11512,
    "ymin": 0.52881,
    "xmax": 0.65211,
    "ymax": 0.54565
  }
}

How to try it yourself

Everything on this page is reproducible. The sample, its schema, and the Parse and Extract API outputs are published. You can repeat the same two calls from whichever surface you already build on.

  • Claude Skilldescribe the job; the agent writes it
  • CLIno code at all
  • MCPexpose ADE docs as an agent tool
  • REST APIany language
  • Pythonlandingai-ade
  • TypeScriptlandingai-ade
Why LandingAI?

Documents into data

Accurate

The best accuracy on the difficult documents other tools get wrong, such as messy scans, complicated tables, checkboxes and handwriting.

Auditable

Every answer cites its sources. Values come back with an audit trail (page, bounding box, character range) so a human can review them.

Agentic

Applies multi-step reasoning, and plans before it acts. Handles documents it has never seen before and adapts to variations.

API-first

Composable APIs that drop into any tech stack and can be called from anywhere. Easy to build on and embed in your pipelines and products.

Affordable

Cost-competitive rates with complete price transparency. Spend controls before you run, and every job reports its exact cost.

Enterprise-grade

Built for production and scale from day one. Fully observable and monitored, running securely in our cloud or yours.

Built for high-volume, high-throughput production

  • Zero data retention
  • Priority rate limits
  • Enhanced support
  • VPC and on-prem deployment

Available on Team and Enterprise plans.

Compare plans
Capabilities

Disability Benefit Letter processing highlights

Gross monthly benefit
Medicare premium deductions
Net monthly payment
Effective month of amounts
Current and past benefits
Values read from sentences
Medicare entitlement dates
Benefit type
Letter date
Disability onset date
Payment day
Bounding box for every value
FAQs

Questions, answered

Yes. Describe each amount as a field in your schema. Extraction reads the parsed letter for meaning, so a figure inside a sentence comes back as a number, grounded to the line that holds it.

Yes. Define current and past benefits as separate objects in your schema. Each comes back with its own amounts and period, read from its own section of the letter.

Yes. All three amounts come back as numbers, so the arithmetic can be checked. Social Security rounds the payment down to the whole dollar, so allow for that in the comparison.

No. A schema names the fields you want and describes them in plain language. Extraction reads the parsed letter for meaning, so one schema covers each payer's own wording.

Every extracted value carries the character range it was quoted from in the parsed Markdown. The Ground API maps that range to a page and a bounding box, so a reviewer sees each amount in the sentence that printed it.

Start extracting disability benefit letter data

Reliable, structured outputs with full traceability in minutes