Management liability (D&O and cyber)

A combined directors and officers and cyber model rated by revenue band, industry and limit.

A default model in Ptally. Management Liability: D&O + Cyber is one of the default models you can select when you start a new project in Ptally. It comes with its rate tables, rules and 6 tests, ready to adapt to your own product.
The line of business

Management liability (D&O and cyber)

Management liability protects a company and its directors against claims arising from management decisions (D&O), and increasingly includes cyber cover. Size, industry and whether the company is publicly traded are the main rating drivers.

Methodology

How the model rates

A base premium is looked up by annual revenue band, then adjusted for industry, the aggregate limit and a load for publicly traded companies, which face securities class action exposure. A policy fee is added.

Companies in or recently out of Chapter 11 are declined. Public companies, cyber-heavy industries at higher limits and very large accounts are referred.

Three further factors adjust the premium: how long the company has traded, the strength of its cyber controls and its claims in the last five years.

8inputs
11steps
6lookup tables
6tests

Inputs

8 fields
FieldLabelTypeDefaultAllowed values
revenueAnnual revenue ($)integer50000001000000, 5000000, 25000000, 100000000, 500000000
industryIndustry sectorstringprofessional_servicesprofessional_services, healthcare, technology, financial_services, manufacturing, retail
aggregate_limitAggregate limit ($)integer30000001000000, 3000000, 5000000, 10000000
public_companyPublicly traded on a major exchangebooleanfalsefalse, true
financial_distressIn or emerging from Chapter 11 in last 24 monthsbooleanfalsefalse, true
years_tradingYears tradinginteger51, 3, 5, 10
cyber_controlsCyber controlsstringstandardbasic, standard, advanced
prior_claims_5yClaims in the last 5 yearsinteger00, 1, 2, 3
The model

Step by step

Steps run in order. Each one can use the inputs and the outputs of every step before it.

01Lookup table
Revenue band base premium

Base combined D&O + cyber premium by annual revenue band.

{
  "id": "revenue_bands",
  "key": "revenue_bands",
  "step": "collection",
  "name": "Revenue band base premium",
  "retain": true,
  "collection": [
    ["revenue_max", "revenue_base_premium"],
    [2000000, 2500],
    [10000000, 5500],
    [50000000, 14000],
    [250000000, 35000],
    [1000000000, 85000]
  ],
  "format": {
    "revenue_base_premium": {
      "key": "revenue_base_premium",
      "label": "Revenue band base premium",
      "exp": "collection.filter(revenue_max>={{revenue}}).map(revenue_base_premium).first()",
      "type": "decimal",
      "def": 5500
    }
  }
}
02Lookup table
Industry factor

Financial services and healthcare are the highest loads; retail is lightest.

{
  "id": "industry_ml_rates",
  "key": "industry_ml_rates",
  "step": "collection",
  "name": "Industry factor",
  "retain": true,
  "collection": [
    ["industry", "industry_ml_factor", "cyber_heavy"],
    ["professional_services", 1, false],
    ["healthcare", 1.6, true],
    ["technology", 1.4, true],
    ["financial_services", 1.8, true],
    ["manufacturing", 1.1, false],
    ["retail", 1.15, true]
  ],
  "format": {
    "industry_ml_factor": {
      "key": "industry_ml_factor",
      "label": "Industry factor",
      "exp": "collection.filter(industry=={{industry}}).map(industry_ml_factor).first()",
      "type": "decimal",
      "def": 1
    },
    "industry_cyber_heavy": {
      "key": "industry_cyber_heavy",
      "label": "Cyber-heavy industry flag",
      "exp": "collection.filter(industry=={{industry}}).map(cyber_heavy).first()",
      "type": "boolean",
      "def": false
    }
  }
}
03Lookup table
Limit factor

Standard ILF curve: factor 1.00 at $3m aggregate.

{
  "id": "limit_ml_rates",
  "key": "limit_ml_rates",
  "step": "collection",
  "name": "Limit factor",
  "retain": true,
  "collection": [
    ["limit_max", "limit_ml_factor"],
    [1000000, 0.65],
    [3000000, 1],
    [5000000, 1.35],
    [10000000, 1.85]
  ],
  "format": {
    "limit_ml_factor": {
      "key": "limit_ml_factor",
      "label": "Limit factor",
      "exp": "collection.filter(limit_max>={{aggregate_limit}}).map(limit_ml_factor).first()",
      "type": "decimal",
      "def": 1
    }
  }
}
04Transform
Public company load

Publicly-traded companies attract a 60% load for D&O securities class action exposure.

{
  "id": "public_factor",
  "key": "public_factor",
  "step": "transform",
  "name": "Public company load",
  "retain": true,
  "format": {
    "public_factor": {
      "key": "public_factor",
      "label": "Public company factor",
      "exp": "{{public_company}} == true ? 1.60 : 1.00",
      "type": "decimal",
      "def": 1
    }
  }
}
05Lookup table
Years trading factor

Younger companies are more likely to face disputes with investors, employees and creditors.

{
  "id": "ml_trading_rates",
  "key": "ml_trading_rates",
  "step": "collection",
  "name": "Years trading factor",
  "retain": true,
  "collection": [
    ["years_trading_min", "years_trading_max", "ml_trading_factor_rel"],
    [0, 2, 1.2],
    [3, 4, 1.05],
    [5, 999, 1]
  ],
  "format": {
    "ml_trading_factor": {
      "key": "ml_trading_factor",
      "label": "Years trading factor",
      "exp": "collection.filter(years_trading_min<={{years_trading}}).filter(years_trading_max>={{years_trading}}).map(ml_trading_factor_rel).first()",
      "type": "decimal",
      "def": 1
    }
  }
}
06Lookup table
Cyber controls factor

