Subcontractor Compliance Tracker User Guide

Find your question, then follow the steps: which tab to open, which cell to type in, and what you should see when it worked. Words in bold are the exact tab, column or button names in the workbook.

Published by PoshJosh LLC · Updated October 27, 2026

About this guide

This guide is for the Subcontractor Compliance Tracker, template edition, for up to 15 subs, in Excel and Google Sheets. Your files are Subcontractor_Compliance_Tracker_Template_SAMPLE.xlsx and Subcontractor_Compliance_Tracker_Template_BLANK.xlsx.

It needs Excel 2019 or later, or Microsoft 365, on Windows or Mac, or free Excel for the web. Excel 2016 or earlier shows #NAME? errors.

Color key

CellsWhat they mean
ShadedInputs. Type here or pick from a dropdown.
WhiteFormulas. They calculate on their own and are protected from accidental typing.

Your two files. The SAMPLE is filled for Gulf Prairie Builders, a fictional general contractor, with 15 subs showing every status. Two of them are deliberate problem rows: Angleton Glass shows a data error and Lake Jackson Landscaping shows a missing profile. The BLANK has five starter profiles and no subs, ready for your business.

What it does, and doesn't do. The workbook records what you enter and checks it against requirements you set. It does not verify insurance, give legal or tax advice, or decide whether a sub may work or be paid. Confirm your requirements with your insurance agent and attorney. Your files stay in Excel or your own Google Drive; nothing is sent anywhere.

Need help? Message the shop on Etsy. Say which tab and row you were on, what you typed, and what you expected to see.

Getting around

The workbook has eight tabs. You set your rules once on Requirements, then keep Subs, Coverage and Licenses up to date as paperwork comes in. Requirement Status and Dashboard do the checking.

TabWhat lives thereYou type here?
Start HereInstructions, settings (Review Date, time zone), status meanings, data health checksSettings only
DashboardStatus counts, review queue, chase list, policy and license watchlistsNo
SubsOne row per subcontractor: profile, contact, W-9 and agreement dates, and their Status and ReasonYes
Requirement StatusEach requirement's state for every subNo
LicensesOne row per licenseYes
CoverageOne row per insurance policy, typed from the certificateYes
RequirementsYour profiles (left) and the coverage rules for each profile (right)Yes
OverridesTemporary exceptions, with a reason, approver and end dateYes

Each entry tab keeps its header row and first columns in place as you scroll. Hidden columns on the right of Subs, Coverage and Licenses hold working formulas; leave them hidden.

How do I…?

The short path for each common task. The section in the last column has the full steps.

How do I…Short pathSection
Set what each kind of sub must carryRequirements → a profile (left) and its coverage rows (right)First-time setup
Add a subcontractorSubs → next empty rowAdd a subcontractor
Record a certificate of insuranceCoverage → one row per policyEnter a certificate
Record a renewalCoverage → a new row; keep the old oneEnter a certificate
Record a licenseLicenses → next empty rowLicenses and overrides
Record a W-9 or signed agreementSubs → W-9 Received Date or Agreement Signed DateAdd a subcontractor
Allow a temporary exceptionOverrides → next empty rowLicenses and overrides
See who needs attentionDashboard → review queueUse the Dashboard
See what to request from each subDashboard → chase listUse the Dashboard
See what expires soonDashboard → policy and license watchlistsUse the Dashboard
Find out why a sub isn't passingSubs → Reason, or Requirement StatusWhat each status means
Check the statuses as of another dateStart Here → Review Date overrideUse the Dashboard
Retire a sub who's finishedSubs → Active = NoAdd a subcontractor
See one sub go from Needs Attention to passingSAMPLE → Coastal Plumbing → add its workers comp policyWalk through the SAMPLE

No match. Try a shorter word, or message the shop on Etsy.

First-time setup

Setup is where you write down your rules: which documents each kind of sub must have, and the insurance limits and endorsements your agent or contracts require. Do it once, before you enter subs.

