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

Extracting data from D&O insurance policies

Insurers issue directors and officers policies on their own forms, with a declarations page followed by general conditions, a coverage part and endorsements. Brokers and risk managers review each policy at renewal, and a broker's management liability book can run to hundreds. Policies arrive as PDFs from carrier portals or by email.

Policy checking needs the limit of liability, the retention, the premium, the policy period and the extended reporting terms. A broker's agency management system compares them with the expiring policy and the binder, and flags any change before the policy goes to the client.

Page 2 of a sample D&O Insurance Policy, with extracted values outlined
88,789Markdown characters
179parse blocks
68fields extracted
The problem

What makes D&O insurance policies hard

Declarations amid long conditions

The limit, retention and premium appear once on the declarations, while terms such as Limit of Liability recur dozens of times in the conditions.

Key terms are stated in prose

Whether the policy is claims-made, and whether defense costs erode the limit, are stated in capitalized warnings and in the conditions.

Endorsements amend the base form

Each policy attaches its own endorsements, which add entities, change definitions or amend exclusions in conditions printed pages earlier.

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 D&O insurance policy, end to end

About this document: An issued Travelers management liability policy with Mutual Fund Liability coverage, filed publicly with the SEC by a registered fund trust. 26 portrait pages: the declarations, terrorism endorsements, general terms and conditions, the coverage part and further endorsements. It covers the trust's directors, trustees and officers. Page 2 is featured. The filing's cover letter and board resolutions were dropped, since they sit outside the policy.

Processing objective: The objective is to read the policy's economics from the declarations. They show how much cover was bought, the retention paid on each claim and the annual premium. The extended reporting terms price 12 more months of claim reporting after the policy ends.

Demonstration fields: Limit of liability, Retention per claim, Policy premium, Extended reporting premium (%), Extended reporting months

The document

4 of 26 pages
  • Page 1 of the sample D&O Insurance PolicyPage 1
  • Page 2 of the sample D&O Insurance PolicyPage 2shown below
  • Page 6 of the sample D&O Insurance PolicyPage 6
  • Page 17 of the sample D&O Insurance PolicyPage 17

Where each value came from

Page 2 of the sample D&O Insurance Policy, with every featured field outlined
Limit of liabilitycoverage_details.limit_of_liability
1,000,000
The region of the sample D&O Insurance Policy containing Limit of liability, with the extracted value outlined
extraction_metadata["coverage_details.limit_of_liability"]
{
  "value": 1000000,
  "page": 2,
  "range": {
    "end": 1692,
    "start": 1665
  },
  "box": {
    "xmin": 0.05862,
    "ymin": 0.32826,
    "xmax": 0.38363,
    "ymax": 0.34523
  }
}
Retention per claimcoverage_details.retention
75,000
The region of the sample D&O Insurance Policy containing Retention per claim, with the extracted value outlined
extraction_metadata["coverage_details.retention"]
{
  "value": 75000,
  "page": 2,
  "range": {
    "end": 2073,
    "start": 2045
  },
  "box": {
    "xmin": 0.05898,
    "ymin": 0.51184,
    "xmax": 0.39204,
    "ymax": 0.52809
  }
}
Policy premiumpolicy_premium
14,366
The region of the sample D&O Insurance Policy containing Policy premium, with the extracted value outlined
extraction_metadata["policy_premium"]
{
  "value": 14366,
  "page": 2,
  "range": {
    "end": 2251,
    "start": 2181
  },
  "box": {
    "xmin": 0.05896,
    "ymin": 0.60539,
    "xmax": 0.74971,
    "ymax": 0.62158
  }
}
Extended reporting premium (%)extended_reporting_period.additional_premium_percentage
125
The region of the sample D&O Insurance Policy containing Extended reporting premium (%), with the extracted value outlined
extraction_metadata["extended_reporting_period.additional_premium_percentage"]
{
  "value": 125,
  "page": 2,
  "range": {
    "end": 2349,
    "start": 2312
  },
  "box": {
    "xmin": 0.05988,
    "ymin": 0.68207,
    "xmax": 0.3571,
    "ymax": 0.69743
  }
}
Extended reporting monthsextended_reporting_period.additional_months
12
The region of the sample D&O Insurance Policy containing Extended reporting months, with the extracted value outlined
extraction_metadata["extended_reporting_period.additional_months"]
{
  "value": 12,
  "page": 2,
  "range": {
    "end": 2372,
    "start": 2350
  },
  "box": {
    "xmin": 0.06049,
    "ymin": 0.69972,
    "xmax": 0.3292,
    "ymax": 0.71474
  }
}

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

D&O Insurance Policy processing highlights

Limit of liability
Retention per claim
Policy premium
Policy period dates
Extended reporting terms
Prior or pending proceeding date
Claims-made basis
Defense costs within limits
Named insured and specified entities
Forms and endorsements attached
Claim notice contacts
Bounding box for every value
FAQs

Questions, answered

Yes. Parsing covers every page, and a field described as the limit of liability comes back from the declarations, where the policy states it once. Grounding points at that line, so a reviewer sees the amount on the declarations page.

Yes. Define a field such as defense costs within limits or duty to defend as a boolean, with a description. Extraction reads the warning and the conditions that state the term, and grounding points at those sentences.

Yes. Define the endorsements as an array in your schema. Each comes back as its own entry with its title and form number, for as many endorsements as the policy attaches.

No. A schema names the fields you want and describes them in plain language. Extraction reads the parsed policy for meaning, so one schema covers each insurer's own forms and declarations layout.

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 on the declarations line that printed it.

Start extracting D&O insurance policy data

Reliable, structured outputs with full traceability in minutes