AEMO SDP-Teacher Decision Transformer (Stage B)
Stage-B standalone Decision Transformer cloned from the honest SDP/MPC
executor β no solver needed at inference. Trained on self-consistent
(observation, 9-dim action, reward) trajectories generated by replaying the
honest (non-clairvoyant) SDP energy planner + greedy current-price FCAS bidder
on historical AEMO market data.
This model is the deployable "preferred algorithm" goal from the
energydecision research β a
pure transformer that beats PPO on standard (3.4Γ), dispatch-matched (2.1Γ),
2025 OOD (1.83Γ), and the impact gate (1.9β3.0Γ) with no solver at
inference. See Benchmark Results.
Training Summary
| Metric |
Value |
| Device |
cuda |
| Final train loss |
0.065968 |
| Final val loss |
0.041527 |
| Best val loss |
0.041527 |
| Epochs |
3 |
| Steps |
1,251 |
| Duration |
0.17 h |
Architecture
| Parameter |
Value |
| Architecture |
Modern DT (GGA, QK-Norm, SwiGLU, RMSNorm, weight-tied) |
| Blocks |
8 |
| Hidden dim |
768 |
| Heads |
12 (6 KV) |
| Context length |
210 timesteps (~17.5 hours at 5-min resolution) |
| Action dim |
9 (full_fcas: energy + 8 FCAS services) |
| State dim |
18 (AEMO normalized observations) |
| Action head |
mixed β Tanh for energy dim 0 β [-1, 1], Sigmoid for FCAS dims 1β8 β [0, 1] |
| Loss |
MSE (action loss weight = 0.999, state = 0.002, return = 0.0001) |
| Optimizer |
AdamW, LR 3e-5, weight decay 1e-4 |
| Discount |
0.95 |
| Return scale |
1.0 |
| Stride |
105 (overlapping windows) |
Training Data
- Dataset:
mrvictoru/AEMO_simulated_trade_sdp
- File:
dt_trajectories_full.parquet (conservative teacher, deg_cost_per_mwh=50)
- Episodes: 320 (5 regions Γ 2 horizons Γ 4 batteries Γ 8 each)
- Rows: 3,133,440
- Teacher: Honest SDP/MPC executor β seasonal forecast + stochastic DP for energy
- greedy current-price FCAS bidding. Non-clairvoyant (no future prices), degradation-aware.
Action Space (9-dim, full_fcas)
| Dim |
Range |
Meaning |
| 0 |
[-1, 1] |
Energy dispatch (positive = charge, negative = discharge) |
| 1 |
[0, 1] |
RAISEREG bid |
| 2 |
[0, 1] |
LOWERREG bid |
| 3 |
[0, 1] |
RAISE6SEC bid |
| 4 |
[0, 1] |
LOWER6SEC bid |
| 5 |
[0, 1] |
RAISE60SEC bid |
| 6 |
[0, 1] |
LOWER60SEC bid |
| 7 |
[0, 1] |
RAISE5MIN bid |
| 8 |
[0, 1] |
LOWER5MIN bid |
State Space (18-dim, normalized)
| Dim |
Meaning |
| 0β3 |
Time: hour_sin, hour_cos, day_sin, day_cos |
| 4 |
is_peak (boolean) |
| 5 |
RRP (normalized) |
| 6 |
TOTALDEMAND (normalized) |
| 7β14 |
8Γ FCAS prices (normalized) |
| 15β16 |
GEN_solar%, GEN_wind% |
| 17 |
Battery SOC (normalized: SOC/capacity) |
Benchmark Results
| Surface |
SDP-Teacher DT |
PPO |
Verdict |
| Standard Oct (5 regions) |
$7,914 |
$2,353 |
DT 3.4Γ |
| Dispatch-matched (SA1 JulβDec) |
$47,942 |
$22,530 |
DT 2.1Γ |
| Expanded broad-2024 |
$11,943 |
$19,504 |
PPO wins (pilot limitation) |
| 2025 OOD |
$11,925 |
$6,498 |
DT 1.83Γ |
| Impact (small/horn/torr) |
3.0Γ/1.9Γ/2.1Γ |
β |
DT wins |
Intended Use
- Research into offline RL for energy markets
- Simulation of battery trading in AEMO NEM
- Baseline for comparing DT approaches against traditional RL
Limitations
- Energy arbitrage is weak on the expanded broad-2024 surface (pilot trained on
short+medium horizons; full-corpus retrain with
dt_trajectories_aggressive
addresses this)
- Not intended for live trading without further validation
- Degrades if the AEMO market structure changes significantly (2025+ regime shift)
Citation
@misc{energydecision_sdp_teacher_dt,
title={AEMO SDP-Teacher Decision Transformer (Stage B)},
author={mrvictoru},
year={2026},
url={https://huggingface.co/mrvictoru/energydecision-dt-v2-sdp}
}
Related