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

Complete Submission Audit Trail: 20+ Event Types, Field-Level Change Tracking, and One-Click Compliance Export

How InsightUW tracks every action on an Excess Casualty submission — from the moment the broker email lands to the day the policy binds — with field-level before/after snapshots and a single-click regulatory export.


The Problem

When a state regulator asks "Why did you decline this Excess Casualty submission?", you need an answer. Not a guess. Not a reconstruction from memory. Not a search through 47 emails and 3 systems.

Most underwriting workstations log some events — submission created, status changed, maybe a note or two. But the critical details are missing:

  1. Who changed the limit from $25M to $15M, and when? — No field-level tracking
  2. Why was the appetite score 45 instead of 72? — AI decisions aren't logged
  3. The broker says they sent updated financials on March 3 — did we receive them? — Document receipt isn't timestamped
  4. The underwriter quoted at $180K, but the bound premium is $165K — who approved the deviation? — Pricing authority decisions live in emails
  5. For SOX compliance, we need to show segregation of duties between who quoted and who bound — Roles aren't tracked per action

The regulatory risk: Market conduct exams, E&O lawsuits, reinsurance audits, and DOI complaints all require a complete, tamper-evident record. If you can't produce it, you're exposed.

InsightUW's Audit Architecture

Every action in InsightUW generates an immutable audit event. Events are append-only — nothing is deleted, nothing is overwritten. Each event records who, what, when, why, and the before/after state.

graph TD subgraph Actions["User & System Actions"] A["CBP creates submission"] B["AI analyzes risk"] C["UW changes field"] D["Manager approves quote"] E["System sends notification"] F["Broker responds"] end subgraph Audit["Immutable Audit Log"] G["Event Type<br/>(20+ types)"] H["Actor<br/>(user, system, bot, AI)"] I["Timestamp<br/>(UTC, millisecond precision)"] J["Payload<br/>(before/after, metadata)"] K["Correlation ID<br/>(links related events)"] end subgraph Storage["Storage & Export"] L["Append-Only Database<br/>(no Update, no Delete)"] M["One-Click Export<br/>PDF / CSV / Json"] N["Regulatory Report<br/>DOI / SOX / E&O format"] end A --> G B --> G C --> G D --> G E --> G F --> G G --> H H --> I I --> J J --> K K --> L L --> M L --> N

The 20+ Event Types

Every event type has a category, icon, and structured payload:

# Event Type Category Icon Triggered By Payload Contains
1 email received Intake mail icon System sender, subject, attachment count, mailbox
2 email parsed Intake robot icon AI Parser extracted fields, confidence scores
3 submission created Lifecycle document icon System/User submission number, LOB, source, initial data
4 documents stored Documents save icon System file names, sizes, storage paths, SHA-256 hashes
5 document received Documents paperclip icon System/User file name, category, source (email/upload/bot)
6 ofac screening Compliance shield icon System result (clear/match/review), lists checked
7 duplicate check Compliance search icon System result (clear/duplicate), matched submissions
8 fifo assigned Assignment person icon FIFO Engine assigned_to, team, rotation_position, reason
9 reassigned Assignment transfer icon Manager from_user, to_user, reason
10 notification sent Communication bell icon System recipient, channel (app/email), message_type
11 ai analysis Analysis brain icon AI Engine 8 check results, scores, recommendations
12 appetite scored Analysis gauge icon Appetite Engine score, rule_matched, decision (accept/refer/decline)
13 field changed Data pencil icon User field_name, old_value, new_value, reason
14 status changed Lifecycle refresh icon User/System old_status, new_status, trigger
15 rush flagged Priority fire icon User reason, requested_by, sla_hours
16 rush removed Priority flag icon User reason, original_rush_duration
17 quote created Workflow calculator icon Underwriter quote_number, premium, terms, authority_level
18 quote approved Workflow check icon Manager approver, authority_level, deviation_pct
19 quote sent Communication send icon System recipient, delivery_method (email/portal)
20 broker response Communication reply icon Broker response_type (accept/counter/decline), details
21 binder issued Workflow lock icon System binder_number, effective_date, premium
22 bound Lifecycle check-circle icon Underwriter policy_number, final_premium, effective_date
23 declined Lifecycle x-circle icon Underwriter reason_code, reason_text, appetite_score
24 comment added Notes message icon User comment_text, visibility (internal/broker)

The Scenario

TechBridge Manufacturing needs $25M Excess Casualty coverage over a primary GL program. The submission arrives by email, goes through full underwriting, gets quoted, negotiated, and bound over 12 business days.

Here is the complete 18-event audit trail:

Field-Level Change Tracking

The most powerful audit capability is field-level change tracking. Every time a user modifies any field on a submission, InsightUW captures the old value, new value, who changed it, when, and why.

