The Dark Spread & Coal Power Plant Economics

Converting Coal to Electricity: Margins, Carbon, and the Phase-Out

FUNDAMENTALS

The dark spread is the coal equivalent of the spark spread. Where the spark spread measures the margin from converting gas into electricity, the dark spread measures the margin from converting coal. It's a simpler concept than the spark spread, but the economics tell a much more dramatic story: European carbon pricing has made coal generation structurally unprofitable, and the dark spread is the number that proves it.

What is a dark spread?

A coal-fired power plant "buys" coal and "sells" electricity. The dark spread is the gross margin on that conversion:

Dark Spread = Power Price - (Coal Price / Efficiency)

Coal plants are less efficient than gas plants. A typical coal plant converts about 35% of the energy in coal into electricity (compared to 49% for a modern CCGT). That means you need more fuel per MWh of output, which makes the economics more sensitive to fuel price changes.

The efficiency gap matters, but it's not what killed coal in Europe. Carbon did.

The clean dark spread: adding carbon costs

The clean dark spread is the margin after accounting for the cost of carbon emissions:

Clean Dark Spread = Power Price - (Coal Price / (Efficiency x Energy Content)) - (Carbon Price x Emissions Factor)

Where Energy Content converts coal tonnes to MWh (typically 7.1 MWh/tonne for standard thermal coal), Efficiency is ~35% for a standard plant, and Emissions Factor is ~0.96 tCO2/MWh.

Coal emits roughly 0.96 tonnes of CO2 per MWh of electricity at 35% efficiency. Compare that to natural gas at 0.39 tCO2/MWh for a CCGT. Coal produces 2.5 times the carbon per unit of electricity. At high carbon prices, this difference is devastating.

Worked example: European prices, March 2026

