AI-Driven BESS Arbitrage for Wholesale Electricity Markets
Design and implement an advanced AI-driven energy management system for a Battery Energy Storage System (BESS) participating in wholesale electricity markets. The system should leverage time-series forecasting and robust optimization techniques to maximize revenue through energy arbitrage and provision of ancillary services (e.g., frequency regulation, capacity). This challenge simulates real-world market dynamics, requiring participants to balance profitability with battery health and operational constraints.
What you are building
The core problem, expected build, and operating context for this challenge.
Develop an AI-driven optimization model to maximize BESS profitability by participating in wholesale electricity markets using advanced forecasting and MILP.
How work is evaluated
The solution will be evaluated on the accuracy of its price forecasting, the optimality of its dispatch decisions, and the simulated net revenue generation of the BESS over a specified period. Robustness to market volatility will also be assessed.
Challenge datasets
Public datasets, plus the private datasets you have access to.
What you should walk away with
Master advanced time-series forecasting techniques (e.g., Prophet, LSTM, Transformer networks) to predict hourly electricity prices, demand, and ancillary service requirements from historical market data.
Implement a Mixed-Integer Linear Programming (MILP) model using optimization frameworks like `Pyomo` or `CVXPY` to determine optimal BESS charge/discharge cycles for energy arbitrage and provision of ancillary services (e.g., frequency regulation, capacity markets).
Design a BESS simulation environment that accurately models battery degradation, round-trip efficiency, and capacity fade over time, integrating predicted market prices and operational constraints.
Build a data ingestion and feature engineering pipeline to process diverse energy market data, including day-ahead, real-time prices, and grid demand, preparing it for both forecasting and optimization models.
Orchestrate a complete pipeline that integrates forecasting models with the MILP optimizer, allowing for hourly re-dispatch decisions based on updated predictions and real-time market signals.
Optimize the BESS dispatch strategy to account for multiple revenue streams simultaneously (e.g., energy arbitrage, capacity payments, frequency regulation) to maximize overall profitability, considering the BESS's physical limitations and warranty constraints.
Implement robust decision-making strategies that incorporate forecast uncertainty using techniques like scenario-based optimization or stochastic programming to mitigate risks associated with price volatility.
Analyze the economic performance of the BESS under various market scenarios, quantifying revenue, operational costs, and the impact of degradation on long-term viability.
Reference links and supporting material
Sample data for 2 tasks
Challenge setup
The solution will be evaluated on the accuracy of its price forecasting, the optimality of its dispatch decisions, and the simulated net revenue generation of the BESS over a specified period. Robustness to market vol...
Challenge input
{ 'historical_prices': list[float], 'future_period': int }
Agent execution
No agent tool is listed for this challenge.
Evaluated output
{ 'predicted_prices': list[float] }
- Checks if the optimization model converges and provides a feasible solution.
- Verifies that BESS charge/discharge rates and SOC limits are respected.
- Mean Absolute Error (MAE) Of Price Forecast target: 5
- Python execution harness
Summary shows the first task, up to three tools, and up to three evidence items. Open the technical recipe to view all configured items.
View technical recipe
Configured tools
No tool records are attached.
Evaluation contract
- Checks if the optimization model converges and provides a feasible solution.
- Verifies that BESS charge/discharge rates and SOC limits are respected.
Metrics
- Mean Absolute Error (MAE) of Price Forecast · Target 5
- Simulated Net Revenue · Target 750000
- Computational Efficiency (Optimizer Run Time) · Target 10
Workflow tasks
- Task 1
Input: { 'historical_prices': list[float], 'future_period': int }
Output: { 'predicted_prices': list[float] }
Execution harness: Python
- Task 2
Input: { 'forecasted_prices': list[float], 'bess_params': { 'capacity_MWh': float, 'max_charge_MW': float, 'max_discharge_MW': float, 'efficiency': float, 'initial_soc': float } }
Output: { 'dispatch_schedule': list[{ 'hour': int, 'charge_MW': float, 'discharge_MW': float, 'soc': float }], 'total_revenue': float }
Execution harness: Python
Recipe freeze marker
No recipe freeze time is recorded.