All articles

Custom CRM

Track Subcontractor Insurance Certificates: 7 Steps

A sub with a valid COI can still cost you $5,000 at audit. The 7-step system, the ISO rule that reclassifies insured subs, and the Ontario layer.

Om Patel 16 min read
Photo: benjamin lehman / Unsplash

The short answer

Track subcontractor insurance certificates as one row per sub with four fields: coverage types, limits, expiry date, and the date you last verified it. Set reminders at 60, 30 and 15 days out. Then gate payment rather than site access, because the cheque is the only lever a subcontractor reliably answers.

Track subcontractor insurance certificates as one row per subcontractor with four fields: which coverages they carry, the limits, the earliest expiry date across their policies, and the date you last verified that certificate with the broker who issued it. Reminders go out at 60, 30 and 15 days before that date. Then attach the whole thing to accounts payable, because a subcontractor who ignores four emails about a lapsed policy will answer within an hour when a cheque does not arrive.

Almost everything written on this topic is published by a certificate tracking vendor for an enterprise risk team managing hundreds of certificates. That is not the problem most contractors have. The problem most contractors have is eleven subs, one office admin, and a filing system that is technically an inbox.

What a missed certificate actually costs

Start with the money, because it is the part that converts this from admin into a line item.

When you pay a subcontractor who cannot prove they carried workers compensation, your insurer does not treat that as the subcontractor's problem. At your annual premium audit the auditor reclassifies what you paid them as your own payroll and bills you premium on it. Premium audit guidance published by SubDoc lays out the formula auditors work from: the gross subcontract invoice multiplied by a labour ratio, multiplied by the class code manual rate per $100 of payroll, multiplied by your experience modification rating.

The labour ratio is where contractors get hurt. If the invoice is not itemized into labour and materials, the auditor cannot take your word for the split, and default ratios get applied instead, commonly 50 percent and as high as 100 percent when nothing is segregated.

SubcontractInvoiceDefault labour ratioAuditable payrollEstimated back premium
Roofing$40,00050%$20,000about $5,456
Residential framing$50,00050%$25,000about $4,538
Drywall$35,00050%$17,500about $1,771
Excavation$60,00033.3%$20,000about $1,628
Electrical$25,00050%$12,500about $798

By the numbers

Figures from SubDoc's published premium audit worksheet, at sample class rates with an experience modifier of 1.10. Your numbers move with your jurisdiction, class codes and modifier, but the shape holds: the higher the hazard, the more a missing certificate costs.

That is the arithmetic. Here is the lived version. In a r/GeneralContractor thread on workers comp audits, a contractor posting as OrdinaryAverageGuy2 described his first year in business: he used subs, reported them honestly at the audit, and had certificates of insurance for all of them. It still cost him over $10,000, because the certificates did not show the subs carrying their own workers comp and he had no signed subcontractor agreements. In his words, "they had no pity."

He was not disorganized. He collected documents. He collected the wrong ones, with nothing contractual behind them.

The second cost is worse and rarely mentioned. A contractor in r/Insurance_Companies described what happened to someone he knew when a sub's workers comp expired and an accident happened on site. The general contractor's own insurance paid the claim, then dropped him, and he struggled to find new workers comp coverage. The back premium is a bill. Losing your carrier is a business problem.

A subcontractor with insurance can still count as uninsured

This is the part almost no COI guide covers, and it is why careful contractors still get surprised.

Builders Mutual, a construction insurer, published an audit explainer with Kevin Steger, its premium audit technical manager. Citing general liability payroll inclusion rule 24.E.2 from the Insurance Services Office, it lists subcontractors whose payments count as uninsured on your general liability audit even when they carry general liability insurance, because of the direction and control you exercise over them:

  • Crane with operator. You decide what gets lifted and where it goes. Included at 33.33 percent of what you paid, the remainder discounted as equipment expense.
  • Concrete pumping. Same logic. Included at 33.33 percent.
  • Temporary agencies. Included at 100 percent, because they supply labour only.
  • Leased employees. Included at 100 percent.

