Skip to main content

Parliament Terms, Sessions and Memberships

This document covers how the system models the hierarchy of Parliament Terms, Sessions, and Sittings as defined in the National Assembly Standing Orders (7th Edition), and how Members are associated to each term.


1. Definitions (S.O. 2)

ConceptStanding Order definitionSystem model
Parliament TermThe period from the first sitting after a General Election to dissolutionParliamentTerm record
SessionSittings from first meeting after General Election (or first meeting of regular session) to adjournment at end of calendar year or end of termParliamentSession record
SittingA continuous period in which the House sits without adjournmentSitting record
RecessPeriod during which the House stands adjourned to a day other than the next normal sitting dayParliamentSession.status = RECESS

2. Data Hierarchy

ParliamentTerm
└── ParliamentSession (one or more per term)
└── Sitting (one or more per session)
└── AgendaItem

A Sitting is automatically linked to the active ParliamentSession covering its scheduledStart date. If no sessionId is passed to POST /api/v1/sittings, the service resolves it automatically by finding the active session whose date range covers the sitting:

sessionId resolved = ParliamentSession WHERE status = ACTIVE
AND startDate ≤ scheduledStart
AND (endDate IS NULL OR endDate ≥ scheduledStart)

3. Regular Sessions (S.O. 27)

S.O. 27 — Except for the Session commencing immediately after a General Election, the National Assembly shall meet in regular sessions commencing on such dates as the House Business Committee shall determine.

The system does not auto-create sessions. The Clerk creates each ParliamentSession with:

  • termId — links to the parent ParliamentTerm
  • startDate / endDate
  • status — one of ACTIVE, RECESS, ADJOURNED, CLOSED, UPCOMING

4. Session Statuses

StatusMeaning
UPCOMINGSession scheduled but not yet started
ACTIVEHouse is sitting in this session
RECESSHouse adjourned to a future date (recess period)
ADJOURNEDHouse adjourned, may resume
CLOSEDSession permanently ended

5. Parliament Term Statuses

StatusMeaning
UPCOMINGFuture term not yet commenced
ACTIVECurrent Parliament term
ENDEDParliament dissolved

6. Term Memberships

Standing Orders assume Members are associated with a particular Parliament term. A Member's rights, speaking time, and floor permissions are derived from their role in the current term.

For each Member, a TermMembership record ties the user account to a specific term, along with their elected constituency or special interest seat. This correctly handles:

  • Re-elections — a new TermMembership is created for each term; the user account remains unchanged
  • By-elections — a mid-term membership is added for the new term
  • Roles — a Member may hold different roles across terms (e.g., backbencher in one term, Whip in another)

7. API Reference — Terms, Sessions and Memberships

Parliament Terms

MethodEndpointPermissionDescription
POST/api/v1/parliament/termsparliament:term:createCreate a Parliament term
GET/api/v1/parliament/termsparliament:term:readList all terms
GET/api/v1/parliament/terms/activeparliament:term:readGet the active term
PATCH/api/v1/parliament/terms/:idparliament:term:updateUpdate term
DELETE/api/v1/parliament/terms/:idparliament:term:deleteDelete term

Parliament Sessions

MethodEndpointPermissionDescription
POST/api/v1/parliament/sessionsparliament:session:createCreate a session within a term
GET/api/v1/parliament/sessionsparliament:session:readList all sessions
GET/api/v1/parliament/sessions/activeparliament:session:readGet the currently active session
PATCH/api/v1/parliament/sessions/:idparliament:session:updateUpdate session (including status transitions)
DELETE/api/v1/parliament/sessions/:idparliament:session:deleteDelete session

Calendar Blocks

MethodEndpointPermissionDescription
POST/api/v1/parliament/calendarparliament:calendar:createCreate a calendar block (recess, sitting week, etc.)
GET/api/v1/parliament/calendarparliament:calendar:readList calendar blocks
PATCH/api/v1/parliament/calendar/:idparliament:calendar:updateUpdate calendar block
DELETE/api/v1/parliament/calendar/:idparliament:calendar:deleteRemove calendar block

Term Memberships

MethodEndpointPermissionDescription
POST/api/v1/parliament/membershipsparliament:membership:createCreate term membership for a Member
GET/api/v1/parliament/membershipsparliament:membership:readList memberships
PATCH/api/v1/parliament/memberships/:idparliament:membership:updateUpdate membership
DELETE/api/v1/parliament/memberships/:idparliament:membership:deleteRemove membership

8. Typical Setup Sequence

When a new Parliament term begins:

  1. Create a ParliamentTerm — set status = ACTIVE, record startDate
  2. Create TermMembership records for all elected Members
  3. Create the first ParliamentSession — link termId, set status = ACTIVE
  4. Create WeeklyProgramme for the first sitting week (S.O. 39)
  5. Create Sittings — they auto-resolve their sessionId from the active session
  6. Create and publish an OrderPaper ≥ 12 hours before each sitting (S.O. 38)