PowerMarketJax: A JAX Benchmark Suite for Multi-Agent Reinforcement Learning in Power Markets
Organizations: Nanyang Technological University, Singapore. · Cornell University, USA. · University of Bristol, UK.
Abstract
Power markets are a natural testbed for multi-agent reinforcement learning (MARL), where multiple self-interested participants repeatedly submit bids. A market-clearing mechanism then determines dispatch and prices subject to power grid constraints and market settlement rules. However, existing MARL environments typically focus on a single market setting, implement simplified clearing mechanisms, or rely on CPU-based optimization solvers that slow large-scale training and limit the systematic study of bidding strategies and market behavior. We introduce PowerMarketJax, a benchmark suite for MARL across five power markets: day-ahead wholesale, real-time balancing, ancillary services, peer-to-peer double auctions, and local flexibility. Each environment implements its own clearing, pricing, and settlement rules while providing a common framework for learning and evaluation. We find that learned bidding behavior depends strongly on the market design: independent learners can miss better strategies when gains require many agents to change together, when more profitable strategies lie beyond a region of lower profit, or when profits disappear as more agents adopt the same strategy. PowerMarketJax implements both market simulation and policy training in JAX, allowing the entire pipeline to run on the GPU with 1,024 X 1,200 parallelisms across both environments and market participants, achieving up to 33X speedup over CPU-based baselines. Our open-source benchmark is available at: https://github.com/powermarketjax/PowerMarketJax.
Figures & tables
Appendix figures & tables40 assets
Supplementary material from the paper’s appendix.
Appendix
| Market | Quantity | Data | Absolute difference | Relative difference |
| M1 | LMP | 36 days 24 h, case29gb | $/MWh | |
| Award | MW | |||
| Objective value | $ | |||
| Settlement (profit) | $ | |||
| M2 | LMP | 36 days 48 half-hours, case29gb | $/MWh | |
| Award | MW |
| Market | Test system | Price | Periods | Price difference ($/MWh) | Relative objective difference |
| M1 | case29gb | LMP | 864 | ||
| M1 | case73rts | LMP | 864 | ||
| M1 | case813nem | LMP | 864 | ||
| M2 | case29gb | LMP | 1 728 | ||
| M3 | case29gb | LMP | 1 728 | ||
| M3 | case29gb | Reserve price | 1 728 |
| Hyperparameter | IPPO | SAC |
| Optimiser | Adam | Adam |
| Learning rate | , constant | actor , Q-networks and temperature |
| Discount factor | 0.99 | 0.99 |
| Hidden layers | two layers of 64 units, | two layers of 256 units, ReLU |
| GAE parameter | 0.95 | — |
| Clipping range | 0.2 | — |
| Market | Seeds per learner | Iterations | Parallel environments and steps per iteration | Environment steps per iteration |
| M1 day-ahead wholesale | 3 | 400 | 64 environments, 4 steps each | 256 |
| M2 real-time balancing | 3 | 200 | 64 environments, 48 steps each | 3 072 |
| M3 ancillary services | 3 | 200 | 64 environments, 48 steps each | 3 072 |
| M4 peer-to-peer local energy | 3 | 400 | 64 environments, 96 steps each | 6 144 |
| M5 local flexibility | 3 to 10 | early stopping a , at most 300 | 64 environments, 24 steps each | 1 536 |
| Test system | Grid | Demand data | Time span | Training / evaluation days | Markup cap |
| case29gb | A reduced 29-bus model of the GB transmission network a (network diagram b ), 66 units | GB transmission system demand (NESO) c , day-ahead forecast from Elexon d | 2023-07-10 to 2024-07-08 | 329 / 36 | 2 |
| case73rts | The RTS-GMLC test system e , 73 units | Load, wind, solar and hydro of RTS-GMLC f | 2020-01-01 to 2020-12-31 | 330 / 36 | 1.4 |
| case813nem | An open grid model of the Australian National Electricity Market g , 151 units | Operational demand and day-ahead forecast of the four mainland regions from the Australian Energy Market Operator (AEMO) h | 2025-02-01 to 2026-01-31 | 329 / 36 | 2 |
| Test system | Markup cap | Value of lost reserve (£/MWh) |
| case29gb | 2 | 250 |
| case73rts | 2 | 136 |
| case813nem | 2 | 147 |
| Data source | Households | Period covered | Training and held-out | Licence |
| Quarter-hour injection and offtake from Fluvius smart meters a | 1 200, all with PV | 2024-04-01 to 2024-10-26, 209 days | 3 consecutive days held out of every 15; 14 702 training and 2 702 held-out episode starts; evaluation on 1 024 held-out episodes, of which the figures below use 64 | Fluvius open data licence |
| Data | Source | Licence | Training days | Validation days | Test days |
| Swiss distribution feeder 459_0 | SwissDN a , Zapparoli et al. (2025) b | CC BY 4.0 | 293 days | 36 days (the 5th, 15th and 25th of each month) | 36 days (the 1st, 11th and 21st of each month) |
| Energy price (category C2, 2026) | ElCom c | opendata.swiss Open use | — | — | — |