Skip to main content

Bordereaux Automation

A bordereaux is a detailed schedule of risks or claims submitted by an MGA or coverholder to its carrier (or by a cedent to its reinsurer). In traditional MGA operations, this is a manually compiled monthly spreadsheet — error-prone, time-consuming, and a perennial source of carrier relationship friction.

OpenInsure eliminates manual bordereaux by capturing every transaction in real time and generating compliant reports automatically.

Types of Bordereaux

Premium Bordereaux

The premium bordereaux lists every bound policy within the reporting period, showing the premium flow:

ColumnDescription
Policy NumberUnique policy identifier
Insured NameNamed insured
Effective / Expiration DatePolicy term
StatePrimary risk state
NAICS CodeInsured's industry classification
Gross PremiumTotal premium charged to insured
Policy FeeFlat policy fee (if any)
Producer CommissionAmount paid to producing agency
MGA OverrideMGA's retained spread
Surplus Lines TaxState tax (if non-admitted)
Net to CarrierGross premium less commissions and fees
Transaction TypeNEW, ENDORSEMENT, CANCELLATION, REINSTATEMENT

Claims Bordereaux

The claims bordereaux lists all reported claims within the period (or all open claims as of the report date):

ColumnDescription
Claim NumberUnique claim identifier
Policy NumberRelated policy
Date of LossWhen the loss occurred
Date ReportedWhen FNOL was received
Loss TypeBodily injury, property damage, etc.
Claimant NameName of injured party or claimant
Case ReserveCurrent reserve estimate
Paid IndemnityAmounts paid to date
Paid ExpenseDefense/adjustment expenses paid
Total IncurredReserve + paid (ultimate loss estimate)
StatusOpen, closed, litigated
RecoverySubrogation or salvage received

Configuring Reporting Periods

Bordereaux reporting periods and delivery are configured at the carrier level:

PATCH /v1/carriers/:id
Authorization: Bearer <admin_token>
Content-Type: application/json

{
"bordereauConfig": {
"premiumFrequency": "MONTHLY",
"claimsFrequency": "MONTHLY",
"reportingLag": 15, // days after period end to generate report
"deliveryMethod": "EMAIL",
"deliveryContacts": ["bordereaux@carrier.com", "reinsurance@carrier.com"],
"formats": ["EXCEL", "CSV"],
"premiumCutoffDay": 31, // last day of month
"claimsCutoffBasis": "REPORTED" // or "DATE_OF_LOSS"
}
}

Export Formats

FormatUse CaseNotes
CSVMachine-to-machine ingestion into carrier systemsUTF-8, RFC 4180
EXCELHuman review at the carrier.xlsx, formatted with totals row
XMLStructured EDI to legacy carrier platformsSchema per carrier configuration
ACORD_200ACORD-standard bordereaux formatWhere carrier requires ACORD compliance

Generating a Bordereaux

On-Demand Generation

POST /v1/bordereaux/generate
Authorization: Bearer <admin_token>
Content-Type: application/json

{
"type": "PREMIUM",
"carrierId": "car_01J8...",
"programId": "prog_gl_contractors",
"periodStart": "2025-06-01",
"periodEnd": "2025-06-30",
"formats": ["EXCEL", "CSV"]
}

# Response:
{
"jobId": "brdx_01J8...",
"status": "generating",
"estimatedComplete": "2025-07-16T09:02:00Z"
}

Poll for completion:

GET /v1/bordereaux/:jobId

# When complete:
{
"jobId": "brdx_01J8...",
"status": "complete",
"files": [
{
"format": "EXCEL",
"url": "https://r2.openinsure.dev/bordereaux/brdx_01J8....xlsx",
"rowCount": 142,
"totalGrossPremium": 284750.00,
"totalNetToCarrier": 212062.50
},
{
"format": "CSV",
"url": "https://r2.openinsure.dev/bordereaux/brdx_01J8....csv"
}
]
}

Automatic Monthly Delivery

On the 15th of each month (or configured reportingLag days after period end), the scheduler automatically:

  1. Generates both premium and claims bordereaux for the prior month.
  2. Emails the configured delivery contacts with the files attached.
  3. Logs the delivery to bordereaux_deliveries for audit.
  4. Marks the bordereaux as delivered in the carrier record.

If delivery fails (bounce, size limit), the system retries and alerts the MGA admin.

Reinsurance Cession Statements

For MGAs with quota share or excess-of-loss reinsurance treaties, OpenInsure generates cession statements showing how premium and risk is being ceded to reinsurers:

POST /v1/reinsurance/cession-statement
Authorization: Bearer <admin_token>
Content-Type: application/json

{
"treatyId": "trt_01J8...",
"periodStart": "2025-06-01",
"periodEnd": "2025-06-30"
}

The cession statement includes:

  • Ceded premium by policy (proportion per quota share %, or above retention for XOL)
  • Ceded reserves on open claims
  • Recoveries received from reinsurers on paid claims
  • Net retained premium (after cession)
  • Running ceded aggregate vs. treaty limit
note

Cession statements require the reinsurance treaties to be configured in @openinsure/reinsurance. See the reinsurance module documentation for treaty setup instructions.

Reconciliation

The bordereaux module includes a reconciliation tool that compares the bordereaux totals against:

  1. Trust ledger balance — Total net-to-carrier per bordereaux should match the pending trust account remittance.
  2. PlanetScale policy records — Every policy in the bordereaux should have a corresponding active record.
  3. Prior month carryover — Reinstated or re-opened items from prior periods are flagged for carrier awareness.

Discrepancies are reported as RECONCILIATION_EXCEPTION records and require admin acknowledgment before the bordereaux can be delivered.