Electricity Canada: building grid resilience¶
At a glance¶
| Publication / project partner | Building Grid Resilience through Interprovincial Interties / Electricity Canada |
| Analysis period | 2026 |
| Question | How adequate is Canada's 2050 electricity system under current versus expanded interprovincial transmission, and how much does extreme weather (drought and heat) erode that adequacy? |
| Linkage | Resource adequacy (COPPER-PRAS), run as COPPER followed by pras-linkage standalone in CEM mode |
| Scenarios | Two COPPER capacity plans crossed with three weather-multiplier sets: six PRAS scenarios |
| Contact | Deven Azevedo, deven@openinsights.ca |
Model versions¶
| Component | Repository | Branch | Commit | Notes |
|---|---|---|---|---|
| COPPER | https://gitlab.com/sesit/copper | building_grid_resilience |
c2aba0b6 + scenarios |
Branched from lmp_testing_clean at the commit the results were generated with (2026-05-19); the only addition is the two scenario folders. |
| pras-linkage | https://gitlab.com/sesit/pras-linkage | building_grid_resilience |
58ff0cf + scenarios |
Branched from dev (2026-07-26); the only addition is the six scenario folders. |
| PRAS (Julia) | https://github.com/NREL/PRAS | main |
||
| CODERS | https://coders.cme-emh.ca/ | API | Demand and VRE year 2021; backbone network for PRAS. |
Scenarios¶
COPPER capacity plans¶
Both scenarios solve the ten-province system for the periods 2025 to 2050 and share every setting except transmission expansion.
| Scenario | Transmission | Scenario input files |
|---|---|---|
EC_trans_current |
Fixed at today's interprovincial capacities (CTE_extant = true, CTE_coef = 0) |
annual_growth.csv, max_capacity_limits.csv, min_capacity_limits.csv |
EC_trans_expanded |
Custom expansion (CTE_custom = true): extant_transmission.csv sets per-corridor capacities and expansion limits, trans_expansion_minimum.csv forces minimum builds from 2040 |
the above plus extant_transmission.csv, trans_expansion_minimum.csv |
Settings that differ from COPPER's template_config.toml at the pinned
commit (both scenarios):
- Demand:
use_growth_as_scale = true, scaling the 2021 reference demand by the provincial growth indices inannual_growth.csv. - Carbon: federal price 143 $/t in 2025 and 170 $/t from 2030; Alberta at
0.765 of the federal price; carbon-credit generation on (
carbon_credits); national emission limits of 100 Mt (2025), 11 Mt (2030) and zero from 2035. - Clean Electricity Regulations on for every province except Alberta
(
flag_cer = true,cer_provinces_excluded = ['Alberta']), with the performance standard and allowable offsets in the config. - Capacity constraints: maximum and minimum capacity by balancing area and
period read from the scenario folder (
max_capacity_aba_pd,min_capacity_aba_pd). - Generator disaggregation on for all ten provinces in 2050, which produces the plant-level output PRAS consumes.
- Investment tax credits: carbon capture 50 % and clean technology 30 % on; clean electricity and transmission credits off. Canada Infrastructure Bank financing subsidies on.
- Coal phased out by 2030 nationally; no new CCS outside Alberta and Saskatchewan.
PRAS scenarios¶
Six scenarios, one per COPPER plan and weather-multiplier set. All assess 2050 with 2050 demand and 2050 weather-year capacity factors, 10,000 Monte Carlo samples, provinces aggregated to one region each, interprovincial lines kept, COPPER's new transmission distributed over existing corridors, and no EFC, ELCC or US intertie.
| PRAS scenario | COPPER plan | weather_multiplier_scenario |
|---|---|---|
EC_trans_current__2025 |
EC_trans_current |
2025 |
EC_trans_current__2025_extreme_draught10 |
EC_trans_current |
2025_extreme_draught10 |
EC_trans_current__2025_extreme_draught10_noHeatwave |
EC_trans_current |
2025_extreme_draught10_noHeatwave |
EC_trans_expanded__2025 |
EC_trans_expanded |
2025 |
EC_trans_expanded__2025_extreme_draught10 |
EC_trans_expanded |
2025_extreme_draught10 |
EC_trans_expanded__2025_extreme_draught10_noHeatwave |
EC_trans_expanded |
2025_extreme_draught10_noHeatwave |
The three multiplier sets live under pras-linkage/configurations/. Each
holds capacity and failure-probability multipliers by generator type and
region and hour (coal, gas, nuclear, oil, run-of-river and reservoir hydro,
hydro storage, solar, wind), a wind fragility curve, and transformer
de-rating, fragility and multiplier tables for transmission. 2025 is the
reference weather year; the two extreme_draught10 sets represent a
one-in-ten drought year, with and without a coincident heatwave.
Assumptions and data¶
- Demand is COPPER's 2050 demand, built from the 2021 CODERS reference
demand and the growth indices in
annual_growth.csv. - Capacity limits in
max_capacity_limits.csvandmin_capacity_limits.csvencode provincial constraints such as no nuclear in British Columbia and minimum gas capacity. - Transmission in the expanded case: corridor capacities, expansion
limits and distances in
extant_transmission.csv; forced minimum builds from 2040 intrans_expansion_minimum.csv. - Weather multipliers were derived with the
weather_data/scripts in pras-linkage from ERA5 temperature and drought indices. - Outage rates by technology are pras-linkage's constants, scaled by the multipliers above.
How to replicate¶
- COPPER. Install COPPER per its README, check out the branch, and set
your CODERS API key in each scenario's
config.toml(the committed files carry the placeholderAPI_KEY). Run both plans:console git checkout building_grid_resilience python COPPER.py -sc EC_trans_current python COPPER.py -sc EC_trans_expandedEach run writes a results folder containing*_output_summary.csvand*_input_summary_IDEA.csv; PRAS needs both. - pras-linkage. Follow the
COPPER-PRAS setup guide for the
Python and Julia environments, check out the branch, and in each of the
six
scenarios/EC_*/config.yamlfiles setcem_pathto the matching COPPER results folder andapi_keyto your CODERS key. Then run each scenario:console git checkout building_grid_resilience python main.py -sc EC_trans_current__2025 -o <results folder>and likewise for the other five. - Read
pras-output/global_metrics.txt(LOLE and EUE) andhourly_outages.csvin each scenario's results folder; the quick-start lists every output.
Outputs¶
Visualisation dashboard coming soon.