Multi-factor authentication, endpoint detection and tested backups sharply reduce cyber losses.

{
  "id": "cyber_controls_rates",
  "key": "cyber_controls_rates",
  "step": "collection",
  "name": "Cyber controls factor",
  "retain": true,
  "collection": [
    ["cyber_controls_value", "cyber_controls_factor_rel"],
    ["basic", 1.25],
    ["standard", 1],
    ["advanced", 0.85]
  ],
  "format": {
    "cyber_controls_factor": {
      "key": "cyber_controls_factor",
      "label": "Cyber controls factor",
      "exp": "collection.filter(cyber_controls_value=={{cyber_controls}}).map(cyber_controls_factor_rel).first()",
      "type": "decimal",
      "def": 1
    }
  }
}
07Lookup table
Claims history load

Load for claims in recent years. A clean record is neutral; each band of claims adds a larger load.

{
  "id": "ml_claims_rates",
  "key": "ml_claims_rates",
  "step": "collection",
  "name": "Claims history load",
  "retain": true,
  "collection": [
    ["prior_claims_5y_min", "prior_claims_5y_max", "ml_claims_factor_rel"],
    [0, 0, 1],
    [1, 1, 1.15],
    [2, 2, 1.3],
    [3, 99, 1.5]
  ],
  "format": {
    "ml_claims_factor": {
      "key": "ml_claims_factor",
      "label": "Claims history load",
      "exp": "collection.filter(prior_claims_5y_min<={{prior_claims_5y}}).filter(prior_claims_5y_max>={{prior_claims_5y}}).map(ml_claims_factor_rel).first()",
      "type": "decimal",
      "def": 1
    }
  }
}
08Calculation
Base premium

Revenue base × industry × limit × public-company factor. Multiplied by the years trading factor, cyber controls factor, claims history load.

{
  "id": "base_premium",
  "key": "base_premium",
  "step": "calculation",
  "name": "Base premium",
  "def": 0,
  "formula": "round({{revenue_base_premium}} * {{industry_ml_factor}} * {{limit_ml_factor}} * {{public_factor}} * {{ml_trading_factor}} * {{cyber_controls_factor}} * {{ml_claims_factor}}, 2)"
}
09Calculation
Policy premium

Add $500 policy fee.

{
  "id": "policy_premium",
  "key": "policy_premium",
  "step": "calculation",
  "name": "Policy premium",
  "def": 0,
  "formula": "round({{base_premium}} + 500, 2)"
}
10Decline rules
Management liability exclusions

Decline companies in or emerging from Chapter 11 within the last 24 months.

{
  "id": "ml_exclusions",
  "key": "ml_exclusions",
  "step": "exclusion",
  "name": "Management liability exclusions",
  "def": false,
  "items": [
    {
      "id": "in_distress",
      "name": "Financial distress (Ch 11 within 24 months)",
      "exp": "{{financial_distress}} == true",
      "def": false
    }
  ]
}
11Refer rules
Management liability refers

Refer publicly-traded companies, cyber-heavy industries at $5m+ limits, and any account over $250m revenue.

{
  "id": "ml_refers",
  "key": "ml_refers",
  "step": "refer",
  "name": "Management liability refers",
  "def": false,
  "items": [
    {
      "id": "public_refer",
      "name": "Publicly-traded company",
      "exp": "{{public_company}} == true",
      "def": false
    },
    {
      "id": "cyber_heavy_high_limit",
      "name": "Cyber-heavy industry at $5m+ limit",
      "exp": "{{industry_cyber_heavy}} == true && {{aggregate_limit}} >= 5000000",
      "def": false
    },
    {
      "id": "very_large_revenue",
      "name": "Revenue over $250m",
      "exp": "{{revenue}} > 250000000",
      "def": false
    }
  ]
}
Worked example

Worked example: young company with advanced cyber controls

This quote was priced by the Ptally rating engine. The trace below follows it through every step to the final result.

Quote input
{
  "revenue": 3000000,
  "industry": "professional_services",
  "aggregate_limit": 3000000,
  "public_company": false,
  "financial_distress": false,
  "years_trading": 2,
  "cyber_controls": "advanced",
  "prior_claims_5y": 0
}
Result6,110VALID
Calculation trace
  1. Revenue band base premiumLookup table
    revenue_base_premium = 5,500
  2. Industry factorLookup table
    industry_ml_factor = 1 · industry_cyber_heavy = false
  3. Limit factorLookup table
    limit_ml_factor = 1
  4. Public company loadTransform
    false == true ? 1.60 : 1.00 → 1
  5. Years trading factorLookup table
    ml_trading_factor = 1.2
  6. Cyber controls factorLookup table
    cyber_controls_factor = 0.85
  7. Claims history loadLookup table
    ml_claims_factor = 1
  8. Base premiumCalculation
    round(5,500 * 1 * 1 * 1 * 1.2 * 0.85 * 1, 2) = 5,610
  9. Policy premiumCalculation
    round(5,610 + 500, 2) = 6,110
  10. Management liability exclusionsDecline rules
    Financial distress (Ch 11 within 24 months): not fired
  11. Management liability refersRefer rules
    Publicly-traded company: not firedCyber-heavy industry at $5m+ limit: not firedRevenue over $250m: not fired
Start from this model

Select management liability (d&o and cyber) as the default model for a new project, then change the rates, rules and tests to match your product. Our consultants can do this for you, with no implementation fee.

Talk to our team