Introduction: Quantifying the Unquantifiable
You’re managing a portfolio worth €500M. Your CEO asks: “How much could we lose tomorrow?”
This isn’t a philosophical question—it’s the foundation of risk management. Without quantifying price risk, you’re flying blind. But measuring risk in energy markets is devilishly complex:
- Electricity trades 8,760 different products (every hour of the year)
- Prices are correlated but not perfectly (hour 13 ≠ hour 14)
- Historical volatility doesn’t predict future crashes
- Markets have “fat tails” (extreme events happen more than normal distributions predict)
Enter three critical tools: Stress Value, Value at Risk (VaR), and Pain at Risk (PaR). Let’s explore how traders quantify the seemingly unquantifiable—and why these models sometimes catastrophically fail.
Building the HPFC: 8,760 Prices from ~20 Data Points
Before measuring risk, you need a Hourly Price Forward Curve (HPFC)—a complete forecast of every hour’s price for the next 1-3 years.
The Challenge:
- Forward markets trade ~20 liquid products (month, quarter, year contracts)
- You need 8,760 hourly prices (or 35,040 for 15-minute intervals)
- How do you disaggregate aggregate contracts into hourly forecasts?
Step 1: Anchor with Liquid Products
Available Forward Prices (Example):
- Year 2026 Base: €85/MWh
- Year 2026 Peak: €105/MWh
- Q1-2026 Base: €95/MWh
- Q2-2026 Base: €78/MWh
- January 2026 Base: €100/MWh
These are volume-weighted average prices for their periods.
Step 2: Build Load Profile Shape
Use historical data to determine hourly shape:
Typical Patterns:
- Baseload hours (00:00-06:00): 70-80% of average
- Peak hours (08:00-20:00): 110-130% of average
- Super-peak (18:00-20:00): 140-160% of average
- Weekends: Lower peak, flatter curve
Example Historical Average (normalized to €100):
- Hour 01: €65
- Hour 02: €60
- Hour 03: €58
- …
- Hour 12: €115
- Hour 13: €120
- …
- Hour 19: €145
Step 3: Scale to Match Forward Prices
For January 2026:
- Forward Base contract: €100/MWh
- Historical shape suggests January average = €100
- Scale each hour:
Price(hour h) = Forward_Base × [Historical_Shape(h) / Historical_Average]
Example:
- Forward Base (Jan): €100/MWh
- Historical shape hour 19: €145
- Historical average: €100
- Price(hour 19) = €100 × (€145 / €100) = €145/MWh
Step 4: Integrate Peak Premiums
Peak contracts introduce constraints:
Peak Contract (08:00-20:00, Mon-Fri):
- Quoted at €105/MWh
- Our hourly model must average to €105 for peak hours
- Adjust peak hours proportionally
Iterative Process:
- Build initial curve from baseload
- Check: Do peak hours average to peak contract price?
- If not, adjust peak hours up/down proportionally
- Re-check base contract average (must still match)
- Iterate until all constraints satisfied
Step 5: Add Seasonal and Weekly Patterns
Seasonal Adjustments:
- Winter: Higher morning/evening peaks (heating)
- Summer: Different peak (cooling, midday)
Weekly Patterns:
- Monday: Morning ramp-up (restart after weekend)
- Friday: Evening decline (weekend approaching)
- Weekend: Flatter, lower overall
Result: Complete HPFC
- 8,760 hourly prices for Year 2026
- Mathematically consistent with traded forward contracts
- Reflects realistic load/price patterns
Validation:
- Sum all 8,760 hours ÷ 8,760 = should equal Year Base forward
- Sum peak hours ÷ peak hour count = should equal Peak forward
- Visual inspection: Does curve “look right”?
Stress Value: Tomorrow’s Worst Case
Definition: The maximum potential loss if the worst plausible scenario occurs tomorrow.
Methodology:
Step 1: Identify Worst-Case Scenario
For a long position (you’ve bought energy):
- Worst case = prices fall (you lose on inventory)
- Scenario: Prices drop by historical maximum daily decline
Historical Analysis:
- Review last 10 years of daily price changes
- Identify worst single-day drop: -€15/MWh (example)
- This becomes your stress scenario
**For a short position (you’ve sold energy):
- Worst case = prices rise (you must buy back expensive)
- Scenario: Prices rise by historical maximum daily increase
- Historical max: +€25/MWh
Step 2: Apply Stress to Current Position
Example:
- Open position: Long 200 MW for Q1-2026
- Volume: 200 MW × 2,160 hours = 432,000 MWh
- Current Q1 price: €95/MWh
- Stress scenario: Price drops €15/MWh to €80/MWh
Stress Value Calculation:
Stress Value = Position × Price Change = 432,000 MWh × (-€15/MWh) = -€6,480,000
Interpretation: If tomorrow brings the worst daily price movement we’ve seen historically, we’ll lose €6.48M.
Management Response:
Traffic Light System:
Green: Stress Value < 10% of risk capital
- Current risk: Acceptable
- Action: Monitor, no changes needed
Yellow: Stress Value 10-25% of risk capital
- Current risk: Elevated
- Action: Consider partial hedge, increase monitoring frequency
Red: Stress Value > 25% of risk capital
- Current risk: Unacceptable
- Action: Mandatory risk reduction (sell half position, buy hedge, etc.)
Example:
- Risk capital: €30M
- Stress value: €6.48M
- Percentage: 6.48 / 30 = 21.6% → Yellow
- Action: Portfolio manager must justify position or reduce to below 10% threshold
Value at Risk (VaR): Statistical Probability
Definition: The maximum loss not expected to be exceeded at a given confidence level over a specified period.
Standard: 95% Daily VaR
- Translation: “We’re 95% confident we won’t lose more than €X tomorrow.”
- Inverse: “5% chance we’ll lose more than €X tomorrow.”
VaR Calculation: Historical Simulation Method
Step-by-Step Process:
Step 1: Collect Historical Price Data
- Last 500 trading days of forward contract prices
- Daily closing prices for relevant products
Example Dataset (Q1-2026 Forward):
Day 1: €92/MWhDay 2: €93/MWhDay 3: €91/MWh...Day 500: €95/MWh
Step 2: Calculate Daily Returns
Return(t) = [Price(t) - Price(t-1)] / Price(t-1)Day 2: (€93 - €92) / €92 = +1.09%Day 3: (€91 - €93) / €93 = -2.15%...
Result: 499 daily returns (500 days – 1)
Step 3: Sort Returns from Worst to Best
Return 1: -8.2% (worst day)Return 2: -6.5%Return 3: -5.9%...Return 25: -2.1% ← 5th percentile (95% confidence)...Return 499: +7.3% (best day)
Step 4: Identify 95% Confidence Threshold
- Sort 499 returns
- 5th percentile = position 25 (0.05 × 499 ≈ 25)
- Return at position 25: -2.1%
This means: 95% of days had returns better than -2.1%
Step 5: Apply to Current Position
Current Position:
- Long 200 MW Q1-2026
- Volume: 432,000 MWh
- Current price: €95/MWh
- Position value: €41,040,000
VaR Calculation:
VaR (€) = Position Value × VaR (%) = €41,040,000 × 2.1% = €862,000
Interpretation:
- 95% confidence we won’t lose more than €862k tomorrow
- 5% chance we’ll lose more than €862k tomorrow
- Expected maximum loss on a “normal bad day”
VaR vs. Stress Value:
Same Position (Long 200 MW Q1-2026):
- Stress Value: €6,480,000 (worst historical day: -15€/MWh)
- 95% VaR: €862,000 (95% confidence threshold: -2.1%)
Different Questions:
- Stress: “What if the worst repeats?”
- VaR: “What’s the likely maximum on a normal bad day?”
Why Both Matter:
- VaR: Day-to-day risk management (most days)
- Stress: Extreme scenario planning (rare but devastating)
VaR Limitations: Black Swans and Fat Tails
VaR is powerful but deeply flawed. Let’s examine why:
Limitation 1: VaR Says Nothing About the Tail
VaR tells you the 95th percentile, not what happens beyond it.
Example:
- 95% VaR: €1M
- This means 5% of days exceed €1M loss
- But how bad are those 5% days?
- Could average €1.2M (tolerable)
- Could average €10M (catastrophic)
VaR doesn’t distinguish!
Real Example:
- Bank has 99% VaR of €10M (seems safe)
- But in the 1% tail:
- 0.5% of days: €15M loss
- 0.4% of days: €25M loss
- 0.1% of days: €100M+ loss (wipeout)
Average tail loss: €35M (3.5x the VaR!)
Solution: Use Conditional VaR (CVaR) or Expected Shortfall
- CVaR = Average loss in the worst 5% of cases
- More informative than VaR alone
Limitation 2: Fat Tails (Extreme Events Are More Common Than Normal Distribution Predicts)
Normal Distribution Assumption:
- VaR often assumes returns follow a normal (Gaussian) bell curve
- Extreme events (>3 standard deviations) should be very rare
Energy Market Reality:
- Extreme events happen far more often than normal distribution predicts
- “Once in 100 year” events occur every few years
Example: 2022 European Gas Crisis
- Historical average gas price: €25/MWh
- Historical volatility (std dev): €8/MWh
- August 2022 price: €340/MWh
Under Normal Distribution:
- This is (€340 – €25) / €8 = 39 standard deviations
- Probability: 10^-330 (essentially impossible in universe’s lifetime)
Actual: It happened.
Fat Tails Mean:
- Standard VaR models underestimate extreme risk
- Models calibrated on “normal times” fail during crises
Risk Manager Dilemma:
- Use conservative models → Trade less, earn less, lose to competitors
- Use optimistic models → Trade more, earn more, but catastrophic when crisis hits
Limitation 3: VaR Is Backward-Looking
Historical VaR assumes the future resembles the past.
Breaks Down When:
- Structural market changes: Coal phase-outs altered price dynamics
- New regulations: Carbon pricing changed merit order
- Geopolitical shocks: Russian gas cut-off unprecedented
- Technology shifts: Solar/wind penetration changes volatility patterns
2010 VaR Model:
- Based on 2000-2010 data (stable markets)
- VaR: €500k
- Seemed accurate for years
2022 Reality:
- Same portfolio, 2022 crisis
- Actual loss: €15M (30x VaR)
- Model useless
What Changed:
- Pre-2022: Abundant Russian gas supply (baseline assumption)
- 2022: Supply shock no historical precedent for
Lesson: VaR works until it doesn’t. Always stress-test against scenarios not in historical data.
Limitation 4: Correlation Breakdowns
VaR often assumes stable correlations between assets.
Normal Times:
- German power ≈ French power (correlation: 0.85)
- VaR model: “Diversify across countries for lower risk”
Crisis Times (French Nuclear Outages):
- German power: €100/MWh
- French power: €250/MWh
- Correlation breaks down
Portfolio Impact:
- Expected (VaR model): Diversification reduces risk
- Actual: French positions lost €50M, German hedges only offset €10M
- Net loss: €40M (vs. VaR of €8M)
Lesson: Correlations converge to 1.0 during crises (everything moves together).
PaR: When Liquidity Disappears
Pain at Risk (PaR): The additional loss incurred from having to liquidate positions in illiquid markets.
The Concept:
Normal VaR assumes:
- You can trade at market prices
- Liquidity is always available
Reality:
- During crises, bid-ask spreads widen
- Large positions can’t be unwound without moving the market
Example:
Position:
- Long 500 MW Year-2026
- Mark-to-market value: €50M
- Normal bid-ask spread: €0.20/MWh
Crisis Scenario:
- News: Major nuclear plant offline for 2 years
- Market panics, you need to exit position
- Normal spread: €0.20/MWh
- Crisis spread: €8/MWh (40x wider!)
Liquidation Cost:
PaR = Position × (Crisis Spread - Normal Spread) = 500 MW × 8,760h × (€8 - €0.20) = 4,380,000 MWh × €7.80 = €34,164,000
Total Loss:
- VaR: €2M (price movement)
- PaR: €34M (liquidation cost)
- Total: €36M
VaR completely missed the dominant risk!
When PaR Matters Most:
1. Large Positions Relative to Market Depth
- You hold 500 MW, daily market volume is 2,000 MW
- Unwinding would absorb 25% of daily volume
- You’ll move prices against yourself
2. Exotic Products
- Custom delivery terms
- Illiquid tenors (specific weeks)
- Few market participants
3. Crisis Periods
- Everyone wants to exit simultaneously
- Liquidity providers withdraw
- “Flight to safety” (only liquid products trade)
4. Forced Liquidation
- Margin calls demand immediate action
- Can’t wait for favorable liquidity
- Must take any price offered
Mitigation:
1. Position Sizing:
- Limit position to X% of average daily market volume
- Rule of thumb: < 5% of volume (can unwind in one day without major impact)
2. Liquidity Reserves:
- Maintain cash to avoid forced liquidation
- Can wait for better liquidity conditions
3. Gradual Unwinding:
- Don’t exit 500 MW in one trade
- Spread over days/weeks: 50 MW per day
4. Prefer Liquid Products:
- Standard base/peak contracts
- Avoid exotic structured products unless premium justifies illiquidity risk
The Traffic Light System: Operational Risk Limits
Risk metrics must drive actions, not just reports.
Daily Risk Dashboard (7:15 AM Report to Traders):
Position Summary:
- Open Position: Long 350 MW Q1-2026
- Current value: €33M
Risk Metrics:
| Metric | Value | Limit | Status |
|---|---|---|---|
| 95% VaR | €720k | €1M | 🟢 Green (72%) |
| Stress Value | €4.5M | €6M | 🟡 Yellow (75%) |
| CVaR (worst 5%) | €2.8M | €3M | 🟡 Yellow (93%) |
| Counterparty Limit Usage | €45M | €50M | 🟢 Green (90%) |
Actions:
- 🟢 Green (< 70%): Monitor, no action required
- 🟡 Yellow (70-90%): Caution, consider reducing exposure
- 🔴 Red (> 90%): Mandatory action, must reduce within 24 hours
Example Decision:
- Stress Value at 75% (Yellow)
- Portfolio manager decision: Sell 100 MW to reduce stress to ~60% (Green)
- Execute: Sell 100 MW Q1-2026 at current market €95/MWh
- New position: Long 250 MW (reduced from 350 MW)
- New stress: €3.2M (down from €4.5M, now 53% of limit → Green)
Escalation Process:
Red Status Triggered:
- Automatic alert to risk committee
- Portfolio manager must submit risk reduction plan within 2 hours
- Execution deadline: 24 hours
- If not complied: Override trades executed by risk management
Example:
- VaR hits €1.1M (110% of limit → Red)
- Email sent: “VaR limit breached, immediate action required”
- Trader submits plan: “Will sell 150 MW by end of day”
- Execution: Sells in 3 tranches (50 MW each) throughout day
- End of day: VaR reduced to €850k (85% of limit → Yellow, acceptable)
Why Models Fail: The 2008 and 2022 Lessons
2008 Financial Crisis:
- VaR models assumed housing prices wouldn’t fall nationally
- Correlations underestimated (all banks exposed simultaneously)
- Tail risk ignored (rare events were actual events)
- Result: “25-sigma events” occurred (mathematically impossible, yet happened)
2022 Energy Crisis:
- VaR models based on pre-war supply assumptions
- Russian gas cut-off: No historical precedent
- Price spikes exceeded worst historical scenarios by 5-10x
- Result: VaR said “€2M max loss,” actual was “€50M+”
The Fundamental Problem:
Models assume:
- Markets are continuous (no gaps)
- Liquidity always exists
- Correlations are stable
- The future resembles the past
Reality:
- Markets gap overnight (Russian invasion)
- Liquidity vanishes in crises
- Correlations go to 1.0 (everything falls together)
- The future brings new regimes
What Professional Risk Managers Do:
1. Use Multiple Models:
- VaR (for normal times)
- Stress tests (for historical worst cases)
- Scenario analysis (for unprecedented events)
2. Add Judgment:
- Models inform decisions, don’t make them
- Human override when models seem wrong
3. Reverse Stress Testing:
- Question: “What scenario would bankrupt us?”
- Design hedges specifically for that scenario
- Even if low probability
4. Conservative Buffers:
- Use 99% VaR instead of 95% (stricter)
- Add 50% margin to stress values
- Assume worst liquidity conditions
5. Regular Back-Testing:
- Did yesterday’s actual loss exceed VaR?
- If yes, how often? (Should be ~5% of days for 95% VaR)
- If more often, model is wrong → recalibrate
Key Takeaways
✓ HPFC construction: Disaggregate ~20 liquid products into 8,760 hourly prices
✓ Stress Value: Worst historical daily loss applied to current position
✓ VaR (95%): Maximum expected loss on a “normal bad day” (95% confidence)
✓ VaR limitations: Says nothing about tail, assumes normal distributions (false), backward-looking
✓ Fat tails: Extreme events far more common than models predict (“25-sigma” events happen)
✓ PaR: Liquidity costs during forced liquidation (often larger than VaR)
✓ Traffic light system: Green/Yellow/Red status drives mandatory risk actions
✓ Models fail in crises: 2008 and 2022 proved VaR dangerously underestimates tail risk
Next in Series: Post 11: Risk Management Processes: From Theory to Corporate Governance






Leave a Reply