DeskFerry Logo

Nobody gets on your site with a lapsed certificate

Thirty days out from expiry, the renewal request goes to the sub and the agent who actually issues it — naming the coverage, the limits and the endorsements that job needs. What comes back gets filed against the right sub and the tracker moves on.

Subcontractor certificates — 30-day window

23 active subs

  • Halvorsen Plumbing

    Nothing on file · on the Brennan job Monday

    Not cleared
    GLWC
  • Vega Drywall

    Cert names the old certificate holder

    4 days
    GLWC
  • Kessler Electric

    Waiver of subrogation on file

    13 days
    GL
  • Ironwood Framing

    Additional insured endorsement current

    21 days
    WC

The spreadsheet says everyone's covered. It was last updated in February.

Works with

  • Gmail
  • Outlook
  • Google Drive
  • Google Sheets

Certificates arrive as PDF attachments and get filed in the Drive folder you already keep them in. Your subs don't need an account, a portal, or an app — which is the only version of this that actually works.

The chore

How this goes right now

  1. You have a folder somewhere with everyone's certificates in it, and a spreadsheet that was accurate in February. Somebody's general liability renewed in March and you never got the new ACORD. Somebody else's workers' comp lapsed in April and you'd have no way of knowing unless you went looking.

  2. When you do chase one, it takes three emails, because the sub doesn't have the certificate — his agent does. So you email the sub, he forwards it to his agent, the agent sends you a cert that lists the old certificate holder or leaves off the additional insured endorsement, and you send it back. That's a week of small emails for one piece of paper.

  3. So mostly it doesn't happen. The certs get collected once, at onboarding, and then everyone gets on with building.

The difference

The gap is between collecting certs once and keeping them current

Certificates collected at onboarding
Certificates kept current
The spreadsheet was right the last time somebody updated it
Anything expiring inside 30 days gets picked up that morning
Renewals only surface when you happen to go looking
The request goes to the sub and the agent at the same time
Three rounds of email because the agent issues it, not the sub
The exact coverage, limits and endorsements are spelled out in the ask
Certs come back missing the additional insured endorsement
Certs that come back short get sent back before they're filed
No way to tell at a glance who is clear to be on site Monday
One list showing who's covered, who's expiring and who isn't cleared

Try it

Walk through it yourself

This is the actual shape of the workflow — the same trigger, the same steps, the same draft waiting for your say-so. Click through it.

Collect subcontractor COIs

Scheduled checkGoogle Sheets

Three certificates lapse inside 30 days

The morning check went through 23 active subs. Three expire before the end of the month, and one has nothing on file at all — but is scheduled on a job Monday.

What it does

  1. Compare every expiry date on the subs tracker against today

    Vega Drywall 2 May, Kessler Electric 11 May, Ironwood Framing 19 May. Halvorsen Plumbing has no certificate on record.

    Google Sheets
  2. Look at what's actually filed for each of them

    Vega's current ACORD 25 names your old entity as certificate holder — that one needs correcting, not just renewing.

    Google Drive
  3. Draft the request to each sub and their agent together

    Four emails, each naming the coverage, the limits and the endorsements that sub's scope requires.

    Gmail
  4. Flag anyone who isn't clear to be on site

    Halvorsen Plumbing marked not cleared — they're on the Brennan job Monday and there's nothing on file.

    Google Sheets

Draft list — nothing has been sent

Subcontractor insurance status after this morning's check

  • Halvorsen Plumbing

    No certificate on file · scheduled on the Brennan job Monday 6 May

    Not cleared for site
  • Vega Drywall

    GL and WC expire 2 May · filed cert names the old certificate holder

    Correction requested
  • Kessler Electric

    GL expires 11 May · waiver of subrogation on file and current

    Renewal requested
  • Ironwood Framing

    WC expires 19 May · additional insured endorsement current

    Renewal requested

Send these four requests and flag Halvorsen as not cleared for site?

