Canonical Insurance Data Model β ktayl IS
The shared business model every domain builds against. One definition of Customer, Policy, Claimβ¦ so APIs, integrations, reporting, AI and audit all speak the same language. This is the conceptual model (entities + relationships + the system of record that owns each); each domain service keeps its own physical schema but must not redefine these core entities β it references them by the canonical identifier. Companion: System of Record Β· Capability Map.
:::note Two-layer model This models the ktayl-solution IS (the insurer). Retrieva is a separate product and is not part of this model β though its graph pattern is reused for portfolio accumulation (see Capability Map). :::
1. The core entity graphβ
2. Entities β definition, key attributes, system of recordβ
| Entity | What it is | Key attributes | System of Record | SoR status |
|---|---|---|---|---|
| Customer | The insured corporate group (top of hierarchy) | globalCustomerId, name, industry, revenue, country | CRM / MDM | π΄ none yet |
| LegalEntity | A subsidiary/entity of the customer (per-country) | entityId, customerId, country, LEI, admittedStatus | CRM / MDM | π΄ none yet |
| Broker | The intermediary placing business | brokerId, name, country, commissionTerms | CRM | π΄ none yet |
| Submission | A request to quote (new business / renewal) | submissionId, customerId, brokerId, LOB, status | Submission Hub | π΄ not built |
| Risk | The insurable object/activity assessed | riskId, submissionId, class, occupancy | Underwriting | π‘ scaffold |
| Exposure | The quantified size of a risk | TIV, PML, MFL, BI value, catZone | Underwriting | π‘ scaffold |
| Site | A physical location of exposure | siteId, address, geo, occupancy | Underwriting / Risk Eng | π‘ scaffold |
| Quote | Priced terms offered | quoteId, riskId, premium, limits, deductibles | Underwriting | π‘ scaffold |
| Policy | The bound contract (the spine) | policyId, entityId, inception, expiry, status | Policy Admin | π’ live (ktayl-policy-service) |
| Coverage | A granted cover within a policy | coverageId, policyId, limit, deductible, clauses | Policy Admin | π’ live |
| Premium | Amounts charged for a policy | premiumId, policyId, gross, tax, installments | Billing | π΄ not built |
| Claim | A loss event against a policy | claimId, policyId, event, status, cause | Claims | π‘ scaffold |
| Reserve | Money set aside for a claim | reserveId, claimId, type, amount | Claims / Actuarial | π‘ scaffold |
| Payment | Cash out (claim) or in (premium) | paymentId, ref, amount, currency, date | Finance (ERPNext) | π‘ partial |
| Programme | An international master + local policies | programmeId, masterPolicyId, countries | International Programmes | π‘ scaffold |
| Reinsurance | Treaty/fac cession of a risk | contractId, type, cededShare, reinsurer | Reinsurance | π‘ scaffold |
| Survey | A risk-engineering site assessment | surveyId, siteId, engineer, date, score | Risk Engineering | π‘ scaffold |
| Recommendation | A prevention action from a survey | recId, surveyId, severity, dueDate, status | Risk Engineering | π‘ scaffold |
3. The three rulesβ
- One canonical identifier per entity β a domain references
policyId/globalCustomerId, it does not mint its own. This is what MDM (customer/entity/broker) exists to guarantee. - The SoR owns writes; everyone else holds read projections β e.g. Claims reads Policy via the Policy API, never writes policy data.
- Cross-domain joins happen in the Data Platform, not by reaching into another domain's database (no shared operational DB β blueprint ADR-005).
4. Why this matters against the industry problemsβ
- P1 insurability / P3 accumulation need
Site+Exposure+Coveragejoined across the whole portfolio β impossible without a canonicalSite/Exposureshared by Underwriting, Risk Engineering and the Data Platform. The canonical model is the precondition for accumulation analysis. - P2 margin needs
Premium+Claim+Reservejoined bypolicyIdfor loss-ratio/combined-ratio β which only works if all three domains use the samepolicyId.
5. Statusβ
The model is defined; only Policy + Coverage have a live SoR today. The rest are owned by
scaffold/gap domains β so the immediate foundation work is MDM (Customer/Entity/Broker) + a canonical
Site/Exposure, which unlock the analytics that attack P1/P2/P3. See Capability Map Β§roadmap.