COI collection

How to Get Subcontractors to Submit Certificates of Insurance — A Step-by-Step System for GC Teams

Most GC teams are losing hours every week chasing the same subs for the same documents. Here is a repeatable system — with real email templates — that gets COIs in without the back-and-forth.

Four-step COI collection workflow showing request, reminder, escalation, and enforcement stages

Ask any project engineer or office administrator at a general contracting firm what eats their time, and COI collection comes up fast. You send an email. No reply. You send another. The sub says their agent is handling it. A week passes. The project is two days from mobilization and you still don't have a current certificate. So you call. Then you email again. Then someone else on your team tries. This is not a sub problem — it is a process problem. And like most process problems, it has a fixable structure.

This guide lays out the actual system: what to send at each stage, when to send it, how to apply leverage when it stalls, and how to stop doing it manually altogether.

Why the standard email request usually fails

The typical COI request looks like this: a single email sent a few days before the sub is scheduled to mobilize, asking them to "please send over their current certificate of insurance." It fails for predictable reasons.

  • It lands in the wrong inbox. The sub's owner or PM gets the email, but the COI has to come from their insurance agent. If forwarding that request to the agent is an extra step, it often doesn't happen until the sub remembers — which can be days later.
  • It does not tell the sub what you actually need. "Current COI" is vague. They may not know you need a specific additional insured endorsement, a particular coverage limit, or your company listed as the certificate holder. A generic request produces a generic certificate that may not meet your requirements.
  • It has no consequence attached to it. If there is no explicit deadline and no stated consequence for non-compliance, the request competes with every other thing the sub is managing. It will lose that competition most days.
  • It is not followed up systematically. One email with no automatic reminder is easy to forget. By the time you notice nothing came back, you are already behind.

Fixing each of these is straightforward, but it requires building the request into a system rather than treating it as a one-off email.

Step 1: Send a specific, deadline-anchored request

Your initial COI request should go out the moment a subcontract is executed — not a week before mobilization. Early requests give the sub time to contact their agent, and they signal that compliance is a standard part of your process, not an afterthought.

The request needs to include four things: what documents you need, what the specific requirements are, who to send them to (or where to upload them), and a hard deadline with a stated consequence. Here is a template that hits all four:

Subject: Insurance certificate required before work starts — [Project Name]

Hi [Sub Name],

We're getting the paperwork in order for [Project Name] before your scheduled start. Before we can authorize work on site, we need a current Certificate of Insurance (ACORD 25) showing the following:

  • General liability: $1,000,000 per occurrence / $2,000,000 aggregate (or your contract minimums)
  • Workers' compensation: statutory limits
  • Additional insured: [Your Company Name], listed on the certificate and by endorsement
  • Certificate holder: [Your Company Name, address]
  • Policy effective through at least [project end date or renewal date]

Please have your agent send the certificate directly to [your email] — or upload it here: [upload link]. We need this in hand by [specific date, e.g., Friday, May 1].

We cannot authorize mobilization until this is received and reviewed. Let me know if your agent has questions.

[Your name]

The specificity does two things: it removes the sub's ability to send a generic certificate that doesn't meet your requirements, and it gives their agent exactly what they need to issue the right endorsements the first time.

Step 2: Run a structured follow-up sequence

If you do not have the COI by day three of your submission window, follow up. Not a "just checking in" email — a direct nudge that re-anchors the deadline and adds a small amount of urgency.

Subject: Re: Insurance certificate required — [Project Name]

Hi [Sub Name],

We still need your current COI before we can approve mobilization on [Project Name]. Deadline is [date]. If your agent needs anything from us to issue the certificate, have them reach out directly at [your email or phone].

[Your name]

Keep follow-ups short. Long emails get skimmed or deferred. Two sentences and a deadline move faster than a paragraph re-explaining why the document matters.

If day five arrives and you still have nothing, send a second follow-up — this time copying the sub's owner or principal if the first emails went to a PM or coordinator:

Subject: Urgent: COI still outstanding — mobilization at risk — [Project Name]

Hi [Sub Owner Name],

We are [X] days out from your scheduled start on [Project Name] and have not received a certificate of insurance from your team. We cannot authorize work to begin until this is on file. Please have your agent send the certificate to [email] or upload it here: [link] today.

If we do not have the document by [date], we will need to hold your mobilization and may need to make other arrangements for coverage of this scope.

[Your name]

Escalating to the owner changes the dynamic. Most sub owners are keenly aware that a delayed start costs them money. When a PM's failure to send a form threatens that, it usually gets resolved quickly.

Step 3: Use the payment gate — and say so upfront

