Blog / Construction Operations

Subcontractor Onboarding Checklist: Collect W-9s, COIs and Licenses Without Chasing

By Keyona Meeks, Founder, ReRev Labs · Oct 31, 2026 · 9 min read

The short answer: Treat onboarding a subcontractor as a packet with a fixed list: W-9, certificate of insurance, license, signed subcontract. Send the same request every time, give it one place to land, and track each item in a sheet with a date received. Two formulas do the chasing for you: one builds a "missing" list per sub, and one flags any packet still incomplete after a number of days you choose. Never put tax ID numbers in the sheet. This is tracking only. What you require, and whether a certificate is good enough, is a question for your attorney and your insurer.

By the end of this post, you'll be able to:

  • Write one packet request you can send to every new sub.
  • Track each item with a date received in a single sheet.
  • Get a missing-items list and a reminder flag from two formulas.
  • Keep tax IDs and policy documents out of the wrong places.

I sell build work, and I am not a contractor, an insurer or an attorney. I have no field experience to offer, and nothing here tells you what insurance or licenses you should require. This post is about the paperwork loop: asking, receiving, checking off and reminding. That loop is the part a sheet can run.

This is about a new sub's first packet. It is different from watching certificates expire later.

What goes in the packet?

Start with the items most firms collect. Yours may differ, and your contract decides.

  • W-9. The sub's taxpayer information form.
  • Certificate of insurance. Proof of the coverage your contract asks for.
  • License. Where the work requires one. This varies by state and trade.
  • Signed subcontract. The agreement itself.

Write the list once. A packet that changes by who is asking is a packet that comes back incomplete.

What does the IRS say about the W-9?

The W-9 is an IRS form. The version I read, on the IRS site, has this line at the top: "Give form to the requester. Do not send to the IRS." It also says the form is for someone "who is required to file an information return with the IRS." Source: Form W-9 on irs.gov, read as an excerpt on October 30, 2026. The IRS revises this form from time to time, so send subs the current version from the IRS site.

The form carries a taxpayer identification number. The same document has an entry on misuse of those numbers: "If the requester discloses or uses TINs in violation of federal law," and it goes on to mention penalties. I only read the start of that entry. The point for your sheet is plain: the sheet should say a W-9 was received and when. It should not hold the number. Keep the form itself in a folder with restricted access, and ask your accountant who should see it.

What does a certificate of insurance actually show?

Less than people hope. A certificate is a summary issued by an insurer or agent. One example I found, a certificate form posted on the Texas Department of Insurance site, says: "This certificate is issued as a matter of information only and confers no rights upon the certificate holder." It adds: "The terms of the policies referenced in this certificate control over the terms of the certificate." Source: a certificate form on tdi.texas.gov, read as an excerpt on October 30, 2026.

That is one insurer's form, not a universal rule, and I could not open the industry body's own explanation. But it is a reason to treat the certificate as a record that something was provided, not as the coverage itself. What coverage to require, and whether a particular certificate meets your contract, is a question for your insurer, broker or attorney. Check with them.

How do you ask for the packet?

One message, the same every time. Here is a draft you can adapt. Replace the brackets.

Subject: [Your company] subcontractor packet for [project]

Hi [Name], to set you up as a subcontractor we need four items: a current W-9, your certificate of insurance, your license information where it applies, and the signed subcontract. Please send them to [one address or one upload link] by [date]. If any of these is not applicable to you, tell us and we will note it. Thank you.

[Your name, phone]

Give the packet one place to land. Two addresses mean two piles.

Should you use an upload form?

A Google Form with a file-upload question is one option. It has a cost. Google's help page says that for this question type, "To answer this question, responders need to sign in to a Google Account." Source: Google Docs Editors Help, article 7322334, checked October 30, 2026 in an earlier review. Many subs will not have or will not want to use one, so a shared mailbox or a link to a folder you control may work better. I did not test either.

Whatever you choose, tell subs where the documents will be kept and who can see them.

How do you track it in a sheet?

One row per sub, with one date column per item. A blank cell means not received.