Open the right file

  1. Open Subcontractor_Compliance_Tracker_Template_BLANK.xlsx in Excel. For Google Sheets, see Google Sheets edition below.
  2. If a yellow bar says Protected View, click Enable Editing so the dropdowns work.
  3. Save it under your own name.

For Excel for the web, upload the file to your OneDrive first, then open it from there.

Settings on Start Here

SettingWhat to enter
Review Date override (C5)Leave blank. Statuses are then as of today. See Use the Dashboard for when to use it.
Default override length (days) (C7)How long an override lasts when it has no End Date. Starts at 30.
Company time zone (C8)Your time zone, for your records
Hours ahead of this computer (C9)0, unless this computer's clock is set to a different time zone from the company. Example: 1 for an Eastern company on a Central computer; behind is negative.

Profiles (Requirements, left table)

A profile is a set of rules for one kind of sub, such as a general trade or a materials supplier. The BLANK starts with five: GEN General Trade, LVE Limited Vehicle Exposure, SUP Materials Supplier, PRO Professional Services and CUST Custom. Up to 12 fit.

For each profile you'll use, fill:

ColumnWhat to enter
W-9 Required, Agreement Required, License RequiredYes or No
Expiring Soon DaysHow many days ahead to warn before something expires. Starts at 30.
Required License Type and Required License StateOnly when a specific license is required, for example Electrical Contractor, TX. Leave blank to accept any current license on record.
Coverage Types ReviewedYes, once you've set up its coverage rows on the right

Until those are filled, the profile counts under Profile rows with errors on Start Here.

The profiles table on Requirements in the SAMPLE

Coverage rules (Requirements, right table)

Add one row per profile and coverage type that has a rule. A coverage type with no row is Not Required. Up to 60 rows fit.

ColumnWhat to enter
Profile IDThe profile this rule belongs to
Coverage TypeGeneral Liability, Auto, Workers Comp, Umbrella or Excess, Professional, Pollution or Other
RequirementRequired, Optional or Not Required
Min Each Occurrence, Min Aggregate, Min Auto CSL, Min EL Each Accident, Min EL Disease Each Employee, Min EL Disease PolicyMinimum limits in dollars; leave blank where there's no minimum
Additional Insured, Waiver of Subrogation, Primary NoncontributoryRequired or Not Required
Excess AllowedYes if an umbrella may make up a short limit
Occurrence Form, Per-Project AggregateRequired or Not Required

For example, the SAMPLE's GEN profile requires General Liability at 1,000,000 each occurrence and 2,000,000 aggregate with all three endorsements, Auto at 1,000,000 CSL with additional insured, and Workers Comp at 1,000,000 for each employer's liability limit with a waiver of subrogation. Umbrella is Optional.

What you should see: the Profile Check and Requirement Check columns stay blank. Take your agent's or contract's requirements as the source; the workbook only checks against what you enter.

Coverage rules on Requirements in the SAMPLE: the GEN and LVE rows

Add a subcontractor

Give each sub one row on Subs. Their Status and Reason appear as soon as you assign a profile, and update as you add their certificates and licenses.

  1. Go to the first empty row on Subs (rows 5 to 19).
  2. Fill the shaded columns:
ColumnWhat to enterExample
Sub IDYour own short code, unique for each subS01
Legal NameExactly as on their W-9Bayou Electric
DBATheir trade name, if different
TradePick from the listElectrical
Profile IDPick the profile that fits this subGEN
ActiveYes, or No when they're finished; blank counts as YesYes
Contact Name, Email, PhoneWho to chase for paperwork
W-9 Received DateThe date you received their W-93/2/2026
Tax ClassificationFrom their W-9LLC (S)
Agreement Signed DateThe date they signed your subcontract agreement3/5/2026

What you should see: Status, Reason, Next Expiry, Days Left and Override Active fill in. A new sub usually shows Needs Attention until you add their policies on Coverage.

The Subs tab in the SAMPLE: 15 subs, each with a status and the reason in plain words

