Insurance / Compliance master - COI + rule engine + renewals¶
| Stage | Building |
|---|---|
| Status | Partial |
| Design status | In progress |
| Estimate | 4w (L+) |
| Confidence | Low |
| Linear | PIN-96 ↗ PIN-91 ↗ PIN-104 ↗ |
| Linear status | Backlog |
| Design | Design ↗ |
| Linear epic | Financial Management & Reporting |
| Module | Billing ↗ |
Priority: High · Route: /insurance
Scope¶
Central Insurance/Compliance system: a COI management page listing every project organization's certificates with revision history and compliance status, a rule-based compliance-check engine that flags policy violations, and a daily renewal-tracking job that escalates expiring coverage. (Source: PIN-96, PIN-91, PIN-104.)
Acceptance criteria¶
- COI table per project: one row per organization, with latest revision #, compliance-status icon (compliant / non-compliant / expiring soon / no COI), GL & WC limits, expiry date
- "Add COI" flow: select organization, set initial policy requirements
- Revision history timeline per COI, with an "Add Revision" action
- Document upload per COI triggers the compliance-check workflow
- Rule engine compares each document's manually-entered limits/dates/endorsements against policy requirements (no AI/OCR yet) and flags: limit below minimum, missing endorsement, wording mismatch, expired, missing policy
- Compliance status recalculates automatically whenever documents change
- Daily renewal job sends escalating reminders at 30/10/3 days before expiry and marks documents Expired on the date
- Dashboard "Expiring Soon" count
Conor's comments¶
This ties directly into Project Detail - Insurance (project COI tab). Should not be separate. COI/policy models
Notes¶
Schema only; no API or UI wired; subsumes insurance-era Incidents/Claims/Indemnity/COI
Open question for Conor¶
Confirm timing (Sep or later)
Reference¶
- Linear: PIN-96 (COI management frontend page); PIN-91 (Compliance check service / rule engine); PIN-104 (Renewal tracking + expiration monitoring) — children of Insurance Compliance System epic PIN-7. Conor's note that the Project Insurance tab (PIN-59) "should not be separate" ties that ticket into this same master.