The first book export a seller sends is rarely the one the deal is priced on. It comes out of an agency management system on a Friday afternoon, with columns named after that system, clients with no code, policies with no producer and commission that cannot be right. A retention rate computed over it is a guess.

This post follows the illustrative Coastal Keystone Agency — personal lines and coastal homeowners, Wilmington, invented for the demo — at the data received stage: 5,204 rows, 316 of them flagged (6.1%). The import maps the columns, the data-quality engine names every problem row, and the intake agent drafts the request to the seller from them.

Use case card
ActorsAnalyst, deal lead, the seller's operations manager
TriggerThe book export uploaded; the stage moved to data received
Agency IllustrativeCoastal Keystone Agency — 5,204 rows; client retention 85.4%
Agents involvedBook intake agent (data room and data quality), then every other agent once the book is trusted
Controls that fireDATA_QUALITY (more than 5% of rows with issues — warn)
Decisions and authoritySending the request to the seller (deal lead; the agent only prepares it)
OutcomeA corrected export re-imported; the new import replaces the old and every figure is recomputed
What is measuredShare of rows with issues by kind; data-room checklist completeness
Acquisition Workspace · data received
The workspace hero for an illustrative agency at data received
Coastal Keystone Agency (illustrative) at data received: 5,204 book rows, client retention 85.4%, four key producers holding 82.1% of revenue.

Import: one schema, whatever the system

The upload (CSV or XLSX) is read into a table and its columns mapped onto one schema — client id and name, client type, website, client since, industry, state, line, carrier, producer, policy number, effective and expiry dates, written premium, commission rate, commission, commission type and status. Every row is stored with its row number, which is what every citation later points to. The file itself goes to your object store when one is configured, never to local disk.

flowchart LR F["Seller's export
CSV / XLSX"] --> M["Column mapping
onto one schema"] M --> R["Rows stored with
their row numbers"] R --> Q["Data-quality engine"] Q --> I1["No client code"] Q --> I2["No producer"] Q --> I3["Commission missing
or above premium"] Q --> I4["Expiry before
effective date"] I1 & I2 & I3 & I4 --> DQ{"Over 5%
of rows?"} DQ -->|"6.1%"| W["DATA_QUALITY warns"] DQ --> RQ["Intake agent drafts
the request to the seller"] style W fill:#fff4e2,stroke:#f4a03a
Book · data quality
Revenue mix and data quality for an illustrative agency with a messy export
Revenue mix and data quality on a messier export: each issue with its severity and the rows it affects.

Each issue has a severity because each damages a different figure. A row with no client code cannot be counted in retention; a row with no producer cannot be counted in key-person shares; commission above the premium corrupts revenue; a reversed date puts the policy in the wrong period.

IssueRowsSeverityWhat it breaks
No client code70HighClient retention, client concentration, client matching
No producer115MediumProducer shares and key people
Commission missing or above the premium65HighRevenue, revenue quality, the valuation arithmetic
Expiry before effective date66MediumPeriods, renewals calendar

316 of 5,204 rows flagged (6.1%), illustrative.

The request, drafted from the rows

Findings · prepared for you
Decisions the agents prepared for an illustrative agency at data received
Prepared for you at data received: corrected book data from the seller, retention agreements for four key producers, a client match to confirm and appointment requests.

The book intake agent's prepared decision lists what to correct with example row numbers, so the seller's operations manager can find them in their own system. It is prepared: accepting it records the request; a person sends it.

From the first export to a book you can price on Coastal Keystone Agency, illustrative.
1
Export uploadedAnalystDay 0

The stage can move to data received only once a book export is imported.

2
Data room checkedintake_agentDay 0

The playbook's checklist: book export, financial statements, carrier statements, producer agreements, E&O history — what arrived and what is missing.

3
Rows flaggedintake_agentDay 0

316 rows flagged across four kinds, each with its row numbers.

4
DATA_QUALITY warnssupervisor_agentDay 0

More than 5% of rows: ask the seller for a corrected export.

5
Request sentDeal leadDay 1

Accepted on the decision record; sent by the deal lead.

6
Corrected export importedAnalystDay 6

A new import replaces the old; the engines recompute; every finding is rebuilt from the new rows.

7
Moved to analysisDeal leadDay 6

Allowed only after Analyze has run, so the agents have read the book.

stateDiagram-v2 [*] --> Screening Screening --> DataReceived: book export imported DataReceived --> DataReceived: corrected export replaces the import DataReceived --> Analysis: Analyze has run Analysis --> ICMemo: a finding approved
AgentWhat it preparedWhat it citesWho decides
Book intake agentAsk the seller for corrected book data: 70 rows with no client code, 115 with no producer, 65 with commission missing or above the premium, 66 with expiry before effectiveEvery flagged row, by numberDeal lead
Concentration analystRetention agreements for four key producers holding 82.1% of revenueRows by producerDeal lead
Supervisor agentControls that fired, including DATA_QUALITYThe controlsPractice leader
SectionHitOutcome
DataDATA_QUALITY: 6.1% of rows with issueswarn
Key peopleKEY_PRODUCER: top producer 26.7% of revenuerefer
CarriersUNAPPOINTED_CARRIERSwarn

For the deal team

The analyst stops cleaning the seller's data by hand and sends back a list the seller can act on.

For IT

Column mapping is a function of the header names; every stored row keeps its source row number; a new import supersedes the old one.

For corp-dev leadership

No figure goes into a memo from a book with 6% of its rows broken without someone having seen it and asked.

Questions we get asked

Which agency management systems are supported?

Any that can export CSV or XLSX. The import recognises the usual column names for each field and maps them onto one schema.

Is the export kept?

Its rows are kept in your database. The file goes to your object store when configured, and never to local disk.

Keep reading