Skip to content

Contracts

A contract lives inside a project and records the commercial terms of a specific piece of work — an installation contract, a maintenance agreement, a service SLA, or a warranty deal. One project can have multiple contracts.

FieldDescription
CodeA contract code unique within the project, e.g. MAINT-2025
NameA descriptive name
TypeFree text — e.g. “installation”, “maintenance”, “warranty”, “service SLA”
StatusDraft, Active, Expired, Terminated, or Completed
SupplierThe company supplying or performing the service
CustomerAuto-filled from the project’s customer
Signed dateWhen the contract was signed
Valid from / Valid toThe contract’s active period
CurrencyCurrency for all monetary values
Net value / Gross valueThe total contract value
DescriptionAdditional notes
StatusMeaning
DraftBeing prepared, not yet active
ActiveIn force
ExpiredValidity period ended without renewal
TerminatedEnded early
CompletedAll obligations fulfilled

Each contract can have one or more cost records that break down the contract value into components.

FieldDescription
NameWhat this cost covers
TypeFree text — e.g. “fixed”, “recurring”, “penalty”, “additional work”
Planned amountThe budgeted amount
Actual amountWhat was actually spent
CurrencyCurrency for these amounts
Period from / Period toThe date range this cost covers
NotesAny additional context

Cost records let you track budget vs. actuals at a granular level within a contract.

A contract can be linked to a job (one-to-one). This lets you see, for any contract, which jobs were carried out under it.

Open a project and go to the Contracts tab. Click Add contract. The customer is inherited from the project.

Open the contract from the project’s Contracts tab. The valid_to date cannot be set before valid_from, and the contract code must remain unique within the project.