Canadian rail freight pulse intelligence (monthly)
Monthly Canadian rail freight intelligence from Statistics Canada's Railway Carloading Statistics (table 23-10-0216-01, Canada-total, metric tonnes, not seasonally adjusted): 66 commodity series agent-curated into 6 economic super-groups (grains, energy, metals & minerals, forest, food & agriculture, manufactured) plus intermodal, with 7 published aggregate rows. Per commodity x month: tonnage, YoY and 3-month-moving-average YoY momentum, share of non-intermodal tonnage, loading intensity (tonnes per rail car) with its YoY change, a documented 0-100 freight-pulse score with per-month commodity ranks, surge/slump/12-month-record flags, and month-level breadth diffusion. Suppressed values stay null, never zero-filled; the latest month is preliminary and may be revised. Statistics Canada Open Licence (commercial reuse allowed); source: Statistics Canada.
- Source
- Statistics Canada
- Rows
- 24,090
- Columns
- 23
- Source cadence
- Monthly
- Last refreshed
- Sep 27, 2026
- Theme
- economy
| Column | Type | Description |
|---|---|---|
| month | string | Reference month: first day of the month, ISO date. (unit: ISO date) |
| country_code | string | ISO alpha-3 country code (CAN for every row). (unit: ISO 3166-1 alpha-3) |
| commodity_code | string | Stable commodity key (slug of the provider-verbatim label). Primary join key with month. (unit: slug) |
| commodity_label | string | Provider-verbatim commodity label from StatCan table 23-10-0216-01. |
| commodity_group | string | Agent-curated super-group: grains, energy, metals_minerals, forest, food_ag, manufactured, intermodal, or total (aggregate rows). (unit: categorical) |
| is_total | integer | 1 for the 7 published aggregate rows (Total traffic carried, non-intermodal/intermodal loaded, US receipts total + intermodal/non-intermodal subtotals, Canadian connections), 0 for the 66 commodity rows. (unit: binary) |
| tonnes | float | Rail tonnage loaded, as published: metric tonnes (units, not seasonally adjusted). Suppressed upstream values stay null, never zero-filled; the latest month is preliminary and may be revised. (unit: metric tonnes, not seasonally adjusted) |
| rail_cars | float | Number of rail cars loaded, as published. Null where StatCan publishes no car count (intermodal commodities, less-than-carload shipments, aggregate rows). (unit: count) |
| tonnes_mom_pct | float | Month-over-month percent change in tonnage. Data are not seasonally adjusted, so MoM mixes seasonality with signal — YoY is the primary momentum read. (unit: percent) |
| tonnes_yoy_pct | float | Year-over-year percent change in tonnage. Null for the first 12 months of each series (warm-up). (unit: percent) |
| tonnes_yoy_3mma_pct | float | 3-month moving average of tonnes_yoy_pct: the seasonality smoother for this not-seasonally-adjusted table. (unit: percent) |
| tonnes_share_of_nonintermodal | float | The commodity's share of the published 'Total non-intermodal traffic loaded' tonnage that month. Commodity rows only. (unit: share) |
| tonnes_per_car | float | Loading intensity: tonnes divided by number of rail cars — how full the average car is. Null where the car vector is unpublished. (unit: tonnes per car) |
| tonnes_per_car_yoy_pct | float | Year-over-year percent change in loading intensity. (unit: percent) |
| freight_pulse_score | string | Documented 0-100 composite, min-maxed within each month across the 66 commodity rows: 100 * minmax(clip(tonnes_yoy_pct, -40, +40)). High = the commodity's tonnage running hot vs the rest of the rail system that month. Null on aggregate rows. (unit: 0-100 score) |
| pulse_rank | string | Per-month dense rank of freight_pulse_score across the 66 commodities, 1 = hottest. Null on aggregate rows. (unit: rank) |
| surge_flag | integer | 1 when tonnes_yoy_pct exceeds +15 (tonnage surging vs a year ago). (unit: binary) |
| slump_flag | integer | 1 when tonnes_yoy_pct is below -15 (tonnage slumping vs a year ago). (unit: binary) |
| record_12m_flag | integer | 1 when tonnage equals the trailing-12-month maximum (inclusive). (unit: binary) |
| breadth_share | float | Share of the 66 commodities with positive tonnes_yoy_pct that month. Month-level attribute: repeated on every row of the month. (unit: share) |
| as_of | string | Latest reference month present in the fetched panel (YYYY-MM); identical across rows and across runs on the same published vintage, so a re-fetch of unchanged data produces a byte-identical panel. (unit: YYYY-MM) |
| source_table | string | StatCan table number behind the row (23-10-0216-01). |
| row_hash | string | Deterministic 16-hex row hash of commodity_code + month (idempotency). |
First 10 sample rows — a preview, not the complete dataset.
| month | country_code | commodity_code | commodity_label | commodity_group | is_total | tonnes | rail_cars | tonnes_mom_pct | tonnes_yoy_pct | tonnes_yoy_3mma_pct | tonnes_share_of_nonintermodal | tonnes_per_car | tonnes_per_car_yoy_pct | freight_pulse_score | pulse_rank | surge_flag | slump_flag | record_12m_flag | breadth_share | as_of | source_table | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1999-01-01 | CAN | alcoholic_and_non_alcoholic_beverages | Alcoholic and non-alcoholic beverages | food_ag | 0 | 3,407 | 46 | — | — | — | 0 | 74.065 | — | 50 | 1 | 0 | 0 | 1 | — | 2026-06 | 23-10-0216-01 | b295f49293084a1d |
| 1999-01-01 | CAN | alumina | Alumina | metals_minerals | 0 | 122,413 | 1,398 | — | — | — | 0.007 | 87.563 | — | 50 | 1 | 0 | 0 | 1 | — | 2026-06 | 23-10-0216-01 | aa96d08f72773ad5 |
| 1999-01-01 | CAN | aluminum_primary_or_semi_finished | Aluminum, primary or semi-finished | metals_minerals | 0 | 124,364 | 1,579 | — | — | — | 0.007 | 78.761 | — | 50 | 1 | 0 | 0 | 1 | — | 2026-06 | 23-10-0216-01 | a845e95445e44bda |
| 1999-01-01 | CAN | animal_feed_and_products | Animal feed and products | food_ag | 0 | 124,884 | 1,557 | — | — | — | 0.007 | 80.208 | — | 50 | 1 | 0 | 0 | 1 | — | 2026-06 | 23-10-0216-01 | 93e281dd6ad1cd46 |
| 1999-01-01 | CAN | animal_or_vegetable_fats_oils_and_flours | Animal or vegetable fats, oils and flours | food_ag | 0 | 177,033 | 2,309 | — | — | — | 0.01 | 76.671 | — | 50 | 1 | 0 | 0 | 1 | — | 2026-06 | 23-10-0216-01 | 3305865de50a9b69 |
| 1999-01-01 | CAN | articles_of_base_metal | Articles of base metal | manufactured | 0 | 93,115 | 1,317 | — | — | — | 0.005 | 70.702 | — | 50 | 1 | 0 | 0 | 1 | — | 2026-06 | 23-10-0216-01 | 8ffa0cb8dd4962f6 |
| 1999-01-01 | CAN | automobiles_and_mini_vans | Automobiles and mini-vans | manufactured | 0 | 103,920 | 6,168 | — | — | — | 0.006 | 16.848 | — | 50 | 1 | 0 | 0 | 1 | — | 2026-06 | 23-10-0216-01 | 9ae9538fced7a99f |
| 1999-01-01 | CAN | canola | Canola | grains | 0 | 310,024 | 3,885 | — | — | — | 0.017 | 79.8 | — | 50 | 1 | 0 | 0 | 1 | — | 2026-06 | 23-10-0216-01 | ae30a2c0a093b58d |
| 1999-01-01 | CAN | cement | Cement | metals_minerals | 0 | 108,010 | 1,218 | — | — | — | 0.006 | 88.678 | — | 50 | 1 | 0 | 0 | 1 | — | 2026-06 | 23-10-0216-01 | bdeb117644a71a28 |
| 1999-01-01 | CAN | coal | Coal | energy | 0 | 3,301,852 | 33,741 | — | — | — | 0.184 | 97.859 | — | 50 | 1 | 0 | 0 | 1 | — | 2026-06 | 23-10-0216-01 | 5b84eb306678ffce |
- Current
20260927T133821Z-c1bd6d2819b0 · sha256 c1bd6d2819b0…
24,090 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/statcan_rail_freight_intel/ca_rail_freight_pulse_monthly" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/statcan_rail_freight_intel/ca_rail_freight_pulse_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/statcan_rail_freight_intel/ca_rail_freight_pulse_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 20260927T133821Z-c1bd6d2819b0 and its content hash, so readers get exactly the data you used.
Statistics Canada. (2026). Canadian rail freight pulse intelligence (monthly) [Data set, snapshot 20260927T133821Z-c1bd6d2819b0, sha256 c1bd6d2819b0]. Datazimuts. Retrieved 2026-09-27, from https://datazimuts.com/en/datasets/statcan_rail_freight_intel/ca_rail_freight_pulse_monthly?snapshot=20260927T133821Z-c1bd6d2819b0
@misc{dz_statcan_rail_freight_intel_ca_rail_freig_c1bd6d28,
title = {{Canadian rail freight pulse intelligence (monthly)}},
author = {{Statistics Canada}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/statcan_rail_freight_intel/ca_rail_freight_pulse_monthly?snapshot=20260927T133821Z-c1bd6d2819b0}},
note = {Snapshot 20260927T133821Z-c1bd6d2819b0, sha256 c1bd6d2819b05a954288c42ecfebd2dc5ca428f450303870b21a87582d5f17db; accessed 2026-09-27}
}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=statcan_rail_freight_intel%2Fca_rail_freight_pulse_monthly&lang=en&theme=auto&snapshot=20260927T133821Z-c1bd6d2819b0&x=month&y=is_total&agg=avg" title="Canadian rail freight pulse intelligence (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.