Template:Hansard-item-cargo
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
}}
Motion-linked example (debate_id holds a motion_id, item_type=motion):
{{Hansard-item-cargo
|item_id=p15-s32-mot1
|sitting_id=p15-s32
|sitting_date=2026-07-07
|parliament_no=15
|item_type=motion
|subject=Reinforcing Singapore's Position as a Global Transport Hub
|speaker_mp_id=tin-pei-ling
|debate_id=reinforcing-transport-hub-motion-2026
|topic_tags=Transport, Economy
|verified=yes
|last_updated=2026-07-16
}}
Ministerial statement + clarification example (debate_id holds a statement_id, shared by the statement item and every clarification that follows it):
{{Hansard-item-cargo
|item_id=p15-s32-stmt1
|sitting_id=p15-s32
|sitting_date=2026-07-07
|parliament_no=15
|item_type=ministerial_statement
|subject=[Statement title]
|speaker_mp_id=[minister]
|debate_id=[statement_id]
|verified=yes
|last_updated=2026-07-16
}}
{{Hansard-item-cargo
|item_id=p15-s32-stmt1-c1
|sitting_id=p15-s32
|sitting_date=2026-07-07
|parliament_no=15
|item_type=ministerial_statement_clarification
|subject=[Statement title]
|asking_mp_id=[MP seeking clarification]
|answering_mp_id=[minister]
|debate_id=[statement_id]
|verified=yes
|last_updated=2026-07-16
}}
Adjournment-speech example (no bill_id, no debate_id — just tagged to the speaking MP, visible on their own Parliamentary Record, no dedicated hub page):
{{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
|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 / ministerial_statement_clarification / bill_first_reading / bill_second_reading / bill_third_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, moved the motion, or sought a clarification | ||||
| 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, motion movers | ||||
| 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 | motion or statement slug | No | Set to a motion_id (item_type=motion) or a statement_id (item_type=ministerial_statement / ministerial_statement_clarification) — including on the original statement's own item, not just its clarifications, so one query pulls the whole exchange together. Leave blank for adjournment_speech and anything not part of a motion or statement's own record | ||||
| grouped_question_nos | String | No | If answered together with other questions, e.g. 3-5 | ||||
| question_status | String | asked (default) / withdrawn / deferred. A withdrawn question still gets a row \u2014 the MP genuinely filed it \u2014 but Parliamentary Record queries should filter question_status="asked" by default so withdrawn ones don't inflate an MP's count. | 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, or an adjournment speech with no dedicated hub page).
Cargo table: hansard_items. See also {{Hansard-sitting-cargo}}, {{Bill-cargo}}, {{Motion-cargo}}, {{Ministerial-statement-cargo}}.