Table of contents¶
This is the full planned curriculum. Chapters are written one at a time, and each must be readable, executable, visual, tested and reproducible before the next one starts, so most of this list is a plan rather than finished material.
Status: available · next up · planned
Start here¶
Track A — Mathematics and operations research¶
| Part | Topic | Key methods | Status |
|---|---|---|---|
| I | Mathematical foundations | Vectors, matrices, derivatives, probability, statistics, optimisation notation (taught only as later chapters need it) | |
| II | Operations research foundations | Decision variables, objectives, constraints, feasible regions, duality, shadow prices, sensitivity, LP, MILP | Ch 1 · LP · T0 · Simplex by hand · Choosing a technique |
| XVII | Risk and uncertainty | Scenarios, Monte Carlo, VaR, CVaR, coherence, risk contributions, hedging, stochastic and robust optimisation, chance constraints | Ch 13 · Measuring portfolio risk · Ch 14 · Hedging the portfolio · Ch 15 · Committing before the prices are known · Ch 16 · Robust against the constraint you did not forecast · risk track below |
Methods introduced across the book, each tied to an energy problem: LP · MILP · IP · CP-SAT · convex and quadratic · nonlinear · dynamic programming · model predictive control · stochastic · robust · multi-objective · network flow · scheduling · inventory · routing · metaheuristics (only where exact methods are impractical, with an explanation of why).
Track B — Energy operations¶
| Part | Topic | Status |
|---|---|---|
| III | NEM mechanics: dispatch intervals, DUIDs, bids and price bands, availability, regional vs local price, MLFs, FCAS, predispatch, UIGF, rebidding | |
| IV | Forecasting: RRP, wind, solar, demand, availability, constraint risk; persistence → gradient boosting → probabilistic and quantile forecasts | |
| V | Renewable bid optimisation: ten price bands, dispatch probability, competitor stack, local price, contract position | Ch 8 · Ten price bands |
| VI | BESS optimisation: arbitrage → SOC limits, efficiency, FCAS, degradation, terminal SOC, uncertainty, rolling horizon, life cycle | Ch 2 · Arbitrage + FCAS · Ch 10 · Battery life · Ch 11 · Life planning and augmentation |
| VII | Reliability engineering: MTBF, failure rate, Weibull, hazard, FMEA/FMECA, RCM, RBDs, Markov models, RUL, fleet reliability | Ch 3 · Reliability (foundations + age replacement) |
| VIII | Maintainability: MTTR, repair-time distributions, access, skills, restoration probability | introduced in Ch 3 |
| IX | Maintenance optimisation: preventive, corrective, predictive, opportunistic, outage scheduling, bundling | Ch 4 · Window · Ch 5 · Campaign MILP |
| X | Logistics: cranes, specialist technicians, transport, warehousing, lead times, routing | |
| XI | Critical spare inventory: safety stock, reorder points, lead-time uncertainty, service level, multi-site | |
| XII | Workforce: competencies, shifts, travel, fatigue, qualifications | |
| XIII | Network constraints: constraint equations, congestion, marginal values, constrained-on/off, P(binding) | DC power flow, PTDFs and N−1 outage rows in Ch 16 |
| XIV | Contracts and commercial optimisation | Ch 6 · Two PPAs, one constraint · Ch 7 · Lenders and covenants · Ch 12 · Two contracts, one line |
| XV | PPA and LGC optimisation | introduced in Ch 6 |
| XVI | Peer, virtual-swap and reduction notifications | |
| XVIII | Portfolio and fleet optimisation: contract mix, shared resources, local vs global optimality | The Lantern Bay portfolio (fictional fleet, dossier method) · fleet optimisation is Milestone 8 |
| XIX | Backtesting: information policies, look-ahead bias, actual vs optimised | Ch 9 · Was the battery well traded? (Milestone 7) |
The risk track¶
Risk runs through the book (chance constraints in Chapter 4, covenants in Chapter 7, Monte Carlo backtests in Chapters 9 and 11), and Part XVII teaches it head on. Each chapter takes one risk an operator actually carries and one method that manages it.
| # | Chapter | Risk | Method | Status |
|---|---|---|---|---|
| 13 | How bad can a year get? | Portfolio revenue: price, volume, outages, certificates | Monte Carlo, VaR, CVaR, coherence, Euler and Shapley attribution, Kupiec backtest | Ch 13 |
| 14 | Hedging the portfolio | Selling price risk forward | Least squares, mean–variance QP, mean–CVaR LP and its duals, lots MILP, out-of-sample tests | Ch 14 |
| 15 | Committing a battery before the prices are known | Season commitments (network-support reserve, caps) before daily prices (Case B) | Two-stage stochastic programme, VSS and EVPI, L-shaped decomposition, SAA bounds, CVaR, realistic-recourse backtest | Ch 15 |
| 16 | Robust against the constraint you did not forecast | A battery scheme that relieves post-fault overloads (a virtual transmission line), when batteries may not respond (Case J) | DC power flow and PTDFs, robust LP with Bertsimas–Sim budgets (duality and cutting planes), risk-based security, distributionally robust CVaR, promised vs delivered | Ch 16 |
| R5 | Who pays if the buyer fails? | Offtaker credit risk, replacement cost, collateral | Default probabilities, expected and unexpected loss, credit limits as constraints | |
| R6 | Operational risk you cannot hedge | Long outages, serial defects, spares (Cases D, F) | FMEA/FMECA, insurance vs spares vs maintenance as a portfolio decision | |
| R7 | Risk over many years | Consecutive bad years, covenant breaches, refinancing | Path simulation, multi-stage hedging, risk-adjusted DSCR |
Track C — Production engineering¶
Runs alongside the modelling chapters rather than waiting until the end.
| Lab | Topic | Status |
|---|---|---|
| 1 | From notebook to tested package (packaging, typing, mathematical tests, CI) | Lab 1 |
| 2 | Exposing a model as an API (FastAPI), configuration and validation | |
| 3 | Data engineering: AEMO ingestion (NEMWEB directory listings, idempotent upserts on natural keys, archive fallback), Parquet, DuckDB, medallion layers, lineage, data-freshness health checks | Lab 3 |
| 4 | Containers and CD: Docker, staging, rollback | |
| 5 | MLOps: experiments, registry, deployment, drift, retraining, decision value vs accuracy | |
| 6 | OptOps: solver status, solve time, optimality gap, infeasibility diagnosis | |
| 7 | Latency budgets and performance engineering (pandas → Polars → DuckDB → caching → warm starts) | |
| 8 | Observability: logs, metrics, traces, dashboards, alerts — a control room for the optimiser | |
| 9 | Incident labs: late AEMO files, missing weather, NaN forecasts, infeasible models, blown latency budgets, telemetry disagreement, duplicate intervals | |
| 10 | Rolling-horizon services and continuous re-optimisation | Milestone 9–10 |
Track D — Industry intelligence (later)¶
After the modelling tracks: monitor the companies that own and operate NEM and WEM assets, research them from public sources only, and turn the research into structured analysis. Planned: a public-data company register (owners, parents, assets by region and technology); SWOT and PESTLE templates filled from cited sources; financial-statement analysis of listed parent companies (revenue mix, margins, leverage, contracted vs merchant exposure); and a watch list that links a company's assets to the market data in Track B. Every fact cites its source and date, and confidential material never enters this track.
Flagship cases¶
These cases recur across chapters, gaining realism each time.
| Case | Problem | First appears |
|---|---|---|
| A | Two wind farms sharing network capacity | Chapter 1 |
| B | 10 MW / 20 MWh BESS dispatch, 3–97 % SOC envelope | Chapter 2 |
| C | Fleet component replacement: 28 turbines, 26 need work, limited resources | Chapter 5 |
| D | Gearbox / heavy-component replacement needing a crane | Ch 3 (when) · Ch 4 (window) · Ch 5 (resources) |
| E | Crane + weather scheduling: seven continuous safe hours | Chapter 4 |
| F | Critical spares: 100 turbines, 2 spare gearboxes, 1 crane | Inventory (Part XI) |
| G | Seven-day site-manager planner | core in Chapter 4 |
| H | PPA/LGC economics: identical generators, different bids | Chapter 6, finance view in Chapter 7 |
| I | Offtaker / peer reduction requests over 1, 2, 3, 6 intervals | Part XVI |
| J | Constraint forecasting: weather → network state → P(binding) → dispatch | post-fault limits and a virtual transmission line in Chapter 16; forecasting in Part XIII |
| K | Ten-band bid stack and price formation | Chapter 8 |
| L | Portfolio optimisation | Lantern Bay · risk in Ch 13 · hedging in Ch 14 |
Optimisation toolbox (one problem, many techniques)¶
Alongside the operational chapters, a toolbox track revisits the flagship problems with different formulations, algorithms and solvers: fundamentals (existence, uniqueness, ill-posedness, local vs global, least squares, gradient descent, non-convexity), Pyomo / OR-Tools / CBC with optional Gurobi and CPLEX, convex and conic models, MILP internals, CP-SAT, dynamic programming, stochastic, robust and decomposition methods. See the optimisation skills map for what is taught, introduced and planned.
Capstone¶
Forecast → optimise → act → measure → backtest → learn → re-optimise, across an entire renewable portfolio, running as an observable service.