Contracts (software, hardware, services)
For the helpdesk teamContracts
Section titled “Contracts”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.
What’s on a contract
Section titled “What’s on a contract”- 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.
Expiry status
Section titled “Expiry status”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. Ifauto_renewsis 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.
What to record vs not
Section titled “What to record vs not”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.
Gotchas
Section titled “Gotchas”- Auto-renew is a flag, not an enforcement. The system won’t extend
expires_onfor 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.