Rules worth knowing

  • IDs aren't case-sensitive and can't contain *, ? or ~.
  • Type dates as the date only. A date pasted with a time of day (such as 4/5/2027 2:30 PM) makes the row a Data Error until you retype the date alone.
  • When a sub is finished, set Active to No rather than deleting the row. Their history stays, and they drop off the Dashboard.
  • The template edition holds 15 subs. Requirement Status lists the first 15 only.

Enter a certificate

Type each policy from the certificate of insurance as one row on Coverage. A certificate listing three policies (say general liability, auto and workers comp) is three rows. Up to 75 policies fit.

The basics

ColumnWhat to enter
Policy IDYour own unique code for this row
Sub IDThe sub it belongs to
Coverage TypeGeneral Liability, Auto, Workers Comp, Umbrella or Excess, Professional, Pollution or Other
Carrier, Policy NumberAs printed
Named InsuredExactly as printed on the certificate
Policy FormOccurrence or Claims-made
Retro DateFor a claims-made policy
Effective Date, Expiry DateAs printed
Ends At12:01 a.m., or 11:59 p.m. only if the policy says it ends then
Cancellation DateOnly if you've been told it was cancelled
Certificate DateThe date on the certificate

Then the limits that apply to that policy, in dollars: Each Occurrence or Claim, Aggregate, Auto CSL, EL Each Accident, EL Disease Each Employee, EL Disease Policy, and Per-Project Aggregate (Yes or No).

What you should see: Row Status, Used for Status, Days Left and Issues fill in, and the sub's Status on Subs updates.

The first rows on Coverage in the SAMPLE, with the key columns shown

Expiration dates

A policy reaches its expiration date at 12:01 a.m. on the printed expiry date, when most policies end. If the policy says it ends at 11:59 p.m., pick that in Ends At and it counts as in force through that day. Days Left always shows the printed date.

Renewals

When a renewal arrives, add it as a new row and keep the old one as history.

  • Every policy in force is checked, and the best result counts. Used for Status marks the policy that counted.
  • Policies that have ended while another is in force show Superseded.
  • A renewal entered before it starts that meets every requirement stops the Expiring Soon warning. Issues shows renewal on file, effective and its date.
  • A policy that starts after the earlier one ended is flagged as a gap in coverage in Issues.

Named insured

If the Named Insured matches neither the sub's Legal Name nor DBA (ignoring case, spaces and punctuation), that coverage is Pending Review. If it's a legitimate variant, such as Inc for Incorporated, two named insureds, or c/o text, set Named Insured Reviewed to Yes and fill NI Reviewed By and NI Reviewed Date to accept it.

Endorsements

For additional insured, waiver of subrogation and primary noncontributory, there are two kinds of columns:

ColumnsWhat they recordSatisfies the requirement?
Additional Insured on Certificate, Waiver of Subrogation on Certificate, Primary Noncontributory on CertificateWhat the certificate shows (Yes or No)No; shown without evidence is Pending Review
AI Evidence Date and By, WOS Evidence Date and By, PNC Evidence Date and ByThat you have the endorsement itself, when and who checked itYes, when dated on or before the Review Date

Umbrella or excess

An umbrella can make up a short limit, but only when all of these hold: it's in force; Excess Confirmed is Yes with Confirmed By and Confirmed Date filled; it's marked Yes for that coverage in Excess Over General Liability, Excess Over Auto or Excess Over Workers Comp; and the requirement row has Excess Allowed = Yes. Its Each Occurrence adds to the occurrence, auto and employer's liability limits; its Aggregate adds to the aggregate and disease policy limits.

Workers comp other than insurance

Pick the arrangement in WC Arrangement: Insurance, Approved self-insurance, DWC coverage agreement, Non-subscriber or Other. For anything other than insurance, enter the period you accepted it for as the Effective Date and Expiry Date, set WC Documentation to Received or Missing, and record your WC Reviewer Decision: Accepted, Rejected or Pending. Limits and endorsements aren't checked for these; your decision is.

