Take a live AI-guided product tour with Lando.Launch AI demo
Document type

Extracting data from financial models

Sponsors and their advisers build financial models in Excel, each with its own sheet structure and timeline. Lenders and investment committees receive one with every deal, often dozens of sheets long. They arrive as workbooks or as PDF printouts, in a data room or appended to a report.

A credit or investment analyst needs total project cost, loan balances, the debt service coverage ratio by year, the exit value and the IRR. Those figures load into the reviewer's underwriting model, which tests them against a coverage minimum and a return hurdle.

Page 6 of a sample Financial Model, with extracted values outlined
126,847Markdown characters
8,438parse blocks
163fields extracted
The problem

What makes financial models hard

Wide grids with stacked headers

A cash flow sheet sets a total beside ten or more annual columns, under stacked headers naming the calendar year and the project year.

The same template, sheet after sheet

Models repeat one template for each product type or scenario, so the office sheet and the retail sheet share every row label.

Printed to fit one page

Models are printed to fit each sheet on one page, so a fifteen-column grid shrinks to small type with negatives in red parentheses.

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 financial model, end to end

About this document: The Aloha Development Model by JLL, a real estate pro forma for redeveloping Aloha Stadium. The State of Hawaii published it as an exhibit to a report by Foley & Lardner. Its 16 pages are landscape spreadsheet printouts at eleven page sizes. A returns summary and assumption sheets precede cash flow sheets for office, retail, residential and hotel. Page 6 is the office own-operate cash flow sheet.

Processing objective: The objective is to follow one development from cost through debt to exit. The sheet's columns are a total and thirteen years, three of construction and ten of hold. The loan and coverage figures sit in the first operating year, after three empty columns.

Demonstration fields: Total costs, Permanent loan beginning balance, First-year DSCR, Residual value, Owner IRR

The document

4 of 16 pages
  • Page 1 of the sample Financial ModelPage 1
  • Page 6 of the sample Financial ModelPage 6shown below
  • Page 8 of the sample Financial ModelPage 8
  • Page 10 of the sample Financial ModelPage 10

Where each value came from

Page 6 of the sample Financial Model, with every featured field outlined
Total costscash_flow_scenarios[0].total_costs
64,299,010
The region of the sample Financial Model containing Total costs, with the extracted value outlined
extraction_metadata["cash_flow_scenarios[0].total_costs"]
{
  "value": 64299010,
  "page": 6,
  "range": {
    "end": 24848,
    "start": 24837
  },
  "box": {
    "xmin": 0.26918,
    "ymin": 0.20511,
    "xmax": 0.31583,
    "ymax": 0.22559
  }
}
Permanent loan beginning balancecash_flow_scenarios[0].permanent_loan_beginning_balance
-50,971,154
The region of the sample Financial Model containing Permanent loan beginning balance, with the extracted value outlined
extraction_metadata["cash_flow_scenarios[0].permanent_loan_beginning_balance"]
{
  "value": -50971154,
  "page": 6,
  "range": {
    "end": 27921,
    "start": 27908
  },
  "box": {
    "xmin": 0.45063,
    "ymin": 0.44356,
    "xmax": 0.49623,
    "ymax": 0.45472
  }
}
First-year DSCRcash_flow_scenarios[0].first_year_dscr
1.25
The region of the sample Financial Model containing First-year DSCR, with the extracted value outlined
extraction_metadata["cash_flow_scenarios[0].first_year_dscr"]
{
  "value": 1.25,
  "page": 6,
  "range": {
    "end": 32592,
    "start": 32588
  },
  "box": {
    "xmin": 0.4506,
    "ymin": 0.66227,
    "xmax": 0.49616,
    "ymax": 0.67277
  }
}
Residual valuecash_flow_scenarios[0].residual_value
83,029,620
The region of the sample Financial Model containing Residual value, with the extracted value outlined
extraction_metadata["cash_flow_scenarios[0].residual_value"]
{
  "value": 83029620,
  "page": 6,
  "range": {
    "end": 31007,
    "start": 30996
  },
  "box": {
    "xmin": 0.26846,
    "ymin": 0.5893,
    "xmax": 0.31552,
    "ymax": 0.59997
  }
}
Owner IRRcash_flow_scenarios[0].aloha_irr
14.25%
The region of the sample Financial Model containing Owner IRR, with the extracted value outlined
extraction_metadata["cash_flow_scenarios[0].aloha_irr"]
{
  "value": "14.25%",
  "page": 6,
  "range": {
    "end": 34492,
    "start": 34486
  },
  "box": {
    "xmin": 0.26808,
    "ymin": 0.77782,
    "xmax": 0.31537,
    "ymax": 0.79733
  }
}

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. VPC and on-prem deployment require an Enterprise plan.

Compare plans
Capabilities

Financial Model processing highlights

Multi-year cash flow grids
Stacked period headers
Assumptions by product type
Construction and permanent debt
DSCR by operating year
IRR, NPV and equity multiple
Returns summary by scenario
Parenthesized negatives as numbers
Identical sheets kept apart
Oversized landscape printouts
XLSX and CSV workbooks
Grounding to the cell
FAQs

Questions, answered

Yes, through the API. Parse accepts XLSX and CSV files of up to 50 MB and reads each sheet directly. Every table and cell in the response carries its address in Excel notation, such as CashFlow!F42, so a value traces back to its cell.

Yes. Parse reads each page at its own size and orientation, so a model printed to PDF with landscape sheets and several paper sizes is read page by page. Each value keeps its page number for grounding.

As negative numbers, when the field is typed as a number. A loan balance printed as a figure in parentheses returns with a minus sign, and its grounding still points at the parenthesized figure on the page.

Yes. Each extracted value carries the character ranges it was quoted from in the parsed Markdown. The Ground API maps those ranges to the blocks they fall in, and a single table cell is its own block, with a page number and bounding box.

Start extracting financial model data

Reliable, structured outputs with full traceability in minutes