Open any of them and change the wording, the limits you're asking for, or who it copies. You can drop one entirely — if Kessler's renewal is already sitting in your inbox, take it out and only three go.

Once you approveGoogle Drive

Certificates come back and file themselves

Each request goes to the sub with their agent copied, and your certificate holder details attached so nobody has to ask. When a PDF comes back it's saved to that sub's folder, the expiry date on the tracker updates, and anyone still short stays flagged until it's resolved.

That's the whole workflow.

It drafts, you approve, nothing sends on its own.

Start free

How it works

What it's actually doing

Four steps against your inbox, your Drive folder and your tracker.

  1. 1
    • Google Sheets
    • ExExcel

    It reads your subs tracker every morning

    Whatever spreadsheet you already keep — subs down the side, policy types and expiry dates across the top. It compares every date against today and picks up anything inside your renewal window, plus anyone with a blank where a certificate should be.

  2. 2
    • Google Drive

    It checks what's actually on file before asking

    It looks at the certificate in your Drive folder rather than trusting the spreadsheet. That's how it catches a cert that's technically in date but names the wrong certificate holder, or is missing the additional insured endorsement that job requires.

  3. 3
    • Gmail
    • OuOutlook

    It writes to the sub and the agent together

    The certificate comes from the broker, so the request goes to both at once with your certificate holder details attached. The email names the coverage, the limits and the endorsements you need, which is what stops the cert coming back short.

  4. 4
    • Google Drive
    • Google Sheets

    It files what comes back and updates the row

    When a PDF arrives it's read, checked against what was asked for, saved into that sub's folder, and the expiry date on the tracker updates. Anything that came back short gets flagged for you rather than filed.

You stay in control

It drafts. You approve. It never tells a sub they're off the job.

Insurance is where a wrong email does real damage — to a working relationship or to your own position if something goes wrong. So it prepares the chase and the paperwork, and every message waits for you.

  1. Step one

    It drafts

  2. Step two — you

    You read it and approve

  3. Step three

    Only then does it send

Requests wait for your approval

Four expiring certs means four drafts, sitting together so you can send them in one go or go through them individually. Nothing reaches a sub or their agent until you approve it.

Flagging is internal, not a message

Marking a sub as not cleared for site changes a cell on your tracker. It doesn't email the sub, doesn't tell your PM, and doesn't cancel anything. Whether that sub works Monday is your call to make and your conversation to have.

It won't judge whether coverage is adequate

It checks a certificate against what you asked for — dates, limits, named endorsements. Whether those limits are right for that scope is a question for you and your broker, and it doesn't pretend otherwise.

Nothing gets deleted

Expired certificates stay in the folder. When an audit asks what cover a sub had in March, the March certificate is still there with the date it was filed.

Setup

What setting this up involves

  1. 1

    Connect

    • Gmail or Outlook — whichever you send from
    • The Drive folder where certificates already live
    • Your subs tracker, in Google Sheets or Excel
  2. 2

    Tell it how you work

    • How far ahead to chase — 30 days is standard, 45 if your subs' agents are slow
    • What you require by trade, so an electrician's ask isn't identical to a drywaller's
    • Your certificate holder details, exactly as they should appear on the ACORD
    • Which endorsements you need named — additional insured, waiver of subrogation, primary and non-contributory
  3. 3

    Then it runs

    Half an hour, once

    The tracker columns take ten minutes. The rest is writing down your coverage requirements properly, which is worth doing anyway — most contractors have never had them in one place.

Edge cases

Where it's careful, and what it won't do

