• contact@verticalserve.com
Home / Engineering / Post 41
Engineering Blog · Post #41

Auto-Generated BOR Letters: How InsightUW Creates Broker of Record Documents with One Click

How InsightUW generates compliant BOR letters and 5-day notification documents using the same template infrastructure that powers quote letters and binders — with zero manual drafting.


The Problem

When a Broker of Record change is initiated, underwriters and operations teams must produce two critical documents: the formal BOR letter notifying the incumbent broker and the 5-day grace period notification letter sent to all parties. Most carriers draft these manually in Word, copy-pasting insured names, policy numbers, broker contacts, and grace period dates from spreadsheets and emails. The result is inconsistent formatting, missing fields, compliance gaps, and hours of administrative overhead per BOR event.

A single typo in a grace period date or an incorrect incumbent broker address can delay the entire BOR process — or worse, expose the carrier to E&O liability.

The InsightUW Approach

InsightUW treats BOR letters as first-class Document Template records — the same infrastructure that drives quote letters, binders, and declination notices. Templates are managed in the Template Manager at /uw/templates, rendered with ReportLab for pixel-perfect PDF output, and populated automatically from BOR record data. One click generates a fully formatted, compliance-ready document.

graph LR subgraph Trigger["BOR Creation"] A["UW Initiates BOR"] B["BOR Record Created<br/>status: pending"] end subgraph Merge["Merge Field Resolution"] C["Insured Name & LOB"] D["Policy Number"] E["Incumbent Broker<br/>Name / Contact / Email"] F["New Broker<br/>Name / Contact / Email"] G["Grace Period Dates<br/>Start / End"] H["Assigned UW"] end subgraph Render["Document Generation"] I["Load Document Template<br/>bor letter / five day notice"] J["Report Lab PDF Engine<br/>Populate Merge Fields"] K["Html Preview<br/>In-App Modal"] end subgraph Output["Delivery"] L["PDF Download<br/>from Detail Modal"] M["Attach to BOR Record<br/>Submission Document"] N["Audit Trail Entry<br/>document generated"] end A --> B B --> C B --> D B --> E B --> F B --> G B --> H C --> I D --> I E --> I F --> I G --> I H --> I I --> J J --> K J --> L L --> M M --> N

Template Architecture

BOR letters live alongside all other document templates in the Document Template model. Each template has a template type field that categorizes it — bor letter, five day notice, quote letter, binder, declination — and a content template field containing the HTML layout with merge placeholders.

Template Type Description Merge Fields Format
bor letter Formal Broker of Record change notification insured, LOB, policy, incumbent, new broker, effective date PDF
five day notice 5-day grace period notification to all parties insured, LOB, grace start/end, incumbent contact, new broker contact, UW PDF

Merge Field Catalog

Every merge field is resolved automatically from the BOR record and its related submission:

Merge Field Source Example Value
{{insured_name}} Submission.insured_name Solaris Energy Holdings
{{lob}} Submission.lob D&O
{{policy_number}} Submission.policy_number POL-2026-DO-1187
{{incumbent_broker}} Bor.incumbent_broker_name Lockton Risk Advisors
{{incumbent_contact}} Bor.incumbent_broker_contact James Whitfield
{{incumbent_email}} Bor.incumbent_broker_email j.whitfield@lockton.com
{{new_broker}} Bor.new_broker_name Marsh & McLennan
{{new_contact}} Bor.new_broker_contact Rachel Torres
{{new_email}} Bor.new_broker_email r.torres@marsh.com
{{grace_start}} Bor.grace_period_start April 22, 2026
{{grace_end}} Bor.grace_period_end April 27, 2026
{{assigned_uw}} Bor.assigned_uw Sarah Chen

ReportLab PDF Generation

InsightUW uses the same ReportLab pipeline that generates quote letters and binders. The flow is:

  1. Template lookup — fetch Document Template by template type and optional LOB override
  2. Merge resolution — replace all {{field}} placeholders with BOR record values
  3. HTML render — generate an in-app preview in the detail modal for review before download
  4. PDF render — ReportLab converts the resolved HTML to a styled PDF with carrier letterhead, signature blocks, and compliance footer
  5. Storage — the generated PDF is saved as a Submission Document with category: bor_letter and linked to the BOR record

Template Manager Integration

Templates are fully editable through the Template Manager at /uw/templates. Administrators can:

  • Edit the HTML layout and merge field placement
  • Preview rendered output with sample data
  • Clone existing templates for LOB-specific variations
  • Set a template as the default for a given template type
  • View version history and revert to previous versions

HTML Preview and PDF Download

From the BOR detail modal, users see two document actions:

Action Description
Preview Opens an HTML-rendered preview of the letter in the modal body — no download needed
Download PDF Triggers ReportLab generation and downloads the final PDF to the browser

Both actions are available for the BOR letter and the 5-day notification letter independently.

D&O Submission: Solaris Energy Holdings

Scenario: Marsh & McLennan submits a BOR letter to take over the D&O account for Solaris Energy Holdings, currently brokered by Lockton Risk Advisors. The assigned underwriter is Sarah Chen.

Field Value
Insured Solaris Energy Holdings
LOB D&O
Policy Number POL-2026-DO-1187
Incumbent Broker Lockton Risk Advisors (James Whitfield, j.whitfield@lockton.com)
New Broker Marsh & McLennan (Rachel Torres, r.torres@marsh.com)
Grace Period April 22, 2026 - April 27, 2026 (5 days)
Assigned UW Sarah Chen

What happens when Sarah clicks "Generate BOR Letter":

  1. System fetches the bor letter template for D&O
  2. All 12 merge fields resolve from the BOR record
  3. HTML preview renders in the detail modal — Sarah reviews for accuracy
  4. Sarah clicks "Download PDF" — a 2-page PDF downloads with carrier letterhead
  5. The PDF is automatically attached to the BOR record as a Submission Document
  6. Audit trail logs: document_generated | bor_letter | Sarah Chen | April 22, 2026 9:14 AM

The 5-day notification letter is generated identically, with its own template containing grace period language and the countdown start/end dates prominently displayed.

What This Means for Underwriters

  1. One-click document generation — BOR letters and 5-day notices are produced instantly from the detail modal, eliminating manual drafting and copy-paste errors across broker names, dates, and policy numbers.

  2. Consistent compliance formatting — every BOR letter follows the carrier-approved template with proper legal language, signature blocks, and compliance footers, regardless of which underwriter generates it.

  3. Same infrastructure, zero learning curve — BOR templates use the identical Document Template and ReportLab pipeline as quote letters and binders, so the Template Manager workflow is already familiar.

  4. Preview before you send — the in-app HTML preview lets underwriters verify every field before downloading the PDF, catching errors before they reach the incumbent broker.

  5. Full audit trail — every document generation event is logged with who generated it, when, and which template version was used, providing a complete paper trail for regulatory review.

What's Next

In the next post, we will explore the 5-day grace period countdown — how InsightUW tracks the mandatory waiting period with visual progress bars, urgency color coding, and automated expiration detection.


InsightUW is an AI-powered underwriting workstation for P&C carriers. Request a demo to see BOR letter generation in action.

See InsightUW run on your data

A 45-minute working session with a real broker email and your LOBs.

Request a demo