{
    "meta": {
        "title": "Canadian Heating-Degree-Days (HDD18) by City",
        "description": "Annual heating degree-days below 18 deg C (HDD18) and derived heating-season length for 16 Canadian cities, from the ECCC Canadian Climate Normals 1981-2010.",
        "generated": "2026-06-23T18:43:42+00:00",
        "version": "1.0",
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "license_name": "CC BY 4.0",
        "source": "https://d-central.tech/canada-heating-degree-days/",
        "normals_period": "1981-2010",
        "base_temp_c": 18,
        "units": "degree-days (deg C-days), annual, base 18 deg C",
        "data_source": "Environment & Climate Change Canada (ECCC), Canadian Climate Normals 1981-2010",
        "record_count": 16,
        "provenance": "HDD18 figures are the published ECCC Canadian Climate Normals 1981-2010 annual heating-degree-day totals at integer resolution. Each row carries a confidence flag; \"moderate\" rows have a known station ambiguity (airport vs downtown) or were not confidently matched and should be verified against the official ECCC station normal before engineering use. heating_months is derived from the same normals.",
        "disclaimer": "A reference for sizing heating load, not a substitute for the official ECCC station normal or a design HDD for code compliance. Climate normals are 30-year averages; any single year will differ. Verify the exact station value at climate.weather.gc.ca/climate_normals before any building-code or engineering use."
    },
    "rows": [
        {
            "id": "vancouver-bc",
            "city": "Vancouver",
            "province": "BC",
            "station": "Vancouver Intl A",
            "hdd18": 2926,
            "heating_months": 12,
            "heating_season": "Year-round (peak Oct–Apr)",
            "confidence": "high",
            "notes": "Mildest major Canadian metro; oceanic climate keeps every monthly mean below 18 deg C, so heating demand accrues in small amounts year-round."
        },
        {
            "id": "victoria-bc",
            "city": "Victoria",
            "province": "BC",
            "station": "Victoria Intl A",
            "hdd18": 3040,
            "heating_months": 12,
            "heating_season": "Year-round (peak Oct–Apr)",
            "confidence": "moderate",
            "notes": "Airport (Victoria Intl A) site; the downtown Gonzales Heights station runs materially milder (~2550). Verify which station applies to your location."
        },
        {
            "id": "calgary-ab",
            "city": "Calgary",
            "province": "AB",
            "station": "Calgary Intl A",
            "hdd18": 5108,
            "heating_months": 12,
            "heating_season": "Year-round (cool summers)",
            "confidence": "high",
            "notes": "High-elevation prairie; even July normal mean stays below 18 deg C, so all 12 months carry heating demand. Chinooks cause large day-to-day swings."
        },
        {
            "id": "edmonton-ab",
            "city": "Edmonton",
            "province": "AB",
            "station": "Edmonton Intl A",
            "hdd18": 5589,
            "heating_months": 12,
            "heating_season": "Year-round (cool summers)",
            "confidence": "high",
            "notes": "Airport site south of the city; the city-centre station typically reads a few hundred HDD lower (urban heat island)."
        },
        {
            "id": "saskatoon-sk",
            "city": "Saskatoon",
            "province": "SK",
            "station": "Saskatoon Diefenbaker Intl A",
            "hdd18": 5712,
            "heating_months": 11,
            "heating_season": "Aug–Jun",
            "confidence": "high",
            "notes": "Continental prairie; only July averages at/above 18 deg C."
        },
        {
            "id": "regina-sk",
            "city": "Regina",
            "province": "SK",
            "station": "Regina Intl A",
            "hdd18": 5661,
            "heating_months": 10,
            "heating_season": "Sep–Jun",
            "confidence": "high",
            "notes": "Cold winters, warm short summer; July and August normal means sit at/above 18 deg C."
        },
        {
            "id": "winnipeg-mb",
            "city": "Winnipeg",
            "province": "MB",
            "station": "Winnipeg Richardson Intl A",
            "hdd18": 5670,
            "heating_months": 10,
            "heating_season": "Sep–Jun",
            "confidence": "high",
            "notes": "One of the coldest major Canadian metros; July and August are the only months without average heating demand."
        },
        {
            "id": "toronto-on",
            "city": "Toronto",
            "province": "ON",
            "station": "Toronto Pearson Intl A",
            "hdd18": 4066,
            "heating_months": 9,
            "heating_season": "Sep–May",
            "confidence": "high",
            "notes": "Pearson airport site. The downtown lakeshore station runs warmer (~3520 HDD); Pearson is the standard reference normal."
        },
        {
            "id": "ottawa-on",
            "city": "Ottawa",
            "province": "ON",
            "station": "Ottawa Macdonald-Cartier Intl A",
            "hdd18": 4500,
            "heating_months": 9,
            "heating_season": "Sep–May",
            "confidence": "high",
            "notes": "Hot humid summers, very cold winters; June–August normal means are at/above 18 deg C."
        },
        {
            "id": "montreal-qc",
            "city": "Montreal",
            "province": "QC",
            "station": "Montreal–Trudeau Intl A",
            "hdd18": 4519,
            "heating_months": 9,
            "heating_season": "Sep–May",
            "confidence": "high",
            "notes": "Trudeau airport reference normal; summers warm enough that June–August carry little to no average heating demand."
        },
        {
            "id": "quebec-city-qc",
            "city": "Quebec City",
            "province": "QC",
            "station": "Quebec / Jean Lesage Intl A",
            "hdd18": 5202,
            "heating_months": 10,
            "heating_season": "Sep–Jun",
            "confidence": "high",
            "notes": "Colder and snowier than Montreal; only July and August average at/above 18 deg C."
        },
        {
            "id": "fredericton-nb",
            "city": "Fredericton",
            "province": "NB",
            "station": "Fredericton A",
            "hdd18": 4654,
            "heating_months": 10,
            "heating_season": "Sep–Jun",
            "confidence": "moderate",
            "notes": "Inland Maritime valley; integer value approximate — confirm against the current ECCC station normal."
        },
        {
            "id": "halifax-ns",
            "city": "Halifax",
            "province": "NS",
            "station": "Halifax Stanfield Intl A",
            "hdd18": 4197,
            "heating_months": 10,
            "heating_season": "Sep–Jun",
            "confidence": "moderate",
            "notes": "Airport site inland of the harbour; the coastal/downtown Citadel station runs a few hundred HDD milder. Verify which applies."
        },
        {
            "id": "st-johns-nl",
            "city": "St. John's",
            "province": "NL",
            "station": "St. John's Intl A",
            "hdd18": 4886,
            "heating_months": 12,
            "heating_season": "Year-round (cool foggy summers)",
            "confidence": "moderate",
            "notes": "Cold-ocean climate; summers so cool that every month averages below 18 deg C. Integer value approximate — confirm against ECCC."
        },
        {
            "id": "whitehorse-yt",
            "city": "Whitehorse",
            "province": "YT",
            "station": "Whitehorse A",
            "hdd18": 6488,
            "heating_months": 12,
            "heating_season": "Year-round",
            "confidence": "moderate",
            "notes": "Subarctic; heating demand in every month. Integer value approximate — confirm against the ECCC station normal."
        },
        {
            "id": "yellowknife-nt",
            "city": "Yellowknife",
            "province": "NT",
            "station": "Yellowknife A",
            "hdd18": 8170,
            "heating_months": 12,
            "heating_season": "Year-round",
            "confidence": "high",
            "notes": "Subarctic continental; among the highest HDD of any Canadian city — heating demand every month of the year."
        }
    ]
}