fbmc-chronos2 / doc /FBMC_Methodology_Explanation.md
Evgueni Poloukarov
feat: complete Marimo data exploration notebook with FBMC methodology documentation
82da022

A newer version of the Gradio SDK is available: 6.1.0

Upgrade

Flow-Based Market Coupling (FBMC) Methodology Explanation

Quick Reference for FBMC Flow Forecasting MVP


1. What is FBMC?

Flow-Based Market Coupling (FBMC) is a European electricity market methodology that:

  • Calculates cross-border trading capacity based on network physics (power flows)
  • Replaces simple border-to-border capacity limits with network constraints
  • Enables hub-to-hub trading between ANY two zones (not just physical neighbors)
  • Maximizes market efficiency by considering the entire interconnected AC grid

Traditional ATC vs FBMC

Aspect Traditional ATC Flow-Based Market Coupling (FBMC)
Capacity Model Border-to-border limits Network-wide constraints (CNECs)
Trading Allowed Only between physically connected zones Between ANY two zones (hub-to-hub)
Network Physics Simplified, ignores loop flows Fully modeled via PTDFs
Example FR can only trade with direct neighbors FR can trade with HU despite no physical interconnector
Optimization Sub-optimal (ignores network capacity) Optimal (uses full network capacity)

2. Core FBMC Concepts

2.1 MaxBEX (Maximum Bilateral Exchange)

Definition: Commercial hub-to-hub trading capacity between two zones

Key Points:

  • MaxBEX ≠ Physical interconnector ratings
  • MaxBEX = Result of optimization considering ALL network constraints
  • Calculated for ALL zone pairs: 12 × 11 = 132 bidirectional combinations
  • Includes both physical borders and virtual borders

Physical Border Example (DE→FR):

- Physical interconnector: 3,000 MW capacity
- MaxBEX value: 2,450 MW
- Why lower? Network constraints (CNECs) in DE and FR limit capacity
- DE→FR exchange affects transmission lines in both countries

Virtual Border Example (FR→HU):

- Physical interconnector: NONE (no direct FR-HU cable)
- MaxBEX value: 1,200 MW
- How is this possible? Power flows through AC grid via DE, AT, CZ
- FR exports 1,200 MW, HU imports 1,200 MW
- Physical reality: Power flows through intermediate countries' grids

2.2 CNECs (Critical Network Elements with Contingencies)

Definition: Transmission line + contingency scenarios that constrain power flows

Structure:

CNEC = Transmission line + "What if X fails?"
Example: "German DE_CZ_LINE_123 under contingency: Czech power plant outage"

Key Metrics:

  • RAM (Remaining Available Margin): How much flow capacity is left (MW)
  • Shadow Price: Economic value of relaxing this constraint (€/MWh)
  • Presolved: Boolean indicating if CNEC was binding (limiting)
  • Fmax: Maximum allowed flow on this line (MW)

Why CNECs Matter:

  • CNECs are the physical constraints that limit MaxBEX
  • Each CNEC affects multiple borders simultaneously via PTDFs
  • Top 50 CNECs account for ~80% of binding events

2.3 PTDFs (Power Transfer Distribution Factors)

Definition: Sensitivity coefficient showing how a zone's injection/withdrawal affects each CNEC

Interpretation:

PTDF_DE for a German CNEC = 0.45
→ If DE increases export by 1000 MW, this CNEC's flow increases by 450 MW

PTDF_FR for same CNEC = -0.22
→ If FR increases export by 1000 MW, this CNEC's flow decreases by 220 MW

Why PTDFs Enable Virtual Borders:

  • FR→HU exchange has NO direct physical path
  • But it affects CNECs in DE, AT, CZ via PTDFs
  • PTDF_FR = +0.35, PTDF_HU = -0.28 for a German CNEC
  • FR exports → increases German CNEC flow
  • HU imports → decreases German CNEC flow
  • Net effect: FR→HU exchange feasibility depends on German CNEC margin

