Skip to content

Contracts and engagements

For the helpdesk team

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).

  • 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_date can be null for open-ended permanent engagements. expected_end_date is 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.
  • Statusactive, future, suspended, or ended.
  • Probation — whether probation is required, the probation-until date, and the recorded outcome (passed / extended / failed / waived) once decided.

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.

  • Set end_date to 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.

  • 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. The ended status 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 touching end_date. Ending the engagement sets end_date and transitions to ended.