COI Tracking for GCs: Why Spreadsheets Are Killing Your Compliance
Spreadsheet-based COI tracking fails at scale. Learn how expired COIs, data entry errors, and missing audit trails expose GCs to uninsured claims and failed bids.
In This Article
The Spreadsheet Problem
Every GC has one. A master spreadsheet—sometimes Excel, sometimes Google Sheets—with columns for subcontractor name, policy number, carrier, expiration date, and a "Status" column someone manually updates. Maybe there's a shared drive folder with scanned COI PDFs. Maybe there isn't.
This system works when you have 5 subs on one project. It breaks down when you have 30 subs across 4 projects, each with general liability, workers' comp, auto, and umbrella policies—120+ expiration dates to track, none of which align with your project schedule.
The result: expired COIs sitting in your files, coverage gaps you don't know about, and an audit trail that wouldn't survive a serious claim.
What Goes Wrong with Manual Tracking
1. Expiration Dates Slip Through
A typical mid-market GC ($5-20M revenue) manages 50-150 active subcontractor relationships at any given time. Each sub carries 2-4 insurance policies. That is 100-600 individual expiration dates to monitor.
Spreadsheet formulas can flag upcoming expirations, but only if someone looks at the spreadsheet. In the rush of project execution—submittals, RFIs, schedule updates, safety walks—checking the COI spreadsheet falls to the bottom of the list.
2. COIs Are Point-in-Time Documents
A Certificate of Insurance is a snapshot. It confirms coverage existed when the certificate was issued. It does not guarantee coverage exists today. Per ACORD (the forms standard body), COIs are "informational only" and confer no rights to the certificate holder.
A sub can hand you a valid COI on Monday and cancel the policy on Friday. You will not know until a cancellation notice arrives—if one arrives at all. Many carriers send cancellation notices to the named insured only, not to certificate holders.
3. Data Entry Errors Compound
Manual transcription of policy numbers, coverage limits, and dates introduces errors. A transposed digit in a policy number. A GL limit of $1M entered as $100K. An expiration date from last year's COI copy-pasted into this year's row.
These errors are invisible until you need accurate data—during a claim, an audit, or a bid submission where the owner requires a compliance packet.
4. No Audit Trail
When OSHA investigates an incident or an owner audits your compliance files, they want to see when you verified coverage, not just that you had a COI on file. A spreadsheet with a "Last Updated" column does not prove verification occurred. It proves someone typed a date.
Real Scenarios Where Spreadsheets Fail
The Expired GL at Claim Time
A plumbing sub causes water damage to adjacent units during a multi-family renovation. The GC files a claim against the sub's general liability policy. The carrier denies the claim: the policy expired 6 weeks ago. The COI on file showed the original expiration date, but the renewal was never received.
The GC's own CGL policy covers the damage, but the deductible and premium impact cost $40,000+.
The Bid Compliance Packet
A school district requires a compliance packet with every bid: current COIs for all listed subs, verified WC coverage, and license status. The estimator pulls the spreadsheet and discovers 8 of 15 listed subs have expired COIs. The bid is due in 48 hours.
The team spends two days chasing renewals instead of refining the estimate. Two subs don't respond in time. The bid goes out with 13 subs instead of 15, and the GC has to self-perform or list alternates.
The Workers' Comp Gap
An electrical sub's workers' comp policy lapses due to an audit dispute with the carrier. The sub continues working. A journeyman electrician is shocked and hospitalized. Because the sub has no active WC, the claim flows up to the GC under California Labor Code Section 2750.5.
What Good COI Tracking Actually Looks Like
Effective COI management requires more than a document repository. It requires:
Minimum Requirements
- Automated expiration alerts — 30, 14, and 7 days before expiration, with escalation if renewal is not received
- Document parsing — Extract coverage limits, policy numbers, and dates from the COI itself, not from manual data entry
- Renewal requests — Automated outreach to subs when their COIs are expiring, with a simple upload mechanism for renewals
- Compliance verification — Cross-reference COI data with actual license and insurance status from CSLB and carrier databases
- Timestamped audit trail — Every verification, upload, and alert documented with date, time, and user
Most GCs know they need this. The question is build vs. buy. Building it in Excel means maintaining formulas, training new PMs on the system, and hoping nobody breaks the conditional formatting.
The Cost of Non-Compliance
Beyond the direct financial exposure of uninsured claims, poor COI tracking creates compounding business risks:
- Prequalification failures: Owners and developers increasingly require GCs to demonstrate COI management systems during prequalification. "We use a spreadsheet" does not score well.
- Insurance premium increases: Claims resulting from uninsured subs hit your loss runs. Carriers see this pattern and raise rates—or non-renew.
- Bonding capacity: Surety underwriters evaluate risk management practices. Poor compliance documentation can limit your bonding capacity, directly limiting the size of projects you can pursue.
- Regulatory exposure: The CSLB can discipline a GC who allows uninsured or unlicensed subcontractors on site. This is not theoretical—the CSLB enforcement database shows regular actions against GCs for this reason.
Moving Beyond Spreadsheets
The construction industry has adopted technology for scheduling (Primavera, MS Project), estimating (PlanSwift, Bluebeam), and project management (Procore, BuilderTrend). Compliance monitoring is the last holdout of the spreadsheet era.
SubWatch combines COI tracking with continuous compliance monitoring. Upload a COI and AI extracts the key fields—carrier, policy number, limits, expiration dates. When a COI is expiring, SubWatch sends a renewal request directly to your sub with a secure upload link. No more chasing PDFs over email.
Combined with real-time license, WC, and bond monitoring from CSLB data, you get a single dashboard showing which subs are compliant and which need attention—before a lapse becomes your liability.
Additional Resources
Stop Wasting 47 Minutes Per Contractor
One search. Six data sources. 19 seconds.
CSLB + SAM.gov + OSHA + DOL + EPA + building permits—aggregated, timestamped, and ready for your compliance files.
Verify a Contractor Now