The Plains Grid in a hard year
A 300 MW data center asks to connect at Prairie Town: choose what connects and what to build, test a peak-demand week and a low-wind winter week, check adequacy and show who pays
The brief
A 300 MW data center asks to connect at Prairie Town. Recommend how much of it connects this year and what the Plains Grid should build so it stays adequate through a hard year, and say who pays.
- Hand in: a plan link and a two-page study note with its sensitivity chart and a paragraph from M2's notebook (below the note).
- From: the Grid Room's engine on the fictional Plains Grid, with 2025's hourly shapes, a peak-demand week and a low-wind winter week.
- Done when: every check under the note is in place (the brief's 0.1 loss-of-load days a year, the chart and the notebook paragraph among them), and the self-check reaches Proficient on every competence.
About 180 minutes: 70 to build and test plans, 70 to write the note, 40 to check it.
Plus M2's notebook, about 45 minutes: run every cell. Its practice section is optional, about 90 minutes more.
In the real world
A late grid connection costs the developer lost margin and carrying costs; ratepayers face utility carrying and stranding costs; society bears external costs.
The study keeps these present-value accounts separate.
Staged energization can recover a large share of that cost.
Ratepayer exposure depends strongly on large-load tariff design.
The full case: case file CF7. This capstone asks the network and adequacy side of the same question.
Build and test your plan
| Control | Default plan | Range |
|---|---|---|
| Large load connected this year | 300 MW | 150 to 300 MW, in steps of 150 MW |
| Share it can curtail (bid $500/MWh) | 0 % | 0 to 20 %, in steps of 20 % |
| New peakers at Prairie Town (50 MW each) | 0 units | 0 to 6 units, in steps of 2 units |
| Battery at Prairie Town (4 hours) | 0 MW | 0 to 100 MW, in steps of 100 MW |
| Town–Metro uprate | 0 MW | 0 to 300 MW, in steps of 300 MW |
| Operating reserve required | 250 MW | 150 to 250 MW, in steps of 100 MW |
| Share of new costs the large load pays | 0 % | 0 to 100 %, in steps of 10 % |
| New peaker cost | 74 $/kW-year | 56 to 111 $/kW-year, in steps of 1 $/kW-year |
| Battery cost | 178 $/kW-year | 134 to 267 $/kW-year, in steps of 1 $/kW-year |
| Uprate cost | 15 $/kW-year | 5 to 40 $/kW-year, in steps of 1 $/kW-year |
- Choose: with JavaScript on, a plan on the precomputed grid; its year shows at once.
- Run: one day live, and the adequacy check, in your browser.
- Copy: the plan link and your note.
Without JavaScript, the capstone becomes a reading exercise: write the note on the reference plan in the results below.
| Results: the default plan (all 300 MW, nothing built), then the reference plan | Value |
|---|---|
| Default: the plan | 300 MW connected · 0 new peakers · 0 MW uprate · 0% of new costs paid by the large load |
| Default: production cost, a year (2025 dollars) | $448.3M |
| Default: other customers against today's grid, a year | +$68.6M (26-day estimate) · +$89.7M (every day of 2025) |
| Default: the large load pays, a year | $82.6M (26-day estimate) · $85.3M (every day of 2025) |
| Default: hard weeks, unserved · Town's highest price (conditional on the commitment) | 123 MWh · $5,000/MWh |
| Default: loss-of-load expectation (90% interval) | 7.62 days a year (7.47 to 7.76) |
| Reference: the plan | 300 MW connected · 6 new peakers · 300 MW uprate · 50% of new costs paid by the large load |
| Reference: production cost, a year (2025 dollars) | $447.8M |
| Reference: other customers against today's grid, a year | +$72.3M (26-day estimate) · +$89.9M (every day of 2025) |
| Reference: the large load pays, a year | $91.5M (26-day estimate) · $93.0M (every day of 2025) |
| Reference: hard weeks, unserved · Town's highest price (conditional on the commitment) | 0 MWh · $45/MWh |
| Reference: loss-of-load expectation (90% interval) | 0.08 days a year (0.05 to 0.1003) |
Precomputed with this engine on 5 November 2026; today's grid: 0.08 loss-of-load days a year. Without JavaScript, write the note on the reference plan from these numbers, naming the plan in words in place of a link.
- Illustrative: the Plains Grid, its plants, links, outage rates and the uprate's cost; the large load is a load only, flat at its connected size.
- Based on SPP: 2025's hourly shapes for the year and the hard weeks; 2024's as well for the adequacy check (EIA-930).
- Costs: EIA's and NREL's values as yearly payments in 2025 dollars, within ranges you set (sources below).
- Precomputed: the year of each of the 128 plans on the grid, solved with this engine on 5 November 2026, each day's status kept. One day at a time and the adequacy check run live.
- The grid: half or all of the load, flexible or not, 0, 2, 4 or 6 new peakers, a battery or not, an uprate or not, a 150 or 250 MW reserve.
- Reserve: one region-wide total; the model does not check whether it can reach a zone after a disturbance. The adequacy check counts plants and links, not this reserve.
Go deeperHow close 26 days come to every day of 2025 and of 2024
The year is 12 representative days (each month's most typical day, weighted by its days) plus the two hard weeks, day by day. The test runs four plans on every day of 2025, in order, and of 2024 as well:
| Plan and year | Production cost | Town's average price ($/MWh) | Other customers vs today | Uplift | CO₂ | Unserved | Town–Metro at its limit |
|---|---|---|---|---|---|---|---|
| Connect it, build nothing: estimate (26 days) | $448.3M | $32 | +$68.6M | $11.4M | 6,236 kt | 123 MWh | 419 h |
| every day of 2025 | $463.0M | $36 | +$89.7M | $6.3M | 6,310 kt | 270 MWh | 1,656 h |
| every day of 2024 | $463.9M | $39 | +$104.4M | $6.8M | 6,361 kt | 302 MWh | 1,443 h |
| Peakers and an uprate: estimate (26 days) | $447.8M | $29 | +$84.2M | $11.1M | 6,115 kt | 0 MWh | 0 h |
| every day of 2025 | $460.5M | $31 | +$101.8M | $4.9M | 6,250 kt | 0 MWh | 5 h |
| every day of 2024 | $461.7M | $31 | +$107.9M | $4.6M | 6,306 kt | 0 MWh | 7 h |
| Flexible load and a battery: estimate (26 days) | $447.7M | $29 | +$78.9M | $13.3M | 6,218 kt | 0 MWh | 455 h |
| every day of 2025 | $461.6M | $28 | +$88.7M | $6.9M | 6,286 kt | 0 MWh | 2,012 h |
| every day of 2024 | $462.6M | $29 | +$97.9M | $7.1M | 6,337 kt | 0 MWh | 1,825 h |
| Stage it: 150 MW now: estimate (26 days) | $412.6M | $25 | +$37.4M | $10.2M | 5,502 kt | 0 MWh | 1,425 h |
| every day of 2025 | $431.3M | $23 | +$38.4M | $6.9M | 5,734 kt | 0 MWh | 2,576 h |
| every day of 2024 | $430.9M | $23 | +$48.9M | $5.9M | 5,780 kt | 0 MWh | 2,386 h |
- Production cost and CO₂: within 5% of every day of 2025 and of 2024; Town's average price within 18%.
- Other customers against today: every day of 2025 gives +$0.9M to +$21.1M on the estimate, and 2024's weather +$11.5M to +$35.8M. The page carries 2025's error.
- Uplift: the estimate is 1.5 to 2.4 times the full years': a rough figure.
- Hours at Town–Metro's limit: the estimate finds 0% to 60% of them. Read congestion and unserved load from the hard weeks and the adequacy check.
Write your two-page study note
- Title and plan link: the plan's link from the bench, and the date
- Recommendation: Three or four sentences: how much connects, what to build, and why.
- The plan: each choice, with its unit
- Results: each result, with its unit and boundary
- Assumptions: one sentence each
- Sensitivity: how one result moves when one input changes, and whether the plan was held fixed
- Who pays, and is it fair?: Two or three sentences: the large load, other customers, and the rule you chose.
- What could still go wrong: Two or three sentences: what the model leaves out that could change your answer.
- Three zones against one bus (M2's notebook): One paragraph, after running M2's notebook: what three zones and two links change against its one bus (prices that part, uplift, who is short).
- Limits of this analysis: what the model leaves out
Part of the hand-in: M2's notebook, about 45 minutes
The notebook of M2 rebuilds unit commitment on one bus in Python with SciPy and HiGHS, fixes the switches and re-prices, settles the day and checks the browser's numbers.
- Download the notebook (below) and open it in Google Colab or locally with Python 3, NumPy and SciPy 1.9 or later.
- Run every cell, about 45 minutes. Its practice section is optional, about 90 minutes more.
- Write the note's paragraph "Three zones against one bus": what three zones and two links change (prices that part, uplift, who is short).
Check your note
Weak note · Developing
Connect the data center and build some peakers [1]. The grid will be reliable [2] and prices will stay low [3], so nobody is hurt [4].
- Falls short: No sizes, no place, no units: the planners cannot check it.
- Falls short: Reliable by what measure, against what criterion, with what uncertainty?
- Falls short: Which prices, where, in which hours? Prices here are conditional on the commitment.
- Falls short: Who pays for the new plants and the link is the brief's question: name the parties and the amounts.
Strong note · Proficient
Recommendation: connect the full 300 MW this year with 6 new 50 MW peakers at Prairie Town and 300 MW more on Town–Metro [1]. Adequacy: 0.08 loss-of-load days a year (90% interval 0.05 to 0.1003: the point estimate meets the 0.1 criterion, the interval crosses it), against 0.08 for today's grid and 7.6 if the load connects with nothing built [2]. Sensitivity (chart attached): with these builds held fixed, 0.01 days at 0 MW, 0.02 days at 100 MW, 0.04 days at 200 MW, 0.08 days at 300 MW connected [3]. Hard weeks: 0 MWh unserved in the 14 days; Town's price peaks at $45/MWh, conditional on the commitment [4]. Who pays: on the 26-day estimate, the large load $91.5M a year, half the new costs directly, and other customers $72.3M a year more than today ($68.6M to $80.6M across the cost ranges); every day of 2025 gives $93.0M and $89.9M [5]. Emissions: 6,115 kt of CO₂ a year from the fuel burned [6]. Limits: two weather years, a transport model without power-flow physics, illustrative plants and costs; one study year, so it does not test a load that arrives late or never [7].
- Works: Sizes with units and places: a plan the planners can check and cost.
- Works: The criterion's measure, its Monte Carlo interval with the warning it carries, and two baselines.
- Works: One input moved, the plan held fixed: where the margin runs out.
- Works: The extreme periods kept, and the prices labelled for what they are.
- Works: Both parties on one boundary, a year, 2025 dollars, with the range the costs allow and the estimate checked against a full year.
- Works: Operating CO₂ on its own line, not mixed into the money.
- Works: What the study leaves out, so the planners do not over-read it.
| Competence | Developing | Proficient (the bar for this note) | Strong |
|---|---|---|---|
| Consistent accounting Look for: Who pays and who benefits: the large load and other customers on one boundary, a year, 2025 dollars; CO₂ on its own line. |
Costs and emissions on different boundaries. | Cost and emissions on one boundary; emissions question named; who pays and who benefits named. | Distributional and environmental side effects estimated with stated assumptions. |
| Uncertainty Look for: The sensitivity chart attached: adequacy as the connected load grows, the plan held fixed; the Monte Carlo interval and the ledger's estimate error stated. |
Single numbers. | Uncertainties classified; scenario or global sensitivity analysis; results as ranges. | Decision-relevant uncertainty identified and its value discussed. |
| Realism Look for: What the study leaves out: power-flow physics, forecast errors, one weather year in two, illustrative plants and costs; the notebook paragraph on three zones against one bus. |
Assumes announced projects exist. | Evidence status of key inputs; a 'what the analysis leaves out' list. | Realism checked with a practitioner or primary documents. |
| Communication Look for: Two pages the planners can act on: the recommendation first, then the evidence and its limits. |
Results without limits. | A two-page note with the plan link and the sensitivity chart: the recommendation first, then the evidence (adequacy against 0.1 days a year, the hard weeks, who pays), the sensitivity, the notebook paragraph and the limits. | A briefing a decision-maker could act on without misreading. |
Go deeper · ResearcherFrom this capstone to your own study
The same plan, note and self-check grow into a research project: pick a question in the question studio, state what would change your mind, and test your plan on a weather year you did not use to choose it. Here 2024 is only a second-weather-year robustness check: the adequacy check already draws on it.
Numbers, sources and what’s next
Costs you set
| Build | Default | Range you can set | Basis |
|---|---|---|---|
| New peaker | $74/kW-yr | $56 to $111 | EIA's industrial-frame combustion turbine: $1,158/kW to build and $7.18/kW a year of upkeep, paid over 30 years at 4% real. EIA, Assumptions to the Annual Energy Outlook 2026; NLR, 2025 Electricity Annual Technology Baseline |
| Battery (4 hours) | $178/kW-yr | $134 to $267 | NREL's 2024 cost, $372/kW plus $241/kWh for 4 hours (2024 dollars, ×1.0263 to 2025 by BEA's GDP deflator), 4% of it a year of upkeep, paid over 15 years at 4% real. Cole, Ramasamy and Turan; U.S. Bureau of Economic Analysis, NIPA Table 1.1.9; NLR, 2025 Electricity Annual Technology Baseline |
| Town–Metro uprate | $15/kW-yr | $5 to $40 | Illustrative: added transfer limit on Town–Metro (new conductors or a second circuit), as a yearly payment per kW of added limit |
Inputs the engine uses
| Input | Value | Source |
|---|---|---|
| Peak load: Ridge · Town · Metro | 300 · 450 · 3,250 MW | Illustrative; each hour follows SPP's 2025 demand shape (EIA-930, accessed 2 Nov 2026) |
| Wind built: Ridge · Town · Metro | 2,000 · 150 · 300 MW | Illustrative |
| Solar built: Ridge · Town · Metro | 0 · 200 · 600 MW | Illustrative |
| Output per MW: wind · solar | 33.8% · 24.0% a year | SPP's 2025 shapes scaled to EIA's 2025 monthly capacity factors: EPM Table 6.07.B, issue of 23 Oct 2026 |
| Link limits: Ridge–Town · Town–Metro | 900 · 400 MW | Illustrative |
| Fuel: gas · coal | $3.85 · $2.42/MMBtu | Average cost to the electric power industry, 2025: EIA, Electric Power Annual, Table 7.4 · final 2025 data; checked 5 Nov 2026. One MMBtu is a million British thermal units of fuel heat |
| Heat rates | 6.4 to 11.2 MMBtu/MWh | Illustrative, around EIA's 2025 averages (coal 10.65, gas 7.78 MMBtu/MWh): Electric Power Annual, Table 8.1 · 2025 data; checked 5 Nov 2026 |
| CO₂: gas · subbituminous coal | 52.91 · 97.13 kg/MMBtu | EIA, Carbon Dioxide Emissions Coefficients · released 18 Sep 2024; checked 5 Nov 2026 |
| Unserved load · reserve short | $5,000 · $1,000/MWh | Illustrative penalties in the objective, not costs anyone pays |
The plantsEach unit group's data (illustrative)
| Unit group | Zone | Units | Minimum output | Running cost at $3.85 gas | No-load cost | Start-up | Minimum up · down | Reserve per unit |
|---|---|---|---|---|---|---|---|---|
| Town combined cycle | Prairie Town | 1 × 200 MW | 80 MW | $30.72/MWh | $308/h | $6,000 | 4 · 4 h | 60 MW |
| Town peakers | Prairie Town | 3 × 50 MW | none | $49.12/MWh | none | none | none | 50 MW |
| Metro coal units | Metro | 2 × 500 MW | 200 MW | $29.67/MWh | $726/h | $25,000 | 12 · 8 h | 50 MW |
| Metro combined cycles | Metro | 3 × 667 MW | 267 MW | $27.14/MWh | $1,028/h | $9,000 | 4 · 4 h | 133 MW |
| Metro gas steam unit | Metro | 1 × 300 MW | 100 MW | $42.50/MWh | $770/h | $7,000 | 6 · 6 h | 50 MW |
| Metro peakers | Metro | 14 × 80 MW | none | $45.43/MWh | none | none | none | 80 MW |
Running cost = heat rate × fuel price + variable upkeep; no-load cost = the heat burned each hour a unit is on × fuel price. Peakers start within minutes and have no minimum output, so the model gives them no on/off decision.
Keep going
Sources and further reading
- The Grid Room lists the engine's inputs with their sources and dates.
- EIA. Assumptions to the Annual Energy Outlook 2026: Electricity Market Module, Table 3 (April 2026).
- Cole, Ramasamy and Turan (2025). Cost Projections for Utility-Scale Battery Storage: 2025 Update. NREL/TP-6A40-93281 (its 2024 costs only).
- U.S. Bureau of Economic Analysis. NIPA Table 1.1.9: Implicit Price Deflators for Gross Domestic Product, line 1, annual (2017 = 100): 2024 125.587, 2025 128.893. Last revised 29 October 2026; accessed 5 November 2026. It converts the battery's 2024 costs to 2025 dollars.
- PJM (2026). Manual 20A: Resource Adequacy Analysis (PDF), Rev. 3, effective 24 June 2026, section 1.3: the criterion of one day in ten years, 0.1 days a year, that the brief adopts.
- Li et al. (2026). Accepted paper on the cost of delayed grid energization for large loads, 2026 North American Power Symposium (NAPS), presented October 2026; DOI pending.
- EIA. Hourly Electric Grid Monitor (Form EIA-930): the Southwest Power Pool's 2025 and 2024 shapes.
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.