ResourcesFor general contractors

Subcontractor Insurance Verification: Beyond Checking the Expiration Date

How to actually verify a subcontractor's insurance — the three-layer check, the endorsement forms that decide claims, a field-by-field checklist, and the gaps that pass casual review.

TightropeUpdated July 28, 20264 min read

Diamond Flooring starts next week. Travis finds that the general liability limit needs an increase and the additional insured is not listed, emails the vendor, verifies coverage with the insurance broker, and updates the new COI in the system before work begins.

Verifying subcontractor insurance means confirming that the coverage behind the certificate matches what the subcontract requires — not confirming that a certificate exists. The distinction sounds pedantic until a claim arrives: the certificate is a snapshot prepared by the sub's agent as a courtesy, it "confers no rights" (the ACORD 25 says so at the top), and the protections you required live in policy endorsements the certificate merely gestures at.

So real verification is a three-layer check. Most review processes do layer one and stop.

Layer 1: The certificate itself

The fast pass — five minutes, catches the sloppy failures:

  • Named insured matches the entity you contracted with. Not the owner's other LLC, not a similarly-named affiliate. The sub you signed with is the sub who must be insured.
  • Certificate holder is your exact entity and address.
  • Dates are current — and check every policy line separately. GL and umbrella renew on different dates; a current GL over a lapsed umbrella passes a glance and fails a claim.
  • Limits meet the subcontract, line by line: per occurrence, aggregate, auto CSL, umbrella, employer's liability.
  • Policy form: occurrence, not claims-made, for GL — unless you've knowingly accepted claims-made with a tail requirement.

Layer 2: The endorsements (where claims are decided)

This is the layer that separates verification from filing. Each requirement below must appear as an attached endorsement form — a mention in the certificate's description-of-operations box amends nothing:

  • CG 20 10 (or equivalent) — additional insured, ongoing operations, naming the right entities.
  • CG 20 37 (or equivalent) — additional insured, completed operations. The chronically missing one; construction claims routinely arrive after the work is done, and CG 20 10 alone stops protecting you at completion.
  • Primary and noncontributory — endorsement or confirmed policy wording, so the sub's coverage pays before yours.
  • Waiver of subrogation — on the GL and the workers' comp policy.
  • Blanket endorsements: acceptable, but read the trigger. Most grant status only where "required by written contract" — verify your subcontract actually contains the written requirement, or the blanket grants nothing.

Entity names on endorsements deserve their own line: additional insured status for a misspelled or wrong entity is worth exactly nothing, and it's among the most common findings in any stack of construction certs.

Layer 3: The match against the subcontract

Layers 1 and 2 checked the paper against a standard. Layer 3 checks it against the deal: this sub's trade tier, this project's owner flow-downs, this subcontract's limits and endorsement list. A cert that would pass for a flooring sub fails for the roofer; a cert fine on Project A fails on Project B whose owner required $10M excess. Verification without the subcontract open (or its requirements extracted into a schedule) is pattern-matching, not verification.

What actually turns up

Run a real three-layer review on any stack of "compliant" subcontractor certificates and the same findings repeat: CG 20 37 missing entirely; endorsements referenced in the description box but not attached; the wrong entity named as additional insured; umbrella lapsed while GL runs current; workers' comp "exempt" in a state where the exemption doesn't hold; blanket endorsements pointing at a subcontract that never wrote the requirement down. Every one of these passes an expiration-date check. That's the pattern worth naming: date-tracking systems verify the one field that almost never causes the claim.

Making it repeatable

Verification isn't a one-time event — it re-runs at every renewal (endorsements silently vanish at renewal more often than at issuance) and at every subcontract change. Per cert, a proper three-layer review is fifteen-plus minutes when everything's clean and a multi-round agent chase when it isn't (here's how to run that chase). Across an active sub roster, that's the workload that quietly converts "verification" back into "filing" — which is the job Tightrope built its agent Travis for: every layer of the check, against the actual subcontract, plus the correction chase by email, phone, and text, on every cert and every renewal.

FAQ

How do you verify a subcontractor's insurance is real? Beyond the three layers above: for high-stakes scopes, confirm coverage directly with the issuing agent or carrier — certificates have been forged, and an agent's confirmation email takes minutes to request. Loss runs and A.M. Best ratings add depth for prequalification.

What is the difference between a COI and verification of insurance? The COI is a document; verification is the act of checking it — dates, limits, attached endorsements, entity names — against your contract's requirements. Holding the document is not the same as having done the check.

Do I need to verify insurance for every subcontractor, every year? Every sub, at onboarding and at every policy renewal, for as long as the subcontract requires coverage — including the completed-operations tail after the work is done.


Want a second opinion on a cert you've already marked compliant? Run it through Travis on Tightrope's free plan — the endorsement layer is where it usually gets interesting.

Let Travis do the checking and chasing.

Start with real certificates and real requirements. Travis will show what is missing and stay with the correction.

Start free. Paid plans include COI tracking and Travis actions.