Subcontractor COI tracking template
A COI tracking sheet logs every subcontractor's insurance, one policy per row, so you can see what is expiring, what falls short of the subcontract, and what endorsements are missing. Download it as a CSV for Excel or Google Sheets, or print it.
A subcontractor COI tracking template is a log of every certificate of insurance your subs hand you, broken out one policy per row. For each policy it records the limit shown, the limit your subcontract requires, the expiration date, and whether the required endorsements are actually attached. The point is simple: no sub works on your site with lapsed or short coverage, and you find out 30 days before a policy expires instead of the day after a claim.
A certificate is a summary, not the policy. It tells you what the agent says is in force on the day it was issued. That is why the tracking sheet asks for endorsements separately, and why it needs an expiration column you actually look at.
What COI tracking is for
When a sub's uninsured worker gets hurt, or a sub's crew floods the floor below, the claim can land on your policy if theirs is missing. Your own insurer's premium audit may also charge you for uninsured subs. Insurance certificate tracking is the routine that prevents both. It starts at prequalification, gets checked before the subcontract is signed, and keeps running until final payment.
Requirements come from your subcontract, which usually mirrors what the owner's contract demands of you. The template has a required limit column for exactly that reason. Fill it from the subcontract exhibit, not from what most subs carry.
How to fill in each column
- Subcontractor and trade: legal name as it appears on the subcontract. Certificates in a different entity name are a red flag.
- Coverage: one row each for general liability, auto, workers' compensation, umbrella or excess, and any professional or pollution coverage the job requires.
- Policy number and insurer: needed if you ever have to tender a claim.
- Limit shown and required limit: copy both. Any gap means the row is deficient, even if the policy is current.
- Expiration date: the policy expiration from the certificate. Sort by this column every week.
- Additional insured: yes only when the endorsement itself is on file, not just a checked box on the certificate.
- Waiver of subrogation: yes only when the endorsement is attached, if your subcontract requires one. See waiver of subrogation.
- Status and follow-up: compliant, expiring, deficient, or expired, plus the date you last asked for an update.
Common mistakes
- Accepting a certificate that says additional insured without the actual endorsement.
- Tracking one expiration date per sub, when each policy renews on its own date.
- Filing the certificate without comparing limits to the subcontract.
- Forgetting lower-tier subs. Your sub's sub can cause the same claim.
- Stopping tracking at substantial completion while punch and warranty crews are still on site.
Related forms and guides
Set up the process with how to track subcontractor insurance certificates, check content against what a subcontractor COI should include, and read additional insured endorsements explained. Pair this sheet with the lien waiver tracking template so compliance and payment are checked in the same pass.
Smart Business Automator tracks subcontractor certificates and expiration dates and sends renewal requests before coverage lapses. See subcontractor compliance automation.
Subcontractor insurance (COI) tracker
| Subcontractor | Trade | Coverage | Policy number | Limit shown | Required limit | Expiration date | Additional insured | Waiver of subrogation | Status and follow-up |
|---|---|---|---|---|---|---|---|---|---|
| Ridgeline Drywall LLC | Drywall | General liability | GL-448201 | 1,000,000 / 2,000,000 | 1,000,000 / 2,000,000 | 2027-03-31 | Yes, endorsement on file | Yes, endorsement on file | Compliant |
| Ridgeline Drywall LLC | Drywall | Workers' compensation | WC-77310 | Statutory / EL 1,000,000 | Statutory / EL 1,000,000 | 2027-03-31 | n/a | Yes, endorsement on file | Compliant |
| Brightwire Electric Inc. | Electrical | General liability | CGL-90215 | 1,000,000 / 2,000,000 | 1,000,000 / 2,000,000 | 2026-11-15 | Yes, endorsement on file | Yes, endorsement on file | Expiring, renewal requested 2026-10-20 |
| Coastal Mechanical Co. | HVAC | Commercial auto | CA-55128 | 1,000,000 combined single limit | 1,000,000 combined single limit | 2027-01-01 | Certificate box only | No | Deficient, endorsements requested 2026-10-22 |
| Summit Roofing LLC | Roofing | Umbrella | UMB-31877 | 2,000,000 | 5,000,000 | 2027-02-28 | Yes, endorsement on file | n/a | Deficient, limit short by 3,000,000 |
| Summit Roofing LLC | Roofing | General liability | GL-31876 | 1,000,000 / 2,000,000 | 1,000,000 / 2,000,000 | 2026-09-30 | Yes, endorsement on file | Yes, endorsement on file | Expired, payment on hold |
- Sample data only. Limits shown are examples, not recommendations. Take required limits from your subcontract or the owner contract.
- Use one row per policy, since each policy has its own limits and expiration date.
- Mark additional insured and waiver of subrogation as yes only when the endorsement itself is on file.
- Sort by expiration date weekly and request renewals at least 30 days ahead.
- Keep the certificate and endorsements filed with each row, and keep rows for lower-tier subs who work on site.
Frequently asked questions
What is a COI for a subcontractor?
A certificate of insurance is a one-page summary from the sub's insurance agent showing the policies, limits, and dates in force. It is evidence of coverage, not the policy itself.
How often should I check subcontractor COIs?
Check each one before the sub starts, then review the tracker weekly for upcoming expirations. Get a new certificate every time a policy renews.
Is a certificate enough to prove additional insured status?
Usually not. Ask for the additional insured endorsement itself, because the certificate generally does not change the policy terms.
Can I use this COI tracking template in Excel?
Yes. Download the CSV and open it in Excel or Google Sheets. Add conditional formatting to flag expiration dates within 30 days.