Vendors and compliance
The company directory of subcontractors and suppliers, with certificates of insurance and other paperwork tracked to their expiry dates
The vendor directory is the list of companies your projects buy from. It is company-wide rather than per-project, so a vendor recorded once is available to every job, and their compliance paperwork is tracked in one place.
The directory lives at Settings → Vendors under Account management. The per-project view lives at Settings → Vendor compliance under Current project.
Who can use it
The company directory requires organization OWNER or ADMIN, for reads as well as writes. An ordinary organization member is refused, so a vendor picker elsewhere in the product falls back to free-text entry for them rather than showing a list they cannot read.
The per-project compliance register is gated differently: reading needs Directory READ_ONLY, and managing needs the Manage vendors permission.
Record a vendor
The directory table carries trade code, name, MBE/WBE status, a contact, and the compliance alert badges. Add a vendor and record:
- Name
- Trade code, described as "CSI-style code. How your folders are keyed."
- Trade description
- Tax id
- Address
- Contacts
- MBE/WBE status: MBE, WBE, DBE, HUB, or None
A vendor's tax id never travels on the directory list. It is returned only when you open that one vendor.
Renaming a vendor repairs the vendor name stored on their commitments, so the directory stays the source of truth for how a company is spelled.
Compliance documents
Each vendor carries a compliance grid of document kinds, their effective and expiry dates, and the file behind each.
| Kind | Label |
|---|---|
| COI | COI |
| W9 | W-9 |
| VENDOR_FORM | Vendor Form |
| PP_BOND | P&P Bond |
| MBE_WBE_CERT | MBE/WBE Cert |
| SAFETY_PLAN | Safety Plan |
| OTHER | Other |
COI, P&P Bond and MBE/WBE Cert are the kinds that carry expiry meaning. The default required set is COI, W-9 and Vendor Form.
Status is derived, never stored
Every status is computed at render time from the expiry date, by the same rule on the vendor page and on the project register:
| Status | When |
|---|---|
| Missing | No document on file for that kind |
| Active | On file, and either no expiry date or an expiry more than 30 days out |
| Expiring soon | Expiry within the next 30 days, including the expiry day itself |
| Expired | The expiry date has passed |
A document whose expiry date cannot be read as a date is treated as Expired. Compliance fails closed: an unreadable date is never read as fine.
The expiry day itself reads as Expiring soon, because a certificate is valid through its stated date.
Nothing sweeps in the background and nothing emails you. The alert badges are computed when the directory or the project register is opened. Check the register; do not wait to be told.
Which document governs
When more than one document exists for a kind, a project-scoped document beats an organization-wide one, then the latest expiry date wins, then the most recently updated.
Read a certificate of insurance
On the Compliance tab, attach a COI PDF from Drive and run the extraction. It makes one metered vision call and returns a preview with per-field missing-flags. Fields the model could not read render as flagged-empty inputs rather than as invented values. You confirm, and the confirm posts through the ordinary compliance upsert.
Policy limits are kept as the strings printed on the certificate. They are the insurer's display data, not figures the product does arithmetic on, so they are never converted into amounts.
The source file caps at 10 MB and at most 12 policies come back from one read.
The project compliance register
Settings → Vendor compliance under Current project is the pre-mobilization gate: which documents each vendor on this project still owes. A vendor is compliant when nothing required is missing and nothing required is expired.
Limits
| Limit | Value |
|---|---|
| Vendors per organization | 2,000 |
| Contacts per vendor | 20 |
| Name length | 160 characters |
| Trade code length | 40 characters |
| Expiring-soon window | 30 days by default, 365 maximum |
Troubleshooting
The vendor picker on a commitment offers no list. You are not an organization OWNER or ADMIN, so the directory read is refused. Type the vendor name instead, and ask an admin to add the company to the directory.
A COI shows Expired but the certificate is current. The stored expiry date is not a valid date. Compliance treats an unreadable date as expired rather than as fine. Re-enter the date.