Skip to main content

State Requirements

OpenInsure maintains a registry of state-specific insurance requirements covering coverage minimums, required documents, filing rules, and domicile configuration. The system is built across two packages: @openinsure/rating (state requirements registry at packages/rating/src/state-requirements.ts) for coverage and filing rules, and @openinsure/domicile (at packages/domicile/src/index.ts) for captive insurance domicile configuration.

State Requirements Registry

The registry is an extensible system where each state has a StateRequirements object containing coverage minimums, document requirements, filing rules, and tax rates. The registry is exposed through the API at /v1/state-requirements.

Supported States

Currently, the registry includes detailed requirements for:

  • FL (Florida) -- Fully implemented with coverage validation

Additional states (TX, CA, NY, etc.) follow the same module pattern. Each state is implemented as a state-requirements-{code}.ts file and registered in the STATE_REGISTRY.

# List supported states
GET /v1/state-requirements
# Response: { "states": ["FL"] }

State Profile

Each state profile contains the following top-level fields:

FieldTypeDescription
stateCodestringTwo-letter state code
stateNamestringFull state name
lobstringLine of business these requirements apply to
effectiveDatestringDate these requirements became effective
coverageMinimumsarrayRequired minimum coverage amounts
documentRequirementsarrayRequired documents by lifecycle phase
filingRulesarrayRegulatory filing and reporting rules
surplusLinesTaxRatenumberSurplus lines tax rate (decimal)
surplusLinesStampingFeenumberSurplus lines stamping fee (decimal)
premiumTaxRatenumberState premium tax rate (decimal)
notesarrayRegulatory notes and special considerations
# Get full state profile
GET /v1/state-requirements/FL

Coverage Minimums

Coverage minimums define the minimum amounts required by state statute for specific coverage types. Each minimum includes the applicable statute reference and an applicability scope.

Applicability Scopes

ScopeDescription
all_vehiclesApplies to all vehicles registered in the state
gvw_26000_34999Gross vehicle weight 26,000 -- 34,999 lbs
gvw_35000_43999Gross vehicle weight 35,000 -- 43,999 lbs
gvw_44000_plusGross vehicle weight 44,000+ lbs
fmcsa_interstateFMCSA-regulated interstate carriers
fmcsa_hazmatFMCSA-regulated hazmat carriers

API

# Get all coverage minimums for a state
GET /v1/state-requirements/FL/coverages

# Filter by applicability
GET /v1/state-requirements/FL/coverages?applicability=fmcsa_hazmat

Coverage Minimum Structure

{
"stateCode": "FL",
"coverages": [
{
"id": "fl-cov-001",
"coverage": "liability",
"label": "Bodily Injury / Property Damage Liability",
"minimumAmount": 300000,
"perOccurrence": true,
"statute": "F.S. 627.7415",
"description": "Minimum combined single limit for commercial vehicles",
"applicability": "all_vehicles"
}
]
}

Document Requirements

Each state specifies which documents are required at each phase of the policy lifecycle.

Lifecycle Phases

PhaseDescription
applicationDocuments needed when the submission is received
bindingDocuments required before a policy can be bound
issuanceDocuments generated or collected at policy issuance
cancellationDocuments required for policy cancellation
renewalDocuments required for policy renewal

Conditional Requirements

Some documents are only required when specific conditions are met:

ConditionDescription
fmcsa_regulatedVehicle is regulated by FMCSA
surplus_linesPolicy is written on a surplus lines basis
hazmatVehicle carries hazardous materials

API

# Get all document requirements
GET /v1/state-requirements/FL/documents

# Filter by lifecycle phase
GET /v1/state-requirements/FL/documents?phase=binding

Each document requirement includes: id, documentType, label, required, reviewRequired, statute, description, phase, and an optional conditionalOn field specifying when the document is conditionally required.

Filing Rules

Filing rules define the regulatory requirements for rate filings, cancellation notices, reporting obligations, and coverage rules.

Rule Types

TypeDescription
filingRate and form filing requirements with the state DOI
cancellationNotice periods and procedures for policy cancellation
reportingPeriodic reporting obligations to the state
coverageState-mandated coverage rules and conditions
applicationApplication-phase regulatory requirements

