Manufacturing excess is products-driven: sales and payroll by class, a handful of plants, and a loss picture split between products-completed-operations claims and plant injuries. Over a $50M lead umbrella, the products tail is the story. We ran a real precision manufacturer, Meridian Precision Products, through InsightXtract.
Why manufacturing is an excess casualty risk
A manufacturer's excess sits over primary GL with a large products-completed-operations exposure — a component that fails in the field, years after it shipped, is exactly what the umbrella is bought for. Class of product, sales by class, export share and the completed-ops tail drive the rate; the plant WC book rides alongside.
The submission packet
A real manufacturing placement is rarely one clean file. This one is five, in four different shapes — the everyday reality an underwriting team has to re-key by hand today:
- broker_email.pdf — the renewal narrative: account description, requested limits, exposure snapshot, and the excess-layer options to quote.
- rfq.pdf — the umbrella/excess application: general information, coverage requested, and the exposure bases.
- exposure_workbook.xlsx — the heart of the file: GL exposure by products class code, a plant/location schedule, WC payroll by class across the shops, and a named-insured schedule of subsidiaries.
- loss_run.pdf — five years of currently-valued losses, split between products-liability claims and plant workers-comp.
- schedule_of_underlying.pdf — the primary casualty and lead umbrella the excess attaches over.
Step 1 — Classification
Every file is routed to a document type first — evidence-bearing, with a confidence, not a black-box label:
Step 2 — Coverage structure, with citations
The requested tower is read from the email and application, every value grounded to its page:
| Coverage | Requested | Source |
|---|---|---|
| General Liability — each occurrence | $1,000,000 | rfq p.2 |
| General Aggregate | $2,000,000 | rfq p.2 |
| Products / Completed-Ops Aggregate | $2,000,000 | rfq p.2 |
| Commercial Auto — CSL | $1,000,000 | rfq p.3 |
| Employers Liability | $1,000,000 | rfq p.3 |
| Lead Umbrella | $50M | email p.1 |
Step 3 — Exposure schedules, typed & normalized
The workbook is where template OCR falls over — many sheets, hundreds of rows, broker-specific wording. InsightXtract reads every sheet, maps each to a typed schedule, and normalizes the codes against governed glossaries. A slice of the GL exposure schedule:
| State | WC Code | Description | Revenue | Payroll |
|---|---|---|---|---|
| IN us_state_codes | 51862 ncci | Machined metal products mfg | $21,400,000 | $3,852,000 |
| OH us_state_codes | 59005 ncci | Plastic injection molding | $14,900,000 | $2,682,000 |
| MI us_state_codes | 51315 ncci | Metal stamping | $11,200,000 | $2,016,000 |
| … 46 GL rows · workers_compensation 60 · named_insured_mix 22 · location_list 14 | ||||
Column bindings: state → us_state_codes, class → ncci_wc_class_codes / iso_gl_class_codes, occupancy → occupancy_types. Out-of-vocabulary values are flagged by validation, not silently kept — and fuzzy column resolution means a rule written for payroll still binds a broker’s “Total Payroll” column.
Step 4 — Derived exposures (deterministic, not guessed)
The account is rated on totals. Rather than ask a model to eyeball-sum hundreds of rows, the document type declares deterministic sum / count / group_by rules that reduce the extracted schedules exactly — the same numbers every run, each traceable to its source table:
Step 5 — The loss run
A manufacturer's loss run mixes products-completed-operations claims (component failure, defect) with plant WC — machine injuries, chemical exposure, lifting. Every claim is extracted — coverage line, status and cause normalized — and rolled up, with a by-line split for the loss pick:
| Claim # | Coverage | Cause | Status | Incurred |
|---|---|---|---|---|
| MER-4109 | GL coverage_lines | Products - component failure | Open claim_statuses | $412,000 |
| MER-4088 | GL coverage_lines | Products - defect claim | Closed claim_statuses | $188,000 |
| MER-4051 | WC coverage_lines | Machine amputation | Open claim_statuses | $305,000 |
| … 27 claims across 5 policy years, currently valued | ||||
What the underwriter reads first
The coded record surfaces exactly the drivers that move this class of business:
- Sales by products class — the rating basis, and where the completed-ops tail concentrates.
- Export share & product-recall program, captured from the supplemental.
- Plant WC severity — machine and chemical exposures by location.
- Products loss development over five valued years, coded by line.
Why it holds up in production
- Every value is cited — page/region provenance on fields and schedules; a file review can click any number to its source.
- Codes are normalized against governed glossaries; out-of-vocabulary values are validated, not hidden.
- Totals are computed, not guessed — deterministic derived fields over the extracted rows, exact and reproducible.
- Configuration is versioned — document types, glossaries and rules pinned to a published version, so an output made today reproduces tomorrow.
- Nothing is dropped — the all-sheets extractor surfaces every schedule, even ones the base schema didn’t anticipate.
Any casualty class, one agent
Construction, trucking, manufacturing, and more — the same Excess Casualty agent, configured with document types and glossaries, not per-account code. See the end-to-end walkthrough → or talk to us about your own submissions.