Then there is the threshold rule. Any subcontractor whose general liability limits fall below what your carrier requires is considered underinsured and treated as uninsured. Builders Mutual ties the required limits to your policy prefix: some policies require subs to carry at least $300,000 per occurrence and $600,000 aggregate, others require subs to match or exceed your own limits.

That changes what your tracking sheet has to hold. Recording that a sub is insured is not enough. You have to record the limits and compare them against a number your own carrier sets. A tick box that says "COI on file" will not save you.

Watch out

Steger notes one asymmetry worth knowing. There are no required workers comp limits for subcontractors: if a sub has workers comp at all, they count as insured on the comp audit regardless of limits. General liability is where the threshold bites.

Nobody is going to tell you when the policy cancels

Here is the structural problem with a certificate file, and it is not laziness.

A certificate is true on the day it is printed and says nothing about the day after. The current ACORD 25 states plainly that it is issued as a matter of information only and confers no rights upon the certificate holder, and that if the certificate holder is an additional insured, the policy itself must be endorsed.

On cancellation, the form now says only that should any of the described policies be cancelled before the expiration date, notice will be delivered in accordance with the policy provisions. Older versions carried language about the insurer endeavouring to notify the certificate holder, and even that was non binding. The obligation runs to the policyholder, not to you.

It goes further than the form being silent. Insurance educator Bill Wilson reports that agency errors and omissions experts advise agents not to notify certificate holders of cancellations at all. Their relationship is with their insured, not with you, and an agency that habitually notifies certificate holders and then misses one creates its own liability. Wilson also notes that no ISO additional insured endorsements require notice to the certificate holder.

So the practical assumption is this. Between the day a certificate is issued and its printed expiry date, the coverage behind it can vanish, and the system is built so that you hear from nobody. A project manager in r/ConstructionManagers put the felt version well: the frightening part is not storing the documents, it is realizing something expired two weeks ago and only finding out because someone asked for it.

That is why the verified date belongs in your sheet as its own column, separate from expiry. Expiry is when the paper says coverage ends. Verified is the last time anyone confirmed it was still real.

Certificate holder is not additional insured

Two boxes on the same page, routinely confused, and the difference decides who pays.

The certificate holder box says who asked for the certificate. That is all it says. Additional insured status gives you actual rights under the subcontractor's policy, so a claim can go to their insurer rather than you suing the subcontractor and hoping. It takes an endorsement on the policy itself. Additional insured language typed into the description of operations box is a claim to be verified, not proof: ask for the endorsement document, and give it a column.

Note also whether each policy is occurrence or claims made. Occurrence responds to incidents that happened during the policy period no matter when the claim arrives. Claims made only responds to claims filed while it is active, so a sub whose claims made policy lapses after the job leaves you exposed on work that was covered when it happened.

If your subcontractor compliance lives in a spreadsheet that nobody owns, the fix is usually not another spreadsheet. We build custom CRMs where the sub record, the expiry dates, the signed agreement and the payment approval sit on the same screen, so a lapsed certificate stops a cheque automatically instead of surfacing at audit.

Book a free CRM demo

In Ontario, the COI is only half the file

Every guide ranking for this topic is American, which leaves Canadian contractors solving the wrong problem carefully.

If you hire subcontractors for construction work in Ontario, a certificate of insurance does not cover your WSIB exposure. That takes a clearance certificate, a separate free document, and the WSIB's published rules are specific:

  • A clearance protects you from the sub's unpaid premiums. By issuing one, the WSIB waives its right to hold the principal liable for unpaid premiums and other amounts the contractor owes.
  • Clearances are valid for up to 90 days and must cover the full length of the job. If the work outlasts the clearance, you get a new one.
  • Most clearances expire on the 20th of February, May, August and November. Four dates a year, not fifty scattered ones, which makes them far easier to schedule around than COIs.
  • Working without one is an offence for both parties. The WSIB states that if construction work goes ahead without a valid clearance number, both the contractor and the business that hired them are committing an offence, with a maximum fine on conviction under the WSIA of $100,000.
  • The obligation flows down the chain. If your subcontractor hires their own sub, they become the principal for that work and need a clearance of their own.
  • There is a residential exemption. A contractor hired directly by a home's resident, occupant or a family member for repairs or renovations does not require a clearance certificate.

