Template:Hansard-item-cargo

From PoliticalSG
Revision as of 15:16, 16 July 2026 by SGPolitico (talk | contribs)

This template defines the table "hansard_items". View table.

Usage

Place once per question/speech/bill reading/motion, immediately before (or wrapping) the prose text of that item on the sitting-day page. Renders only an anchor + a small inline type/number tag — the actual Hansard prose (question text, answer, speeches) is written normally around the call, not inside it.

{{Hansard-item-cargo
|item_id=p15-s32-oq1
|sitting_id=p15-s32
|sitting_date=2026-07-07
|parliament_no=15
|item_type=oral_question
|item_no=1
|subject=Probe into social media posts targeting Singapore's Indian community
|asking_mp_id=darryl-david
|answering_mp_id=goh-pei-ming
|speaker_mp_id=
|bill_id=
|debate_id=
|grouped_question_nos=1-2
|topic_tags=Home Affairs, National Security, Social media
|summary=
|verified=yes
|last_updated=2026-07-16
}}
'''Q1.''' [[Darryl David]] asked the Coordinating Minister for National Security and Minister for Home Affairs regarding the 14 online social media posts which seemingly targeted the Indian community... — ''[[Goh Pei Ming]] (for [[K Shanmugam]])''

Bill-linked example (bill_id set, no asking/answering/speaker):

{{Hansard-item-cargo
|item_id=p15-s32-bill1
|sitting_id=p15-s32
|sitting_date=2026-07-07
|parliament_no=15
|item_type=bill_first_reading
|subject=Road Traffic (Miscellaneous Amendments) Bill
|speaker_mp_id=sim-ann
|bill_id=road-traffic-misc-amendments-2026
|topic_tags=Transport, Legislation
|verified=yes
|last_updated=2026-07-16
}}

Debate-linked example (debate_id set, item_type=adjournment_speech):

{{Hansard-item-cargo
|item_id=p15-s32-adj3
|sitting_id=p15-s32
|sitting_date=2026-07-07
|parliament_no=15
|item_type=adjournment_speech
|subject=Integration with the region
|speaker_mp_id=kenneth-tiong-boon-kiat
|debate_id=reinforcing-transport-hub-motion-2026
|topic_tags=Economy, ASEAN
|verified=yes
|last_updated=2026-07-16
}}

Field reference

Field Type Required Notes
item_id slug Yes Permanent. Format: {sitting_id}-{type_abbr}{item_no or running index}, e.g. p15-s32-oq1, p15-s32-wq21, p15-s32-bill1
sitting_id sitting slug Yes Must match hansard_sittings
sitting_date Date Yes Denormalised from the sitting, for fast per-MP sorting without a join
parliament_no String Yes Denormalised — lets MP-profile queries group by parliament term cheaply
item_type String Yes oral_question / written_question / ministerial_statement / bill_first_reading / bill_second_reading / motion / adjournment_speech / other
item_no String No The Hansard question/item number as printed. Blank for unnumbered items
subject String Yes Short title, sentence-cased from the Hansard heading
asking_mp_id mp slug No MP who asked the question or moved the motion
answering_mp_id mp slug No Minister who answered on the record (the one actually speaking, even if answering "for" another minister)
speaker_mp_id mp slug No For items with no asker/answerer structure — adjournment-debate speeches, statements, bill presenters
bill_id bill slug No Set only if this item is a reading/speech/question directly about a specific bill. Must match bills table
debate_id debate slug No Set only if this item is part of a standalone motion/topic debate not tied to a bill. Must match debates table
grouped_question_nos String No If answered together with other questions, e.g. 3-5
topic_tags String No Comma-separated free text for search
summary Text No One or two factual sentences, no editorialising
verified String Yes yes / no
last_updated Date Yes

An item normally sets at most one of bill_id / debate_id — not both, and often neither (a plain oral/written question with no bill or standalone-debate link).

Cargo table: hansard_items. See also {{Hansard-sitting-cargo}}, {{Bill-cargo}}, {{Debate-cargo}}.