Help

Plans and limits

Two numbers decide your plan: how many subcontractors you track and how many people you have. Here is what each one counts, and what the app does when you reach it.

Two numbers, and one exception

Every plan is the same product. Reports, the audit log, per-project requirement sets, custom document types, exports, the upload portal — none of it is held back for a higher tier. What changes between plans is capacity: how many subcontractors you are tracking and how many people on your team have logins.

The free plan covers 10 subcontractors and one person, which is enough to run one real project rather than a demo. The paid plans raise both numbers. The pricing page has the tiers and what each costs; this page is about what happens as you approach one.

There is a single exception to "every plan is the whole product", and it is honest about why: text messages are metered because the carrier bills per message. Everything else costs the same to serve whoever you are.

What counts as a subcontractor

Every subcontractor on your roster that you have not removed. Not documents, not projects, not assignments — the companies themselves. A sub working four of your jobs is one subcontractor.

The part worth knowing: removing a subcontractor frees the slot immediately. Removal is a soft delete, so their documents and their history survive and the audit log still shows what happened, but they stop counting against your plan the moment you remove them. A contractor whose roster is full of crews they last used in 2019 has room they are not using.

That makes an annual tidy-up a real thing rather than housekeeping theater. Nothing is destroyed by it, and the number that decides your bill goes down.

A bulk import at the wall does not fail — it fills what is left

Import a spreadsheet of eighty subcontractors with room for thirty and you get thirty. The import does not refuse the file and it does not silently create eighty; it inserts what fits, and tells you how many were skipped. That is deliberate — a file that is mostly valid should not be rejected wholesale — but it does mean the number to read after an import is the skipped count, not the success message. Getting the roster in covers the rest of that screen.

What counts as a seat

Active people on your team, plus invitations you have sent that nobody has accepted yet. A pending invite holds a seat — which is the usual explanation when an owner counts the faces in their office, gets a number below their limit, and is told they are full. Roles, seats and what each role can do has the detail, including how to free one.

Subcontractors do not consume seats. They have no login at all — they upload through a link that expires, which is the whole point of that flow and why adding a hundred subs costs you nothing in people.

What happens when you reach one

The action is refused and you are told why, with the way out on the same screen. Adding a subcontractor past your limit does not half-succeed and does not queue; nothing you already have is touched, and nothing already tracked stops being tracked. The wall is on the way in.

That matters more than it sounds, because the alternative some tools choose is worse: quietly stopping the reminders, or hiding rows past the count. Documents already on file keep their expiry countdown and their reminders whatever your plan says.

Who can see and change billing

Billing is its own permission and a narrow one — an office administrator who runs your compliance day to day does not automatically get your card details or the ability to change what you pay. If a plan needs raising and the person who found the wall cannot raise it, that is the design working rather than a bug.

Canceling moves the organization to the free plan rather than locking the account. Your documents, your audit log and your exports stay reachable — what comes out and when sets out exactly what that means, and it is the promise worth checking before you sign anything rather than after.

One product, four sizes.

The numbers decide the plan; nothing about the product is held back for a higher one.