Contracts and engagements
For the helpdesk teamContracts
Section titled “Contracts”A person’s contracts view (a.k.a. engagements) is the chronological list of every employment relationship they’ve held with the trust. Most staff have one current engagement; some have layered ones (e.g. a TA who teaches a single subject — separate contract for the teaching hours).
What’s on an engagement
Section titled “What’s on an engagement”- Contract type — pulled from contract types, or falls back to the built-in values: permanent, fixed-term, supply, casual.
- Start date / end date — engagement dates.
end_datecan be null for open-ended permanent engagements.expected_end_dateis used for fixed-term renewals planning without formally ending the engagement. - FTE — full-time equivalent (e.g. 0.6 for 3-day-a-week).
- Pay scale — a string reference to the pay spine point (e.g. “M3”, “L5”, “SCP 12”). Full pay-change history is tracked separately via the pay-change log.
- Department — primary department they’re attached to.
- Job title / role — “Year 6 Teacher”, “Network Manager”. Both fields exist; job title is the display-facing label.
- Line manager — links to another person in the register.
- Status —
active,future,suspended, orended. - Probation — whether probation is required, the probation-until date, and the recorded outcome (passed / extended / failed / waived) once decided.
How engagements stack
Section titled “How engagements stack”A person can have:
- One current engagement — the typical case. Status
active. - Multiple current engagements — when someone holds two separate contracts (e.g. a teacher who also coaches a sport, paid separately).
- Historical engagements — past roles. Status
ended.
The person’s “default” engagement for purposes like payroll export and profile display is the most recently active one.
When an engagement ends
Section titled “When an engagement ends”- Set
end_dateto the last working day. - Set status to ended — the single terminal status regardless of whether it’s a resignation, dismissal, or fixed-term running out. Use
end_reason(a free-text field) to record the specific reason. - Document any handover notes.
Don’t delete past engagements. The trust’s HR audit trail depends on them.
Gotchas
Section titled “Gotchas”- A person with no active engagement is not automatically a leaver — they may be on a break (maternity, sabbatical) where the engagement is
suspended. Use the status to express the state. - The engagement state machine allows:
future → active → suspended → ended. Theendedstatus is terminal — you cannot transition out of it; start a new engagement instead. - Pay is stored as a pay scale string, not a monetary amount. Actual salary figures live in the trust’s payroll system; the People module holds the spine point reference only.
- Fixed-term renewal planning uses
expected_end_date. Renewing pushes that date out without touchingend_date. Ending the engagement setsend_dateand transitions toended.