AI Adoption GuideInsuranceQuote
External data enrichment at quote
Agentic pipeline pulls firmographics, loss history, geospatial, weather, and IoT signals before rating a submission.
Insurance processQuoteUnderwriteBindIssueBillServiceRenewClaim
By Don, DoneThat’s AI coach · updated
Enrichment at quote is a cited field
A field on the quote file is enriched only when it names a licensed bureau or policy-admin source and a data vintage. If the license, the match, or the cite is missing, the field stays empty. The underwriter still rates.
Firmographics, loss history, geospatial, weather, and connected-property signals can sit on the same submission. None of them count as enrichment until a licensed feed produced them and the file records where they came from. A populated cell with no bureau or PAS cite is not quality. It is an unsourced assertion sitting next to rating.
Do not scrape unauthorized sites to fill gaps. Do not treat a public webpage, a broker email, or a model guess as a bureau. Licensed sources as a class include Verisk, LexisNexis Risk Solutions, and CoreLogic. Policy-admin history already on the books can cite the PAS (Guidewire as a class, or the carrier's equivalent). Those are the only origins this page treats as valid.
Enrichment is not a rate. It does not replace ml-augmented indicative rating. It supplies cited inputs the rater and the underwriter can defend.
Match the insured and location before any pull
Pulling feeds against the wrong legal entity or the wrong site produces a complete-looking file that describes someone else. Match the risk first.
Start from the normalized named insured, DBA, tax identifier, mailing and location addresses, occupancy, and construction as they sit after submission extraction and normalization. Confirm which location is being rated. A multi-site account needs a match key per site. Do not reuse a headquarters hit across every building.
Run the match against the licensed bureau's match service or the PAS party and location keys you already license. Record the match method, the match confidence the vendor returns, and the identifier for later calls. Keep that match record on the quote file next to the attributes it authorized. A later rerate that cannot show which location key was used cannot defend the enrichment. If the bureau cannot match, stop the pull for that site. Do not fold a nearby address into a flood or crime attribute. Do not attach another company's loss runs because the names look close.
The match record is itself an enrichment field. It needs a source and a vintage. "Likely the same risk" is not a cite.
Licensed feeds only, with vintage on every field
Once the match holds, call only the feeds this product and this jurisdiction license. Quote-time classes usually include:
- Firmographics and business identity from a licensed bureau.
- Prior loss and claims history from a licensed loss-history feed, or from the carrier's own PAS when the risk is already on the books.
- Geospatial attributes such as flood, wildfire, crime, construction, and occupancy overlays from a licensed property or hazard file.
- Weather and catastrophe event context from a licensed weather or catastrophe feed, not from an unlicensed map screenshot.
- Connected-property or IoT signals only with a license and a consent path.
Every returned attribute lands with four things: the value, the source (bureau or PAS name), the product or file name if the vendor distinguishes them, and the vintage (as-of date or file version). If the vendor returns a score, store the score version. If the vendor returns "no hit," store "no hit" with the same cite. That is a licensed negative result, not a blank and not an invented history.
Do not invent a loss history. If the loss-history feed returns no match, those fields stay empty or stay "no hit," depending on the contract and the PAS mapping. Typing in prior losses from memory, a news clip, or another account is a quality failure.
Stamp vintage at pull time, not at bind. Quote files linger. The vintage tells the underwriter whether to refresh before they rate. If you refresh, write a new row. Do not overwrite the vintage the underwriter saw.
Unmatched or unlicensed fields stay blank
Empty is the correct state when the carrier does not license that feed for this line, state, or use; when the bureau did not match the named insured or location; when the feed timed out or errored; or when the attribute is not in the licensed product you called.
Do not backfill from an unauthorized scrape, from generative fill, or from a sibling location on the same account. Do not copy last year's enrichment forward without a new pull and a new vintage. A stale cite and a missing cite both fail if the file presents the value as current.
Blanks must be visible. Show "not licensed," "no match," or "not returned," not a silent zero. A zero looks like a clean loss history. A blank tells the underwriter to rate without that signal, or to request a licensed refresh.
This is also where application vs external data reconciliation starts. Application occupancy that disagrees with a cited bureau occupancy is a reconciliation item. Application occupancy that disagrees with an empty bureau field is not. There is nothing to reconcile until a licensed source speaks.
The underwriter still rates the submission
Enrichment prepares the file. It does not price the account.
The underwriter rates on the application, the cited enrichment, and the blanks. They can decline a cited field if the vintage is too old, the match confidence is too low, or the attribute sits outside guidelines. They cannot be asked to accept an "enriched rate," because there is no enriched rate. Indicative rating, if the desk uses it, is a separate step with its own controls.
One walk-through, not a measured result: a mid-market commercial property submission arrives with a clean named insured and one rated location. The licensed property file returns a location key. Firmographics and a flood-zone attribute come back with bureau name, product, and as-of date. The licensed loss-history feed returns no match. Loss-history fields stay empty (or "no hit"). Nobody types in a prior water loss from a local news story. The underwriter opens an honest file, two cited attributes and a documented no-hit on losses, and rates on that plus the application.
If the desk later refreshes enrichment after quote, that refresh is a new vintage, not an edit to the original cite. After bind, the same cited fields can feed continuous real-time risk scoring. Quote-time quality still means licensed source, recorded vintage, and blanks left blank.
Failures that look like a complete file
Three failure modes show up labeled "enriched" and are not.
A field with no bureau or PAS cite has a value but no licensed source in the audit trail (Verisk, LexisNexis Risk Solutions, CoreLogic, the PAS, or equivalent). Strip it or replace it with a licensed pull. Until then it stays out of rating.
Treating enrichment as the rate. A hazard score or firmographic segment maps straight into premium or a bind decision and skips the underwriter. The quality outcome here is a cited input. Pricing authority stays with rating guidelines and the underwriter. If indicative rating consumes enrichment, it consumes only cited fields and it remains indicative.
Inventing a loss history. No match, timeout, or missing license gets replaced with a plausible run of claims so the file looks complete. That is fabrication, and it is worse than a blank because the underwriter will rate as if the history were sourced. Leave the fields empty. Rate without them. Order a licensed history if the account needs one.
Scraping an unlicensed site because the licensed feed was slow does not create a license. The file has a licensed cite or it has a blank.
Before the underwriter rates, check that every non-blank field has source plus vintage, every blank has a reason, and no loss-history value exists without a licensed hit. If the checks fail, fix the file.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first