How knoppi10/bess_optimization works
This is a Python techno-economic BESS arbitrage framework. The principal workflow is: an analyst fetches German day-ahead market data, the simulation orchestrator runs multi-year battery scenarios through parallel quadratic optimization, results are persisted as dispatch and revenue CSVs, and analysis code produces comparisons, sensitivity studies, and publication figures. The graph preserves price-impact, physical constraints, SOC carryover, and external market-data capabilities. Some optimizer and plotting internals were sampled only partially, so uncertain helper-level relationships are omitted.
Components 13
Market Ingestion
- ENTSO-E API
- Data Fetcher
01_data_fetch.py - Market Dataset
04_market_data_2019_2025.csv
Optimization Runtime
- Simulation Orchestrator
02_Arbitrage_Optimizer.py - Scenario Configuration
02_Arbitrage_Optimizer.py - Parallel Scenario Workers
02_Arbitrage_Optimizer.py - Quadratic BESS Optimizer
02_Arbitrage_Optimizer.py
Simulation Results
- Dispatch Decisions
05_simulation_decisions_with_pt.csv - Revenue Summary
06_arbitrage_summary_with_pt.csv
Analysis Outputs
- Plot Analysis
03_analysis_plots.py - Sensitivity Analysis
03_analysis_plots.py - Analysis Figures
03_analysis_plots.py
Other components
- Analyst
Connections 18
- Analyst → Data Fetcher: runs
- Data Fetcher → ENTSO-E API: queries
- Data Fetcher → Market Dataset: writes
- Analyst → Simulation Orchestrator: runs
- Simulation Orchestrator → Market Dataset: reads
- Simulation Orchestrator → Scenario Configuration: builds
- Simulation Orchestrator → Parallel Scenario Workers: dispatches
- Scenario Configuration → Parallel Scenario Workers: configures
- Parallel Scenario Workers → Quadratic BESS Optimizer: solves
- Parallel Scenario Workers → Simulation Orchestrator: returns results
- Simulation Orchestrator → Dispatch Decisions: writes
- Simulation Orchestrator → Revenue Summary: writes
- Analyst → Plot Analysis: runs
- Plot Analysis → Dispatch Decisions: reads
- Plot Analysis → Revenue Summary: reads
- Plot Analysis → Analysis Figures: writes
- Plot Analysis → Sensitivity Analysis: runs
- Sensitivity Analysis → Quadratic BESS Optimizer: solves