A DWC coverage agreement is a signed DWC Form-81, -82, -83 or -84 that places the sub's people under another employer's workers comp policy. Record the form in Evidence Reference.

This edition has no jobs, so it does not apply the stricter workers comp rule for public projects (Texas Labor Code 406.096; 28 TAC 110.110).

Licenses and overrides

Record a license

Add one row per license on Licenses (up to 30).

ColumnWhat to enterExample
License IDYour own unique code for this rowL01
Sub IDThe sub it belongs toS01
License TypeAs issuedElectrical Contractor
Issuing AuthorityWho issued itTDLR
License NumberAs issued
StateTwo-letter stateTX
Expiry DateAs printed4/5/2027
License NotesAnything else (optional)

What you should see: License Status and Days Left fill in, and Row Error stays blank.

  • A license reaches its expiration date on its expiry date.
  • A later license of the same type and state for the same sub supersedes the earlier one, so add renewals as new rows.
  • If the sub's profile names a Required License Type and State, that license is what's checked. If the profile requires a license but names neither, every current license on record counts and the worst one decides.

Allow a temporary exception

An override lets a sub pass on one item for a limited time, for example while a renewal certificate is on its way. Add a row on Overrides (up to 15):

ColumnWhat to enter
Override IDYour own unique code
Sub IDThe sub
ItemThe item being excused: a coverage type, License, W-9 or Agreement
ReasonWhy, in plain words
Approved By and Approval DateWho approved it, and when
End DateWhen it stops. Blank uses the Default override length (days) on Start Here.
Override NotesAnything else (optional)

What you should see: Override Check stays blank, Active shows the override is on, and the sub's status becomes Met with Override if that was its only problem. The Reason still shows the underlying problem and the override's end date.

An override with an error in Override Check is ignored.

What each status means

Every sub gets one Status on Subs: the worst state among their requirements. The Reason next to it says, in plain words, what caused it, for example Workers Comp: no policy recorded.

Statuses, worst first

StatusMeansSAMPLE example
Requirements Not ConfiguredNo profile, or a profile not on Requirements. Never a pass.Lake Jackson Landscaping: no requirement profile assigned
Data ErrorA date, limit or ID that can't be read. The bad row is left out of every check until fixed.Angleton Glass: a limit is text or negative
Expiration Date ReachedA required policy or license reached its expiration or cancellation dateBrazos Framing: Auto expired Oct 10, 2026
DeficientA limit or endorsement is short, claims-made where occurrence is required, no per-project aggregate where required, a policy not yet effective, or a rejected workers comp arrangementPalacios Masonry: General Liability limit below minimum
Needs AttentionA required policy, license, W-9 or agreement isn't recordedSargent Supply: W-9 not received
Pending ReviewRecorded, but waiting on you: endorsement evidence, umbrella confirmation, a named insured that doesn't match, policy form, retro date or per-project aggregate not recorded, or a workers comp arrangement not yet acceptedSweeny Insulation: endorsement evidence not received
Expiring SoonEverything passes, but something expires within the profile's Expiring Soon DaysPrairie Concrete: General Liability expires Nov 21, 2026
Met with OverridePasses only because an active override removes an itemNeedville Earthworks: overridden through Nov 18, 2026
Recorded Requirements MetYour recorded entries meet your checks
InactiveActive is No. Left out of the Dashboard.

A passing status means your recorded entries meet your checks. It doesn't mean the coverage, endorsements or legal compliance were verified.

Requirement Status tab

Requirement Status has one row per sub and requirement: each coverage type, the license, the W-9 and the agreement. Its State and Reason columns show exactly which requirement is holding a sub back. Nothing is typed there. It lists the first 15 subs.

Requirement Status for Coastal Plumbing in the SAMPLE: workers comp is the one requirement holding it back

Use the Dashboard

The Dashboard is your weekly to-do list. Nothing on it is typed; it updates from the other tabs. Read it top to bottom.

