How to Track Certificates of Insurance (COI Guide)
How to track certificates of insurance
A certificate of insurance (COI) is a one-page summary of a subcontractor's coverage. For general contractors, COIs are collected constantly — and they expire constantly.
The problem is not finding a COI template. The problem is keeping dozens of certificates current across multiple jobs, verifying that each one actually meets contract requirements, and catching lapses before someone uninsured is on your jobsite.
This guide is the operational playbook: how to request COIs, what to verify, how to organize files, how to run renewals, and when to move from spreadsheets to dedicated tracking software.
For the compliance standards behind this workflow, see Subcontractor Insurance Compliance: Complete GC Guide.
What a COI is — and what it is not
What it is
A COI (usually ACORD 25 in the U.S.) is evidence of insurance. It typically shows:
- Named insured
- Insurer and policy numbers
- Coverage types and limits
- Effective and expiration dates
- Certificate holder
- Description of special provisions or endorsements
What it is not
A COI is not:
- The insurance policy itself
- A guarantee that coverage will respond to every claim
- Proof that endorsements exist unless they are attached or confirmed
- A substitute for a signed subcontract insurance exhibit
Treat every COI as a starting point for verification, not a finished approval.
The full COI lifecycle
Every certificate moves through the same stages. Build your system around them.
Request → Receive → Verify → Approve → Monitor → Renew → Archive
| Stage | Goal | Common failure |
|---|---|---|
| Request | Sub knows exactly what to send | Vague email with no requirements attached |
| Receive | Document tied to project + sub | COI buried in unrelated email thread |
| Verify | Limits, dates, endorsements checked | Office staff files without review |
| Approve | Authorized person signs off | Informal "looks fine" with no record |
| Monitor | Expiry tracked proactively | Discovery at jobsite after lapse |
| Renew | Updated COI before expiration | Chasing renewal after stop-work event |
| Archive | Retrievable for claims/closeout | Lost when employee leaves |
Step 1: Standardize your insurance request packet
Do not send one-line emails asking for "insurance." Send a packet every time.
Request packet contents
- Insurance requirements sheet — Limits, endorsements, certificate holder info
- Sample COI — Marked up showing what you need
- Additional insured wording — Exact entity names and addresses
- Deadline — "Required before mobilization / site access"
- Upload instructions — Email address or portal link
- Contact person — Who subs call with questions
Email template: initial COI request
Subject: Project Name — Insurance requirements for Subcontractor Name
Hi Contact,
Before work begins on Project Name, we need your certificate of insurance and required endorsements per the attached requirements sheet.
Please provide:
- ACORD 25 certificate naming GC Legal Name as certificate holder
- Additional insured endorsements (CG 20 10 and CG 20 37 or equivalent)
- Waiver of subrogation endorsement (if listed in requirements)
- Workers' compensation evidence or state exemption documentation
Deadline: Date — no site access until insurance is approved.
Upload here: portal link or reply to this email
Questions? Contact Name at phone/email.
Thank you,
GC Company
Email template: follow-up
Subject: Reminder — Insurance still needed for Project Name
Hi Contact,
We have not received compliant insurance for Project Name. Work cannot proceed until this is resolved.
Attached are the requirements again. Please have your agent send documents by date.
Thank you.
Email template: rejection with specific fixes
Subject: Insurance revision needed — Project Name
Hi Contact,
We reviewed your certificate and need the following corrections before approval:
- Example: GL limits show $1M/$2M; contract requires $2M/$4M
- Example: Named insured does not match subcontract entity
- Example: Additional insured endorsement not attached
Please have your broker resubmit corrected documents.
Thank you.
Step 2: Build your COI tracking spreadsheet
If you are not ready for software, a well-designed spreadsheet beats a messy inbox. Here is a structure that scales to roughly 30–50 subs before it starts breaking.
Recommended columns
| Column | Purpose |
|---|---|
| Project name | Links COI to job |
| Project ID | Internal reference |
| Subcontractor legal name | Must match COI and contract |
| Trade | Electrical, plumbing, drywall, etc. |
| Contact email | Renewal requests |
| COI received date | Audit trail |
| Reviewed by | Accountability |
| Review status | Pending / Approved / Rejected |
| GL insurer | Verification |
| GL policy number | Cross-check renewals |
| GL per-occurrence limit | Contract compliance |
| GL aggregate limit | Contract compliance |
| GL expiration date | Renewal trigger |
| WC status | Active / Exempt / Missing |
| WC expiration date | Renewal trigger |
| Auto limits | If required |
| Auto expiration date | Renewal trigger |
| Umbrella limits | If required |
| AI endorsement on file? | Y/N |
| Waiver of subrogation on file? | Y/N |
| Days until expiry | Formula-driven alert |
| Last reminder sent | Avoid duplicate emails |
| Notes | Rejection reasons, broker contact |
| File link | Drive/Dropbox URL |
Formula tip: days until expiry
In Google Sheets, if GL expiration is in column M2:
=M2-TODAY()
Conditional formatting:
- Red: 0–7 days
- Yellow: 8–30 days
- Green: 31+ days
Spreadsheet limitations
Spreadsheets fail when:
- Multiple people edit different versions
- Subs email COIs to individual PMs instead of a central inbox
- You run 3+ active jobs with overlapping subs
- You need subs to re-upload without emailing your office
- You want automated reminders at 30/14/7/3 days
That is the point where dedicated COI software usually pays for itself.
Step 3: Verify every COI before approval
Verification is a checklist, not a gut feeling.
Verification checklist
Entity match
- Named insured = subcontractor on your agreement
- DBA listed correctly if applicable
- Address is current
Policy dates
- Effective date is before mobilization
- Expiration date covers expected work duration
- No gap between old and new policy at renewal
General liability
- Per-occurrence limit meets contract
- Aggregate limit meets contract
- Occurrence vs claims-made identified
- Completed operations included
Workers' compensation
- Policy active OR valid exemption on file
- Employers' liability limits if required
- Correct state coverage for work location
Automobile
- Required if sub uses vehicles for work
- Any auto / hired / non-owned coverage confirmed
Umbrella
- Limits meet contract
- Underlying policies meet umbrella requirements
Endorsements
- Additional insured endorsement received or confirmed by broker
- Waiver of subrogation endorsement if required
- Primary and non-contributory if required
Carrier quality
- Insurer meets contract rating requirement (if any)
- Not a surplus lines policy unless allowed
When to call the broker
Call the producer listed on the COI when:
- Endorsements are referenced but not attached
- Limits look correct but description box has unusual language
- You suspect a cancelled policy
- Named insured structure is complex (parent/subsidiary)
- Renewal COI shows different policy numbers
Document the call: date, person spoken to, confirmation received.
Step 4: Set up your file organization
Whether you use Drive, Dropbox, or software, use consistent naming.
Folder structure
/COI Compliance
/[Project Name - Project ID]
/[Subcontractor Legal Name]
COI-GL-2026-01-15.pdf
Endorsement-AI-CG2010.pdf
Endorsement-Waiver-Subrogation.pdf
WC-Certificate-2026-01-15.pdf
Correspondence/
File naming convention
[ProjectID]_[SubName]_[DocType]_[YYYY-MM-DD].pdf
Example: P1042_SmithElectric_GL-COI_2026-03-01.pdf
Consistent naming saves hours during claims and closeout.
Step 5: Run renewal tracking
Expired COIs are not archive material. They are active risk.
Renewal cadence
| Days before expiry | Action |
|---|---|
| 60 | Flag in system; confirm sub is aware |
| 30 | First formal renewal request to sub and broker |
| 14 | Second request; notify PM |
| 7 | Escalation; consider withholding payment or site access |
| 3 | Stop-work recommendation if no compliant COI |
| 0 | Sub is non-compliant — document and escalate |
Renewal email template
Subject: URGENT — Insurance expiring date for Project Name
Hi Contact,
Your GL / WC / Auto policy on file expires on date. We need an updated certificate and endorsements before expiration to avoid interruption to your work.
Please upload updated documents by deadline.
Thank you.
Same sub, multiple projects
Subs often send one COI and assume it covers every job. Your system must link one sub record to multiple projects, each with potentially different requirements.
Track at the project-sub level, not only at the sub level.
Step 6: Define approval authority
Someone with insurance literacy should approve COIs. Options:
| Company size | Approver |
|---|---|
| Solo GC | Owner |
| Small (2–10) | Owner or office manager |
| Mid-size | Dedicated compliance coordinator |
| Larger | Compliance team + PM notification |
Approval should be logged:
- Approver name
- Date
- Version of documents approved
- Expiration dates at time of approval
Step 7: Connect compliance to site access and payment
COI tracking only works if it is enforced.
Site access rule
No approved COI → no mobilization.
Supers should have a compliant sub list before each phase starts. Non-compliant subs should not receive keys, badges, or gate codes.
Payment application rule
Many GCs tie compliance to pay apps:
- Hold 5–10% retainage already standard
- Add conditional payment hold for missing/expired insurance
- Release when compliance is restored
Document this in your subcontract and communicate it before work starts.
Dedicated COI tracking software: when and what to buy
When email and spreadsheets stop working
Consider software when you have any of these:
- 15+ active subcontractors
- 2+ simultaneous jobs
- A person spending 5+ hours/week chasing COIs
- Missed expirations in the last 12 months
- Owner or lender audit requiring compliance reporting
- Team members who need shared visibility
Features that matter
| Feature | Why it matters |
|---|---|
| Subcontractor portal | Subs upload without creating accounts |
| Review queue | Central approve/reject workflow |
| Expiry automation | Reminders at 30/14/7/3 days |
| Project-level compliance view | See status per job at a glance |
| Status filters | Compliant, pending, expired, soon expiring |
| Bulk sub import | CSV upload for large sub lists |
| Team workspace | PMs and office staff share one system |
| Activity log | Audit trail for claims and disputes |
Tools to evaluate
Standalone COI platforms focus on this workflow only. Yolvan is built specifically for general contractors — unlimited projects and subs, a sub upload portal, requirement templates (GL, WC, auto, umbrella, additional insured), expiry reminders, and per-project compliance scores.
Construction management platforms (Procore, Autodesk Construction Cloud, etc.) may include compliance modules but often at higher cost and complexity.
Generic document tools (Google Drive, Notion) store files but do not verify, remind, or score compliance.
Choose based on whether COI tracking is your bottleneck or one piece of a larger platform decision.
ROI: what one missed COI can cost
Compliance software has a cost. Uninsured subcontractor exposure has a bigger one.
Consider a scenario:
- Sub's worker injured on site
- Sub has no workers' compensation
- State law or contract indemnity pulls GC into claim
- Defense costs alone can exceed $50,000–$250,000+
- Settlement or judgment can go higher
Even one prevented lapse can justify years of subscription cost. Dedicated COI platforms often run a fraction of the cost of a single GL deductible.
This is risk management math, not software marketing.
Weekly and monthly routines
Weekly (15 minutes)
- Review COIs expiring in next 14 days
- Clear pending review queue
- Confirm new subs from last week are approved
Monthly (1 hour)
- Compliance rate by project
- List of repeat offenders (late renewals)
- Update leadership on any stop-work situations
- Archive COIs from completed projects per retention policy
Common mistakes to avoid
Filing without reading
An inbox full of PDFs is not compliance. Someone must verify every document.
Approving on effective date alone
A COI issued today for a policy that started last month does not prove continuous coverage during prior work.
Ignoring endorsement gaps
The most common approved-but-non-compliant COI has correct limits and missing additional insured forms.
Letting PMs keep separate systems
One sub sends a COI to a PM's phone. The office never sees it. Centralize.
No renewal process
First renewal miss is a process failure. Second is a pattern.
COI tracking for residential vs commercial GCs
Residential remodelers
- Fewer subs per job, but higher turnover
- Lower limits, simpler endorsements
- Owner may not require formal compliance reporting
- Still need WC and GL verification — homeowner lawsuits happen
Commercial GCs
- Higher limits, more endorsements
- Owner and lender audits
- OCIP/CCIP exceptions to track
- Formal prequal and closeout packages
The workflow is the same. The stakes and document depth increase with project size.
Integrating COI tracking with prequal and closeout
COI tracking is the middle chapter of a larger compliance story.
- Prequal — Screen subs before award (Subcontractor Prequalification Guide)
- Active tracking — This guide
- Closeout — Final certificates and tail coverage (Construction Project Closeout Guide)
Linking all three prevents the common pattern of scrambling for documents when the owner wants final release.
Troubleshooting common COI problems
Problem: Sub says "my agent already sent it"
Fix: Search central inbox by sub legal name and policy number. If not found, reply with specific upload link and CC the agent. Agents send to wrong addresses constantly.
Problem: COI shows correct limits but project is rejected by owner
Fix: Compare owner exhibit line-by-line. Common misses: completed operations AI, primary/non-contributory, 30-day cancellation notice, carrier rating.
Problem: Sub renewed policy — new policy number, gap in dates
Fix: Request both certificates showing continuous coverage or a no-gap letter from broker. A one-day lapse can matter on strict audits.
Problem: Multiple subs with same owner name, different LLCs
Fix: Track by EIN and legal entity, not trade name. "Mike's Electric" may be three different companies.
Problem: PM approved sub verbally without filing COI
Fix: Immediate stop-work until documented approval. Retrain on pre-mobilization gate. Audit PM compliance monthly.
Problem: Spreadsheet not updated after renewal
Fix: Assign one person to own data entry or migrate to software with automatic expiry updates on approval.
COI software comparison overview
| Approach | Best for | Weakness |
|---|---|---|
| Email + Drive | 1 job, <10 subs | No reminders, no audit trail |
| Spreadsheet | 10–30 subs, 1–2 jobs | Manual, version conflicts |
| Yolvan | GC-focused COI workflow | Standalone — not full PM |
| Procore / ACC compliance module | Enterprise GC already on platform | Cost, complexity |
| Insurance broker portals | Owner-driven compliance | GC may not control UX |
Evaluate total cost including staff time. A $800/year tool that saves 10 hours/month of admin is inexpensive.
Multi-project COI workflow for growing GCs
Central compliance inbox
Use [email protected] — not individual PM emails. Forwarding rules dump COI attachments to a shared queue.
Project tagging rules
Every document must include project ID in subject line or upload form. Untagged COIs sit in limbo.
Dashboard metrics leadership should see
- Compliance rate by project (% subs approved)
- Count expiring ≤30 days
- Average days to first compliant COI (onboarding efficiency)
- Repeat non-compliance subs list
Handoff between office and field
Weekly jobsite meeting agenda item: "Any new subs this week? Compliance status?"
Supers should never allow mobilization based on verbal assurance.
COI tracking FAQ
How long does verification take per COI?
Experienced reviewer: 5–10 minutes for straightforward COI. Complex commercial with multiple endorsements: 20–30 minutes plus broker call.
Should subs email COIs directly to their agent with you CC'd?
Prefer sub or agent upload to your central system. CC chains get lost.
What file formats should we accept?
PDF preferred. Accept photos (JPG/PNG) from small subs but request PDF when possible.
Do we need paper originals?
Rarely. Electronic copies suffice for most GC and owner requirements.
Can one COI cover multiple projects?
A certificate can list multiple jobs in the description box, but best practice is project-specific certificates for clean audit trails.
What about expired COI still in file from last year?
Archive superseded certificates in /Archive subfolder. Active file should show only current approved version with approval date noted.
Day-one implementation: first 10 subs in 60 minutes
Minute 0–10: Setup
- Create project in your tracker (spreadsheet or software)
- Import or type sub list: legal name, email, trade
- Attach insurance requirements PDF for this project
Minute 10–25: Send requests
Bulk email all 10 subs using the initial request template. CC no one except your compliance inbox.
Minute 25–45: Triage incoming COIs
As COIs arrive:
- Sort into Approved / Rejected / Pending
- Rejection email goes out same day — subs fix faster when feedback is immediate
Minute 45–60: Field communication
Send PM/superintendent list of approved subs only. Everyone else is blocked until approved.
Repeat this cadence for every new project kickoff.
Sample insurance requirements one-pager (for subs)
Include this as a PDF attachment with every COI request.
GC Company — Standard Subcontractor Insurance Requirements
| Coverage | Minimum limit |
|---|---|
| Commercial general liability | $1,000,000 per occurrence / $2,000,000 aggregate |
| Workers' compensation | Statutory limits |
| Employers' liability | $500,000 each accident |
| Commercial auto | $1,000,000 CSL (if vehicles used) |
| Umbrella | $2,000,000 (commercial projects only) |
Required endorsements:
- Additional insured: GC Legal Name and Owner Name if required — CG 20 10 and CG 20 37
- Waiver of subrogation in favor of GC and Owner
- Primary and non-contributory where available
- 30-day notice of cancellation
Certificate holder:
GC Legal Name
Address
Submit to: email or portal URL
Related guides
- Subcontractor Insurance Compliance: Complete GC Guide
- General Contractor Risk Management: Complete Guide
- Subcontractor Prequalification Guide for General Contractors
- Construction Project Closeout: Complete GC Checklist
- General Liability Insurance for Contractors
Disclaimer: This guide is for informational purposes only. It does not provide legal or insurance advice. Verify all coverage with licensed professionals and match requirements to your contracts and state law.
