Canadian MP debate sentiment (monthly)
Per-MP, per-month debate sentiment and topic engagement from the official House of Commons Hansard (45th Parliament, 1st session; keyless XML). Each row aggregates one MP's English floor interventions in a calendar month: participation counts, a documented lexicon-based sentiment read (fixed parliamentary word lists, 3-token negation window; French translations excluded via FloorLanguage gating), a 0-100 sentiment_score (50 = neutral) ranked within the month, and topic-engagement concentration (Herfindahl over debate topics) with the top topic named. Speakers are entity-resolved by the House's stable DbId person id; titled affiliations (ministers, the PM, parliamentary secretaries) resolve to the same person record. Units: counts, words, shares, scores. Caveats: months with no sittings (e.g. summer recess) are absent, never zero-filled; MP-months under 3 interventions / 100 words are dropped; French-original passages appear in the -E edition in official English translation. Primary key: (month, mp_dbid). Cadence: monthly; as_of is the latest sitting date, so identical input produces an identical content hash. Hansard text is House of Commons parliamentary material (Crown copyright; commercial_use = unclear) — only aggregate statistics are published, never speech text.
- Rows
- 1,154
- Columns
- 24
- Source cadence
- Monthly
- Last refreshed
- Sep 28, 2026
- Theme
- government
| Column | Type | Description |
|---|---|---|
| as_of | string | Latest sitting date (YYYY-MM-DD) in the snapshot; a re-run on unchanged upstream data is a no-op ingest. (unit: date) |
| month | string | Calendar month of the sittings aggregated (YYYY-MM). Months with no sittings are absent. (unit: year-month) |
| mp_dbid | string | House of Commons stable person id (DbId); the entity-resolution key. (unit: id) |
| mp_name | string | MP display name, honorifics stripped. (unit: name) |
| party_code | string | Party code as printed (CPC, Lib., BQ, NDP, GP); null for the Speaker. (unit: code) |
| party_name | string | Canonical party name mapped from party_code. (unit: name) |
| riding | string | Electoral district. (unit: name) |
| role | string | Speaker role in the affiliation (mp/minister/prime_minister/speaker/deputy_speaker/assistant_deputy_speaker/parliamentary_secretary/secretary_of_state/party_leader/house_leader). (unit: label) |
| n_sittings | integer | Sitting days the MP spoke in the month. (unit: count) |
| n_interventions | integer | Spoken interventions in the month (>= 3 by gate). (unit: count) |
| words_total | integer | English floor words in the month (>= 100 by gate). (unit: words) |
| sentiment_words | integer | Words carrying lexicon sentiment weight. (unit: words) |
| sentiment_mean | float | Mean lexicon sentiment in [-1, 1] (sentiment-word-weighted; 0 = neutral). (unit: score) |
| sentiment_score | float | Documented 0-100 rescaling: 50*(1+sentiment_mean); 50 = neutral. (unit: 0-100) |
| sentiment_rank | integer | Rank within the month, 1 = most positive (ties share the lower rank); null when the row has no sentiment signal. (unit: rank) |
| tone_outlier | integer | 1 when the MP's sentiment_mean is >= 2 standard deviations from the month mean. (unit: flag) |
| pos_word_share | float | Share of sentiment words that are positive. (unit: share) |
| neg_word_share | float | Share of sentiment words that are negative. (unit: share) |
| n_topics | integer | Distinct debate topics the MP spoke on. (unit: count) |
| top_topic | string | Debate topic with the most MP words that month. (unit: label) |
| top_topic_word_share | float | Share of the MP's words in the top topic. (unit: share) |
| topic_herfindahl | float | Herfindahl index of the MP's word shares across topics (1 = single-topic). (unit: index) |
| source_url | string | Provenance: House of Commons Hansard publication search. (unit: url) |
| row_hash | string | Deterministic 16-hex-char hash of the row's identity fields; identical input -> identical hash. (unit: hash) |
First 10 sample rows — a preview, not the complete dataset.
| as_of | month | mp_dbid | mp_name | party_code | party_name | riding | role | n_sittings | n_interventions | words_total | sentiment_words | sentiment_mean | sentiment_score | sentiment_rank | tone_outlier | pos_word_share | neg_word_share | n_topics | top_topic | top_topic_word_share | topic_herfindahl | source_url | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-09-25 | 2026-03 | 317555 | Philip Earle | Lib. | Liberal | Labrador | mp | 3 | 3 | 222 | 22 | 1 | 100 | 1 | 0 | 1 | 0 | 3 | International Trade | 0.356 | 0.336 | https://www.ourcommons.ca/Search/en/publications/hansard | aa4afcd3aec6fc02 |
| 2026-09-25 | 2026-03 | 317846 | Chris Bittle | Lib. | Liberal | St. Catharines | mp | 2 | 3 | 204 | 2 | 1 | 100 | 1 | 0 | 1 | 0 | 0 | — | 0 | 0 | https://www.ourcommons.ca/Search/en/publications/hansard | 2379894aed54d810 |
| 2026-09-25 | 2026-03 | 317959 | Chi Nguyen | Lib. | Liberal | Spadina—Harbourfront | mp | 3 | 3 | 379 | 15 | 1 | 100 | 1 | 0 | 1 | 0 | 3 | World Theatre Week | 0.438 | 0.394 | https://www.ourcommons.ca/Search/en/publications/hansard | f10a77793d4d7fb4 |
| 2026-09-25 | 2026-03 | 318044 | Peter Schiefke | Lib. | Liberal | Vaudreuil | mp | 3 | 3 | 302 | 6 | 1 | 100 | 1 | 0 | 1 | 0 | 2 | Wild Bird Conservation | 0.424 | 0.301 | https://www.ourcommons.ca/Search/en/publications/hansard | 783eb58755ef46e9 |
| 2026-09-25 | 2026-03 | 318605 | Shafqat Ali | Lib. | Liberal | President of the Treasury Board | minister | 1 | 12 | 668 | 11 | 1 | 100 | 1 | 0 | 1 | 0 | 2 | Interim Supply | 0.855 | 0.752 | https://www.ourcommons.ca/Search/en/publications/hansard | 0d6ea48a31db6178 |
| 2026-09-25 | 2026-03 | 318607 | Rebecca Alty | Lib. | Liberal | Minister of Crown-Indigenous Relations | minister | 2 | 4 | 372 | 21 | 1 | 100 | 1 | 0 | 1 | 0 | 4 | Strengthening Canada's Immigration System and Borders Act | 0.602 | 0.425 | https://www.ourcommons.ca/Search/en/publications/hansard | 940c1952de326f52 |
| 2026-09-25 | 2026-03 | 318660 | Maninder Sidhu | Lib. | Liberal | Minister of International Trade | minister | 4 | 10 | 569 | 28 | 1 | 100 | 1 | 0 | 1 | 0 | 7 | International Trade | 0.439 | 0.266 | https://www.ourcommons.ca/Search/en/publications/hansard | ec2c80a94d5d7cf5 |
| 2026-09-25 | 2026-03 | 319418 | Jennifer McKelvie | Lib. | Liberal | Parliamentary Secretary to the Minister of Housing and Infrastructure | parliamentary_secretary | 1 | 4 | 349 | 34 | 0.941 | 97.06 | 8 | 0 | 0.971 | 0.029 | 3 | Build Canada Homes Act | 0.427 | 0.36 | https://www.ourcommons.ca/Search/en/publications/hansard | 48ccf3c9130af8f2 |
| 2026-09-25 | 2026-03 | 318631 | François-Philippe Champagne | Lib. | Liberal | Minister of Finance and National Revenue | minister | 4 | 19 | 1,720 | 122 | 0.902 | 95.08 | 9 | 0 | 0.951 | 0.049 | 7 | Taxation | 0.275 | 0.203 | https://www.ourcommons.ca/Search/en/publications/hansard | cdaa1a7d98e7c89b |
| 2026-09-25 | 2026-03 | 318011 | Jean-Yves Duclos | Lib. | Liberal | Québec Centre | mp | 3 | 6 | 642 | 39 | 0.897 | 94.87 | 10 | 0 | 0.949 | 0.051 | 3 | An Act to Implement the Protocol on the Accession of the United Kingdom of Great Britain and Northern Ireland to the Comprehensive and Progressive Agreement for Trans-Pacific Partnership | 0.489 | 0.323 | https://www.ourcommons.ca/Search/en/publications/hansard | 0dc7c190da6c3643 |
- Current
20260928T112937Z-13896151b30b · sha256 13896151b30b…
1,154 rows · first snapshot
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/ourcommons_hansard_sentiment/ca_mp_debate_sentiment_monthly" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/ourcommons_hansard_sentiment/ca_mp_debate_sentiment_monthly").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/ourcommons_hansard_sentiment/ca_mp_debate_sentiment_monthly
Tip: fetch /llms.txt for the full machine-readable catalog.
Where this data comes from and what was made from it. Other people's work shows as counts; only shared projects are named.
Cite this snapshot
Pinned to snapshot 20260928T112937Z-13896151b30b and its content hash, so readers get exactly the data you used.
House of Commons of Canada (Hansard). (2026). Canadian MP debate sentiment (monthly) [Data set, snapshot 20260928T112937Z-13896151b30b, sha256 13896151b30b]. Datazimuts. Retrieved 2026-09-28, from https://datazimuts.com/en/datasets/ourcommons_hansard_sentiment/ca_mp_debate_sentiment_monthly?snapshot=20260928T112937Z-13896151b30b
@misc{dz_ourcommons_hansard_sentiment_ca_mp_debat_13896151,
title = {{Canadian MP debate sentiment (monthly)}},
author = {{House of Commons of Canada (Hansard)}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/ourcommons_hansard_sentiment/ca_mp_debate_sentiment_monthly?snapshot=20260928T112937Z-13896151b30b}},
note = {Snapshot 20260928T112937Z-13896151b30b, sha256 13896151b30b6c3381aafe73d377308b62c1f3a5482430e819b7fce691cd0bc3; accessed 2026-09-28}
}Embed a table or a chart
Paste this into any page. The embed is pinned to the same snapshot, follows the reader's light or dark setting, and always shows the source, license and a link back.
<iframe src="https://datazimuts.com/embed/chart?dataset=ourcommons_hansard_sentiment%2Fca_mp_debate_sentiment_monthly&lang=en&theme=auto&snapshot=20260928T112937Z-13896151b30b&x=sentiment_words&y=n_sittings&agg=avg" title="Canadian MP debate sentiment (monthly)" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Ask about this dataset. Answers come only from its catalog record, measured profile and change history, and list the facts they used.