The single most effective lever GC teams have is payment. Subcontractors who do not respond to email respond to the sentence "we cannot process payment without a current COI on file." But this only works if it is not a surprise.

The right time to introduce the payment-gate policy is in the subcontract itself and in your initial onboarding communication — not the first time you withhold a check. Your subcontract should include language along these lines:

Subcontractor shall maintain, and provide proof of, the insurance coverages specified in Exhibit [X] throughout the duration of the project. [GC Name] shall not be obligated to authorize work commencement or process payment to Subcontractor until a compliant Certificate of Insurance and required endorsements have been received and approved. A lapse in coverage during the project shall entitle [GC Name] to suspend Subcontractor's work until compliant proof of insurance is provided.

When subs have signed this language, the payment-gate conversation shifts from a confrontation to a policy reminder. You are not withholding money out of spite — you are following the terms they agreed to. That distinction matters for the working relationship.

In practice: when a COI is missing or expired at payment time, the invoice simply goes on hold with a one-line note. "Invoice [number] is on hold pending receipt of current COI. Please have your agent send the certificate to [email] and we will process within [X] days of receipt." Most subs produce the certificate within 24 hours of that message.

Step 4: Catch renewals before they expire mid-project

The hardest COI problem to manage is not the initial submission — it is the mid-project expiration that nobody notices. A sub submits a valid COI in January. Their policy renews in June. Nobody tracks that. A July incident happens with an expired certificate on file, and the GC is suddenly facing statutory employer liability they had no idea was coming.

Catching renewals requires two things working together: a date on file for every certificate's expiration, and an alert that fires before that date passes. In a spreadsheet workflow, this means someone has to remember to check the spreadsheet. In practice, that check gets missed — especially across a roster of 20 or 30 active subs.

The standard industry benchmark is a 30-day advance notice window: flag any COI expiring within 30 days and send the sub a renewal request before the policy lapses. Some GC teams with tighter risk tolerance use 45 or 60 days. The math is simple — the earlier the alert, the more time the sub has to contact their agent and the less likely you are to hit a gap.

Step 5: Stop doing this manually

The four steps above work. The problem is execution. Running this system manually across a roster of active subs — each with different expiration dates, different document requirements, and different responsiveness levels — is a part-time job. Most GC teams do not have a dedicated compliance person. The PM or office admin running COI collection is doing it alongside their actual job, which means the follow-up sequence collapses under workload pressure.

This is the exact gap that Send The Proof was built to close. Instead of managing COI requests through email and tracking expiration dates in a spreadsheet, you set up each vendor once and the system runs the collection workflow for you:

  • No-login upload link. Each subcontractor gets a secure link where they can upload documents without creating an account. Their agent can use the same link. This removes the friction that kills response rates on email-only requests — there is no portal login to fight, no new platform to learn.
  • Automated reminders. Once a reminder schedule is configured, Send The Proof sends follow-ups on missing and expiring documents without you touching it. The second and third emails in the escalation sequence above go out automatically, on schedule, until the document is received.
  • Expiration tracking and 30-day alerts. Every COI on file has its expiration date tracked. The system flags approaching expirations and sends renewal requests to the sub before the policy lapses — automatically, without anyone checking a spreadsheet.
  • Ready-to-work status. Each vendor shows a clear compliance signal — compliant, expiring soon, or blocked. When you are approving a payment or authorizing mobilization, you can see at a glance whether that sub's documents are current, without digging through email or shared drives.
  • Audit trail. Every upload, approval, rejection, and reminder is timestamped. If a claim ever comes in and someone asks what was on file and when, you have a complete record — not a partially-remembered email thread.

The first five vendors are free with no credit card required. For most GC teams, running the workflow on a handful of live subs is enough to see whether it holds up before committing to a paid plan. At $29.95 per month for the paid tier, the tool costs less than an hour of anyone's time — and it replaces several hours of manual follow-up every week.

What "good" looks like for a GC team

A well-running COI collection system has a few observable characteristics. Compliance is tracked in one place, not distributed across inboxes and spreadsheets. Subs receive requests and reminders automatically — the burden of follow-up does not rest on any individual's memory. Expirations are visible 30+ days in advance. Payment holds for missing COIs are policy, not exceptions. And the team can produce a complete compliance history for any sub, for any date range, in minutes.

Getting there does not require a large investment. It requires replacing the habits that do not scale — a single email, a spreadsheet with no alerts, manual reminder calls — with a structured request-and-track workflow. Whether you build that manually or automate it, the system is the same. The only difference is who does the work.

Related reading: Why subcontractors don't send their COIs on time, the COI tracking software overview, and the no-login vendor portal feature.