ColumnWhat goes in it
A. CompanySub's name
B. ContactName and email
C. Request sentDate
D. W-9 receivedDate, never the number
E. COI receivedDate
F. License checkedDate you checked it
G. Subcontract signedDate
H. MissingFormula
I. StatusFormula
J. Days since requestFormula
K. FlagFormula

In L1 type Remind after (days) and in M1 type 7. Then, in row 2:

H2: =IF(C2="","",TRIM(IF(D2="","W-9; ","")&IF(E2="","COI; ","")&IF(F2="","License; ","")&IF(G2="","Subcontract; ","")))
I2: =IF(C2="","Not requested",IF(H2="","Complete","Missing: "&H2))
J2: =IF(C2="","",TODAY()-C2)
K2: =IF(OR(C2="",H2=""),"",IF(J2>$M$1,"Remind",""))

Fill them down. I tested them in LibreOffice with four made-up subs. A sub with every date filled in showed "Complete." A sub sent the request ten days ago with three items missing showed "Missing: COI; License; Subcontract;" and "Remind." A sub sent the request three days ago showed the missing list but no flag. A sub with no request date showed "Not requested." The missing list ends with a semicolon, which is harmless. I did not test them in Google Sheets, so type a few test rows and check.

If an item does not apply to a sub, put "N/A" in the cell instead of a date, and the formula treats it as received.

What do you do when the flag says Remind?

Send a short note that names what is missing, copied from the Missing column. A person sends it. Sending reminders automatically is possible, but I would not start there, because a reminder that goes to a sub who already sent the item is an annoyance you cannot take back. Run the sheet for a few packets first.

What stays with a person?

  • What to require. Your contract, your insurer and your attorney decide.
  • Whether a certificate is adequate. Someone has to read it against your requirements.
  • Whether a license is valid. Check it with the issuing body. I did not research any state's lookup.
  • Where tax forms are stored and who sees them.

Where does an LLM fit in this?

An LLM can help with the messy part: reading a scanned certificate or a long email and suggesting the dates and names to enter. A person should check the dates against the document before they go in the sheet, because a wrong date looks the same as a right one. The missing list and the reminder flag are plain rules, and they do the same thing every time. My stance: AI writes the code, plain automation runs it, and an LLM shows up only where the input is messy and a person checks the result. For other jobs worth automating next, see what to automate first and the follow-up engine.

How do you test the sheet?

  1. Enter four made-up subs at different stages.
  2. Check the missing list against the dates by hand.
  3. Fill in an item and confirm it leaves the list.
  4. Change the 7 and watch the flag move.
  5. Delete the test rows and keep the formulas.

Where this has limits

  • I did not use this on a live project. The formulas were tested in LibreOffice with made-up rows, not in Google Sheets.
  • I am not an attorney, an insurer or a safety professional. Check with an attorney, insurer or safety professional on what you require.
  • The IRS and Texas pages were read as excerpts. The Texas form is one insurer's wording, not a rule.
  • I could not open the industry body's certificate explanation.
  • I did not research licensing by state.
  • The Google upload quote is from an earlier review. Check the live page.
  • No ReRev prices and no promises about results.

If you want help turning this into a system that sends the request and tracks the replies, see our AI operations service or tell us where onboarding gets stuck. Do not send tax forms, certificates, passwords or login details.

Frequently asked questions

What should a subcontractor onboarding checklist include?

Commonly a W-9, a certificate of insurance, license information where required and a signed subcontract. Your contract decides.

Where should I store W-9s?

In a folder with restricted access. Keep the number out of your tracking sheet and ask your accountant who should see the forms.

Is a certificate of insurance proof of coverage?

One example form says it is issued as a matter of information only and that the policies control. Ask your insurer or broker what you should require.

How do I know which subs are missing items?

A formula can list the items with no date. A second formula can flag packets still incomplete after a set number of days.

Should I use a Google Form for uploads?

Google says responders need to sign in to answer a file-upload question. Many subs will not, so consider another route.

Can the sheet send reminders?

This one only flags them. A person sends the note.

Read next: The prequalification form screens subs before onboarding starts, so the checklist only runs on the ones you actually want.