Economic Dispatch
ED · SCED · QP
Real-time · Continuous Allocation · Equal Incremental Cost
Once unit commitment has decided which generators are online, how much should each produce? Every 5 to 15 minutes a grid operator re-solves the economic dispatch problem: minimize total fuel cost while meeting load exactly. The famous equal-incremental-cost principle — set marginal cost equal across all unconstrained units — falls out directly from the KKT conditions. It has been the heartbeat of electric-grid economics since Steinberg & Smith formalized it in 1943.
The problem
Real-time decision · mathematical characterization
Economic dispatch is the problem that never stops running. Once the day-ahead unit commitment has fixed which generators are online for each hour, the real-time operation of the grid becomes a continuous-allocation problem: take the load observed right now, call it $D$, divide it among committed generators at minimum total cost. Unlike unit commitment, there are no binary variables — every committed unit is definitely running; the only question is how hard.
The cost of generating power at unit $i$ is well approximated by a convex quadratic: $c_i(p) = a_i + b_i p + c_i p^2$ with $c_i > 0$. Minimizing the sum of these quadratics subject to a single equality constraint (balance) and capacity bounds is a convex quadratic program (QP). It is arguably the simplest OR problem you can still meaningfully call “operations research” — and it runs on every high-voltage grid on Earth, every five to fifteen minutes, billions of dollars of power flow riding on each solution.
The equal-incremental-cost principle is the central insight. In an unconstrained dispatch (every generator strictly between its min and max), the optimum has $\frac{dc_i}{dp_i} = \lambda$ for every unit $i$ — that is, all units produce at the same marginal cost. The common value $\lambda$ is the system marginal price (SMP) and is, in a competitive market, the wholesale electricity price. Units that hit their capacity limit drop out of the “equal $\lambda$” condition and lock to $P^{\min}$ or $P^{\max}$ — they become inframarginal.
Modern ISOs solve a richer variant called Security-Constrained Economic Dispatch (SCED). SCED couples the equal-$\lambda$ rule to DC power-flow constraints on the transmission network: if a line would overload, generators on either side are forced to redispatch, producing locational marginal prices (LMPs) that differ across nodes when congestion bites. PJM solves an SCED every five minutes for approximately 2,000 generators and 13,000 transmission lines. MISO, CAISO, ERCOT, and NYISO run similar real-time SCED engines.
Mathematical formulation
Convex QP · equal-λ KKT condition
Notation
We index already-committed generators by $i \in \mathcal{G}$. Unlike UC there is no time index — ED is a snapshot problem solved for each dispatch interval.
| Symbol | Meaning | Units |
|---|---|---|
| $\mathcal{G}$ | Set of committed generators | — |
| $D$ | Current system load | MW |
| $P_i^{\min}, P_i^{\max}$ | Technical min and max of generator $i$ | MW |
| $a_i, b_i, c_i$ | Quadratic-cost coefficients: $c_i(p)=a_i+b_i p+c_i p^2$ | \$, \$/MW, \$/MW$^2$ |
| $p_i$ | Power output of generator $i$ | MW |
| $\lambda$ | System marginal price (dual of balance) | \$/MWh |
Objective
Minimize total instantaneous production cost:
Since every $c_i > 0$ the objective is strictly convex, so the problem has a unique global minimum.
Constraints
Power balance (single equality):
Capacity bounds:
That is the entire deterministic classical ED. One equality, $2|\mathcal{G}|$ inequality bounds, no integers, a convex quadratic objective. The Karush–Kuhn–Tucker (KKT) conditions give the closed-form structure.
KKT conditionsequal-incremental-cost principle
Attach multiplier $\lambda$ to (2) and $\underline{\mu}_i, \overline{\mu}_i \ge 0$ to (3). Stationarity gives:
Complementary slackness: $\underline{\mu}_i (p_i - P_i^{\min}) = 0$ and $\overline{\mu}_i (P_i^{\max} - p_i) = 0$. Three cases result:
- Interior ($P_i^{\min} < p_i < P_i^{\max}$): $\underline{\mu}_i = \overline{\mu}_i = 0$, so $b_i + 2 c_i p_i = \lambda$. The unit dispatches at equal incremental cost.
- At maximum ($p_i = P_i^{\max}$): $\overline{\mu}_i = 2 c_i P_i^{\max} + b_i - \lambda > 0$. The unit is inframarginal: lowering $\lambda$ can't pull it out.
- At minimum ($p_i = P_i^{\min}$): $\underline{\mu}_i = \lambda - b_i - 2 c_i P_i^{\min} > 0$. The unit would like to shut off but is committed.
Given $\lambda$, the optimal dispatch of each unit is the clip:
Then $\lambda$ is adjusted until $\sum_i p_i^*(\lambda) = D$. This is the $\lambda$-iteration algorithm.
Complexity
Deterministic ED is polynomial-time solvable. With $n$ units and quadratic costs, $\lambda$-iteration converges in $O(\log(1/\epsilon))$ iterations of bisection, each costing $O(n)$, for total $O(n \log(1/\epsilon))$. Direct KKT enumeration sorts units by their break-point $\lambda$ values and assembles the solution in $O(n \log n)$. General QP solvers (active-set, interior-point) also handle it in polynomial time.
The real complexity of modern dispatch is in the network-constrained extension (SCED), which becomes a much larger LP or QP with thousands of transmission-flow constraints, still convex and solvable in seconds by commercial solvers (Gurobi, CPLEX, MOSEK) at ISO scale.
Real-world data
Benchmark libraries · test systems
MATPOWER OPF cases
MATPOWER ships with standard cases (case9, case30, case118, case300, case2383wp, case13659pegase) that include generator quadratic cost coefficients $a_i, b_i, c_i$. These are the most widely cited ED benchmarks in the OR and power-systems literature.
PGLIB-OPF
The PGLIB-OPF benchmark library maintained by the IEEE PES Task Force contains 350+ systems with full OPF/ED data, including Polish, French, and synthetic 2000-bus continental cases.
IEEE RTS-96 / RTS-GMLC
The RTS-GMLC includes 73 thermal generators with realistic cost curves and 8760 hours of load data — suitable for coupled UC/ED studies.
Illustrative 8-unit pool (shared with UC)
The interactive solver below re-uses the same 8-generator pool as the unit-commitment page: five thermal units (coal/gas-CC/gas-CT/oil), one peaker, one combined-cycle, and one flexible hydro. Quadratic cost coefficients produce realistic merit-order curves. The solver assumes all units are already committed (UC has been solved upstream).
Interactive solver
Three algorithms · λ-convergence & merit-order visualization
Parameters
Algorithm
Merit order & dispatch
Solution interpretation
What a market operator reads from the dispatch
The merit-order curve shows, for every cumulative megawatt of capacity, what the next megawatt would cost. It is a piecewise-linear upward-sloping staircase (each unit's $2 c_i p + b_i$ line) and its intersection with the horizontal “load” line is the system marginal price $\lambda$. Cheap baseload units (coal, hydro) fill the left of the curve; peaking gas and oil fill the right, where $\lambda$ spikes when load is high.
In a competitive electricity market, $\lambda$ is the wholesale energy price — the dollars paid per MWh to every marginal unit, and the dollars charged per MWh to every load. When congestion forces SCED to depart from a single $\lambda$, each node gets its own locational marginal price (LMP), and persistent congestion between two regions shows up as a persistent LMP spread — the economic signal that tells transmission planners where to build new lines.
Inframarginal rents are the daylight between the actual price $\lambda$ and each generator's own marginal cost $b_i + 2 c_i p_i$ at the dispatched output. Baseload units earn large inframarginal rents when the system is peak-loaded and $\lambda$ is set by an expensive peaker: coal at \$25/MWh earns \$40 of rent per MWh when a \$65/MWh peaker is setting the price. These rents, aggregated over a year, pay the fixed costs of generation — the recovery of capital, labour, insurance, maintenance — that the short-run ED formulation deliberately omits.
The algorithms all give the same answer for this deterministic convex QP — that is a correctness check, not a horserace. They differ in speed, numerical robustness, and extensibility: $\lambda$-iteration is the simplest and most robust for unconstrained dispatch; direct KKT exploits the closed-form structure and is fastest for pure quadratic ED; merit-order greedy is an instructive approximation that falls apart gracefully under strictly linear (non-quadratic) cost curves, which is what a piecewise-linear MILP formulation of ED would use.
Extensions & variants
Where ED research and practice live today
Security-Constrained ED (SCED)
The version PJM, MISO, CAISO, ERCOT, and every other large ISO actually runs. Extends ED with a DC power-flow constraint set (bus angles, line flows, thermal limits) and yields nodal LMPs as duals of the nodal balance constraints. Solved every five minutes; interior-point QP on 10,000+ variables.
Dynamic ED with ramp limits
When re-dispatching over a multi-period rolling horizon, the temporal coupling $|p_{i,t} - p_{i,t-1}| \le R_i$ produces a multi-period QP. Used in look-ahead dispatch (LMED, 1–4 hour horizon) to avoid ramp-constrained outages that single-period ED cannot see coming.
Environmental / Emission ED
Multi-objective variant that trades fuel cost against CO$_2$ (or SO$_2$, NO$_x$) emissions. Either scalarize via $\epsilon$-constraints (emissions cap) or dualize with a carbon adder $\tau$ that modifies the effective marginal cost to $b_i + 2 c_i p_i + \tau \cdot e_i$. The dual is exactly a carbon price.
Stochastic / robust ED under renewables
Wind and solar forecast errors propagate into dispatch: a pre-dispatch solution based on a point forecast must be correctable. Look-ahead stochastic ED optimizes over scenarios; robust ED bounds worst-case redispatch costs. Common in high-renewable systems (Germany, Denmark, Ireland, California).
Multi-area / joint dispatch
When multiple control areas are interconnected via tie lines (BPA + CAISO, ERCOT + SPP, Nord Pool) the dispatch couples through import/export flow constraints. Solved via decomposition (Dantzig–Wolfe, auxiliary-principle problem) or as a single joint QP at the RTO/ISO level.
Losses and penalty factors
The original Kirchmayer (1958) extension: transmission losses mean that the power arriving at the load is less than the power generated. A penalty factor multiplier on each unit's marginal cost accounts for its losses, yielding an $\lambda$-iteration with location-dependent effective $b_i$. Superseded by DC-OPF / SCED in modern practice but still taught.
Key references
Cited above · DOIs and permanent URLs