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.

Historical note
The equal-incremental-cost principle was formalized by Steinberg & Smith (1943) in their book Economy Loading of Power Plants and Electric Systems, distilling fifty years of utility-operator intuition into a rigorous calculus-of-variations argument. Kirchmayer (1958) extended it to include transmission losses via penalty factors — a formulation still used for simple unconstrained dispatch. Happ (1977) and the Wood & Wollenberg (2013) textbook canonicalized the $\lambda$-iteration algorithm. Industry has used these ideas for real-time dispatch on every grid in the world for eighty years.

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.

Sets, parameters, decision variables
SymbolMeaningUnits
$\mathcal{G}$Set of committed generators
$D$Current system loadMW
$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:

$$\min \quad \sum_{i \in \mathcal{G}} \left( a_i + b_i p_i + c_i p_i^2 \right) \qquad \text{(1)}$$

Since every $c_i > 0$ the objective is strictly convex, so the problem has a unique global minimum.

Constraints

Power balance (single equality):

$$\sum_{i \in \mathcal{G}} p_i \;=\; D \qquad \text{(2)}$$

Capacity bounds:

$$P_i^{\min} \;\le\; p_i \;\le\; P_i^{\max} \qquad \forall i \in \mathcal{G} \qquad \text{(3)}$$

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:

$$b_i + 2 c_i p_i \;=\; \lambda + \overline{\mu}_i - \underline{\mu}_i \qquad \forall i \qquad \text{(4)}$$

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:

$$p_i^*(\lambda) \;=\; \text{clip}\!\left( \frac{\lambda - b_i}{2 c_i}, \; P_i^{\min}, \; P_i^{\max} \right) \qquad \text{(5)}$$

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

6
650

Algorithm

Adjust parameters and press Dispatch.

Merit order & dispatch

Incremental-cost curve (\$/MWh vs cumulative MW) · horizontal line = λ
Dispatched MW per unit (capacity bar background, output bar filled)

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.

Refs: Wang, Shahidehpour & Li (2008); Wood & Wollenberg (2013), ch 3–4.

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.

Refs: Gribik et al. (2007); Wang & Hobbs (2016).

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.

Refs: Helmberg & Kiwiel (2002); Catalão et al. (2010); IEA cap-and-trade literature.

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).

Refs: Bouffard & Galiana (2008); Morales et al. (2014).

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.

Refs: Conejo & Aguado (1998); Pantoja et al. (2013).

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.

Refs: Kirchmayer (1958); Happ (1977).

Key references

Cited above · DOIs and permanent URLs

[1]
Steinberg, M. J., & Smith, T. H. (1943).
Economy Loading of Power Plants and Electric Systems.
John Wiley & Sons, New York. hathitrust.org
[2]
Kirchmayer, L. K. (1958).
Economic Operation of Power Systems.
Wiley, New York. hathitrust.org
[3]
Happ, H. H. (1977).
“Optimal power dispatch — a comprehensive survey.”
IEEE Transactions on Power Apparatus and Systems, 96(3), 841–854. doi:10.1109/T-PAS.1977.32397
[4]
Wood, A. J., Wollenberg, B. F., & Sheblé, G. B. (2013).
Power Generation, Operation, and Control (3rd ed.).
Wiley. wiley.com
[5]
Bouffard, F., & Galiana, F. D. (2008).
“Stochastic security for operations planning with significant wind power generation.”
IEEE Transactions on Power Systems, 23(2), 306–316. doi:10.1109/TPWRS.2008.919318
[6]
Wang, J., Shahidehpour, M., & Li, Z. (2008).
“Security-constrained unit commitment with volatile wind-power generation.”
IEEE Transactions on Power Systems, 23(3), 1319–1327. doi:10.1109/TPWRS.2008.926719
[7]
Gribik, P. R., Hogan, W. W., & Pope, S. L. (2007).
“Market-clearing electricity prices and energy uplift.”
Harvard Electricity Policy Group working paper. harvard.edu
[8]
Conejo, A. J., & Aguado, J. A. (1998).
“Multi-area coordinated decentralized DC optimal power flow.”
IEEE Transactions on Power Systems, 13(4), 1272–1278. doi:10.1109/59.736266
[9]
Morales, J. M., Conejo, A. J., Madsen, H., Pinson, P., & Zugno, M. (2014).
Integrating Renewables in Electricity Markets: Operational Problems.
Springer, International Series in Operations Research & Management Science, 205. doi:10.1007/978-1-4614-9411-9
[10]
Catalão, J. P. S., Mariano, S. J. P. S., Mendes, V. M. F., & Ferreira, L. A. F. M. (2010).
“A practical approach for profit-based unit commitment with emission limitation.”
International Journal of Electrical Power & Energy Systems, 32(3), 218–224. doi:10.1016/j.ijepes.2009.07.008
Generator cost coefficients on this page are illustrative of US-northeast thermal fleets and are not a specific utility's data. The in-browser solver is an educational demo; production SCED engines are commercial QP solvers on networked formulations.