API

# Get all filing rules
GET /v1/state-requirements/FL/filing-rules

# Filter by rule type
GET /v1/state-requirements/FL/filing-rules?ruleType=cancellation

Filing Rule Structure

{
"stateCode": "FL",
"rules": [
{
"id": "fl-rule-001",
"label": "Rate Filing Required",
"statute": "F.S. 627.062",
"description": "All rates must be filed with the OIR prior to use",
"ruleType": "filing"
},
{
"id": "fl-rule-003",
"label": "Cancellation Notice Period",
"statute": "F.S. 627.728",
"description": "45-day written notice for cancellation; 10-day for non-payment",
"ruleType": "cancellation"
}
]
}

Coverage Validation

The API provides a validation endpoint that checks a vehicle and coverage configuration against state-specific minimums. Currently implemented for Florida.

POST /v1/state-requirements/FL/validate
{
"vehicle": {
"gvw": 35000,
"isFmcsaRegulated": true,
"cargoType": "general_freight",
"isHazmat": false
},
"coverages": {
"liabilityPerOccurrence": 750000,
"pipAmount": 10000,
"pdlAmount": 50000,
"umAmount": 0,
"umRejected": true,
"biLimit": 300000,
"cargoAmount": 100000
}
}

The response includes valid (boolean), errorCount, warningCount, and a results array. Each result contains ruleId, severity (error or warning), message, statute, requiredAmount, and actualAmount. For states without validation logic, the endpoint returns valid: true with an empty results array.

Captive Domicile Configuration

The @openinsure/domicile package provides a separate registry of captive insurance domicile rules for 17 states. This is relevant for captive program administration and risk retention groups.

Supported Domiciles

The package includes configurations for 17 states: AL, AR, AZ, DE, GA, HI, KY, MO, MT, NC, NE, NV, SC, TN, TX, UT, and VT.

Key differentiators between domiciles:

  • Vermont and Hawaii have a 3-year exam cycle (vs. the standard 5-year cycle).
  • Vermont and Hawaii require a resident director on the board.
  • Texas only supports single parent, group, and association captives (no cells, series, or RRGs).
  • Vermont supports the widest range of captive types, including rent-a-captive.
  • Delaware, Tennessee, Utah, and Missouri support series captives.

Domicile Configuration Fields

Each domicile config includes:

FieldDescription
minimumCapitalMinimum capital requirements by captive type (default: $250K single parent, $500K group/RRG)
annualFeesAnnual licensing fees by captive type
reportingDeadlinesRequired filings with due dates and formats
examCycleYears between mandatory examinations
actuarialRequiredWhether an actuarial opinion is required
boardRequirementsMinimum directors and resident director requirements

Standard Reporting Deadlines

Unless overridden by a specific state, all domiciles use these standard deadlines:

ReportDue DateFormat
Annual StatementMarch 1NAIC
Audited FinancialsJune 30GAAP

Package API

import {
listSupportedDomiciles,
getDomicileConfig,
isCaptiveTypeSupported,
getReportingDeadlines,
} from '@openinsure/domicile';

// List all supported domicile states
const domiciles = listSupportedDomiciles(); // sorted by state code

// Get config for a specific state
const vtConfig = getDomicileConfig('VT');
// vtConfig.minimumCapital.single_parent => 250000
// vtConfig.boardRequirements.residentDirectorRequired => true

// Check if a captive type is supported
isCaptiveTypeSupported('TX', 'rrg'); // false -- Texas does not support RRGs

// Get reporting deadlines
const deadlines = getReportingDeadlines('VT');

Permissions

All state requirements endpoints require one of the following roles:

  • underwriter
  • producer
  • org_admin
  • superadmin

The endpoints are read-only -- state requirements are maintained in code, not in the database. To add or modify state requirements, create or update the relevant state-requirements-{code}.ts module in packages/rating/src/.

  • Compliance -- Regulatory compliance and filing automation
  • Rate Tables -- Rating engine and premium calculation
  • Policy -- Policy lifecycle and bind checklist