Template:Hansard-item-cargo

From PoliticalSG

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

Usage

Place once per question/speech/bill reading/motion/statement/clarification on the sitting-day page. Every piece of the item — including the verbatim Hansard text — is a parameter of this one call. Nothing is written on the page around it: the call is fully self-contained, and the template renders the whole thing (anchor, type tag, and the text itself) from the stored data. Data entry is copy-paste only: take the exact block of source text and paste it, unedited, as the value of question_text / answer_text / speech_text.

{{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
|asking_mp_display=Mr Darryl David
|answering_mp_id=goh-pei-ming
|answering_mp_display=Mr Goh Pei Ming
|speaker_mp_id=
|speaker_mp_display=
|bill_id=
|debate_id=
|grouped_question_nos=1-2
|topic_tags=Home Affairs, National Security, Social media
|question_text=Mr 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 and undermined Singapore's multiculturalism (a) whether investigations have revealed the posts to be a coordinated and deliberate effort by any particular agency or organisation; and (b) if so, what action has been or will be taken against such agency or organisation.
|answer_text=
|summary=
|verified=no
|last_updated=2026-07-16
}}

Bill-linked example (bill_id set, speech_text holds the presenting remarks verbatim):

{{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
|speaker_mp_display=Ms Sim Ann
|bill_id=road-traffic-misc-amendments-2026
|topic_tags=Transport, Legislation
|speech_text="to amend the Road Traffic Act 1961 and the Motor Vehicles (Third-Party Risks and Compensation) Act 1960", presented by the Senior Minister of State for Home Affairs (Ms Sim Ann) on behalf of the Coordinating Minister for National Security and Minister for Home Affairs; read the First time; to be read a Second time on the next available Sitting of Parliament, and to be printed.
|verified=no
|last_updated=2026-07-16
}}

Motion-linked example (debate_id holds a motion_id, item_type=motion, speech_text holds the mover's remarks verbatim):

{{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
|speaker_mp_display=Ms Tin Pei Ling
|debate_id=reinforcing-transport-hub-motion-2026
|topic_tags=Transport, Economy
|speech_text=Mr Speaker, I move, "That this House affirms the importance of strengthening Singapore's long-term economic competitiveness by leveraging international cooperation, frontier technologies and world-class infrastructure to reinforce Singapore's position as a globally connected aviation, maritime and logistics hub, and to anchor good jobs in Singapore."
|verified=no
|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; the statement uses speech_text, the clarification uses question_text/answer_text):

{{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]
|speaker_mp_display=[Minister display name]
|debate_id=[statement_id]
|speech_text=[full verbatim statement text]
|verified=no
|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]
|asking_mp_display=[MP display name]
|answering_mp_id=[minister]
|answering_mp_display=[Minister display name]
|debate_id=[statement_id]
|question_text=[MP's verbatim clarification remarks]
|answer_text=[Minister's verbatim reply]
|verified=no
|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; speech_text holds the remarks verbatim):

{{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
|speaker_mp_display=Mr Kenneth Tiong Boon Kiat
|topic_tags=Economy, ASEAN
|speech_text=[full verbatim speech text]
|verified=no
|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 / motion_speech / 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 sought a clarification
asking_mp_display String No Display name matching asking_mp_id, e.g. "Mr Darryl David" — used for readable query results, never used to reconstruct question_text (that already contains the name verbatim from source)
answering_mp_id mp slug No Minister who answered on the record (the one actually speaking, even if answering "for" another minister)
answering_mp_display String No Display name matching answering_mp_id
speaker_mp_id mp slug No For items with no asker/answerer structure — adjournment-debate speeches, statements, bill presenters, motion movers
speaker_mp_display String No Display name matching speaker_mp_id
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/motion_speech) 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
parent_item_id item_id slug No For supplementary_question items only — the item_id of the primary oral_question/written_question this follows up on. Lets a supplementary be tagged to its own asking MP and traced back to context, without counting toward that MP's "questions filed" tally.
grouped_question_nos String No If answered together with other questions, e.g. 3-5
question_status String No Defaults to "asked" if left blank. Set to withdrawn / deferred only when applicable. Parliamentary Record queries should filter question_status="asked" by default so withdrawn ones don't inflate an MP's count
question_text Wikitext No The question exactly as printed in Hansard, pasted verbatim. Blank for non-question items, and blank on one row of a grouped question if the answer is recorded once on another row
answer_text Wikitext No The answer exactly as printed in Hansard, pasted verbatim. Blank for withdrawn questions or items with no reply
speech_text Wikitext No For items with no question/answer split — motions, adjournment speeches, statements, bill-reading remarks. The full verbatim text, pasted as one block
topic_tags String No Comma-separated free text for search
summary Text No One or two factual sentences, no editorialising. This is the one field that may be written rather than copied — it is explicitly a summary, never presented as a quote
verified String Yes yes / no. Set to yes only after a human has checked question_text/answer_text/speech_text against the actual source PDF
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). An item normally sets either (question_text and/or answer_text) or speech_text, not both patterns at once.

Cargo table: hansard_items. See also {{Hansard-sitting-cargo}}, {{Bill-cargo}}, {{Motion-cargo}}, {{Ministerial-statement-cargo}}.