Subcontractor COI Collection Playbook (Prime Contractors)
Prime contractors aggregating Certificates of Insurance (COIs) from subcontractors face a different problem than the businesses requesting COIs from carriers: you're tracking compliance across 10-50+ third parties simultaneously, with rolling expirations, varying contract requirements, and audit risk if anything slips.
Most prime contractors learn this the hard way: a subcontractor's GL expires mid-project without notice, an injury claim hits, the GC's policy responds because the sub wasn't covered, and the GC's loss runs deteriorate. This playbook is the structured process to avoid that.
- 1
Establish a single source-of-truth COI tracker
Don't track COIs in folders, Outlook, or hope. Use one tracking system that captures:
- Subcontractor name + EIN
- COI carrier name + agent contact
- Effective date + expiration date
- Policy types covered (GL / WC / Auto / Excess)
- Limits per policy type
- Additional Insured endorsement (form number, e.g., CG 20 10 / CG 20 37)
- Waiver of Subrogation flag
- Primary & Noncontributory endorsement flag
- Project/contract reference
- Approval status
Tools: NetCertify, Jonas Software, Smartsheet template, or a spreadsheet with conditional-format alerts on expiration dates. The key is "single source of truth."
💡 Tip: If your business has 10+ active subs at once, the spreadsheet approach breaks. Invest in a purpose-built tool. The hours saved + risk reduction pays for the subscription many times over. - 2
Define your contract minimums upfront
Before the first subcontract is signed, lock down what insurance you require from every sub. Standardize:
- Required policy types (GL minimum is universal; WC if subs have employees; Auto if subs drive to site; Excess for large projects)
- Minimum limits ($1M/$2M GL is a common baseline; $1M Auto; full state-stat WC; $1M-$5M Excess based on project value)
- Required endorsements:
- Additional Insured (your prime entity + project owner, both ongoing AND completed operations: CG 20 10 + CG 20 37)
- Waiver of Subrogation
- Primary & Noncontributory
- 30-day notice of cancellation/material change to your office
Codify these in a one-pager attached to every subcontract. Don't negotiate down by project — establish baseline and exceptions get escalated to your insurance broker for review.
- 3
Collect COI BEFORE work begins (don't allow start-without-COI)
The single highest-leverage rule: no work begins without COI in hand. Enforce by:
- Adding to subcontract: "Work shall not commence until current and complete COI is delivered to Prime."
- Project-manager checklist before authorizing mobilization
- Payment hold on Sub's first invoice until COI verified
This single rule prevents 80% of COI-related claim denials. The sub's incentive to deliver the COI is the same incentive they have to start the project; align them.
💡 Tip: If a sub claims they can't get the COI for 1-2 weeks, that's a flag — most agents issue COIs within 24-48 hours. Either the sub doesn't have the policy or has bad agent relationship. Both worth knowing before mobilization. - 4
Verify the COI is real and accurate (not just present)
A COI is informational only; it does NOT bind the carrier. Subs can present forged or altered COIs. Verify:
- Carrier name + NAIC code — look up the carrier on naic.org to confirm it's licensed
- Agent name + agency — phone the agency directly to verify the policy is active (don't email — fraud rings spoof email)
- Additional Insured endorsement — ask for the actual endorsement form (CG 20 10, CG 20 37, etc.) attached to the policy, NOT just the COI listing
- Limits match contract — re-read your subcontract and confirm
For high-dollar projects (over $500K), have your insurance broker validate every COI before mobilization. The cost is minimal; the gap-claim risk is large.
💡 Tip: Pro tip: ask for a sample policy declarations page in addition to the COI. Decs show actual coverage; COI summaries can mislead. - 5
Set up expiration alerts BEFORE renewals lapse
COI tracker should fire alerts at:
- 60 days before expiration: notification to project manager
- 30 days before expiration: escalation to sub + reminder email
- 14 days before expiration: hold sub's next invoice until renewal COI delivered
- Day-of expiration: STOP work on that sub's portion if no renewal
Most COI software automates this. Manual tracking falls behind quickly when 30+ subs are managed simultaneously.
- 6
Annual audit + lien protection review
Annually (or per major project completion):
- Reconcile your COI tracker against your subcontractor invoice register — any subs paid but no current COI on file is a flag
- Pull state lien databases to confirm no subs filed mechanics liens against your project
- If a sub filed a lien, verify your Payment Bond (if applicable) responded
- Review your own GL loss runs for any claims that should have been the sub's responsibility
Pattern of sub-caused claims hitting your policy = systemic process failure. Address before next renewal — your premium reflects accumulated loss history.
- 7
Document everything for audit + dispute defense
Save indefinitely (or per statute of limitations, typically 6+ years post-project):
- Original signed subcontracts with insurance requirements
- Every COI received from each sub
- Email/phone records of carrier verification calls
- Renewal COIs for every policy period
- Any cancellation or material-change notices received
- Loss runs from carriers showing sub-caused claims (or lack thereof)
In disputes (whether between prime + sub, prime + owner, or insurance claims), this documentation is your audit trail. Without it, you're defending claims on memory.
Read more
Sources cited
- ACORD 25 Certificate of Liability Insurance — ACORD (Association for Cooperative Operations Research and Development), 2024
- Additional insured endorsement (ISO CG 20 10, CG 20 37) — International Risk Management Institute (IRMI), 2024
- Waiver of subrogation — International Risk Management Institute (IRMI), 2024
Ready to compare quotes?
Free comparison from 10+ carriers in 5 minutes. No SSN required.
Get My Quotes →