Developing an EPS Policy for Coal-Fired Plants

An Electric Performance Standard (EPS) refers to regulatory policies that impose constraints or targets on electricity generation, such as limits on greenhouse gas (GHG) emissions, efficiency targets, or requirements for renewable energy shares. This page summarizes how to build a policy that sets regulations on coal generation.

Two sample files, Electric_Fed_Coal_Retire.jl and Electric_Fed_Coal_Amendment.jl, implement a policy simulating Canada's national electric performance standard for coal-fired power plants. This policy enforces early retirements and restricts new builds to comply with emissions intensity standards (420 tonnes/GWh), assuming most coal units cannot meet the requirement without shutdown. The files are included in the main policy suite (Policy.jl) and execute during model initialization, modifying input databases before the core energy model runs.

Variables Changed

  1. Electric_Fed_Coal_Amendment.jl (2018 federal amendment requiring shutdown by 2030):
    • UnRetire[unit, year]: Retirement date array for each unit and year.
      • For Canadian coal-fired units (excluding self-generation cogeneration), if the original retirement date in 2030 is after 2030, it is forced to 2030 across all years.
      • This affects units where UnNation == "CN", UnCogen == 0, and UnPlant == "Coal".
  2. Electric_Fed_Coal_Retire.jl (2012 federal regulation requiring shutdown at end-of-life):
    • xGCPot[plant, node, area, year]: Exogenous maximum potential generation capacity (MW) for new builds.
      • Sets xGCPot["Coal",node,area,year] = 0 for all areas, nodes, and years, prohibiting new coal plant construction.
      • Sets xGCPot["CoalCCS",node,"AB",year] = 1000000 for Alberta, allowing unlimited new coal with carbon capture and storage (CCS) builds there.
    • Note: The file contains commented-out code for specific unit retirements (e.g., Battle River, Genesee plants) and fuel mix adjustments (e.g., for Coleson Cove), which are not currently active.

These changes are written back to the database (EGInput/UnRetire and EGInput/xGCPot) and persist for the model run.

Cascading Impact Through the Model Engine Files

The policy modifications propagate through the model's engine components, which handle capacity planning, dispatch, fuel usage, and emissions. Policies are applied early in the run process (via EnergyModel.jl including Policy.jl), altering inputs before optimization. The impacts cascade as follows:

  • Capacity Expansion (ECapacityExpansion.jl):
    • xGCPot directly sets GCPot (generation potential), limiting new coal capacity to zero (except CoalCCS in AB). This reduces total potential generation capacity, forcing the model to rely on existing non-coal units or alternative technologies (e.g., renewables, gas, nuclear).
    • Early retirements via UnRetire affect unit availability checks (e.g., UnOnLine <= current_year && UnRetire >= current_year), preventing coal units from being considered for expansion or operation post-2030.
    • Result: Shifts capacity mix toward cleaner sources, potentially increasing capital costs for replacements but reducing long-term emissions.
  • Dispatch and Generation (EDispatchCg.jl):
    • Units with UnRetire <= current_time are excluded from dispatch (units = Select(UnRetire, >(CTime))).
    • Coal retirements reduce available baseload capacity, increasing reliance on peaking units or imports, which may elevate operational costs and grid instability risks.
  • Fuel Usage (EFuelUsage.jl):
    • Similar unit selection logic excludes retired coal units (UnitsNotRetired = Select(UnRetire, >(CTime)) and if (UnOnLine[unit] <= CTime) && (UnRetire[unit] > CTime)).
    • Reduces coal fuel consumption, indirectly affecting fuel prices and supply chains.
  • Broader Model Effects:
    • Emissions: Forced coal shutdowns lower CO2 and other pollutants, aligning with the 420 t/GWh standard. However, if replaced by higher-emitting alternatives (e.g., gas without CCS), net reductions may vary.
    • Costs: Early retirements incur stranded asset costs; new builds shift to more expensive renewables or CCS, increasing electricity prices and total system costs.
    • Energy Security and Reliability: Reduced coal capacity (a reliable baseload source) may strain grids, especially in coal-heavy provinces like Alberta and Saskatchewan, prompting investments in storage or transmission.
    • Inter-Sectoral Impacts: Changes in electricity generation affect industrial, residential, and commercial demands (e.g., via higher prices), potentially influencing market shares for electric appliances or vehicles.
    • Outputs: Propagates to reporting files (e.g., in Output/), showing altered generation mixes, emissions profiles, and economic metrics compared to baseline scenarios.

Overall, the policy simulates a transition away from coal, promoting decarbonization but with trade-offs in cost and reliability. The model quantifies these via optimization, ensuring supply meets demand while minimizing costs under the new constraints. If retirements or build restrictions conflict with other policies (e.g., in Electric_Endogenous_Capacity.jl), the earliest effective date prevails.