graph TD subgraph Before["Before (Mar 3)"] A["requested limit: $25,000,000"] B["attachment point: $2,000,000"] C["broker contact: david.chen@wtwco.com"] D["effective date: 2026-06-01"] end subgraph Change["Change Event (Mar 5)"] E["Robert Chen changes<br/>requested limit"] F["Reason: Broker confirmed<br/>insured revised down<br/>after board review"] end subgraph After["After (Mar 5)"] G["requested limit: $15,000,000"] H["attachment point: $2,000,000"] I["broker contact: david.chen@wtwco.com"] J["effective date: 2026-06-01"] end A -->|"changed"| E E -->|"new value"| G B -->|"confirmed (no change)"| H C -->|"unchanged"| I D -->|"unchanged"| J

Field Change History Table

For any submission, managers and auditors can view the complete field change history:

# Timestamp Field Old Value New Value Changed By Reason
1 Mar 3, 9:00:14 AM insured_name (created) TechBridge Manufacturing Inc AI Parser Email parsed
2 Mar 3, 9:00:14 AM lob (created) Excess Casualty AI Parser Keyword detection
3 Mar 3, 9:00:14 AM requested_limit (created) $25,000,000 AI Parser Email body extraction
4 Mar 3, 9:00:14 AM effective_date (created) 2026-06-01 AI Parser Date regex match
5 Mar 3, 9:00:14 AM attachment_point (created) $2,000,000 AI Parser "$2M primary" extraction
6 Mar 5, 2:30:00 PM requested_limit $25,000,000 $15,000,000 Robert Chen Broker confirmed revised limit
7 Mar 10, 9:45:01 AM quoted_premium (created) $165,000 Robert Chen Quote QT-2026-XS-TB-001
8 Mar 14, 4:15:00 PM status quoted bound Robert Chen Binder issued

One-Click Compliance Export

InsightUW provides three export formats, each tailored to a specific compliance use case:

PDF Export (for DOI Market Conduct Exams)

A formatted, paginated document with:
- Cover page: submission summary, insured, LOB, outcome
- Chronological event timeline with icons and descriptions
- Field change history with before/after values
- Document receipt log with timestamps
- Decision rationale (appetite score, quote deviation, approval chain)
- Digital signature: SHA-256 hash of export contents for tamper detection

CSV Export (for Reinsurance Audits)

Flat tabular data, one row per event:

Compliance & Regulatory Use Cases

graph LR subgraph Audit["InsightUW Audit Trail"] A["18 events<br/>Field-level tracking<br/>Tamper-evident hash"] end subgraph Regulators["Regulatory Uses"] B["DOI Market Conduct Exam<br/>Why was this risk declined?"] C["SOX Compliance<br/>Segregation of duties:<br/>who quoted vs who approved"] D["E&O Defense<br/>Complete decision chain:<br/>what was known at quote time"] end subgraph Internal["Internal Uses"] E["Reinsurance Audit<br/>Prove treaty compliance:<br/>limits, territory, exclusions"] F["Management Review<br/>Underwriter decision patterns<br/>and deviation tracking"] G["Training<br/>Review real submissions<br/>for UW training scenarios"] end A --> B A --> C A --> D A --> E A --> F A --> G

SOX Segregation of Duties

For publicly traded carriers, SOX requires that the person who creates a quote is not the same person who approves a pricing deviation. InsightUW's audit trail makes this trivially provable:

Action Actor Role Timestamp SOX Control
Quote created at $165K Robert Chen Senior UW Mar 10, 9:45 AM Originator
Deviation noted: -9.3% from indicated System Automatic Mar 10, 9:45 AM Detection
Quote approved Patricia Morgan VP Underwriting Mar 10, 10:00 AM Approver

Different person. Different role. Different timestamp. Logged and exportable.

E&O Defense Scenario

Two years after binding, TechBridge Manufacturing has a $12M products liability claim that pierces the excess layer. The insured's attorney claims the carrier should have known the risk was uninsurable. The audit trail shows:

  • Event 9: AI appetite score was 68/100 — within appetite
  • Event 9: D&B credit score 72, no prior excess claims
  • Event 10: Limit was reduced from $25M to $15M per broker instruction
  • Event 14: Premium of $165K was within the indicated range ($155K-$210K)
  • Event 15: VP approved the deviation with documented rationale

The underwriting decision was informed, documented, and approved through proper authority channels. The audit trail is the defense.

Audit Trail Search & Filter

The audit trail UI supports filtering by:

Filter Options Example
Event type Any of 24 types Show only field changed events
Actor User, system, AI, bot Show only human actions
Date range From/To Events between Mar 5-10
Category Intake, Lifecycle, Data, Compliance, etc. Show only Compliance events
Field name Any tracked field All changes to requested limit

Key Metrics

Metric Legacy Systems InsightUW Audit Trail
Events tracked per submission 3-5 (create, assign, status) 18-25 (every action)
Field-level change history None Every field, every change, with reason
Time to produce audit export 2-5 days (manual compilation) < 5 seconds (one-click)
Audit trail completeness ~40% (gaps in manual logging) 100% (system-enforced)
DOI exam preparation time 40+ hours per exam 2-4 hours per exam
Tamper detection None SHA-256 hash on every export
Segregation of duties proof Manual attestation Automatic from event actors

InsightUW's audit trail turns compliance from a burden into a byproduct of normal workflow. Every action logged. Every change tracked. Every export one click away. Request a demo to see the complete audit trail.

See InsightUW run on your data

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

Request a demo