SectionWhat it showsUse it to
Active subs by statusA count for each status, plus Total active subs and Inactive subsSee the overall picture (SAMPLE: 14 active, 3 met, 1 inactive)
Review queueEvery active sub that isn't Recorded Requirements Met, worst first (overrides last), then soonest date, with the Reason and contact detailsDecide who to deal with first
Chase listSubs who owe you a document: missing, expiration date reached, short or expiring soon, with What to requestCall or email for paperwork
Policy watchlistPolicies that reached their expiration date, were cancelled, or expire within the profile's windowAsk for renewals before they lapse
License watchlistLicenses that reached their expiration date or expire within the windowAsk for license renewals

What you should see in a healthy workbook: few rows in the review queue, and the watchlists showing only what's coming up.

The Dashboard in the SAMPLE: status counts and the review queue

Review Date

The Review Date at the top is the date every status is worked out for. Normally it's today.

To see every status as of another day, for example to check what will have expired by the start of a job next month, type that date in Review Date override on Start Here (C5). The Dashboard then shows OVERRIDE ACTIVE: every status is as of this date, not today. Clear C5 to return to today.

The SAMPLE's override is set to Oct 22, 2026, the date its data was written for, so its statuses stay the same.

Data health checks

The Data health checks box on Start Here counts entries the workbook can't use. Every count should read 0; a non-zero line points to the tab and column to fix. The SAMPLE reads above 0 on three lines on purpose, from its two problem rows (Angleton Glass and Lake Jackson Landscaping).

CheckWhere to look and what to do
Subs with a data problemDuplicate Sub IDs, unreadable dates or bad Active values. See the Status column on Subs.
Subs without a usable profileAssign a Profile ID that exists on Requirements.
Coverage rows with errorsFilter Row Status on Coverage for Data Error; the Issues column says why.
Coverage rows for an unknown subThe Sub ID isn't on Subs; correct it or add the sub.
License rows with errorsSee the Row Error column on Licenses.
Profile rows with errorsSee Profile Check on Requirements. In a new workbook this counts the starter profiles until their Yes/No settings and Coverage Types Reviewed are filled in.
Requirement rows with errorsSee Requirement Check on Requirements.
Override rows with errorsSee Override Check on Overrides. An override with an error is ignored.
Subs past the Requirement Status capacityRequirement Status shows the first 15 subs. Extra subs still get a Status but aren't listed there.
Data health checks on Start Here in the SAMPLE: three lines read above 0 because of the two problem rows

Below that, Review notes are for information and needn't read 0:

  • Coverage gaps between policies: a policy starts after the earlier policy of the same type ended. See Issues on Coverage; the status isn't affected.
  • Current policies with no Named Insured: type the Named Insured as printed so it can be checked against the Legal Name and DBA.

Common data errors

CauseFix
A date pasted with a time of dayRetype the date alone
A limit typed as text, such as "1M" or "$1,000,000 CSL"Type the number only: 1000000
An expiry date not after the effective dateCorrect one of the dates
An ID with *, ? or ~Remove the character

Walk through the SAMPLE

Follow one sub from Needs Attention to passing. Use the SAMPLE file; nothing you change there touches your own work.

Coastal Plumbing (Sub ID S02, profile CUST) has its general liability, auto, license, W-9 and agreement on record, but no workers comp policy. Its profile requires workers comp at $1,000,000 for each employer's liability limit, with a waiver of subrogation.

  1. Open Subs and find Coastal Plumbing in row 6. Status reads Needs Attention and Reason reads Workers Comp: no policy recorded.
