โ† All posts

Compliance checklist

Subcontractor Compliance Checklist: COIs, W-9s, Lien Waivers, and Renewal Dates

What you need to collect from every subcontractor, which fields actually matter, and how to know at a glance whether a sub is ready to work, needs follow-up, or is blocked.

Why compliance paperwork keeps slipping

The problem is not that GC offices do not know what they need. Most project managers can recite the list: certificate of insurance, W-9, license if the trade requires it, lien waivers on the payment cycle. The problem is that "collected" and "current" are two different things, and nobody has a clean way to see which is which.

A certificate arrives as a PDF attachment. Someone saves it. The row in the spreadsheet gets updated. Six months later the policy expired and nobody set a reminder. A W-9 was collected at onboarding three years ago and the sub's address changed twice. A lien waiver is sitting in someone's email waiting to be countersigned.

The checklist below is not about collecting more paperwork. It is about knowing the status of the paperwork you already asked for.

The core compliance documents โ€” what to track for each

Certificate of Insurance (COI)

This is the highest-urgency document because it expires, and an expired COI is a job-site liability. For each subcontractor, track:

Field What to record Why it matters
GL expiration date MM/DD/YYYY from the certificate Drives renewal reminders
WC expiration date MM/DD/YYYY or "exempt" with reason Often different from GL
Umbrella expiration date MM/DD/YYYY or "not required" Required on many larger jobs
GL limit on file $1M/$2M or whatever the cert shows Must meet contract minimums
Certificate holder Your company name as listed on cert Wrong name = not your cert
Additional insured Yes / No / Per contract Required for most GC contracts
Status Current / Expiring <60 days / Expired / Missing / Needs review Action at a glance
Certificate file location Link or folder path to saved PDF Instant retrieval when owner asks
Last reviewed by Name or initials and date Accountability and audit trail
Next reminder date 60 days before earliest expiration Triggers follow-up before it lapses

W-9

The W-9 is a one-time collection for most subs, but it has a way of going stale. An address change, a business name change, or a change in tax classification should prompt a new request.

Field What to record
W-9 received Yes โ€” date received / No โ€” request pending
Business name on W-9 Must match name on checks and contracts
TIN type SSN or EIN
Date received MM/DD/YYYY
Needs update Flag if sub's info has changed since last W-9
File location Path or link to signed PDF

For 1099 purposes, your accounting team will need the W-9 on file before payment. If it is missing, payment should be held or backup withholding applies. That is a strong motivator to collect W-9s at onboarding, not after a problem surfaces.

Contractor's License

Not every sub in every state requires a license, but where they do, an unlicensed sub working on your job is your exposure too. Track:

Field What to record
License required Yes / No โ€” based on trade and jurisdiction
License number As issued
Issuing authority State, county, or city
Expiration date MM/DD/YYYY
Status Active / Expired / Pending renewal

Lien Waivers

Lien waivers are project-specific and payment-cycle-specific, which makes them harder to track in a single-row-per-sub format. Track them by project and payment event:

Field What to record
Project name / number Ties to specific job
Waiver type Conditional / Unconditional, Partial / Final
Payment amount covered Dollar amount from the pay app
Date requested When you sent the request
Date received When signed waiver came back
Status Requested / Received / Countersigned / Filed
File location Path or link

Most GC offices manage lien waivers through their accounting or project management system rather than a COI tracker. The important thing is that they are tracked somewhere with a clear status, not floating in email.

Safety and Prequalification Documents

OSHA training records, safety plans, or prequalification forms are only required on certain job types โ€” owner requirements, public jobs, or larger commercial work. If your jobs require them, add a simple row to your compliance file:

Field What to record
Document type OSHA 10, OSHA 30, safety plan, prequalification form, etc.
Required for this job Yes / No
Received Yes / No โ€” date
Expiration if applicable Training certificates expire; plans typically do not

The status system that keeps the checklist usable

Every document type should have a status your team can read without opening the file:

The "not required" status matters. If it is blank, you cannot tell whether the document was never needed or was never collected.

Assigning ownership and follow-up responsibility

Compliance fails when every document is "the team's job." For each document category, name one person who owns the request, review, and follow-up. That does not mean they do all the work โ€” it means they are accountable for knowing the status.

For most small and mid-size GC offices, the office manager or project coordinator owns COIs and W-9s. Project managers own lien waivers by job. Safety documents may fall to a superintendent or a dedicated safety coordinator if one exists.

Write the owner into the checklist. "Who's handling this?" answered in a cell means one less conversation per renewal cycle.

A first-pass checklist for this week

You do not need to build a perfect compliance system in one sitting. Start with three columns on your active sub list:

  1. Latest COI expiration date (or "missing" if you cannot find one)
  2. W-9 on file (yes / no)
  3. Biggest open gap for each sub (lien waiver outstanding, license expired, etc.)

If assembling that list takes more than a day or reveals more missing documents than you expected, the compliance workflow has more gaps than the current system is surfacing. That is useful to know. Fixing it starts with knowing where the holes are, not with building a new process before you understand the old one.

A good compliance checklist does not require perfection. It requires honest status. "Missing" and "needs review" are acceptable answers โ€” "I'm not sure" is the problem.

Track subcontractor COIs, expiration dates, and renewal reminders in one place.

CertKeeper helps general contractors keep subcontractor certificates of insurance, expiration dates, and renewal reminders organized without a full platform rollout. If your team is still chasing COIs from email and spreadsheets, request early access and we'll help you see whether CertKeeper fits your workflow.

Request early access