Let's calculate the clean dark spread using current European market data:

  • Power price: EUR 85/MWh (German baseload)
  • Coal price: USD 106/tonne (API #2 Rotterdam), approximately EUR 97/tonne
  • Carbon price: EUR 71/tonne (EU ETS)
  • Plant efficiency: 35%
  • Energy content: 7.1 MWh/tonne
  • Emissions factor: 0.96 tCO2/MWh

Step 1: Coal fuel cost per MWh

EUR 97 / (0.35 x 7.1) = EUR 97 / 2.485 = EUR 39.03/MWh

Step 2: Carbon cost per MWh

EUR 71 x 0.96 = EUR 68.16/MWh

Step 3: Clean dark spread

EUR 85 - EUR 39.03 - EUR 68.16 = EUR -22.19/MWh

The plant loses over EUR 22 for every MWh it generates. The carbon cost alone (EUR 68/MWh) is almost as high as the power price. This is not a marginal loss that better operations could fix. It is a structural death sentence.

For comparison, run the same power price through a spark spread calculation and the CCGT comes out with a positive margin. Same electricity price, different fuel, completely different economics.

Why carbon kills coal (and not gas)

The numbers make it clear, but it's worth spelling out why coal carries such a disproportionate carbon penalty:

Coal (35% eff.) Gas CCGT (49% eff.)
Emissions factor 0.96 tCO2/MWh 0.39 tCO2/MWh
Carbon cost at EUR 71/t EUR 68.16/MWh EUR 27.69/MWh
Carbon cost at GBP 40/t (UK ETS) GBP 38.40/MWh GBP 15.60/MWh

Coal carries 2.5 times the carbon cost. At EUR 71/tonne (EU ETS, March 2026), that's a EUR 40/MWh disadvantage before you even compare fuel costs. The EU ETS was designed to do exactly this: make the dirtiest generation economically unviable.

Note the difference between EU and UK carbon prices. The UK ETS (UKA) trades at roughly GBP 38-40/tonne, a significant discount to the EU ETS (EUA) at EUR 71/tonne. Linkage negotiations between the two schemes are ongoing. If the UK aligns with EU carbon pricing, the economics of any remaining coal-adjacent assets in the UK would tighten further.

Fuel switching: when dark spreads come back to life

Dark spreads are not always negative. When gas prices spike, the relative economics can flip. In late February 2026, TTF gas futures surged roughly 89% in 20 days following geopolitical tensions. German clean dark spreads briefly turned positive at EUR 2.50/MWh for Q3, because gas plants became so expensive that coal was the cheaper option despite its carbon penalty.

This is fuel switching: the point where the cost of running gas exceeds the cost of running coal (including carbon). Traders watch the ratio between clean spark spreads and clean dark spreads to identify these moments. When the clean dark spread exceeds the clean spark spread, the merit order flips and coal dispatches ahead of gas.

In practice, fuel switching has become rarer in Europe as carbon prices have risen. The carbon penalty on coal is now so large that gas prices have to spike dramatically before coal becomes competitive. The February 2026 event was notable precisely because it was unusual.

Python implementation

def calculate_clean_dark_spread(
    power_price: float,
    coal_price_per_tonne: float,
    carbon_price: float,
    efficiency: float = 0.35,
    energy_content: float = 7.1,
    emissions_factor: float = 0.96,
) -> float:
    """Calculate the Clean Dark Spread for a coal plant.

    Args:
        power_price: Electricity price in currency/MWh
        coal_price_per_tonne: Coal price in currency/tonne
        carbon_price: Carbon allowance price in currency/tonne CO2
        efficiency: Plant thermal efficiency (default 0.35 for standard coal)
        energy_content: Coal energy content in MWh/tonne (default 7.1)
        emissions_factor: tCO2 per MWh electricity (default 0.96)

    Returns:
        Clean dark spread in currency/MWh
    """
    fuel_cost = coal_price_per_tonne / (efficiency * energy_content)
    carbon_cost = carbon_price * emissions_factor
    return round(power_price - fuel_cost - carbon_cost, 2)


# German market example (March 2026)
spread = calculate_clean_dark_spread(
    power_price=85,        # EUR/MWh
    coal_price_per_tonne=97,  # EUR/tonne (API #2)
    carbon_price=71,       # EUR/tonne (EUA)
)
print(f"Clean Dark Spread: EUR {spread}/MWh")
# Output: Clean Dark Spread: EUR -22.19/MWh

The European coal phase-out

The clean dark spread tells you why coal is dying. The phase-out timelines tell you how fast.

The UK's story is the starkest. From 66% coal generation in the 1980s to zero on 1 October 2024, when Ratcliffe-on-Soar became the last coal plant to close. Dark spreads are now purely historical for UK markets. But the UK is ahead of the curve. Germany still has 23 GW of coal capacity, with a mandated exit by 2038 (and political pressure to accelerate to 2030). Coal remains Germany's backup during low-wind periods and gas price spikes. Poland is further behind still, with coal and lignite providing roughly 51% of electricity as of 2025, and the phase-out progressing slowly for political reasons.

The southern European exits are accelerating. Spain moved its coal deadline from 2030 to 2025. Greece brought its exit forward from 2028 to 2026. Ireland became Europe's 15th coal-free country in 2025. EU-wide, coal's share of electricity generation fell to 9.2% in 2025, the same year wind and solar surpassed all fossil fuels combined for the first time. The trajectory is clear, even if the pace varies by country.

Why dark spreads still matter

If coal is disappearing, why learn the dark spread at all?

Because European power markets are interconnected. If you trade UK power, you're still exposed to German prices through interconnectors, and coal plants still set the marginal price in Germany, Poland, and the Czech Republic during certain hours. Understanding dark spread economics tells you when coal is likely to dispatch in those markets and what that means for cross-border flows and price convergence.

Dark spreads also become the critical metric during gas price crises. When TTF surged in February 2026 (and during the 2022 energy crisis before that), the dark spread was the number that told traders whether coal was coming back into merit. Being able to quickly calculate the fuel-switching threshold is an edge in exactly the moments when markets are most volatile.

Finally, there's the carbon connection. Coal closure is the single largest driver of reduced demand for carbon allowances. When the UK closed its last coal plant, it structurally reduced demand for UKA allowances, because coal at 0.96 tCO2/MWh was the largest source of compliance buying. If you trade EUAs or UKAs, understanding how dark spread economics drive coal dispatch (and therefore carbon demand) is essential.


Dark spread vs spark spread: side by side

Dark Spread (Coal) Spark Spread (Gas)
Fuel Thermal coal (API #2) Natural gas (NBP, TTF)
Typical efficiency 35% (standard), 45% (modern) 49.13% (CCGT benchmark)
Emissions factor 0.96 tCO2/MWh 0.394 tCO2/MWh
Carbon cost (EUR 71/t EUA) EUR 68/MWh EUR 28/MWh
UK relevance Historical only (post Oct 2024) Primary dispatch metric
EU relevance Germany, Poland, Czech Republic All markets with gas generation
Price reference API #2 (CIF ARA, USD/tonne) NBP (p/therm), TTF (EUR/MWh)

Coal price indices: what traders watch

Coal pricing is simpler than gas pricing, but the conventions matter. The benchmark for European dark spread calculations is API #2 (Rotterdam): thermal coal delivered CIF ARA (Amsterdam-Rotterdam-Antwerp), quoted in USD/tonne. The other major indices are API #4 (Richards Bay, South African export coal) and Newcastle (Australian exports for Asia-Pacific markets), but API #2 is what you plug into the formula for any European plant.

One wrinkle the spark spread doesn't have: because API #2 is quoted in USD while European power trades in EUR (or GBP for UK markets), the dark spread calculation involves a currency conversion. This adds FX risk to coal plant economics, a further complication on top of the already hostile carbon arithmetic.


How this fits the curriculum

This guide pairs directly with the Spark Spread guide. Together they cover the two most important generation margins in European power markets. The spark spread tells you when gas plants run. The dark spread tells you when coal plants run (and increasingly, why they don't).

If you haven't already, read the Physical vs Financial Trading guide for the broader market structure, and The Global Gas Market to understand why gas prices drive the fuel-switching calculation.


Prerequisites

Complete the Spark Spread guide first. The dark spread formula follows the same structure, and you'll need the spark spread as a reference point for comparison and fuel-switching analysis.


Mastery Tip

Build both the dark spread and spark spread Python calculators. Pull current API #2 coal prices, TTF gas prices, and EUA carbon prices, then calculate both clean spreads at 35% and 45% coal efficiency. Find the gas price at which the two spreads are equal: that's the fuel-switching point. Track how this threshold moves as carbon prices change. You'll develop an intuition for when gas-to-coal switching headlines are credible versus noise.


What You'll Learn

  • The Core Formula: Calculate dark spreads and clean dark spreads using 35% efficiency and the 0.96 tCO2/MWh emissions factor.
  • Carbon Economics: Why coal carries 2.5x the carbon cost of gas, and how EU/UK ETS pricing makes coal structurally unprofitable.
  • Fuel Switching: When gas prices spike enough to make coal competitive again, and how to calculate the switching threshold.
  • Python Implementation: Build a clean dark spread calculator with configurable efficiency and emissions parameters.
  • European Context: Phase-out timelines, API #2 coal pricing, and why dark spreads still matter for cross-border trading.

Energy Trading Fundamentals Series

A structured curriculum for mastering energy markets - from physical infrastructure to P&L calculations

Prerequisites:
Next in Series:
Position Aggregation & Delta Exposure

Portfolio risk calculation, net position management

Related Guides:

Want the full curriculum?

This article is part of our free content. The complete Skool community includes 4 courses covering energy trading fundamentals, derivatives, BESS economics, and Python for energy trading. Hundreds of pages, worked examples, Python implementations, and direct access to practitioners.

Explore courses

$1,740 one-time. Lifetime access.