How much can shifting load to cleaner hours cut emissions, and when?
Average and marginal emission factors, and when moving electricity use to cleaner hours lowers CO₂
- Analyst · L2
- Case file
- 10 min
- After lesson 12
- Completed
1 · The puzzle
Grid electricity is cleaner in some hours than in others. If some electricity use moves into the cleaner hours, without using less in total, how much CO₂ does that save?
Words first: attributed emissions are a share of the grid's CO₂ assigned to a user; intensity is CO₂ per MWh; a window is the stretch of time within which use may move.
2 · The question in one sentence
How much do the emissions attributed to electricity consumption fall when load is re-timed according to hourly average grid emission intensity across U.S. regions, and which strategies suit which types of grid?
Question type: descriptive (how much?), with a prescriptive part (which strategy suits which grid?).
3 · Scale and boundary
- Inside: U.S. grid regions, every hour of 2023, and each region's load, moved within windows of a month, a quarter or a year.
- Left out: which plants actually change output when load moves, forecast errors, and the cost of moving load beyond a penalty.
4 · Decisions, goal and rules, in words
- Decisions: how much each hour's load moves up or down.
- Goal: the lowest attributed emissions over the window, plus a penalty for each adjusted hour.
- Rules: the window's total use does not fall; no hour moves beyond the allowed range, such as ±5%.
5 · Data and method
- A mixed-integer load-regulation model, solved for each window with EIA's hourly data for 2023.
- Regions are grouped by renewable share, the diversity of their generation and how much their intensity swings; the window, the range and the penalty are varied.
6 · What came out, and where it holds
Longer optimization windows and wider adjustment ranges increased the reduction in attributed emissions, most in renewable-rich and diverse grids.
In grids with diverse generation resources, expanding the adjustment range from ±5% to ±8% can boost carbon reductions from 1.19% to 1.64%.
In the reported scenarios, reductions in attributed emissions were on the order of one to two percent of regional totals or less.
Regions with low intensity fluctuation were more sensitive to the cost of regulating load.
Reductions are computed under average-emission-intensity accounting with perfect foresight; they are not estimates of the consequential (marginal) system response.
Holds when: each hour keeps its average intensity, and the whole window is known in advance. Leaves out: which plants respond.
The study in time
- May 2025 · Paper published. Load re-timed by hourly average emission intensity in U.S. grid regions, with windows of a month, a quarter or a year. Source: Li et al. (2025), Cell Reports Sustainability 2, 100367
- 30 October 2026 · Code released. Source: ghg-load-regulation on GitHub, as of 3 November 2026
Every result about the study is quoted from the approved excerpt of the published paper named in the sources. Prairie Town below is illustrative, on real hourly shapes.
The idea behind it, then where the result holds
Move 10 MWh in Prairie Town's day (Prairie Town, 9 June 2025, illustrative)
Negative means less CO₂; t means metric tonnes.
- Evening → midday (20:00–21:00 to 14:00–15:00): change in attributed emissions −2.4 t; change in what the plants emit −5.5 t.
- Dawn → small hours (06:00–07:00 to 03:00–04:00): change in attributed emissions −0.3 t; change in what the plants emit 0.0 t.
- Evening → 08:00 (20:00–21:00 to 08:00–09:00): change in attributed emissions −2.4 t; change in what the plants emit −2.9 t.
| Hour | Demand | Gas | Average | On the margin |
|---|---|---|---|---|
| 00:00–01:00 | 231 | 58 | 0.09 | the combined-cycle plant (0.37) |
| 01:00–02:00 | 223 | 57 | 0.09 | the combined-cycle plant (0.37) |
| 02:00–03:00 | 217 | 53 | 0.09 | the combined-cycle plant (0.37) |
| 03:00–04:00 | 215 | 52 | 0.09 | the combined-cycle plant (0.37) |
| 04:00–05:00 | 216 | 57 | 0.10 | the combined-cycle plant (0.37) |
| 05:00–06:00 | 222 | 64 | 0.11 | the combined-cycle plant (0.37) |
| 06:00–07:00 | 230 | 72 | 0.12 | the combined-cycle plant (0.37) |
| 07:00–08:00 | 243 | 46 | 0.07 | the combined-cycle plant (0.37) |
| 08:00–09:00 | 254 | 0 | 0.00 | spilled wind and sun (0.00) |
| 09:00–10:00 | 264 | 0 | 0.00 | spilled wind and sun (0.00) |
| 10:00–11:00 | 275 | 0 | 0.00 | spilled wind and sun (0.00) |
| 11:00–12:00 | 286 | 0 | 0.00 | spilled wind and sun (0.00) |
| 12:00–13:00 | 297 | 0 | 0.00 | spilled wind and sun (0.00) |
| 13:00–14:00 | 307 | 0 | 0.00 | spilled wind and sun (0.00) |
| 14:00–15:00 | 315 | 0 | 0.00 | spilled wind and sun (0.00) |
| 15:00–16:00 | 323 | 0 | 0.00 | spilled wind and sun (0.00) |
| 16:00–17:00 | 328 | 0 | 0.00 | spilled wind and sun (0.00) |
| 17:00–18:00 | 329 | 25 | 0.03 | the combined-cycle plant (0.37) |
| 18:00–19:00 | 326 | 68 | 0.08 | the combined-cycle plant (0.37) |
| 19:00–20:00 | 317 | 134 | 0.16 | the combined-cycle plant (0.37) |
| 20:00–21:00 | 303 | 179 | 0.24 | the peaker (0.55) |
| 21:00–22:00 | 292 | 176 | 0.24 | the peaker (0.55) |
| 22:00–23:00 | 274 | 154 | 0.21 | the peaker (0.55) |
| 23:00–24:00 | 253 | 128 | 0.19 | the combined-cycle plant (0.37) |
Prairie Town's plants, sizes and CO₂ rates are illustrative (lesson 0). Its demand, wind and sun follow the real shapes of 9 June 2025 on the Southwest Power Pool grid (EIA-930, accessed 2 November 2026), the day of lesson 9.
Each hour runs cheapest first, with no ramp limits; CO₂ is counted at the plant only.
Two factors, two questions
| Factor | How it is built | The question it answers | Moving 10 MWh from 06:00 to 03:00 |
|---|---|---|---|
| Average (t CO₂ per MWh) | the hour's CO₂ ÷ the hour's use | How much of the grid's CO₂ is attributed to my use? | −0.3 t |
| Marginal (t CO₂ per MWh) | the CO₂ of the plant that serves one more MWh | What do the plants emit differently if I change my use? | 0.0 t |
Shifting cuts what the plants emit when it moves use away from a dirtier marginal plant, toward spare wind and sun or a cleaner plant. The marginal plant is lesson 8's idea.
Slide the adjustment range
- Each hour of the grid has an average emission intensity.
- The model moves part of the load from high-intensity hours to low-intensity hours in the same window, within an allowed range, and keeps total use unchanged.
- Attributed emissions fall by the load moved times the intensity gap between those hours.
- Because the range is limited, the reduction is modest; it grows with a wider range and a longer window.
A separate example with stylized numbers, from the course author's open explainer: not the study's data or results.
It counts each hour at its average intensity, so it shows attributed emissions only.
Text version: the slider's starting day, hour by hour
At ±5% on the large-swing day, 59.4 MWh of 2,385 MWh moves (2.5%) and attributed emissions fall by 0.94%; the day's total stays 2,385 MWh.
| Hour | Intensity | Before | After | Change |
|---|---|---|---|---|
| 00:00–01:00 | 428 | 82.0 | 77.9 | −4.1 |
| 01:00–02:00 | 426 | 79.0 | 75.0 | −4.0 |
| 02:00–03:00 | 424 | 77.0 | 73.7 | −3.3 |
| 03:00–04:00 | 424 | 76.0 | 72.2 | −3.8 |
| 04:00–05:00 | 426 | 77.0 | 73.2 | −3.9 |
| 05:00–06:00 | 430 | 81.0 | 77.0 | −4.0 |
| 06:00–07:00 | 432 | 88.0 | 83.6 | −4.4 |
| 07:00–08:00 | 405 | 96.0 | 100.8 | +4.8 |
| 08:00–09:00 | 365 | 101.0 | 106.0 | +5.1 |
| 09:00–10:00 | 318 | 104.0 | 109.2 | +5.2 |
| 10:00–11:00 | 275 | 106.0 | 111.3 | +5.3 |
| 11:00–12:00 | 245 | 107.0 | 112.3 | +5.4 |
| 12:00–13:00 | 230 | 108.0 | 113.4 | +5.4 |
| 13:00–14:00 | 228 | 109.0 | 114.5 | +5.5 |
| 14:00–15:00 | 240 | 110.0 | 115.5 | +5.5 |
| 15:00–16:00 | 268 | 112.0 | 117.6 | +5.6 |
| 16:00–17:00 | 315 | 115.0 | 120.8 | +5.8 |
| 17:00–18:00 | 375 | 119.0 | 125.0 | +6.0 |
| 18:00–19:00 | 430 | 121.0 | 115.0 | −6.1 |
| 19:00–20:00 | 452 | 118.0 | 112.1 | −5.9 |
| 20:00–21:00 | 448 | 112.0 | 106.4 | −5.6 |
| 21:00–22:00 | 440 | 104.0 | 98.8 | −5.2 |
| 22:00–23:00 | 434 | 95.0 | 90.3 | −4.8 |
| 23:00–24:00 | 430 | 88.0 | 83.6 | −4.4 |
Where the result holds
- It holds when
- emissions are counted at each hour's average intensity;
- each window is known in advance (perfect foresight);
- each window's total use does not fall;
- hourly EIA data for U.S. grid regions in 2023.
- It leaves out
- the grid's consequential response: which plants actually change output (the marginal view);
- forecast errors;
- the cost of moving load, apart from a penalty on each adjusted hour.
From the approved excerpt of Li et al. (2025), Cell Reports Sustainability.
Go deeper · ModelerMarginal emission factors from a model
- In a dispatch model, an hour’s marginal emission factor is the change in total CO₂ when that hour’s demand grows by one MWh.
- The toy reads it off each hour’s dispatch; a linear program finds it by solving again with one more MWh.
- It holds for a small change only, and it jumps between plants from hour to hour, so real estimates come from dispatch models or from statistics on years of hourly data.
- Putting carbon in the model: caps, prices, frontiers and procurement rules (Modeler lesson M6) takes this further.
Check yourself, then try it
Myth or fact? “Moving use into an hour with a lower average CO₂ per MWh always lowers what the plants emit.”
- Myth
- Fact
Answer
Myth. In Prairie Town, moving 10 MWh from 06:00 to 03:00 lowers the average-factor count by 0.3 t, yet the plants emit the same: the combined-cycle plant is on the margin in both hours.
Myth or fact? “Moving use out of a gas hour into an hour when wind or sun is being spilled lowers what the plants emit.”
- Myth
- Fact
Answer
Fact, up to the spilled amount.
At 14:00 Prairie Town spills 25 MWh of wind and sun, so 10 MWh moved there from 20:00 cut the peaker's CO₂ by 5.5 t; beyond the spill, the next plant serves it.
Try it yourself
Optional, about 30 minutes; needs Python on your computer (lesson B2).
- Run
examples/strategies.py: it compares a month, a quarter and a year as the window on four synthetic regions. Which kind of grid gains most from a longer window? - Write the synthetic regions with
ghg-framework synthetic my_inputs/. Then runghg-framework run my_inputs/ --region Mixed --limit 0.05, and again with--limit 0.08. Comparereduction_pct. - Then say why neither run can tell you which plant would change its output.
ghg-load-regulation: public example repository · MIT licence · synthetic data.
Numbers, sources and what’s next
Numbers to remember
| Number | What it means | Source |
|---|---|---|
| 1.19% → 1.64% | In grids with diverse generation resources, expanding the adjustment range from ±5% to ±8% can boost carbon reductions from 1.19% to 1.64%. | Li et al. (2025), Cell Reports Sustainability · published May 2025; data for 2023 |
| one to two percent or less | In the reported scenarios, reductions in attributed emissions were on the order of one to two percent of regional totals or less. | Li et al. (2025), Cell Reports Sustainability · published May 2025; data for 2023 |
Keep going
Where this came up before
Lesson 0 showed CO₂ per MWh changing hour by hour; lesson 8 named the marginal plant; lesson 9 moved energy through this same day with a battery.
Sources and further reading
- Li et al. (2025). Real-time greenhouse gas emission intensity informed demand-side load regulation for power grid decarbonization. Cell Reports Sustainability 2, 100367.
- EIA. Hourly Electric Grid Monitor (Form EIA-930): hourly demand and generation by fuel for U.S. balancing authorities and regions (accessed 3 November 2026).
- ghg-load-regulation on GitHub, version 1.0.0 (30 October 2026).
Spotted an error, or stuck? Write to hlli@ksu.edu. Corrections are made in place and dated here.
Text licensed CC BY 4.0, code MIT: teachers and students may reuse and adapt it, with credit to Honglin Li.