That last point changes the scope. A renovation company working directly for homeowners has a narrower obligation than a builder acting as principal on a chain of subs. Know which you are before building the process.

The WSIB runs the tooling itself: keep a contractor list, search by certificate number, and subscribe to notifications that email each new clearance as it is generated. For a stable roster of subs, that does a large slice of the job for nothing.

The seven step system

1. Put the requirement in the subcontract before you put it in a spreadsheet

The $10,000 lesson from r/GeneralContractor was not a tracking failure. It was a contract failure. Collecting certificates for subs who had no signed agreement obliging them to carry anything gave him documents with nothing behind them.

Your subcontractor agreement should name the coverages, the minimum limits, the additional insured requirement and the obligation to give you renewal certificates. Everything downstream is enforcement of that clause. Without the clause, you are asking favours.

2. One row per sub, five columns

Not one folder per project. Subs renew on their own schedule, so the tracking unit is the subcontractor.

The columns: coverages carried, limits for each, earliest expiry across all policies, additional insured endorsement received, date last verified. A contractor in r/Insurance_Companies keeps his deliberately blunt, with a checkmark column for "meets requirements" and one for soonest expiration date, and says under 20 subs that is entirely sufficient.

3. Fire reminders on a cadence, to both sides

Two cadences show up repeatedly from people actually doing this: 60, 30 and 15 days before expiry, or a tighter 30, 14 and 7.

Send it to the subcontractor and to yourself. The project manager in r/ConstructionManagers who described his ideal system ranked one thing above dashboards and AI: both sides getting nudged before it becomes a problem. A reminder that only reaches your inbox creates work. One that reaches the sub creates a certificate.

4. Gate the cheque, not the site

This is the step that makes the other six work.

Blocking site access sounds stricter and fails in practice, because the person enforcing it is a foreman with a schedule to hit. Payment is different. It is enforced by the office, it lands late enough that the sub is fully motivated, and it does not stop the job that day.

One contractor in r/GeneralContractor runs it as policy: he tells his guys plainly that if they do not carry workers comp, he cannot pay them. He also explains the ghost policy option, an inexpensive workers comp policy written with the owner excluded, which produces a valid certificate for audit purposes without providing the owner injury benefits. That is worth being able to explain to a one person sub, because "get insurance" sounds expensive and "get a ghost policy" is a cheap, specific instruction.

5. Verify the certificate came from the broker

Take the certificate from the producer, the agency named in the top left of the form, not as a forwarded PDF from the sub. When in doubt, call that agency with the policy number.

Altered expiry dates and coverage limits are the most commonly forged fields, because faking them means editing a handful of characters on an otherwise genuine document. Other signals worth a second look: inconsistent formatting or crooked fields, misspelled carrier names, and NAIC numbers that do not match the insurer.

6. Keep expired certificates, filed by date

Do not overwrite. General liability includes a products and completed operations aggregate, the coverage that answers for claims arising from finished work, and those claims land long after the crew has gone. The certificate you will need is the one in force on the dates the work was performed.

File by subcontractor and by date range, so you can answer "what coverage did this sub have in August 2024" and not only "what do they have now."

7. Pre build the audit folder

Your premium audit is annual and its date is known. The gathering takes the time.

One contractor described spending four or five hours "dialing for COIs" before each audit, calling each sub's insurer individually because they all renew on different dates. Another in the same thread replied with the whole thesis in six words: "Just did my audit in 10 min. Stay organized."

