Skip to content

Cyber liability: data model

The entities, fields, enumerated values and relationships. The endpoints over them are in Cyber liability: API, and the terms used throughout are defined in Insurance concepts.

There is no physical thing insured here, so the model describes the business instead. cyberLiabilityCoverage is the policy and business is the organisation, carrying the attributes that predict how costly a breach would be. dataAssets enumerates the kinds of sensitive data it holds, and cyberCoverageCategories enumerates the 21 things the policy can pay for.

erDiagram
    CYBER_COVERAGE {
        string policyNumber
        datetime inceptionDate
        datetime expiryDate
        enum status
        float grossWrittenPremium
        float salesTax
        int indemnityLimitPolicy
        int indemnityLimitAccident
        enum endorsementType
        enum claimsOccurrence "claimsOccurrence ref"
    }
    BUSINESS {
        string businessSector "UK SIC"
        bool dataSharing
        float deductible "days"
        int deductibleAmount
        float grossAnnualTurnover
        float numberOfEmployees
        float itStaff
        float onlineTradingVolume
        float numberOfRecords
    }
    DATA_ASSETS {
        int code "0-4"
        string description "IP/PII/PCI/PHI/Commercial"
    }
    CYBER_COVERAGE_CATEGORY {
        int code "0-20"
        string description
    }

    CYBER_COVERAGE ||--|| BUSINESS : "covers"
    BUSINESS ||--o{ DATA_ASSETS : "holds"
    CYBER_COVERAGE ||--|{ CYBER_COVERAGE_CATEGORY : "scope"
EntityFieldTypeWhat it means
CyberLiabilityCoverageclaimsOccurrenceenum (claimsOccurrence)Which policy year owns a claim. Claims occurring covers losses that happened in the term, whenever reported. Claims made covers claims reported in the term, whenever the loss happened. Cyber is usually written claims-made
CyberLiabilityCoverageindemnityLimitPolicyNumber/integerThe most the policy pays across the year
BusinessbusinessSectorUK SICIndustry as a Standard Industrial Classification code. A payment processor and a builder carry very different exposure
BusinessdataAssetsenum multi (dataAssets)What kinds of sensitive data the business holds. Five values: IP (intellectual property), PII (personal data), PCI (payment card data), PHI (health data), Commercial. Kind matters more than volume, because each carries a different regulatory consequence
BusinessnumberOfRecordsNumber/FloatHow many sensitive records are held. Breach response cost scales almost directly with this
BusinessdataSharingBooleanWhether data is shared with third parties or held in the cloud, which extends the attack surface beyond the insured’s own control
BusinessitStaffNumber/FloatHow many IT staff there are. A proxy for whether anyone is watching
BusinessnumberOfEmployeesNumber/FloatHeadcount. Most breaches begin with a person, so this is an exposure measure
BusinessonlineTradingVolumeNumber/FloatHow much of the turnover is transacted online, which sets what an outage costs per hour
BusinessgrossAnnualTurnoverNumber/FloatTotal revenue, the basis for business interruption cover
BusinessdeductibleNumber/FloatThe excess expressed in days, not money. Cover starts once an outage has run past this waiting period
BusinessdeductibleAmountNumber/integerThe excess expressed in money, applied separately from the day-based one
CyberCoverageCategorycodeintOne of 21 things the policy pays for, listed in the module overview

claimsOccurrence matters more here than anywhere else. A breach is routinely discovered long after the intrusion that caused it, so which of the two bases applies decides which policy year pays. Cyber is usually written claims-made. The same enumeration is used in property and business interruption.

business.cyberCoverageCategories references the wrong sheet. It points at cyberLiabilityCoverage rather than the cyberCoverageCategories enumeration it is named for. Validate against the enumeration.

Two names are wrong at source and shown corrected here. claimsOcuurence on the coverage entity, and NumberOfEmployees in PascalCase where everything around it is camelCase. Two category descriptions are also misspelled, Multi-media laibilities and Theft of intectual property. The codes are stable, so match on code rather than on description text.

Nothing here models an incident. Detection, breach notification timelines and remediation are all absent, and deliberately so. A cyber loss is recorded through the shared Claim entity.