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

Extracting data from auto loan statements

Captive finance companies, banks and credit unions each send a monthly auto loan statement in their own design. Refinance lenders and mortgage underwriters collect the latest one from many applicants, as a PDF downloaded from the lender's site or a photo of the mailed statement.

Underwriting needs the lender, the vehicle, the monthly payment, the principal balance and the next due date. The loan origination system counts the payment in the debt-to-income ratio, and a refinance uses the balance to size the payoff.

Page 1 of a sample Auto Loan Statement, with extracted values outlined
9,470Markdown characters
102parse blocks
23fields extracted
The problem

What makes auto loan statements hard

Each lender designs its own

Each lender designs its own statement, setting the balance, payment and due date in large-type headers and graphic panels.

The coupon repeats the figures

A tear-off payment coupon repeats the amount due and due date from the statement above, so each figure prints at least twice on the page.

The split is on the back

How each payment divides between principal and interest often prints on the reverse page, apart from the balance it changes.

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 auto loan statement, end to end

About this document: GM Financial's sample monthly statement for a retail auto loan, published on its own site with a SAMPLE watermark. Two legal-size portrait pages: the statement with a tear-off payment coupon, then the reverse with the payment allocation and disclosures. Page 1 is featured. The borrower and dealer are placeholders.

Processing objective: The objective is to establish what is owed, and on which car. The vehicle is set in the statement header, and the amount due prints both there and on the coupon below. The header copy grounds to its own place beside the current and last payments.

Demonstration fields: Model year, Vehicle, Total amount due, Current payment, Last payment received

The document

2 of 2 pages
  • Page 1 of the sample Auto Loan StatementPage 1shown below
  • Page 2 of the sample Auto Loan StatementPage 2

Where each value came from

Page 1 of the sample Auto Loan Statement, with every featured field outlined
Model yearvehicle.year
2,021
The region of the sample Auto Loan Statement containing Model year, with the extracted value outlined
extraction_metadata["vehicle.year"]
{
  "value": 2021,
  "page": 1,
  "range": {
    "end": 78,
    "start": 74
  },
  "box": {
    "xmin": 0.05747,
    "ymin": 0.11774,
    "xmax": 0.09986,
    "ymax": 0.12825
  }
}
Vehiclevehicle.make_model
GMC ACADIA DENALI
The region of the sample Auto Loan Statement containing Vehicle, with the extracted value outlined
extraction_metadata["vehicle.make_model"]
{
  "value": "GMC ACADIA DENALI",
  "page": 1,
  "range": {
    "end": 96,
    "start": 79
  },
  "box": {
    "xmin": 0.05679,
    "ymin": 0.13043,
    "xmax": 0.24468,
    "ymax": 0.14184
  }
}
Total amount duetotal_amount_due
496.31
The region of the sample Auto Loan Statement containing Total amount due, with the extracted value outlined
extraction_metadata["total_amount_due"]
{
  "value": 496.31,
  "page": 1,
  "range": {
    "end": 123,
    "start": 116
  },
  "box": {
    "xmin": 0.05725,
    "ymin": 0.20213,
    "xmax": 0.20319,
    "ymax": 0.22772
  }
}
Current paymentcurrent_due[0].amount
496.31
The region of the sample Auto Loan Statement containing Current payment, with the extracted value outlined
extraction_metadata["current_due[0].amount"]
{
  "value": 496.31,
  "page": 1,
  "range": {
    "end": 332,
    "start": 325
  },
  "box": {
    "xmin": 0.36739,
    "ymin": 0.30198,
    "xmax": 0.48539,
    "ymax": 0.31569
  }
}
Last payment receivedpayments_received[0].amount
496.31
The region of the sample Auto Loan Statement containing Last payment received, with the extracted value outlined
extraction_metadata["payments_received[0].amount"]
{
  "value": 496.31,
  "page": 1,
  "range": {
    "end": 520,
    "start": 513
  },
  "box": {
    "xmin": 0.36801,
    "ymin": 0.35385,
    "xmax": 0.48535,
    "ymax": 0.36876
  }
}

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

Auto Loan Statement processing highlights

Vehicle year and model
Amount due and due date
Current and past-due payments
Principal balance
Principal and interest split
Recent transactions
Payment coupon values
Lender and account details
Legal-size statements
Dates normalized to ISO
No per-lender templates
Bounding box for every value
FAQs

Questions, answered

Grounding returns every place a value prints, so an amount due on both the statement and the coupon carries both locations. A reviewer can be shown the statement header copy, and the coupon stays available beside it.

Yes. Describe the model year and the vehicle as fields in your schema. Both come back as their own values, grounded to the line of the statement header that prints them.

Yes. Define the payment allocation in your schema, and the principal and interest portions come back as numbers from the reverse page, each grounded to its own line.

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

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 value where the statement printed it.

Start extracting auto loan statement data

Reliable, structured outputs with full traceability in minutes