If your tracker holds the verified date and the certificate for every policy period, the audit folder is a filter, not a project.

When the spreadsheet stops being enough

There is a real threshold, and a contractor in r/Insurance_Companies has done the honest arithmetic on it. At 20 subs, asking only for general liability and workers comp, he estimated 2 to 3 hours a month. At 50 subs, wanting general liability, workers comp, auto and endorsements, he put it at 15 to 25 hours a month, most of the variance coming from chasing the right documents. He pays about $40 a month for a tool that also holds W-9s and signed agreements, and his conclusion was pragmatic rather than evangelical: not everyone needs software, but once it takes a few hours here and there, the maths stops being close.

A commenter in the same thread flagged why small contractors rarely find a tool that fits. The well known platforms are built for enterprise portfolios and have historically wanted a minimum of around 200 tracked certificates, which prices out smaller teams entirely. That is also why the search results for this topic read the way they do. They are written by companies that will not sell to you.

Another operator running 40 to 60 active vendors said a spreadsheet plus alerts at 60, 30 and 15 days is still manageable, but only with one dedicated person updating the master sheet weekly. That condition does all the work in the sentence. A contractor in r/GeneralContractor admitted that on a project that went sideways he gave up on daily reports, subcontracts, schedule and COIs together. Compliance is the first thing dropped when a job goes wrong, which is exactly when your exposure peaks.

The structural fix is to stop treating compliance as separate admin and attach it to something that has to happen anyway. Payment has to happen. If the sub record and the payment approval live in one system, a red row blocks a cheque without anyone remembering to check. Same reasoning as moving job tracking out of paperwork, and if you also supply certificates upward, the same file answers property manager credentialing requests the day they arrive.

The 10 minute audit readiness checklist

Run it once a quarter. Ten minutes per subcontractor the first time, two minutes after that.

  1. Does every active sub have a signed subcontractor agreement naming required coverages and limits?
  2. Does every certificate show workers comp, not just general liability? If a sub is exempt, do you hold the state or provincial exemption document or a ghost policy certificate rather than a verbal assurance?
  3. Do the general liability limits meet or exceed the threshold your own carrier requires?
  4. Where your contract requires additional insured status, do you hold the endorsement, not just wording typed into the description box?
  5. Are any policies claims made rather than occurrence? If so, what happens when they lapse?
  6. Is the earliest expiry date across all policies in your tracker, with reminders set?
  7. In Ontario, is there a valid WSIB clearance covering the full duration of each active job?
  8. Are subcontractor invoices itemized into labour and materials, so an auditor cannot apply a default labour split against you?
  9. Are expired certificates archived by date rather than overwritten?
  10. Can a cheque be released today for a sub whose row is red? If yes, fix that before you fix anything else on this list.

Item 8 is the quiet one. Even when a sub turns out to be genuinely uninsured, itemized material receipts reduce the payroll basis the auditor assesses you on. Requiring itemized invoices costs nothing and caps the damage on the day something else has already gone wrong.

Frequently asked questions

