Skip to content

Contracts (software, hardware, services)

For the helpdesk team

A contract is anything you renew on a cadence — a software licence, a maintenance agreement, an MSP contract. The register tracks them so renewals don’t sneak up and so finance has a forward-looking spend picture.

  • Reference — internal contract number, often supplier-issued.
  • Title — short description. “Microsoft 365 A3, 1,200 seats”, not “Licence”.
  • Contract type — licence, maintenance, service, warranty, lease, rental, other.
  • Supplier — link to supplier.
  • Asset — optional link to a specific asset the contract covers (e.g. extended hardware warranty on a single chassis).
  • Starts on / expires on — dates.
  • Notify lead time (days) — how many days before expiry you want the reminder. Default 60.
  • Auto-renews — flag. If checked, the contract rolls over automatically; the renewal date is implicit and you only renegotiate when you want to.
  • Annual value (pence) — for finance. Stored as pence, displayed in pounds.
  • Currency — defaults to GBP.
  • Status — active, expired, cancelled, superseded.

The index sorts by expires_on. Each row carries an expiry status badge derived from days_until_expiry:

  • Expiring (expiry status badge) — within the notify lead time window. Action required.
  • Active (expiry status badge) — outside the lead time window; fine.
  • Expired (contract status) — past expires_on. If auto_renews is true, this may be a sync lag — update the row when the renewal completes. Otherwise you have a lapse to chase.
  • Cancelled — manually ended before expiry.
  • Superseded — replaced by a newer contract.

Record:

  • Annual software licences, especially per-seat ones.
  • MSP / outsourced support agreements.
  • Hardware extended warranties.
  • Insurance schedules (cyber, contents).

Don’t record:

  • One-off purchases — those are POs.
  • Internal SLAs — those live in the SLA settings, not here.
  • Auto-renew is a flag, not an enforcement. The system won’t extend expires_on for you on the renewal date. You — or a future automation — need to update the row when the renewal completes.
  • Annual value is stored as pence. A £14,400 contract is 1440000 in the DB. The form accepts pounds and converts; if you import a CSV, get the units right.
  • The notify lead time drives both the email reminder and the expiring badge on the index. If you change the notify lead time on a contract, both the alert cadence and the badge threshold move together.