Contracts

Service agreements with their terms, values, covered sites, and renewal clocks - so expirations stop being surprises.

The contracts module exists for one recurring failure mode: the service agreement nobody re-tendered because nobody knew it was expiring. Every agreement gets a record with a clock on it.

Contract records

Export at the top of the Contracts page downloads the contracts the list is showing as a CSV file. Organizations running both Facilities and Infrastructure get a Facilities / Infrastructure / Shared switch at the top of the page. It opens on Shared, which shows everything; Facilities or Infrastructure shows that workspace's records plus the shared ones.

Workspaces

Organizations running both Facilities and Infrastructure file each contract under one of them.

Renewal tracking

The contracts list splits into All / Active / Expiring / Expired tabs. Expiring means the end date falls within the next 90 days - enough lead time to re-tender rather than rubber-stamp. Expired-but-still-operating agreements - the riskiest kind - sit on their own tab.

Contracts and the work loop

Work orders assigned to a vendor under contract build the delivery record: when renewal comes, "how many calls did they actually take last term, and how fast?" is a filter on work order history, not a guess.

Suggested lifecycle

  1. On signing - create the record, attach the PDF, set term and cost, link sites.
  2. During the term - assigned work orders accumulate; spot-check spend vs. cost; keep the quality score honest.
  3. When it appears on the Expiring tab - pull the vendor's delivery history; decide renew / renegotiate / tender.
  4. On expiry - create the successor agreement as its own record; the old one stays on the Expired tab as history.

Programmatic access

contracts:read / contracts:write on the REST API; contract and contract-site tools via MCP.