Canadian city retail gasoline prices, weekly (NRCan)
Downloads are disabled for this dataset: its license prohibits commercial use. The documentation, schema and sample rows stay available here.
Weekly retail price of regular gasoline across 71 Canadian cities plus the Canada national average, published by Natural Resources Canada (2016 -> present, week-ending Tuesdays, cents per litre). Each city/week carries the pump price with its published decomposition: taxes included in the price, marketing margin and refining margin. The intelligence layer adds week-over-week and year-over-year momentum, the city spread versus the national average, 52-week high/low flags and a documented 0-100 fuel cost-pressure score. Joins other Canadian panels on week_ending + city (or province_code). Note: the most recent week is often partial — NRCan publishes before all margins are final, so refining/market margins can be null for the latest week. Source: Natural Resources Canada. Commercial redistribution requires NRCan's prior written permission (see THIRD_PARTY_LICENSES.md).
- Rows
- 40,311
- Columns
- 20
- Source cadence
- Weekly
- Last refreshed
- Oct 1, 2026
- Theme
- energy
| Column | Type | Description |
|---|---|---|
| week_ending | date | Week-ending Tuesday of the observation week (NRCan publishes the weekly average retail price). Panel join key; gapless 7-day grid per city. (unit: date) |
| fuel | string | Fuel covered by this dataset: regular_gasoline or diesel (one dataset per fuel). |
| city | string | City name as published by NRCan (71 cities), plus 'Canada' for the national average row. Panel join key. |
| province_code | string | Two-letter province/territory code for the city; null for the Canada national-average row. |
| province | string | Province/territory name; null for the Canada national-average row. |
| country | string | Canonical country name (always Canada). |
| country_code | string | ISO alpha-3 country code (always CAN); joins country-keyed datasets. |
| price_cents_l | float | Weekly average retail pump price, taxes included, in cents per litre. (unit: cents/L) |
| taxes_cents_l | float | Tax component included in the pump price (federal excise + provincial + GST/HST), cents per litre. (unit: cents/L) |
| marketing_margin_cents_l | float | NRCan marketing margin (retail markup over the rack/refiner price), cents per litre. Can be negative when wholesale costs move faster than the pump; null for the latest partial week. (unit: cents/L) |
| refining_margin_cents_l | float | NRCan refining margin (rack price over crude cost), cents per litre. Null for the latest partial week until NRCan finalizes it. (unit: cents/L) |
| price_wow_chg | float | Week-over-week change in the pump price, cents per litre (1-week difference). (unit: cents/L) |
| price_yoy_chg | float | Year-over-year change in the pump price, cents per litre (52-week difference). Null for the first 52 weeks per city. (unit: cents/L) |
| price_yoy_pct | float | Year-over-year percent change in the pump price. Null for the first 52 weeks per city. (unit: percent) |
| spread_vs_national_cents_l | float | City pump price minus the Canada national average for the same week, cents per litre. Positive = city pays more than the national average. Null for the Canada row itself. (unit: cents/L) |
| fuel_cost_pressure_score | float | Documented 0-100 fuel cost-pressure score: 100 * (0.6 * clip01(price_yoy_pct / 50) + 0.4 * clip01(price_wow_chg / 10)). A +50% YoY spike saturates the trend term; a +10 cents/L weekly jump saturates the shock term. Null for the first 52 weeks per city. (unit: score 0-100) |
| pressure_tier | string | Fixed-cut tier of fuel_cost_pressure_score: surge (>=75), elevated (>=60), moderate (>=45), soft (>=30), slack (<30). |
| week_52w_high_flag | boolean | True when this week's price is the highest of the trailing 52 weeks (inclusive). |
| week_52w_low_flag | boolean | True when this week's price is the lowest of the trailing 52 weeks (inclusive). |
| row_hash | string | Deterministic 16-hex SHA-256 of fuel|city|week_ending|price — stable across re-ingests of identical data. |
First 10 sample rows — a preview, not the complete dataset.
| week_ending | fuel | city | province_code | province | country | country_code | price_cents_l | taxes_cents_l | marketing_margin_cents_l | refining_margin_cents_l | price_wow_chg | price_yoy_chg | price_yoy_pct | spread_vs_national_cents_l | fuel_cost_pressure_score | pressure_tier | week_52w_high_flag | week_52w_low_flag | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2016-01-05 | regular_gasoline | Abbotsford | BC | British Columbia | Canada | CAN | 107.2 | 36.2 | — | — | — | — | — | 5.9 | — | — | false | false | 3b12c356d14ace5a |
| 2016-01-12 | regular_gasoline | Abbotsford | BC | British Columbia | Canada | CAN | 94.3 | 35.7 | — | — | -12.9 | — | — | -2.5 | — | — | false | false | 89666b6088ebbc08 |
| 2016-01-19 | regular_gasoline | Abbotsford | BC | British Columbia | Canada | CAN | 90.4 | 35.5 | — | — | -3.9 | — | — | -3.3 | — | — | false | false | b16cb51043613576 |
| 2016-01-26 | regular_gasoline | Abbotsford | BC | British Columbia | Canada | CAN | 89.9 | 35.4 | — | — | -0.5 | — | — | -1.4 | — | — | false | false | cec3b0cb34c9e56d |
| 2016-02-02 | regular_gasoline | Abbotsford | BC | British Columbia | Canada | CAN | 96.8 | 35.8 | — | — | 6.9 | — | — | 3 | — | — | false | false | a40c64b33538d3ae |
| 2016-02-09 | regular_gasoline | Abbotsford | BC | British Columbia | Canada | CAN | 88.9 | 35.4 | — | — | -7.9 | — | — | 0.3 | — | — | false | false | 7b930c34ff24d267 |
| 2016-02-16 | regular_gasoline | Abbotsford | BC | British Columbia | Canada | CAN | 88.2 | 35.4 | — | — | -0.7 | — | — | 0 | — | — | false | false | 3c8becbaba619558 |
| 2016-02-23 | regular_gasoline | Abbotsford | BC | British Columbia | Canada | CAN | 91.3 | 35.6 | — | — | 3.1 | — | — | 1.2 | — | — | false | false | 0cc8530388d00b9b |
| 2016-03-01 | regular_gasoline | Abbotsford | BC | British Columbia | Canada | CAN | 95.9 | 35.7 | — | — | 4.6 | — | — | 6.6 | — | — | false | false | b94d0c7c830a9c31 |
| 2016-03-08 | regular_gasoline | Abbotsford | BC | British Columbia | Canada | CAN | 98 | 35.8 | — | — | 2.1 | — | — | 6.5 | — | — | false | false | 43c1c36ac7c0937b |
Profiled Oct 1, 2026 from snapshot 20261001T152216Z-859c124dfbf1
Measured- Completeness
- 97.5%
- Rows
- 40,311
- Columns
- 20
- Columns with gaps
- 10
| Column | Missing | Distinct | Range | Distribution |
|---|---|---|---|---|
| week_endingdate | 0% | 541 | Jan 5, 2016 → Oct 6, 2026 | — |
| fuelvarchar | 0% | 1 | — |
|
| cityvarchar | 0% | 66 | — |
|
| province_codevarchar | 1.4% | 11 | — |
|
| provincevarchar | 1.4% | 12 | — |
|
| countryvarchar | 0% | 1 | — |
|
| country_codevarchar | 0% | 1 | — |
|
| price_cents_ldouble | 0% | 1,492 | 57.9 → 238.7median 132.9 | 805 outside 1st–99th percentile |
| taxes_cents_ldouble | 0% | 635 | 15 → 67.7median 41.8 | 788 outside 1st–99th percentile |
| marketing_margin_cents_ldouble | 4.2% | 521 | -13.8 → 52.6median 9.3 | 747 outside 1st–99th percentile |
| refining_margin_cents_ldouble | 4.4% | 903 | -4.7 → 107.4median 26.8 | 762 outside 1st–99th percentile |
| price_wow_chgdouble | 0.18% | 967 | -38.4 → 29.1median 0 | 817 outside 1st–99th percentile |
| price_yoy_chgdouble | 9.3% | 4,130 | -77.2 → 94median 4.6 | 730 outside 1st–99th percentile |
| price_yoy_pctdouble | 9.3% | 34,683 | -50.31 → 103.24median 3.45 | 732 outside 1st–99th percentile |
| spread_vs_national_cents_ldouble | 1.4% | 1,928 | -41.6 → 68.7median -2.7 | 795 outside 1st–99th percentile |
| fuel_cost_pressure_scoredouble | 9.3% | 987 | 0 → 100median 11.7 | 365 outside 1st–99th percentile |
| pressure_tiervarchar | 9.3% | 5 | — |
|
| week_52w_high_flagboolean | 0% | 2 | — |
|
| week_52w_low_flagboolean | 0% | 2 | — |
|
| row_hashvarchar | 0% | 36,092 | — |
|
- Current
20261001T152216Z-859c124dfbf1 · sha256 859c124dfbf1…
40,311 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/nrcan_city_fuel_intel/ca_city_gasoline_weekly" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/nrcan_city_fuel_intel/ca_city_gasoline_weekly").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/nrcan_city_fuel_intel/ca_city_gasoline_weekly
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 20261001T152216Z-859c124dfbf1 and its content hash, so readers get exactly the data you used.
Canadian city retail fuel prices (NRCan, weekly). (2026). Canadian city retail gasoline prices, weekly (NRCan) [Data set, snapshot 20261001T152216Z-859c124dfbf1, sha256 859c124dfbf1]. Datazimuts. Retrieved 2026-10-02, from https://datazimuts.com/en/datasets/nrcan_city_fuel_intel/ca_city_gasoline_weekly?snapshot=20261001T152216Z-859c124dfbf1
@misc{dz_nrcan_city_fuel_intel_ca_city_gasoline_w_859c124d,
title = {{Canadian city retail gasoline prices, weekly (NRCan)}},
author = {{Canadian city retail fuel prices (NRCan, weekly)}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/nrcan_city_fuel_intel/ca_city_gasoline_weekly?snapshot=20261001T152216Z-859c124dfbf1}},
note = {Snapshot 20261001T152216Z-859c124dfbf1, sha256 859c124dfbf1271318eb33754af0ce1d25c04d210124538478c2d0706cec9aef; accessed 2026-10-02}
}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=nrcan_city_fuel_intel%2Fca_city_gasoline_weekly&lang=en&theme=auto&snapshot=20261001T152216Z-859c124dfbf1&x=week_ending&y=price_cents_l&agg=avg" title="Canadian city retail gasoline prices, weekly (NRCan)" 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.