PTDF Properties:

  • Sum of all PTDFs ≈ 0 (Kirchhoff's law - flow conservation)
  • High absolute PTDF = strong influence on that CNEC
  • PTDFs are constants (depend only on network topology, not on flows)

3. How MaxBEX is Calculated

3.1 Optimization Problem

JAO solves this optimization problem daily:

Maximize: Σ (MaxBEX_ij) for all zone pairs (i→j)

Subject to:
1. For each CNEC k:
   Σ(PTDF_i^k × Net_Position_i) ≤ RAM_k  (Network constraint)

2. For each zone i:
   Σ(MaxBEX_ij) - Σ(MaxBEX_ji) = Net_Position_i  (Flow balance)

3. MaxBEX_ij ≥ 0  (Non-negative capacity)

Where:
- MaxBEX_ij = Capacity from zone i to zone j (WHAT WE FORECAST)
- PTDF_i^k = Zone i's PTDF for CNEC k
- RAM_k = Remaining Available Margin for CNEC k
- Net_Position_i = Net export from zone i

3.2 Why 132 Zone Pairs Exist

FBMC Core Bidding Zones (12 total):

  • AT (Austria)
  • BE (Belgium)
  • CZ (Czech Republic)
  • DE (Germany-Luxembourg)
  • FR (France)
  • HR (Croatia)
  • HU (Hungary)
  • NL (Netherlands)
  • PL (Poland)
  • RO (Romania)
  • SI (Slovenia)
  • SK (Slovakia)

All Permutations:

Total bidirectional pairs = 12 × 11 = 132

Examples:
- AT→BE, AT→CZ, AT→DE, ..., AT→SK  (11 directions from AT)
- BE→AT, BE→CZ, BE→DE, ..., BE→SK  (11 directions from BE)
- ...
- SK→AT, SK→BE, SK→CZ, ..., SK→SI  (11 directions from SK)

Physical vs Virtual:

  • ~40-50 physical borders (zones with direct interconnectors)
  • ~80-90 virtual borders (zones without direct interconnectors)

4. Network Physics: Power Flow Reality

4.1 AC Grid Fundamentals

Key Principle: Power flows through ALL available paths, not just the intended route

Example: DE→PL bilateral exchange

Intended:  DE → PL (direct interconnector)
Reality:   Power also flows through CZ and SK (parallel paths)
Result:    CZ and SK CNECs are affected, limiting DE→PL capacity

4.2 Loop Flows

Definition: Unintended power flows through neighboring countries

FR→HU Exchange Example:

Commercial transaction: FR exports 1000 MW, HU imports 1000 MW

Physical reality (power flow percentages):
- 0% flows directly (no FR-HU interconnector)
- 35% flows through DE grid (PTDF_DE = +0.35)
- 28% flows through AT grid (PTDF_AT = +0.28)
- 22% flows through CZ grid (PTDF_CZ = +0.22)
- 15% flows through other paths (SI, HR, SK)

Impact:
- German CNECs see +350 MW load (may become binding)
- Austrian CNECs see +280 MW load (may become binding)
- Czech CNECs see +220 MW load (may become binding)
- MaxBEX(FR→HU) limited by most constraining CNEC

4.3 Why Virtual Borders Have Lower Capacity

Physical Border (DE→FR):

  • Direct interconnector: 3,000 MW rating
  • MaxBEX: Often 2,200-2,800 MW
  • Reason: Local CNECs in DE and FR

Virtual Border (FR→HU):

  • Direct interconnector: None
  • MaxBEX: Often 800-1,500 MW
  • Reason: Power flows through DE, AT, CZ (affects many CNECs)
  • More CNECs affected → more constraints → lower capacity

5. FBMC Data Series Relationships

5.1 Data Hierarchy

MaxBEX (TARGET)
    ↑ Result of optimization
CNECs + PTDFs + RAM
    ↑ Network constraints
LTN (Long-Term Nominations)
    ↑ Pre-allocated capacity
Net Positions (Min/Max)
    ↑ Zone-level limits
Planned Outages
    ↑ Reduce RAM availability

5.2 Causal Chain

1. Planned Outages → Reduce RAM for affected CNECs
2. Reduced RAM → Tighter CNEC constraints
3. Tighter constraints + PTDFs → Limit MaxBEX
4. MaxBEX optimization → 132 capacity values

5.3 What We Forecast

Forecasting Task: Predict MaxBEX for all 132 zone pairs, D+1 to D+14 horizon

Input Features (~1,735 features):

  • Historical MaxBEX (past 21 days)
  • CNEC binding patterns (200 CNECs × 8 features)
  • PTDFs (200 CNECs × 12 zones, aggregated)
  • RAM time series (200 CNECs)
  • Shadow prices (200 CNECs)
  • Planned outages (200 CNECs, future covariates)
  • Weather forecasts (52 grid points, future covariates)
  • LTN allocations (known in advance)
  • Net positions (min/max bounds)

Output: MaxBEX forecast for 132 zone pairs × 336 hours (14 days)

Evaluation Metric: MAE (Mean Absolute Error) in MW, aggregated across all borders


6. Why This Matters for Forecasting

6.1 Multivariate Dependencies

Key Insight: You cannot forecast MaxBEX(DE→FR) independently of MaxBEX(FR→DE) or MaxBEX(AT→CZ)

Reason: All borders share the same CNEC constraints via PTDFs

Example:

If German CNEC "DE_NORTH_LINE_5" is binding with RAM = 200 MW:
- MaxBEX(DE→FR) is limited
- MaxBEX(DE→NL) is limited
- MaxBEX(PL→DE) is limited
- MaxBEX(FR→CZ) is affected (loop flows through DE)

All of these borders compete for the same 200 MW of remaining margin!

6.2 Network Constraints Drive Capacity

Not driven by:

  • Historical MaxBEX averages (too simplistic)
  • Physical interconnector ratings (not the binding constraint)
  • Bilateral flow patterns (ignores network physics)

Driven by:

  • Which CNECs are binding (top 50 account for ~80% of binding events)
  • How much RAM is available (affected by outages, weather, generation patterns)
  • PTDF patterns (which zones affect which CNECs)
  • LTN pre-allocations (reduce available capacity)

6.3 Why Chronos 2 is Well-Suited

Chronos 2 Strengths (for zero-shot FBMC forecasting):

  1. Multivariate context: Sees all 132 borders + 1,735 features simultaneously
  2. Temporal patterns: Learns hourly, daily, weekly cycles in CNEC binding
  3. Attention mechanism: Focuses on top binding CNECs for each forecast horizon
  4. Pre-trained on diverse time series: Generalizes to electricity network physics
  5. Zero-shot: No fine-tuning needed for MVP (target: 134 MW MAE)

Why CNEC features are critical:

  • CNECs = physical constraints that determine MaxBEX
  • Without CNEC context, model would miss network bottlenecks
  • Top 50 CNECs × 20 features = 1,000 features capturing network state

7. Practical Example Walkthrough

Scenario: Forecasting DE→FR MaxBEX for Tomorrow (D+1)

Step 1: Gather Historical Context (21 days lookback)

- MaxBEX(DE→FR) past 21 days: avg 2,450 MW, std 320 MW
- Top 10 binding CNECs affecting DE→FR:
  * German CNEC "DE_SOUTH_1": Binding 60% of time, avg shadow price 45 €/MWh
  * French CNEC "FR_EAST_3": Binding 40% of time, avg shadow price 38 €/MWh
- Historical RAM for these CNECs: trending down (more congestion)
- Recent outages: None planned for DE or FR

Step 2: Future Covariates (D+1 to D+14)

- Planned outages: French line "FR_EAST_3" scheduled maintenance D+3 to D+7
  → Expect lower MaxBEX(DE→FR) during this period
- Weather forecast: High winds in DE (high renewables) → Higher DE export pressure
- LTN allocations: 400 MW pre-allocated for long-term contracts

Step 3: CNEC Impact Analysis

German CNEC "DE_SOUTH_1":
- PTDF_DE = +0.42 (DE export increases flow)
- PTDF_FR = -0.35 (FR import decreases flow)
- Current RAM = 450 MW
- DE→FR exchange adds: 0.42 × 1000 - 0.35 × (-1000) = 770 MW to CNEC flow
- Therefore: MaxBEX(DE→FR) ≤ 450 / 0.77 = 584 MW (if this CNEC is limiting)

French CNEC "FR_EAST_3":
- PTDF_DE = +0.38
- PTDF_FR = -0.40
- Current RAM = 600 MW
- DE→FR exchange adds: 0.38 × 1000 - 0.40 × (-1000) = 780 MW to CNEC flow
- Therefore: MaxBEX(DE→FR) ≤ 600 / 0.78 = 769 MW

Most constraining: German CNEC → MaxBEX(DE→FR) ≈ 584 MW

Step 4: Chronos 2 Inference

Input features (1,735-dim vector):
- Historical MaxBEX context (132 borders × 21 days)
- CNEC features (200 CNECs × 8 metrics)
- PTDF aggregates (132 borders × PTDF sums)
- Future outages (200 CNECs × 14 days)
- Weather forecasts (52 grid points × 14 days)

Chronos 2 output:
- MaxBEX(DE→FR) forecast: 620 MW (D+1, hour 12:00)
- Confidence: Model attention focused on "DE_SOUTH_1" CNEC
- Interpretation: Slightly above CNEC-derived limit due to other borders absorbing some CNEC load

Step 5: Validation

Actual MaxBEX(DE→FR) = 605 MW
Forecast = 620 MW
Error = 15 MW (within 134 MW target MAE)

8. Common Misconceptions

Misconception 1: "MaxBEX = Interconnector Capacity"

Wrong: MaxBEX is often much lower than interconnector ratings ✅ Correct: MaxBEX is the result of network-wide optimization considering all CNECs

Misconception 2: "Virtual borders have zero capacity"

Wrong: Virtual borders can have significant capacity (e.g., FR→HU: 800-1,500 MW) ✅ Correct: Virtual borders represent feasible commercial exchanges via AC grid network

Misconception 3: "Each border can be forecasted independently"

Wrong: All borders are coupled via shared CNEC constraints ✅ Correct: Multivariate forecasting is essential (Chronos 2 sees all 132 borders simultaneously)

Misconception 4: "PTDFs change with power flows"

Wrong: PTDFs are NOT flow-dependent ✅ Correct: PTDFs are constants determined by network topology (linearity assumption in DC power flow)

Misconception 5: "Only physical borders matter for trading"

Wrong: FBMC enables trading between ANY zone pairs ✅ Correct: All 132 zone-pair combinations have commercial capacity via grid network


9. References and Further Reading

Official JAO Documentation

  • JAO Publication Tool User Guide: https://publicationtool.jao.eu/help
  • JAO FBMC Methodology: Available via JAO website
  • Core FBMC Practitioners Guide: doc/practitioners_guide.pdf

ENTSO-E Resources

Academic References

  • Ehrenmann, A., & Neuhoff, K. (2009). A comparison of electricity market designs in networks. Operations Research, 57(2), 274-286.
  • Pellini, E. (2012). Measuring the impact of market coupling on the Italian electricity market. Energy Policy, 48, 322-333.

Project Documentation

  • doc/JAO_Data_Treatment_Plan.md: Complete data collection and feature extraction guide
  • doc/FBMC_Flow_Forecasting_MVP_ZERO_SHOT_PLAN.md: 5-day MVP implementation plan
  • notebooks/01_data_exploration.py: Interactive data exploration with sample data

10. Summary: Key Takeaways

  1. MaxBEX ≠ Physical Capacity: MaxBEX is a commercial metric derived from network optimization
  2. 132 Zone Pairs: All 12 × 11 bidirectional combinations exist (physical + virtual borders)
  3. CNECs Are Key: Network constraints (CNECs) determine MaxBEX via optimization
  4. PTDFs Enable Virtual Borders: Power flows through AC grid network affect distant CNECs
  5. Multivariate Forecasting Required: All borders share CNEC constraints via PTDFs
  6. Network Physics Matters: Loop flows, congestion patterns, and outages drive capacity
  7. Chronos 2 Zero-Shot Approach: Pre-trained model leverages multivariate context without fine-tuning

Document Version: 1.0 Created: 2025-11-03 Project: FBMC Flow Forecasting MVP (Zero-Shot) Purpose: Comprehensive reference for understanding FBMC methodology and MaxBEX forecasting