How should a small contractor track subcontractor insurance certificates?
One row per subcontractor with four fields: which coverages they carry, the limits, the earliest expiry date across all their policies, and the date you last verified the certificate with the broker. Set calendar reminders at 60, 30 and 15 days before that earliest expiry. Under roughly 20 subs a spreadsheet handles this fine. The part that makes it work is not the spreadsheet, it is refusing to release payment while a row is red.
What happens if a subcontractor's insurance expires and I did not notice?
Two things, and the second one is worse. At your annual premium audit the insurer treats payments to that sub as your own payroll and bills you back-premium on it. And if a claim lands during the gap, your policy pays it. A contractor in r/Insurance_Companies described exactly that outcome for someone he knew: the sub's workers comp had expired, an accident happened on site, the general contractor's insurer paid the claim and then dropped him, and he struggled to find new workers comp coverage afterward.
How much can an uninsured subcontractor cost me at a workers comp audit?
It scales with the invoice and the trade. Auditors apply a formula: the gross subcontract invoice multiplied by a labour ratio, multiplied by the class code rate per $100 of payroll, multiplied by your experience modifier. When invoices are not itemized, auditors apply a default labour split, commonly 50 percent and up to 100 percent. On a $40,000 roofing subcontract that arithmetic produces roughly $5,400 in back-premium. A contractor in r/GeneralContractor reported being billed over $10,000 in his first year for exactly this.
Does a certificate of insurance mean I am actually covered?
No. The ACORD 25 states on its face that it is issued as a matter of information only and confers no rights upon the certificate holder. It is a summary of what policies existed on the day it was printed. Being named in the certificate holder box does not make you an additional insured. That requires an endorsement on the subcontractor's actual policy, and the safest practice is to ask for a copy of the endorsement rather than accepting a line of text typed into the description of operations box.
Will the insurance company tell me if my subcontractor's policy gets cancelled?
Almost certainly not, and that is by design. Current ACORD 25 language says only that notice will be delivered in accordance with the policy provisions, which is an obligation to the policyholder, not to you. Insurance educator Bill Wilson notes that agency errors and omissions experts actively advise agents not to notify certificate holders of cancellations, partly because establishing that habit and then missing one creates its own liability. Assume your certificate file goes stale silently.
Can a subcontractor who has insurance still be treated as uninsured?
Yes, and this catches people who think collecting certificates is enough. Builders Mutual, citing ISO general liability payroll inclusion rule 24.E.2, lists categories that get charged to you even when the sub carries general liability: crane with operator and concrete pumping at 33.33 percent of what you paid, and temporary agencies and leased employees at 100 percent. Separately, a sub whose general liability limits fall below your carrier's stated threshold is treated as underinsured, which is charged the same way as uninsured.
Do I need a WSIB clearance certificate as well as a COI in Ontario?
Yes, they are two different documents and a COI does not substitute for a clearance. The WSIB states that clearances must be in place before construction work begins and for the duration of the work, and that proceeding without one is an offence committed by both the hiring business and the contractor, carrying a maximum fine on conviction of $100,000 under the WSIA. Clearances are free, valid for up to 90 days, and most of them expire on the 20th of February, May, August and November.
When is COI tracking software worth paying for instead of a spreadsheet?
When the chasing time exceeds the subscription. A contractor in r/Insurance_Companies put real hours on it: about 2 to 3 hours a month at 20 subs when he only wanted general liability and workers comp, rising to 15 to 25 hours a month at 50 subs once auto and endorsements were added. He pays roughly $40 a month for a tool that also stores W-9s and signed agreements. The bigger platforms are a different market, with one commenter noting they have historically wanted 200 or more tracked certificates.
How do I verify a subcontractor's certificate of insurance is genuine?
Do not accept the PDF from the subcontractor as the last word. The certificate should come from the producer, meaning the agency or broker named in the top left of the form. Verify by contacting that agency directly with the policy number, or the carrier itself. Altered expiry dates and coverage limits are the most commonly forged fields precisely because changing them means editing a few characters on an otherwise real document.
How long should I keep expired subcontractor certificates?
Keep them, do not purge them on expiry. General liability policies carry a products and completed operations aggregate, which is the bucket that responds to claims arising from finished work, and those claims arrive years after the crew left. The certificate you need in that scenario is the one that was in force on the dates the work was performed. File certificates by subcontractor and by date range, not as a single folder of current documents that you overwrite each renewal.
Bespoke pipelines, automations, 360° customer records and real-time reporting, a CRM built around how your team actually works, connected to your entire stack.
Book a free CRM demo

Free tools

Find out what your site is costing you.

Enter your address and we check the real page. Scores are free and the itemised report lands in your inbox. No account, and we change nothing on your site.