Extract policies and endorsements to structured JSON

Insurance policies contain the full terms of coverage: insuring agreements, conditions, exclusions, and endorsement modifications. These documents run dozens to hundreds of pages. Use Sensible to get structured policy data for administration, compliance review, and coverage analysis.

Why insurance policies challenge extraction tools

Long-form legal language, nested coverage sections, and modifying endorsements create multi-layered documents that require both semantic understanding and structural precision.

Multi-Section Document Structure

Declarations, insuring agreements, conditions, definitions, exclusions: each section requires different extraction logic. Section boundaries are identified automatically, with the appropriate field configuration applied to each.

Endorsement Tracking

Each endorsement modifies, adds, or restricts base coverage with its own form number and effective date. Our hybrid approach reads the endorsement language with LLMs while SenseML rules enforce structured output for each modification.

Form Number and Edition Identification

The binding legal content depends on which edition of a form is attached. Form numbers like "CG 00 01 04 13" appear in small, inconsistent locations: headers, footers, or margins. Sensible extracts each form number and edition date accurately, because the wrong edition means the wrong coverage terms.

Fields we extract

Standard policy fields ship in the template. Customize the schema for your policy management system.

Policy terms

Named insured, policy number, effective/expiration dates, policy form, territory, classification, premium basis

Coverage and limits

Insuring agreement type, per-occurrence limit, aggregate limit, deductible/SIR, sublimits, coverage triggers, retroactive date

Endorsements

Endorsement form number, effective date, description, premium impact, additional insured provisions, waiver of subrogation


{ /* SenseML: policy and endorsement extraction */
"fields": [
{
"method": {
"id": "queryGroup",
"queries": [
{
// Policy number
"id": "policy_number",
"description": "policy number, policy #"
},
{
// Named insured
"id": "named_insured",
"description": "named insured, policyholder, insured name"
},
{
// Endorsement form number
"id": "endorsement_form",
"description": "endorsement form number, endorsement #, form number"
},
{
// Coverage basis
"id": "coverage_basis",
"description": "coverage basis, occurrence, claims-made, claims made"
}
// Additional fields for effective date, limits, exclusions, etc.
]
}
}
]
}
Certificate Holder Endorsement

Additional insured endorsement naming a specific certificate holder.

Commercial General Liability Policy

Full CGL policy document with coverage forms, conditions, and exclusions.

Property Insurance Policy

Commercial property policy covering buildings, contents, and business income.

Policy Endorsement

Mid-term policy change adding, removing, or modifying coverage.

Supported policy types

Sensible processes policies across all commercial and personal lines. SenseML rules adapt to carrier-specific language, so new policy forms build on existing configurations rather than starting from scratch.

Commercial lines

CGL, commercial property, workers comp, commercial auto, umbrella/excess, professional liability, cyber, D&O, EPL

Personal lines

Homeowners, personal auto, renters, umbrella, flood, earthquake

Trusted by operations and engineering teams at

Common Questions

Answers about policy extraction, endorsement tracking, and coverage form handling.

Can Sensible track endorsements separately from the base policy?

Yes. Sensible extracts endorsement form numbers, effective dates, description of changes, and premium adjustments as separate items linked to the base policy.

Does Sensible handle policy renewals?

Sensible extracts renewal terms, premium changes, and coverage modifications. You can compare renewal data against the prior term programmatically.

How does Sensible handle multi-section insurance policies?

Sensible processes policies with multiple coverage forms, conditions, and exclusions. Each section is identified and extracted with its specific fields and terms.

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.