If you track vendor certificates of insurance in a spreadsheet, you are not doing it wrong. For a small list, with one person editing, and no audit on the calendar, a spreadsheet is genuinely the right tool. Cheap, flexible, exportable, and runs on a laptop you already own.
The trouble is that spreadsheets are silent. They don't email you. They don't notice when a row goes red. They sit there, looking organized, and the actual work — the remembering — lives in your head.
This post is for the moment that arrangement starts to fail. Four specific breaking points show up in roughly the same order across small property managers, GCs, and ops leads, and once you've hit two of them, the spreadsheet has already cost you more time than the tool that replaces it would.
Who this is for
Operators tracking vendor COIs in Excel or Google Sheets, with somewhere between five and a hundred vendors, and a creeping sense that something is going to slip. Not enterprise procurement teams — they're a different problem with different tools. Not zero-vendor solo operators — for them, a sticky note works fine.
If that's you, read on. If you're under ten vendors and renewals haven't bitten you yet, stay on the spreadsheet for now — there's a free template that'll keep you organized until the breaking points arrive.
Breaking point 1: ten to fifteen active vendors
Somewhere between ten and fifteen vendors with active COIs is where the weekly glance at the sheet stops being enough. The shape of the failure is predictable.
You start by checking the sheet every Monday. That works for a month. Then a week gets busy and you skip a Monday. Then two. Three weeks later, you open the sheet and find a vendor whose COI lapsed eleven days ago. The vendor is still on the property, still doing their work, and their insurance is no longer in force.
A spreadsheet's "expiry warning" is a colored cell. Colored cells are useless if nobody opens the file.
This is the point where the cost of tracking shifts from "five minutes a week" to "the cost of one missed certificate" — which can be everything from a stern email from your insurer to a real claim landing on your policy. The math stops working.
What to do at this stage: add reminders that fire whether or not you open the sheet. That's an email automation problem, not a spreadsheet problem. You can DIY it with Outlook reminders pointed at each expiry date (tedious, brittle, breaks every time a date changes), or use a tool that does it as a feature — that's the simplest swap.
Breaking point 2: the second editor
A spreadsheet built for one person silently breaks when a second person starts editing it.
Google Sheets makes this less catastrophic than the old Excel-on-shared-drive setup, but it doesn't fix the underlying issue. The first time two people open the same sheet at the same time, you'll get one of three failure modes:
The first is the silent overwrite. Person A updates Acme Plumbing's expiry from 2026-03-01 to 2026-09-01 because Acme renewed. Person B, working from a stale tab, updates the same row's vendor email. One of those changes makes it; one quietly disappears. Nobody knows which.
The second is the status drift. Person A logs that they verified BlueSky HVAC's certificate. Person B doesn't see the update because they're on a different filter view, calls BlueSky to ask for the certificate, BlueSky's office manager rolls their eyes. Vendor relationships are not a renewable resource.
The third is the column war. Person A wants a column for "policy number". Person B wants a column for "broker contact". Both add their column. Nobody removes the other person's. Six months in, your sheet has 31 columns and a row gets entered with the wrong policy in the wrong column.
Google Sheets has a version history. You can dig through it. You won't, because nobody actually does.
What to do at this stage: move to a system with row-level audit history. Either a real database (overkill for one person, fine for a team), or a tracking tool that logs every edit by user and timestamp. The fact that you can answer "who last touched this row, and when" is what unlocks reliable two-person ops.
Breaking point 3: the first audit
Auditors — whether internal, from your insurer, from a lender, or as part of a property due-diligence pass — ask for two things.
First: prove every active vendor has current insurance. A spreadsheet can answer this. Sort by expiry date, take a screenshot, done.
Second: prove that, when a previous certificate expired, you noticed and acted on it. A spreadsheet cannot answer this. The moment you overwrite the row with the new expiry date, the previous one is gone — and so is the evidence that you were ever tracking the gap correctly.
This is the audit failure mode that catches small operators by surprise. The auditor says "show me when Acme Plumbing's coverage from October 2024 expired and what you did about it", and the only honest answer is "I overwrote that row three times since then, sorry".
If the audit is a real audit — say a lender doing a refinance review or your insurance carrier scoping next year's renewal — that's a finding. Findings cost money, slow deals, and damage trust. The cost is rarely the audit itself; it's the second-order effect of looking unreliable.
What to do at this stage: keep historical records of every certificate, not just the current one. One certificate per row, never overwritten. Every renewal becomes a new row, marked active, with the previous row marked superseded. A spreadsheet can technically support this if you're disciplined, but at fifty vendors with three coverage types each, you're maintaining a 150-row history table by hand. Most people give up around row 40 and the audit trail collapses.
The other approach: any tracking tool that keeps a per-COI history automatically. You add a new certificate; the old one is preserved with its dates intact. That's the audit-ready behavior you need, and it's cheap to get.
Breaking point 4: the admin who built it leaves
This is the one nobody plans for, and it shows up at the worst moment.
Most small operators have a single person — often the office manager, sometimes the bookkeeper, sometimes the founder themselves — who built the COI tracking sheet and is the only person who actually understands it. The columns make sense to them. The conditional formatting works because of a formula they wrote two years ago. The "status" column updates correctly because they remember to drag the formula down on every new row.
Then they leave. Maternity leave, new job, retirement, transfer to another property. The replacement opens the file and discovers:
- Half the vendors listed haven't worked with you in over a year.
- The "expiry" column is text in some rows and dates in others, so sorting doesn't work.
- The status formula was hand-typed into individual cells instead of a column-wide formula, so any new row breaks the indicator.
- The last verified column hasn't been updated in nine months, but everyone assumed it was current because nobody questioned it.
The replacement is now spending their first month rebuilding the sheet — which means, in the meantime, expiry dates are being missed. Or they give up and start fresh, which means the historical audit trail for the past two years is gone.
This is a tribal-knowledge problem, and spreadsheets are uniquely bad at solving it. A spreadsheet's behavior depends on the person who built it. A SaaS tool's behavior depends on the tool, and the tool comes with documentation.
What to do at this stage: anything where the system enforces the structure, not the person. Either a hardened spreadsheet template that the next person can pick up cold (unlikely to survive a year of editing), or a tracking tool with consistent UI and standard fields. Whichever path, write down — outside the sheet — what your COI tracking workflow actually is. The doc survives the admin's departure even if the sheet doesn't.
When it's still the spreadsheet's job
A few signals say "stay where you are":
- Under ten active vendors. The breaking points haven't arrived yet.
- You're the only editor and you don't plan to delegate. You can run a one-person spreadsheet workflow indefinitely if you actually do the Monday review.
- Audits are not part of your world. No lender, no insurer, no due-diligence buyer is asking for vendor compliance evidence. (This is rarer than people think — the threshold for "audit-relevant" has been falling for years.)
- Your portfolio isn't growing. A static list of seven vendors will work in a sheet forever.
If two or more of those are true, don't move. The cost of switching tools — even a free one — is real, and a working spreadsheet is a working spreadsheet. Don't fix what isn't broken.
If two or more of the four breaking points are already hitting you, the math has flipped. The cost of staying is now more than the cost of moving.
What to look for if you do move
Three features matter, the rest is bonus:
Reminders that fire whether or not you log in. Email is the right channel. Most operators check email twenty times a day; most operators check their COI dashboard once a month. The reminder system has to work in the channel the user actually lives in. Look for 30/14/7-day reminders as the baseline; 0-day and post-expiry are bonuses.
A persistent history per certificate. Every certificate that's ever been on file should still be on file, even after renewal. This is the audit-trail behavior. If you can't pull "show me Acme Plumbing's coverage as of October 15, 2024" with one click, the tool isn't doing the audit job.
A vendor request flow. When a certificate is about to expire, the action you want is "send the vendor a polite, professional email asking for the renewal". A tool that does this in one click — and routes the reply back to your inbox — saves you twenty minutes per renewal. At fifty vendors a year, that's a working week.
Everything else (tags, custom fields, integrations, reports, mobile apps) is nice-to-have. Don't pay extra for those until the three above are working.
Frequently asked questions
How long does it take to migrate from a spreadsheet?
If your sheet already has one row per certificate, with vendor name, coverage type, and expiry date in clean columns, you can be running on a new tool in under an hour. If the sheet is messier — vendor names in inconsistent formats, expiry dates as text instead of dates, multiple coverages in one cell — budget an afternoon to clean it up first. The cleanup is worth doing even if you decide not to switch tools.
Will I have to re-enter all my historical certificate data?
Probably not for the first round. Most operators only migrate the current active certificate per coverage type per vendor. Historical certificates can be archived in the original spreadsheet and referenced if an auditor asks, then back-filled over time. Trying to back-fill three years of history before going live is the most common reason small teams stall on the migration.
Is a free tracking tool good enough?
For under five vendors, yes. The free tier of most COI tracking tools covers a small list completely — including reminders, audit history, and vendor request flows. Once you're past the free-tier cap, paid plans for this category start around $9–$19 per month, which is cheap compared to one missed renewal.
What about CSV import?
If you have more than twenty vendors, CSV import matters a lot. Without it, migration is "type each row by hand", which takes hours and introduces errors. With it, migration is "export the spreadsheet, upload the CSV, done". Most tools gate CSV import to a paid tier; check before you commit.
Track your first 5 vendors free. COI Tracker watches every certificate expiry and emails you 30, 14, and 7 days before each one lapses — so a lapsed vendor never lands on your policy. Setup takes about two minutes, and you'll never need to touch a spreadsheet again unless you want to. Starter is $9/mo for 50 vendors; Growth is $19/mo for 200. → Get started · See pricing
Written by the COI Tracker team. We build tools for small property managers, general contractors, and operations leads who are one lapsed vendor away from a very bad Tuesday.