Coastal Plumbing on Subs before its workers comp policy is entered
  1. Open Coverage and go to the first empty row (row 46). Type the policy from its certificate: Policy ID P046, Sub ID S02, Coverage Type Workers Comp, Carrier Fictional Mutual, Policy Number FM-00046, Named Insured Coastal Plumbing, Effective Date 4/5/2026, Expiry Date 4/5/2027 and Certificate Date 4/5/2026.
  2. In the same row, type 1000000 in EL Each Accident, EL Disease Each Employee and EL Disease Policy.
  3. Set Waiver of Subrogation on Certificate to Yes, and fill WOS Evidence Date 4/25/2026 and WOS Evidence By J. Reviewer: you have the endorsement itself, not only the certificate. Set WC Arrangement to Insurance and type COI-S02-46.pdf in Evidence Reference.

What you should see: the new row's Row Status reads In Force, Used for Status Yes and Days Left 165.

The new workers comp policy on Coverage, In Force
  1. Go back to Subs.

What you should see: Coastal Plumbing's Status is Recorded Requirements Met and its Reason is blank.

Coastal Plumbing on Subs after the policy is entered
  1. Open Requirement Status. The Workers Comp row for S02 now reads Recorded Requirement Met, like the rest.
Requirement Status for Coastal Plumbing after the policy is entered
  1. Open Dashboard.

What you should see: Needs Attention drops from 2 to 1 and Recorded Requirements Met rises from 3 to 4. Coastal Plumbing leaves the review queue and the chase list.

Dashboard status counts after Coastal Plumbing passes

Leave WOS Evidence Date blank and the sub shows Pending Review instead: the certificate says there's a waiver, but you don't have the endorsement yet. To put the SAMPLE back, close it without saving.

Google Sheets edition

The Google Sheets edition has the same tabs, checks and statuses as the Excel file. You get it from the PDF in your download, which saves your own private copy to Google Drive.

Make your copy

  1. Open Subcontractor_Compliance_Tracker_GOOGLE_SHEETS_links.pdf from your Etsy download.
  2. Sign in to your Google account in your browser.
  3. Click Make my copy under BLANK workbook (or SAMPLE workbook to explore first).
  4. Google asks Would you like to make a copy? Click Make a copy.

What you should see: the workbook opens in Google Sheets, named "Copy of Subcontractor Compliance Tracker - BLANK (Google Sheets)", in your own Drive; rename it as you like. Nothing you type is shared with the shop. If a button doesn't open, the PDF also lists both addresses to paste into your browser.

Set your time zone first

In your copy, open File → Settings and pick your time zone, then pick your Company time zone on Start Here. Statuses and expiration dates depend on today's date, so the time zone needs to be yours.

Protected cells

Formula cells are protected with a warning. If Google Sheets warns that you're editing a protected cell, click Cancel unless you really mean to change a formula. As the owner of your copy, you can remove the warning under Data → Protect sheets and ranges.

Questions and limits

How much does it hold? The template edition holds 15 subs, 75 policies, 30 licenses, 12 profiles, 60 coverage rules and 15 overrides. For more subs or more features, a larger edition is paid custom work; message the shop on Etsy.

Can I add rows past the blank ones? Yes. Use Review → Unprotect Sheet (no password), type in the row under the table, then protect the sheet again. Requirement Status still lists only the first 15 subs.

Does it tell me whether a certificate is valid? No. It tracks what you record and flags gaps and expirations. Reviewing the certificate and the endorsements is still your call.

Does it decide who can work or get paid? No. It shows each sub's status against your rules. You make the decision.

What about public projects in Texas? This edition has no jobs, so it doesn't apply the stricter workers comp rule for public projects (Texas Labor Code 406.096; 28 TAC 110.110).

Can I see the hidden columns? Hidden columns on the right of Subs, Coverage and Licenses hold working formulas. To see them, select the columns on either side, right-click and choose Unhide. Changing them can break the workbook.

Does it work on a Mac? Yes: Excel 2019 or later, or Microsoft 365, on Windows or Mac, and free Excel for the web and Google Sheets. Excel 2016 or earlier shows #NAME? errors. No macros.

I opened the SAMPLE and it says Gulf Prairie Builders. That's the fictional sample company. Use the BLANK for your own work.

Still stuck? Message the shop on Etsy with the tab, the row and what you expected to see.