What it handles

  • The certificate that's in date but wrong

    A cert can be current and still useless — old certificate holder, missing endorsement, limits below what that scope needs. It compares what's filed against what you require and asks for a corrected certificate rather than ticking the box.

  • Agents who go quiet

    Brokers are busy and certificate requests sit at the bottom of the pile. If there's no certificate a week after the first ask, a second request gets drafted, this time addressed to the agent directly with the sub copied.

  • A new sub with nothing on file

    Someone added to the tracker without a certificate gets treated as urgent rather than as a 30-day renewal, because they're usually about to start. The next morning's check flags them not cleared and drafts the request straight away.

  • Mid-term cancellation

    A policy can be cancelled before its expiry date, and the certificate in your folder won't tell you. If a cancellation notice arrives in your inbox it's picked up and that sub is flagged immediately, ahead of the expiry schedule.

What it does not do

  • It doesn't verify coverage with the carrier

    It reads the certificate it was sent. A certificate is a snapshot, not proof the policy is still in force — if you need that confirmed, that's a call to the carrier and it can't make it for you.

  • It doesn't decide who works

    It flags a sub as not cleared. Pulling them off Monday's schedule, ringing them, or letting them start anyway is entirely your decision.

  • It doesn't give you an opinion on adequacy

    Whether a $1M per occurrence limit is right for a given scope is a question for your broker. It checks against the requirements you set, and nothing more.

  • It doesn't handle your own insurance

    This is about the subs working for you. Your own GL, workers' comp and umbrella renewals aren't in scope.

Time back

Four to six hours a month

Time back
Four to six hours a month
Spent on
The work that bills

How that’s worked out: Based on 15–25 active subs with annual policies, which is roughly two or three renewals a month at three rounds of email each — plus the periodic afternoon spent auditing the whole folder because nobody trusts the spreadsheet. The hours are real; the reason to do it is the audit exposure, which is worth considerably more than the hours.

Fair questions

The things contractors ask first

My subs are guys I've worked with for fifteen years. Isn't this overkill?

The relationship isn't the risk — the paperwork is. A sub you trust completely can still have a policy lapse he doesn't know about, and at a workers' comp audit the question isn't whether you trust him, it's whether you can produce a certificate covering the dates he was on your site. This is about being able to produce it.

Won't chasing certificates annoy my subs?

It goes to the agent as much as the sub, which is the part that saves everyone time. Most subs would rather get one clear email listing exactly what's needed than three vague ones. And it only asks when something's genuinely expiring or genuinely wrong.

We track this in a construction management platform already.

Then you've probably got the tracking side handled and the chasing is still manual. This deliberately runs on email, Drive and a spreadsheet, because that's what small contractors actually use — if you've already rolled out something heavier, this is likely the wrong tool for you and we'd rather say so.

FAQ

Questions worth answering properly

Who does the request actually go to?

Both the subcontractor and their insurance agent, on the same email. The certificate is issued by the broker, not the sub, so writing to the sub alone just adds a forwarding step. Copying both is what turns three rounds of email into one.

Can it tell if a certificate is missing an endorsement?

It checks a returned certificate against the requirements you set — the certificate holder details, expiry dates, coverage types, limits and named endorsements like additional insured or waiver of subrogation. If something's missing it flags it for you instead of filing it.

Does it stop a sub from working?

No. It marks them as not cleared on your tracker and shows you why. Whether they're on site Monday is your decision — it doesn't email the sub about it, doesn't tell your PM, and doesn't change any schedule.

Where do the certificates get filed?

In the Drive folder you already use, under that subcontractor. Expired certificates stay where they are rather than being replaced, so if an audit asks what cover somebody had eight months ago, that certificate is still there with the date it was received.

What if a sub's policy is cancelled mid-term?

A certificate won't tell you that — it's accurate only on the day it was issued. If a cancellation notice reaches your inbox it gets picked up and that sub is flagged straight away rather than waiting for the expiry date to come round.

Do we need Procore or a construction management platform for this?

No, and it doesn't connect to one. It runs on your inbox, your Drive folder and a spreadsheet, which is deliberate — asking a subcontractor to log into your system to upload a certificate is how these systems end up empty.

Know who's covered, without going looking

Point it at your subs tracker and the folder your certificates live in. The first list of what's expiring shows up the next morning.

Start free