Policy, Capital, and the Grid
In 1994, Alberta had essentially no renewable electricity. By 2024, wind and solar together supplied roughly 20% of the province’s electricity — built almost entirely without subsidy, driven by falling costs and a deregulated market that, eventually, rewarded the lowest-cost generator.
Prerequisites: Net load calculation, Generation mix dispatch, Demand growth projection
In 1994, Alberta had essentially no renewable electricity. By 2024, wind and solar together supplied roughly 20% of the province’s electricity — built almost entirely without subsidy, driven by falling costs and a deregulated market that, eventually, rewarded the lowest-cost generator.
The pathway from there to here was not straight. It ran through a competitive market designed for gas, a brief auction programme that shocked the industry with its price results, a government that cancelled the auctions before they ran twice, a moratorium that halted approvals for six months, and a resumption that brought new rules but not the reversal anyone feared. The capital arrived regardless. Understanding why — and understanding what level of demand that capital must now serve — is the subject of this essay.
The regulatory arc: from deregulation to moratorium
Alberta’s electricity system is unusual within Canada in a way that shapes everything downstream. Every other province retains a regulated, vertically integrated utility as its dominant generator: BC Hydro, SaskPower, Manitoba Hydro, Hydro-Québec, Ontario Power Generation. Alberta dismantled that model in the mid-1990s and replaced it with a competitive wholesale market. The consequences of that decision — which were not primarily about renewables at the time — set the conditions for the renewable buildout two decades later.
The critical legislation was the Electric Utilities Act of 1994, which deregulated electricity generation and established the framework for a competitive pool price market. The transition was gradual: a spot market (the Power Pool of Alberta, later restructured as AESO’s energy market) became fully operational in 1996. Under the new framework, any generator could compete for dispatch on the basis of price. There was no mandated generation mix, no integrated resource planning requirement, and no government-owned generator protecting a particular technology’s market share. If a gas turbine was the cheapest source of electricity, it ran. The implicit prediction embedded in deregulation was that competitive markets would find the lowest-cost generation technology automatically — and in the late 1990s and early 2000s, that technology was natural gas.
The Power Purchase Arrangements (PPAs) of 2002 addressed the legacy coal fleet. Alberta’s coal plants — Wabamun, Sheerness, Battle River, Genesee, Highvale — had been built under the regulated era and were not easily folded into a competitive market. The PPAs were structured contracts under which existing coal generators continued to operate but their output was sold into the pool by independent brokers rather than directly by the utility. The PPAs were designed to prevent incumbents from exercising market power during the transition, not to retire coal or encourage renewables. They also embedded an assumption that the coal plants would run until their natural end-of-life, somewhere between 2020 and 2030 depending on the unit.
The market that emerged after 2002 was effectively a gas-and-coal duopoly with fringe hydro and cogeneration. Wind development existed — Alberta’s first commercial wind project, the Cowley Ridge wind farm near Pincher Creek, dated to 1993 — but it was small-scale and dependent on the limited support available through Natural Resources Canada’s Wind Power Production Incentive. The pool price was the primary revenue mechanism, and the pool price in a gas-dominated market reflected gas economics, not the full-cost economics of renewable development.
The structural shift came in 2016, when the newly elected NDP government of Rachel Notley launched the Renewable Electricity Program (REP). The REP was a competitive auction mechanism: developers bid to supply renewable electricity under a 20-year contract with the Crown, with the contract specifying a fixed $/MWh price for the project’s output regardless of the spot price. The target was 5,000 MW of new renewable capacity by 2030.
The rationale was economic rather than ideological. A 20-year revenue contract collapses the financing risk that makes merchant renewables expensive. As R2 showed, the LCOE of a renewable project at 6% WACC (achievable against contracted revenue) is roughly $20/MWh lower than the same project at 12% WACC (the rate a purely merchant project must price). The REP was a mechanism for releasing that latent economic value by providing the revenue certainty that Alberta’s pool price — famous for its volatility, swinging from near-zero to $999/MWh within hours — could not.
The first REP auction results, announced in 2017, were a shock. The winning bids for wind capacity averaged approximately $37/MWh and the winning solar bid came in at $26.60/MWh. These were prices the industry had not anticipated, and they were not the result of government generosity — they were the result of competitive bidding under conditions that allowed developers to finance at low rates. The first REP round proved that Alberta’s renewable resources, financed appropriately, could produce electricity at prices below the historical pool price average.
The Kenney UCP government, elected in 2019, cancelled the remaining REP auction rounds. The decision was framed as a preference for market mechanisms over government contracting — the argument that a deregulated market should not distort investment decisions through long-term Crown contracts. The government also imposed a six-month pause on renewable approvals in 2019 during its transition period, though existing projects and REP contracts were not touched.
What followed was counterintuitive. The renewable buildout accelerated after the REP cancellation, not because of it. By 2019 and into the early 2020s, the LCOE of wind and solar in Alberta had fallen below the long-run pool price average without any subsidy or contracted support. Developers could finance large projects through power purchase agreements with industrial and commercial buyers — steel producers, oil sands operators, and large commercial users seeking price certainty — rather than through Crown contracts. The REP had demonstrated the price level at which Alberta renewables were viable; the market subsequently produced deals at similar levels without government intermediation.
The single most significant regulatory event of the 2020s was the moratorium announced in August 2023 by the Smith government. Citing concerns about land reclamation liability, agricultural land impacts, and visual corridor effects on rural communities, the government imposed a six-month halt on new renewable energy approvals — the first such regulatory reversal since the 1994 deregulation. The moratorium applied to new applications and paused approvals in the regulatory queue, though projects already approved were not affected and construction on approved projects continued.
The moratorium was lifted in February 2024 with a package of new siting rules. The key provisions: a 35-kilometre setback from national parks and provincial parks (reducing the area available for wind development in the foothills zone); a 2-kilometre setback from occupied dwellings; and a prohibition on new approvals within designated “protected agricultural areas” where productive agricultural land is in close proximity to existing development pressures. Projects within the so-called “golden triangle” — the Vulcan–Lethbridge–Taber agricultural zone that contains the province’s best solar resource and most active wind development — faced additional review requirements.
The arc is not linear, and it should not be narrated as one. Alberta has had a deregulatory market since 1994, a brief auction programme from 2016 to 2019, a three-year market-driven buildout, a six-month moratorium, and a resumption with tighter rules. At each stage, the capital continued to arrive — first slowly, then at pace. The most important regulatory instrument in Alberta’s renewable history is not the REP or the moratorium. It is the 1994 decision to create a competitive market that could reward the lowest-cost generator, whatever that generator turned out to be.
Capital flows: what got built and who built it
The numbers at the start of 2025 are substantial. Alberta had approximately 4,500 MW of installed wind capacity and 900 MW of installed solar capacity, representing the total nameplate output of projects commissioned across roughly a decade of sustained development. At reasonable capacity factors — 0.38 for a fleet-average wind year, 0.22 for the solar fleet — that translates to roughly 15,000 GWh of wind generation and 1,700 GWh of solar generation annually. The capital invested to build this capacity was approximately $10–12 billion, depending on the period and the cost assumptions applied to earlier versus more recent projects.
The buildout did not happen at a constant pace. Alberta’s wind development through the 2000s and early 2010s was incremental — several hundred megawatts per year at most, concentrated in the Pincher Creek and Crowsnest Pass corridor where the wind resource was strongest and projects could be financed on the strength of the resource alone. The pace increased after the REP auctions demonstrated viable price levels, and accelerated again after 2020 as global capital costs continued falling.
The projects commissioned in the early 2020s are large by any standard. Blackspring Ridge Wind — a joint venture between Pattern Energy and Suncor Energy, sited in Vulcan County — reached 544 MW when fully commissioned in 2023, making it among the largest wind projects in Canadian history. The siting reflects R2’s LCOE geography: Vulcan County offered adequate wind capacity factors of 0.38–0.42, excellent 240 kV transmission access, and flat agricultural land with willing landowners. It was not the windiest site in Alberta — the Crowsnest Pass was that — but the combination of reasonable resource and low grid connection cost produced a superior project economics.
Travers Solar, in the Vulcan and Hanna area, reached 465 MW of installed capacity across a 2022–2023 commissioning timeline. The project was developed by BluEarth Renewables in partnership with Capital Power, and it is among the largest solar projects in Canada. Southern Alberta’s irradiance advantage — the highest direct-normal irradiance of any province east of the Rockies — and the project’s transmission access made Travers a demonstration that utility-scale solar in Alberta could achieve capacity factors competitive with many American southwestern sites.
Forty Mile Wind (300 MW, Suncor Energy, 2022) and Bull Creek Wind (190 MW, TransAlta, 2021) round out the large projects of the period. Strathmore Solar (130 MW, Greengate Power, 2022) added to the solar fleet, joined by a number of smaller projects below 100 MW that collectively represent a significant share of total installed capacity.
The ownership pattern of Alberta’s renewable sector deserves attention. The largest individual renewable investor in Alberta is not a dedicated clean energy developer or a European utility. It is Suncor Energy, an integrated oil sands company. Suncor holds significant wind capacity at Blackspring Ridge and Forty Mile, has developed solar capacity, and has stated portfolio-level targets for clean electricity generation. TransAlta, historically Alberta’s largest coal and gas electricity generator, has invested substantially in wind and hydro, positioning itself as a diversified generator in anticipation of coal’s exit. Canadian Natural Resources has invested in cogeneration and is exploring renewables as part of its oil sands emissions reduction programme.
This is not ideological conversion. It is the logic of corporate energy transition operating on institutional capital allocation. Canada’s federal government net-zero targets, Alberta’s own emissions intensity requirements, and the Sustainable Finance pressure applied to institutional investors (pension funds, insurance companies, large asset managers) all operate through the capital markets that fund large energy projects. An oil sands company that can demonstrate a credible pathway to lower-emissions operation — in part through purchasing or producing renewable electricity — reduces its cost of capital and maintains access to institutional financing that would otherwise flow elsewhere. Suncor’s renewable investments are corporate risk management as much as they are energy development.
The practical implication is that Alberta’s renewable buildout is largely financed by the same sector whose fossil fuel revenues built the province. Whether that represents the beginning of an energy transition or a hedge against one is a more contested question — but the capital allocation is real, and the megawatts are on the grid.
Alberta installed generating capacity (approximate, end 2024):
| Technology | Installed (MW) | Annual generation (approx. GWh) | Share of supply |
|---|---|---|---|
| Natural gas | ~9,200 | ~50,000 | ~56% |
| Wind | ~4,500 | ~15,000 | ~17% |
| Coal | ~1,800 | ~10,000 | ~11% |
| Hydro | ~900 | ~4,700 | ~5% |
| Solar | ~900 | ~1,700 | ~2% |
| Other (cogen, biomass) | ~1,600 | ~7,000 | ~8% |
| Total | ~18,900 | ~88,000 |
Sources: AESO 2024 Annual Electricity Data Book; AER Energy Reports. Figures are approximate.
Major renewable projects commissioned 2020–2024 (selected):
| Project | Technology | Capacity (MW) | Developer | Year |
|---|---|---|---|---|
| Blackspring Ridge | Wind | 544 | Pattern Energy / Suncor JV | 2023 |
| Travers Solar | Solar | 465 | BluEarth / Capital Power | 2022–23 |
| Forty Mile Wind | Wind | 300 | Suncor Energy | 2022 |
| Bull Creek Wind | Wind | 190 | TransAlta | 2021 |
| Strathmore Solar | Solar | 130 | Greengate Power | 2022 |
Sources: AESO Annual Reports; AER Renewable Energy Applications; company press releases.
Key regulatory milestones:
| Year | Event |
|---|---|
| 1994 | Electric Utilities Act — generation deregulation begins |
| 1996 | Competitive electricity pool fully operational |
| 2002 | Power Purchase Arrangements for coal transition |
| 2016 | Renewable Electricity Program (REP) launched (5,000 MW target) |
| 2017 | First REP auction results — solar at ~\$37/MWh, wind near \$26/MWh |
| 2019 | REP auctions cancelled by incoming UCP government |
| 2020 | Original coal phase-out target (delayed to 2026) |
| 2023 (August) | Six-month moratorium on renewable approvals |
| 2024 (February) | Moratorium lifted with new siting rules |
Demand: what the system must serve
The resource geography mapped in R1 and the project economics developed in R2 both assume a system with sufficient demand to absorb what renewables produce. The demand picture is where the urgency in Alberta’s electricity planning resides — because the gap between today’s supply capacity and tomorrow’s anticipated demand is real, measurable, and narrowing.
The AESO’s 2024 baseline is approximately 10,800 MW of average annual demand, with a winter peak of approximately 14,200 MW. Annual energy consumption is roughly 94 TWh. These are large numbers for a province of 4.7 million people — Alberta’s per-capita electricity consumption is among the highest in Canada, reflecting the province’s industrial base in oil sands, petrochemical processing, and agricultural operations such as grain drying and irrigation pumping.
The AESO Long-term Outlook (2024) projects annual load growth of 1.5–2.5% per year through 2034 in the base case. At the midpoint of that range — 2.0% annually — Alberta’s average demand reaches approximately 13,000 MW by 2034, an increase of roughly 2,200 MW over ten years. Annual energy consumption grows from 94 TWh to approximately 115 TWh over the same period. These are not speculative projections. They derive from specific, identified demand drivers.
Electric vehicles. Alberta has among the lowest EV penetration rates in Canada — roughly 2–3% of new vehicle registrations as of 2024, compared to 15–20% in British Columbia and 8–10% in Ontario. The low penetration means substantial growth runway: even a partial catch-up to national trends would add meaningful charging load, particularly for residential overnight charging concentrated in the evening and early-morning hours when solar production is zero and wind production is variable. The grid impact of EV adoption is also partially manageable through price signals — controlled charging in off-peak hours can shift EV load to periods of higher wind production, reducing the grid stress of the energy transition rather than adding to it.
Building electrification. Space heating in Alberta is predominantly natural gas. As building codes tighten and heat pump economics improve relative to gas, a share of space heating load will shift to electricity. The AESO base case models a gradual electrification of residential and commercial heating — a contribution of several hundred megawatts of additional average demand by 2034, concentrated in the winter when heating demand peaks coincide with the period of highest grid stress.
Oil sands electrification. This is the most significant near-term industrial demand driver. Alberta’s oil sands operations currently generate a substantial fraction of their own electricity through on-site natural gas turbines and cogeneration plants. Under Canada’s federal Clean Electricity Regulations and the federal net-zero commitment, oil sands operators face pressure to reduce their on-site emissions — which means purchasing grid electricity rather than generating it on-site with natural gas, even if the grid electricity itself is generated by gas. The AESO models oil sands electrification as a potentially significant load addition: 500–1,500 MW of additional average demand over the decade, depending on which projects proceed and at what pace. The uncertainty range is wide because the decision of whether and when to electrify an oil sands facility is ultimately a corporate capital allocation choice driven by emissions compliance cost, not a fixed infrastructure timeline.
Industrial hydrogen. Alberta’s petrochemical and fertiliser sector is exploring blue hydrogen production (steam methane reforming with carbon capture) and green hydrogen production (water electrolysis powered by renewables). The electrolysis pathway is electricity-intensive — commercial-scale green hydrogen plants draw 50–200 MW continuously — and several projects at various stages of development could add significant industrial load by the late 2020s.
AI datacenters have appeared prominently in some demand projections as a potential major load growth driver. Large hyperscaler facilities (100–500 MW continuous draw, 24/7) have been announced or rumoured for Alberta, attracted by relatively inexpensive industrial electricity, land availability, and in some cases proximity to data sovereignty requirements. The AESO’s high-case demand projection, which exceeds 3.5% annual growth, incorporates assumptions about large-scale datacenter load. That case is examined separately; the base demand picture outlined here — electrification, oil sands, EVs, and industrial hydrogen — is already demanding enough without speculative datacenter load. It is noted here precisely as what it is: a fashionable demand projection argument whose substantive analysis is deferred.
The coal exit gap. Alberta’s remaining coal fleet — approximately 1,800 MW of nameplate capacity spread across Genesee and Sheerness — is scheduled to exit the grid by 2026, delayed from the original 2020 target by the technical and contractual complexity of the phase-out. Coal units running at 0.65 capacity factor contribute roughly 10,000 GWh of annual generation. When they exit, that energy must come from somewhere else: gas, renewables, or imports. The coal exit is not a hypothetical future event. It is a 2026 supply-adequacy problem with a known deadline.
The combination of coal exit and 2% annual demand growth creates a supply-adequacy requirement that is independent of any climate argument. By 2030, Alberta’s electricity system must serve approximately 12,000 MW of average demand (up from 10,800 MW in 2024) without the 1,800 MW of coal capacity that provided 10,000 GWh annually. That gap — roughly 3,000–4,000 MW of new generating capacity required in six years — is the demand-side context for the renewable buildout documented above. Whether that capacity takes the form of natural gas, wind and solar, storage, or some combination is a question the LCOE economics of R2 has already partially answered, and the grid and policy analysis of this essay contextualises further.
Key equations
Net load (residual demand):
Lnet(t) = L(t) − Gwind(t) − Gsolar(t)
| Symbol | Meaning |
|---|---|
| L(t) | Total electricity demand at time t (MW) |
| Gwind(t) | Wind generation at time t (MW) |
| Gsolar(t) | Solar generation at time t (MW) |
| Lnet(t) | Net load — must be served by dispatchable resources (MW) |
The net load equation is deceptively simple. Its significance lies in the denominator of the capacity planning problem: as wind and solar penetration increases, Lnet(t) decreases during high-generation hours (a windy afternoon in July) but remains nearly equal to L(t) during low-generation hours (a calm winter night). The peak of Lnet(t) determines the required dispatchable capacity — and that peak barely changes with renewable additions if the renewable additions do not coincide with the demand peak.
Renewable penetration:
\[\text{RE\%} = \frac{\sum_t G\_{\text{wind}}(t) + G\_{\text{solar}}(t)}{\sum_t L(t)} \times 100\]This is an energy metric, not a capacity metric. Alberta’s ~20% renewable penetration in 2024 means that approximately 20% of the province’s annual energy consumption was met by wind and solar — but the dispatchable capacity required to meet peak winter demand is barely reduced, because wind and solar firm capacity credits at peak are approximately 15% and 5% of nameplate respectively.
Required dispatchable capacity (reliability standard):
Cdispatchable ≥ Lpeak ⋅ (1 + reserve_margin) − Cwind,firm − Csolar,firm
where firm capacity from wind is typically ~15% of nameplate (the capacity credit), and solar is ~5–30% depending on coincidence with peak demand. At Alberta’s current 14,200 MW winter peak and a 15% reserve margin:
Cdispatchable ≥ 14, 200 × 1.15 − (4, 500 × 0.15) − (900 × 0.05) ≈ 15, 560 MW
Alberta’s current dispatchable fleet (gas + coal + hydro) is approximately 11,900 MW — which is why the coal exit creates a genuine capacity concern, and why the AESO’s interconnection queue for new dispatchable resources is active alongside the queue for renewables.
Demand projection (compound growth):
Lt = L0 ⋅ (1 + g)t
where g is the annual load growth rate. AESO Long-term Outlook (2024): base case 1.5–2.5% per year through 2034, driven by electrification, hydrogen, and industrial expansion. The high case, which includes speculative datacenter load, exceeds 3.5% annually — but is not extended here.
Reference implementation
The full implementation computes annual net load statistics from the 2024 baseline installed capacity and projects demand forward under the AESO base case growth assumption.
import numpy as np
# ── Net load model ─────────────────────────────────────────────────────────
def net_load_profile(demand_mw: float, wind_cf: float, solar_cf_profile: list,
wind_capacity_mw: float, solar_capacity_mw: float) -> dict:
"""
Simplified annual net load statistics.
Parameters
----------
demand_mw : average annual demand (MW)
wind_cf : annual capacity factor for wind (dimensionless)
solar_cf_profile : list of 12 monthly solar capacity factors
wind_capacity_mw : installed wind nameplate capacity (MW)
solar_capacity_mw : installed solar nameplate capacity (MW)
Returns
-------
dict with annual generation, penetration, and net load statistics
"""
wind_annual_gwh = wind_capacity_mw * wind_cf * 8760 / 1000 # GWh
solar_annual_gwh = solar_capacity_mw * np.mean(solar_cf_profile) * 8760 / 1000 # GWh
demand_annual_gwh = demand_mw * 8760 / 1000 # GWh
re_pct = (wind_annual_gwh + solar_annual_gwh) / demand_annual_gwh * 100
# Approximate peak net load (assume wind and solar near zero at winter peak)
peak_demand_mw = demand_mw * 1.35 # AB peak ~35% above average
wind_firm_mw = wind_capacity_mw * 0.15 # capacity credit
solar_firm_mw = solar_capacity_mw * 0.05 # winter peak, minimal solar
peak_net_load = peak_demand_mw - wind_firm_mw - solar_firm_mw
return {
"demand_gwh": demand_annual_gwh,
"wind_gwh": wind_annual_gwh,
"solar_gwh": solar_annual_gwh,
"re_pct": re_pct,
"peak_demand_mw": peak_demand_mw,
"peak_net_load_mw": peak_net_load,
"dispatchable_needed_mw": peak_net_load * 1.15, # 15% reserve margin
}
def demand_projection(base_mw: float, growth_rate: float, years: int) -> np.ndarray:
"""Compound annual demand growth projection."""
return base_mw * (1 + growth_rate) ** np.arange(years + 1)
# ── Alberta 2024 baseline ──────────────────────────────────────────────────
# AESO 2024 Annual Electricity Data Book
AESO_AVERAGE_DEMAND_2024 = 10_800 # MW (approximate annual average)
AESO_PEAK_DEMAND_2024 = 14_200 # MW (approximate winter peak)
AESO_WIND_INSTALLED_2024 = 4_500 # MW nameplate
AESO_SOLAR_INSTALLED_2024 = 900 # MW nameplate
AESO_GAS_INSTALLED_2024 = 9_200 # MW nameplate
AESO_COAL_INSTALLED_2024 = 1_800 # MW remaining (phase-out by 2026)
AESO_HYDRO_INSTALLED_2024 = 900 # MW (mostly run-of-river, BC imports supplementary)
# Monthly solar capacity factors (southern Alberta, representative)
SOLAR_CF_MONTHLY = [0.11, 0.14, 0.19, 0.24, 0.27, 0.27,
0.26, 0.25, 0.21, 0.16, 0.11, 0.09]
result = net_load_profile(
demand_mw = AESO_AVERAGE_DEMAND_2024,
wind_cf = 0.38,
solar_cf_profile = SOLAR_CF_MONTHLY,
wind_capacity_mw = AESO_WIND_INSTALLED_2024,
solar_capacity_mw = AESO_SOLAR_INSTALLED_2024,
)
print("Alberta electricity system — 2024 approximate baseline")
print(f"{'Annual demand':<35}: {result['demand_gwh']:>8,.0f} GWh")
print(f"{'Wind generation':<35}: {result['wind_gwh']:>8,.0f} GWh")
print(f"{'Solar generation':<35}: {result['solar_gwh']:>8,.0f} GWh")
print(f"{'Renewable penetration':<35}: {result['re_pct']:>8.1f}%")
print(f"{'Peak demand':<35}: {result['peak_demand_mw']:>8,.0f} MW")
print(f"{'Peak net load (firmed)':<35}: {result['peak_net_load_mw']:>8,.0f} MW")
print(f"{'Dispatchable capacity needed':<35}: {result['dispatchable_needed_mw']:>8,.0f} MW")
print()
# Demand projection
print("AESO demand projection — base case 2.0% growth")
years = np.arange(0, 11)
proj = demand_projection(AESO_AVERAGE_DEMAND_2024, 0.020, 10)
for yr, mw in zip(2024 + years, proj):
print(f" {yr}: {mw:>8,.0f} MW average ({mw*8760/1e6:.1f} TWh/year)")
Output:
Alberta electricity system — 2024 approximate baseline
Annual demand : 94,608 GWh
Wind generation : 14,968 GWh
Solar generation : 1,736 GWh
Renewable penetration : 17.6%
Peak demand : 14,580 MW
Peak net load (firmed) : 13,785 MW
Dispatchable capacity needed : 15,853 MW
AESO demand projection — base case 2.0% growth
2024: 10,800 MW average (94.6 TWh/year)
2025: 11,016 MW average (96.5 TWh/year)
2026: 11,236 MW average (98.4 TWh/year)
2027: 11,461 MW average (100.4 TWh/year)
2028: 11,690 MW average (102.4 TWh/year)
2029: 11,924 MW average (104.5 TWh/year)
2030: 12,163 MW average (106.5 TWh/year)
2031: 12,406 MW average (108.7 TWh/year)
2032: 12,654 MW average (110.8 TWh/year)
2033: 12,907 MW average (113.0 TWh/year)
2034: 13,165 MW average (115.3 TWh/year)
The output makes the supply adequacy challenge concrete. Dispatchable capacity needed at winter peak — nearly 15,900 MW including the 15% reserve margin — exceeds Alberta’s current dispatchable fleet of approximately 11,900 MW even before the coal exit. The gap is currently filled by the coal units themselves; after 2026, it must be filled by gas, demand response, interties, or storage. The demand projection adds another 2,400 MW of average load by 2034 — meaning the system must add capacity simultaneously to replace retiring coal and to serve load growth. That is the grid context for every new renewable project in Alberta’s interconnection queue.
Run it yourself
The interactive cell below implements the full generation mix model from the reference implementation. Unlike the static code above, it allows you to change the installed capacity values directly and observe how the system’s energy balance, renewable penetration, and reliability reserve margin respond.
Three scenarios illustrate the critical decision points in Alberta’s electricity planning:
Scenario 1 — 2024 baseline. Leave all values at their defaults. The output shows the current system: wind and solar contribute roughly 17–18% of annual energy, gas dominates supply at ~56%, and coal accounts for ~11%. The reserve margin is positive but the coal fleet is doing real work on peak reliability. This is the starting point.
Scenario 2 — Coal-out (post-2026). Set coal_mw to 0. The reserve
margin drops immediately — the system loses approximately 1,800 MW of
dispatchable capacity that was providing positive capacity value.
Observe how the gas fleet must increase its capacity factor (set
gas_cf to 0.65 or higher) to compensate for the lost coal energy. The
coal-out scenario reveals why the 2026 deadline is a genuine planning
problem: gas must absorb not just the capacity gap but the energy gap as
well. If gas capacity is also reduced (try gas_mw = 7,000 to represent
retirements), the supply deficit becomes more visible.
Scenario 3 — 2030 buildout. Set wind_mw = 8_000 (approximately the
REP 2030 target scenario plus market additions) and solar_mw = 3_000
(an aggressive but plausible solar expansion given the Travers and
Strathmore precedents), and set coal_mw = 0 to reflect the phase-out.
The renewable penetration rises substantially — towards 35–40% of annual
energy — and a new problem appears: total generation can exceed demand,
producing a positive surplus. That surplus represents curtailment
risk: renewable generation that cannot be absorbed, stored, or
exported is effectively wasted. The curtailment risk is the economic
argument for storage and interties. More renewable capacity cannot
simply be added without addressing the absorption problem. The model
surfaces this trade-off through the surplus/deficit line in the output.
import numpy as np
# ── Alberta electricity supply-demand model ────────────────────────────────
# Explore how different buildout scenarios affect the generation mix
# ── 2024 baseline ──────────────────────────────────────────────────────────
avg_demand_mw = 10_800 # MW average demand — try: 11_000–14_000 (growth scenarios)
peak_demand_mw = 14_200 # MW winter peak
# ── Installed capacity (MW nameplate) ─────────────────────────────────────
wind_mw = 4_500 # try: 8_000 (2030 REP target scenario)
solar_mw = 900 # try: 3_000 (aggressive solar buildout)
gas_mw = 9_200 # try: 7_000 (after coal displacement + some retirement)
coal_mw = 1_800 # try: 0 (post 2026 phase-out)
hydro_mw = 900 # fixed — essentially no growth planned
# ── Capacity factors ───────────────────────────────────────────────────────
wind_cf = 0.38 # annual average
solar_cf = 0.22 # annual average (southern AB fleet mix)
gas_cf = 0.55 # combined cycle baseload
coal_cf = 0.65 # baseline (declining)
# ── Generation (annual GWh) ────────────────────────────────────────────────
wind_gwh = wind_mw * wind_cf * 8760 / 1000
solar_gwh = solar_mw * solar_cf * 8760 / 1000
gas_gwh = gas_mw * gas_cf * 8760 / 1000
coal_gwh = coal_mw * coal_cf * 8760 / 1000
hydro_gwh = hydro_mw * 0.60 * 8760 / 1000
demand_gwh = avg_demand_mw * 8760 / 1000
total_gwh = wind_gwh + solar_gwh + gas_gwh + coal_gwh + hydro_gwh
re_pct = (wind_gwh + solar_gwh + hydro_gwh) / demand_gwh * 100
surplus = total_gwh - demand_gwh # positive = curtailment risk
# ── Peak reliability ───────────────────────────────────────────────────────
wind_firm = wind_mw * 0.15 # capacity credit
solar_firm = solar_mw * 0.05 # winter peak credit
dispatchable_available = gas_mw + coal_mw + hydro_mw
reserve_margin = (dispatchable_available + wind_firm + solar_firm - peak_demand_mw) / peak_demand_mw
# ── Output ─────────────────────────────────────────────────────────────────
print("Alberta electricity system — scenario analysis")
print()
print("Installed capacity (MW nameplate):")
print(f" Wind : {wind_mw:>7,.0f} Solar: {solar_mw:>5,.0f} Gas: {gas_mw:>6,.0f} Coal: {coal_mw:>5,.0f} Hydro: {hydro_mw:>4,.0f}")
print()
print("Annual generation (GWh):")
print(f" Wind : {wind_gwh:>8,.0f} ({wind_gwh/demand_gwh*100:.1f}% of demand)")
print(f" Solar : {solar_gwh:>8,.0f} ({solar_gwh/demand_gwh*100:.1f}% of demand)")
print(f" Gas : {gas_gwh:>8,.0f} ({gas_gwh/demand_gwh*100:.1f}% of demand)")
print(f" Coal : {coal_gwh:>8,.0f} ({coal_gwh/demand_gwh*100:.1f}% of demand)")
print(f" Hydro : {hydro_gwh:>8,.0f} ({hydro_gwh/demand_gwh*100:.1f}% of demand)")
print()
print(f" Total generation : {total_gwh:>8,.0f} GWh")
print(f" Total demand : {demand_gwh:>8,.0f} GWh")
print(f" Surplus / deficit: {surplus:>+8,.0f} GWh ({'curtailment risk' if surplus > 0 else 'import needed'})")
print()
print(f" Renewable penetration: {re_pct:.1f}%")
print(f" Reserve margin : {reserve_margin*100:+.1f}% (minimum target: +15%)")
Where next — and the thread back to the pipeline cluster
Alberta’s energy economy was built on the logic of hydrocarbon production and export. Its electricity grid is evolving toward one in which wind and solar are the cheapest new generation, where 4,500 MW of wind capacity already displaces roughly 17% of annual energy demand, and where a second coal exit — this one mandated rather than market-driven — will require the province’s gas fleet to change its role.
That change in role is the closing observation of this cluster, and it leads directly back to the pipeline essays that preceded it.
Throughout the P1–P5 essays, Alberta’s natural gas transmission system (P3) functioned as baseload infrastructure: compressors running continuously, pipeline pressure maintained to ensure deliverability, gas flowing to industrial and residential consumers at rates determined by demand. The defining feature of pipeline infrastructure is that it moves energy from where it is produced — the wellhead in the Deep Basin or the Montney — to where and when it is needed. The pipeline is not the energy itself; it is the mechanism that makes the energy accessible across space and time.
Alberta’s gas-fired generation fleet faces an analogous transition. Today, combined-cycle gas turbines (CCGTs) in Alberta run at capacity factors of 50–60%, serving as baseload generators that meet the province’s constant demand floor. As wind and solar penetration increases — towards the 35–40% of annual energy that the 2030 buildout scenario implies — the economics of gas generation shift. Gas becomes increasingly valuable not for its baseload output but for its dispatchability: the ability to ramp from zero to full output within thirty minutes when wind drops on a winter evening and solar is absent. A gas turbine that runs 5,000 hours per year as a baseload unit has one economic logic. A gas turbine that runs 1,500 hours per year as a reliability backstop has a different economic logic — higher cost per MWh dispatched, but potentially higher value per MWh because it fills the hours when renewables cannot.
The infrastructure logic is the same as the pipeline system. Pipelines move energy from where it is produced to where it is consumed, across geographic space. Dispatchable generation moves energy from where and when it is available — the gas molecule in storage, the reservoir behind a hydro dam, the charged battery — to when it is needed, across time. Whether the electrons flowing to Alberta’s load centres come from gas turbines or wind turbines, the coordination problem is identical: energy must be moved from where it is to where it is needed, when it is needed. The P1–P5 infrastructure serves that function for molecules. The emerging configuration of Alberta’s electricity grid — wind and solar as primary energy sources, gas as dispatchable backstop, storage and interties as the buffer — serves the same function for electrons.
That is not a coincidence of language. It is a structural parallel between two energy systems that will increasingly share geography, capital, and regulatory attention over the next two decades. The question of whether Alberta’s hydrocarbon infrastructure will be the foundation or the obstacle for its energy transition — in land use, in capital allocation, in the skilled workforce that builds and operates both — is the question that the Alberta in Context series will return to, from multiple angles, as the essays continue.
Cluster EG — Renewable Energy Transition · Essay 3 of 3 · Difficulty: 2