BESS Multi-Consortium Dispatch Policy Engine for ACWA & Engie Deals
Saudi Energy, ACWA, and Engie consortiums landed $1.16bn in BESS contracts. Build a multi-tenant battery dispatch agent in Python that models multiple consortium operational guidelines, capacity payments, and state-of-health degradation constraints. Achieve optimal multi-tenant arbitrage without exceeding contractual cycle limits.
What you are building
The core problem, expected build, and operating context for this challenge.
Develop a multi-tenant policy engine in Python to optimize dispatch schedules for ACWA and Engie battery energy storage systems.
How work is evaluated
Evaluates multi-tenant dispatch schedules for maximum revenue while meeting cycle caps.
Challenge datasets
Public datasets, plus the private datasets you have access to.
How submissions are scored
These dimensions define what the evaluator checks and which criteria separate a passable run from a strong one.
cycle_cap_enforcement
Rejects schedules exceeding max_daily_cycles
This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.
revenue_optimization
Percentage of theoretical maximum arbitrage achieved • target: 90 • range: 0-100
This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.
What you should walk away with
Incorporate distinct consortium contractual rules (ACWA vs Engie PPA conditions).
Model battery cell degradation per equivalent full cycle (EFC).
Optimize power injection during high-margin evening grid demand.
Output verified dispatch schedules adhering to state-of-health guarantees.
Reference links and supporting material
Tariff schedules and battery operating profiles for major Saudi energy storage installations.
Challenge setup
Evaluates multi-tenant dispatch schedules for maximum revenue while meeting cycle caps.
Challenge input
JSON with consortium_name, max_daily_cycles, tariff_profile, and capacity_mwh
Python Optimization Tools
Solves constrained linear programming problems.
Evaluated output
JSON with daily_cycles_used, projected_revenue_usd, and schedule_valid
- Rejects schedules exceeding max_daily_cycles
- Percentage of theoretical maximum arbitrage achieved • target: 90 • range: 0-100
- Benchmark: BessOptBench
- Revenue Optimization target: 90
- 1 public reference case
- Python execution harness
- Python sandbox (unavailable on Versalist)
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
- RAI · Required
- Bito AI · Optional
- Helicone · Optional
Evaluation contract
- cycle_cap_enforcement · Weight 1
- revenue_optimization · Weight 1
Metrics
- revenue_optimization · Target 90
Benchmarks
- BessOptBench
- energy
Reference cases
- 1 public reference case
Workflow tasks
- Task 1
Input: JSON with consortium_name, max_daily_cycles, tariff_profile, and capacity_mwh
Output: JSON with daily_cycles_used, projected_revenue_usd, and schedule_valid
Execution harness: Python
Evaluation tools
- Python Optimization Tools · Optimization Engine
Recipe freeze marker
No recipe freeze time is recorded.