{
 "about": {
  "line": "Prairie City is fictional; its numbers are illustrative.",
  "what": "Shared data of Prairie City, Learn's city-and-region scale (S3, wave W5): three districts, household groups, transport, the industrial park, the data-center campus, annual energy flows by sector and carrier, representative days for hourly models, 2025 prices and emission factors. Read by F9, F11, A13, A15, A18, SB3 (engine E3), M12, C3 and CK-A; pages read these numbers and never retype them.",
  "fictional": "Prairie City is fictional. It is anchored to the U.S. Plains (Kansas, the Southwest Power Pool), as Prairie Town and the Plains Grid are: its income and household size are close to Wichita's, its weather is Wichita's 1991-2020 normals, its prices are Kansas's (or the Midwest's) 2025 averages, and its hourly shapes are SPP's 2025 grid. Everything else is set for teaching and labelled so in the builder.",
  "dollarYear": 2025,
  "built": "2026-11-06",
  "builtBy": "scripts/build_learn_prairie_city.py (ResearchPortfolio repository): python3 scripts/build_learn_prairie_city.py --site <site>; tested by _tests/learn/test_prairie_city.js",
  "method": "Bottom-up: homes from dwellings, floor area, envelope vintage and heating fuel (RECS 2020 West North Central end uses; DOE efficiencies), commercial floor area by intensity, vehicles by household, the industrial park and the data-center campus from their sizes. Hourly: eight representative days of 2025 (weights sum to 365), temperatures from NOAA normals (two extreme days set for teaching), heat by degree-hours below 18.3 C, heat-pump COP from lesson F3's curve, the base load spread by SPP's 2025 demand shape, wind and solar per unit of capacity from SPP's 2025 shapes scaled to EIA's 2025 monthly capacity factors. Annual flows close: every node of the Sankey balances.",
  "simplifications": [
   "One substation per district is a teaching simplification; real districts are served by many feeders and several substations.",
   "The industrial park and the data-center campus take power at their own substations, not the districts'.",
   "The base load follows SPP's whole-grid demand shape, which also carries the region's own electric heating and cooling; the districts' electric heating is added from the heat model, so winter base load is a little high.",
   "Every EV is counted as a battery EV; EV charging is the same every day.",
   "Industrial loads are flat over the year."
  ]
 },
 "dollarYear": 2025,
 "units": {
  "energy": "MWh unless a key says GWh, MMBtu or gal",
  "power": "MW",
  "temperature": "C",
  "area": "m2 (1 ft2 = 0.0929 m2)",
  "money": "2025 dollars",
  "mwhPerMMBtu": 0.293083,
  "btuPerKWh": 3412,
  "btuPerGal": {
   "gasoline": 120214,
   "diesel": 137381,
   "propane": 91452
  },
  "btuPerCf": 1036
 },
 "city": {
  "people": 250000,
  "households": 101410,
  "personsPerHousehold": 2.465,
  "medianIncome": 66321,
  "medianIncomeNote": "Wichita's median household income, $64,620 in 2024 dollars (Census QuickFacts, 2020-2024), in 2025 dollars with BEA's GDP deflator (x 128.893 / 125.587). Prairie City's own bands give a median near it (groups).",
  "ami": 82000,
  "amiNote": "Set for teaching: an area median family income of $82,000 (2025 dollars), above the median household income, as HUD's area medians are. The household groups are bands of it.",
  "anchors": {
   "wichitaPersonsPerHousehold": 2.47,
   "wichitaMedianIncome2024USD": 64620,
   "ksRetailMWh2024": 41258210,
   "gdpDeflator": {
    "2024": 125.587,
    "2025": 128.893
   }
  },
  "totals": {
   "people": 250000,
   "households": 101410,
   "dwellings": {
    "sfd": 61134,
    "sfa": 6120,
    "mf24": 9018,
    "mf5": 21554,
    "mobile": 3584
   },
   "heating": {
    "gas": 65814,
    "resistance": 15653,
    "heatPump": 15721,
    "propane": 4222
   },
   "heatedFloorM2": 13798758,
   "commercialM2": 5450000,
   "lightDutyVehicles": 189850,
   "evs": 2108,
   "rooftopSolarMW": 20,
   "annualMWh": {
    "residentialBase": 909935.0,
    "commercialBase": 817500.0,
    "farm": 30000,
    "base": 1757435.0,
    "residentialHeat": 245345.0,
    "commercialHeat": 31335.0,
    "ev": 6903.0
   },
   "gasMMBtu": {
    "residential": 4695740.0,
    "commercial": 1208701.0
   },
   "propaneGal": 3673520.0,
   "substationMW": 540
  },
  "src": [
   "census-quickfacts",
   "bea-deflator"
  ]
 },
 "dwellingTypes": {
  "sfd": {
   "label": "Single-family detached",
   "heatedM2": 170,
   "electricityFactor": 1.15,
   "hotWaterFactor": 1.0
  },
  "sfa": {
   "label": "Single-family attached",
   "heatedM2": 125,
   "electricityFactor": 0.95,
   "hotWaterFactor": 0.9
  },
  "mf24": {
   "label": "Apartments, 2-4 units",
   "heatedM2": 85,
   "electricityFactor": 0.75,
   "hotWaterFactor": 0.75
  },
  "mf5": {
   "label": "Apartments, 5+ units",
   "heatedM2": 72,
   "electricityFactor": 0.7,
   "hotWaterFactor": 0.7
  },
  "mobile": {
   "label": "Mobile homes",
   "heatedM2": 90,
   "electricityFactor": 0.95,
   "hotWaterFactor": 0.85
  }
 },
 "vintages": {
  "pre1980": {
   "label": "Built before 1980",
   "heatKWhPerM2": 115
  },
  "y1980_2009": {
   "label": "Built 1980-2009",
   "heatKWhPerM2": 80
  },
  "y2010": {
   "label": "Built 2010 or later",
   "heatKWhPerM2": 50
  }
 },
 "districts": [
  {
   "key": "core",
   "label": "Dense core",
   "people": 95000,
   "households": 42222,
   "personsPerHousehold": 2.25,
   "dwellings": {
    "sfd": 16890,
    "sfa": 2533,
    "mf24": 5911,
    "mf5": 16044,
    "mobile": 844
   },
   "heatedFloorM2": 4921488,
   "heating": {
    "gas": 27866,
    "resistance": 9289,
    "heatPump": 5067,
    "propane": 0
   },
   "envelope": {
    "pre1980": 0.62,
    "y1980_2009": 0.28,
    "y2010": 0.1
   },
   "heatIntensity": 98.7,
   "commercialM2": 3000000,
   "lightDutyVehicles": 63333,
   "evs": 703,
   "rooftopSolarMW": 5,
   "heat": {
    "residentialMWh": 485751.0,
    "commercialMWh": 150000.0,
    "uaMWperC": 10.89133,
    "share": {
     "gas": 0.693022,
     "resistance": 0.186971,
     "heatPump": 0.120007,
     "propane": 0.0
    }
   },
   "annualMWh": {
    "residentialBase": 348629.0,
    "commercialBase": 450000.0,
    "farm": 0,
    "base": 798629.0,
    "residentialHeat": 123866.0,
    "commercialHeat": 17249.0,
    "ev": 2302.0
   },
   "gasMMBtu": {
    "residential": 1881467.0,
    "commercial": 665340.0
   },
   "propaneGal": 0.0,
   "evMWhPerDay": 6.3079,
   "peak2025MW": 212.8,
   "substationMW": 250
  },
  {
   "key": "suburbs",
   "label": "Suburbs",
   "people": 125000,
   "households": 48077,
   "personsPerHousehold": 2.6,
   "dwellings": {
    "sfd": 35577,
    "sfa": 3365,
    "mf24": 2885,
    "mf5": 5288,
    "mobile": 962
   },
   "heatedFloorM2": 7181256,
   "heating": {
    "gas": 34615,
    "resistance": 4808,
    "heatPump": 8654,
    "propane": 0
   },
   "envelope": {
    "pre1980": 0.3,
    "y1980_2009": 0.48,
    "y2010": 0.22
   },
   "heatIntensity": 83.9,
   "commercialM2": 2200000,
   "lightDutyVehicles": 100962,
   "evs": 1121,
   "rooftopSolarMW": 12,
   "heat": {
    "residentialMWh": 602507.0,
    "commercialMWh": 110000.0,
    "uaMWperC": 12.206279,
    "share": {
     "gas": 0.732343,
     "resistance": 0.096918,
     "heatPump": 0.170739,
     "propane": 0.0
    }
   },
   "annualMWh": {
    "residentialBase": 451781.0,
    "commercialBase": 330000.0,
    "farm": 0,
    "base": 781781.0,
    "residentialHeat": 91879.0,
    "commercialHeat": 12649.0,
    "ev": 3671.0
   },
   "gasMMBtu": {
    "residential": 2549061.0,
    "commercial": 487916.0
   },
   "propaneGal": 0.0,
   "evMWhPerDay": 10.0586,
   "peak2025MW": 192.4,
   "substationMW": 230
  },
  {
   "key": "fringe",
   "label": "Rural fringe",
   "people": 30000,
   "households": 11111,
   "personsPerHousehold": 2.7,
   "dwellings": {
    "sfd": 8667,
    "sfa": 222,
    "mf24": 222,
    "mf5": 222,
    "mobile": 1778
   },
   "heatedFloorM2": 1696014,
   "heating": {
    "gas": 3333,
    "resistance": 1556,
    "heatPump": 2000,
    "propane": 4222
   },
   "envelope": {
    "pre1980": 0.45,
    "y1980_2009": 0.38,
    "y2010": 0.17
   },
   "heatIntensity": 90.65,
   "commercialM2": 250000,
   "lightDutyVehicles": 25555,
   "evs": 284,
   "rooftopSolarMW": 3,
   "heat": {
    "residentialMWh": 153744.0,
    "commercialMWh": 12500.0,
    "uaMWperC": 2.847994,
    "share": {
     "gas": 0.33757,
     "resistance": 0.135527,
     "heatPump": 0.17549,
     "propane": 0.351413
    }
   },
   "annualMWh": {
    "residentialBase": 109525.0,
    "commercialBase": 37500.0,
    "farm": 30000,
    "base": 177025.0,
    "residentialHeat": 29600.0,
    "commercialHeat": 1437.0,
    "ev": 930.0
   },
   "gasMMBtu": {
    "residential": 265212.0,
    "commercial": 55445.0
   },
   "propaneGal": 3673520.0,
   "evMWhPerDay": 2.5483,
   "peak2025MW": 48.0,
   "substationMW": 60
  }
 ],
 "districtsNote": "Set for teaching: people, persons per household, dwelling types (homes), heated floor area per home by type, heating fuel (homes), envelope vintage (shares of floor area, with heatIntensity the resulting kWh of delivered space heat per m2 a year at normal weather), commercial floor area, vehicles per household and rooftop solar. Derived: everything in heat, annualMWh, gasMMBtu and propaneGal (see the builder). substationMW is the district's peak-hour limit, one substation per district (a teaching simplification): 15% above the district's 2025 peak on the representative days (peak2025MW: base, electric heating and EVs), rounded up to 10 MW.",
 "homes": {
  "recsWNC": {
   "waterHeatGasMMBtu": 17.4,
   "otherGasMMBtu": 3.8,
   "electricityMMBtu": 27.4,
   "src": "eia-recs-wnc"
  },
  "furnaceEfficiency": 0.8,
  "gasWaterHeaterEfficiency": 0.6,
  "electricWaterHeaterEfficiency": 0.9,
  "note": "Per home, before the dwelling-type factors: electricity for lights, appliances and cooling 27.4 MMBtu (8,030 kWh); hot water delivered 17.4 x 0.60 MMBtu; other gas (cooking, drying) 3.8 MMBtu in homes heated with gas, propane in homes heated with propane. Homes heated with electricity heat water with electric resistance. Gas and propane furnaces 80%; water heaters 60% (gas, propane) and 90% (electric). Efficiencies are lesson F3's (DOE).",
  "src": [
   "eia-recs-wnc",
   "doe-efficiency"
  ]
 },
 "commercial": {
  "electricityKWhPerM2": 150,
  "heatKWhPerM2": 50,
  "otherGasKWhPerM2": 15,
  "heating": {
   "gas": 0.8,
   "resistance": 0.08,
   "heatPump": 0.12,
   "propane": 0.0
  },
  "set": "teaching",
  "note": "Set for teaching: shops, offices, schools and public buildings, a rough U.S. mix (not a CBECS figure). Heat shares are of delivered heat."
 },
 "householdsByGroup": {
  "districts": [
   "core",
   "suburbs",
   "fringe"
  ],
  "groups": [
   "g1",
   "g2",
   "g3",
   "g4",
   "g5"
  ],
  "households": [[9548, 6778, 9108, 4150, 12638], [4960, 4842, 8990, 5692, 23593], [1717, 1564, 2184, 1313, 4333]],
  "note": "Households in each district (rows) and income group (columns): each district's teaching mix of groups, fitted (iterative proportional fitting) to the city's group shares, then whole households. Row sums are the districts' households; column sums the groups'."
 },
 "groups": [
  {
   "key": "g1",
   "label": "0-30% of area median income",
   "amiPct": [0, 30],
   "incomeRange": [0, 24600],
   "households": 16225,
   "income": 13000,
   "use": {
    "electricityKWh": 9295.0,
    "gasMMBtu": 37.55,
    "propaneGal": 32.7,
    "gasolineGal": 414.2
   },
   "index": {
    "electricity": 0.8,
    "gas": 0.8,
    "propane": 0.9,
    "gasoline": 0.45
   },
   "spending": {
    "electricity": 1342.0,
    "gas": 537.0,
    "propane": 61.0,
    "motorFuel": 1219.0
   },
   "homeEnergy": 1940.0,
   "burden": 0.1492,
   "transportBurden": 0.0938
  },
  {
   "key": "g2",
   "label": "30-50% of area median income",
   "amiPct": [30, 50],
   "incomeRange": [24600, 41000],
   "households": 13184,
   "income": 33000,
   "use": {
    "electricityKWh": 10224.0,
    "gasMMBtu": 41.31,
    "propaneGal": 34.5,
    "gasolineGal": 690.4
   },
   "index": {
    "electricity": 0.88,
    "gas": 0.88,
    "propane": 0.95,
    "gasoline": 0.75
   },
   "spending": {
    "electricity": 1476.0,
    "gas": 591.0,
    "propane": 64.0,
    "motorFuel": 2032.0
   },
   "homeEnergy": 2131.0,
   "burden": 0.0646,
   "transportBurden": 0.0616
  },
  {
   "key": "g3",
   "label": "50-80% of area median income",
   "amiPct": [50, 80],
   "incomeRange": [41000, 65600],
   "households": 20282,
   "income": 53000,
   "use": {
    "electricityKWh": 10805.0,
    "gasMMBtu": 43.66,
    "propaneGal": 36.3,
    "gasolineGal": 874.5
   },
   "index": {
    "electricity": 0.93,
    "gas": 0.93,
    "propane": 1.0,
    "gasoline": 0.95
   },
   "spending": {
    "electricity": 1560.0,
    "gas": 624.0,
    "propane": 68.0,
    "motorFuel": 2574.0
   },
   "homeEnergy": 2252.0,
   "burden": 0.0425,
   "transportBurden": 0.0486
  },
  {
   "key": "g4",
   "label": "80-100% of area median income",
   "amiPct": [80, 100],
   "incomeRange": [65600, 82000],
   "households": 11155,
   "income": 74000,
   "use": {
    "electricityKWh": 11618.0,
    "gasMMBtu": 46.94,
    "propaneGal": 36.3,
    "gasolineGal": 966.5
   },
   "index": {
    "electricity": 1.0,
    "gas": 1.0,
    "propane": 1.0,
    "gasoline": 1.05
   },
   "spending": {
    "electricity": 1678.0,
    "gas": 671.0,
    "propane": 68.0,
    "motorFuel": 2845.0
   },
   "homeEnergy": 2417.0,
   "burden": 0.0327,
   "transportBurden": 0.0384
  },
  {
   "key": "g5",
   "label": "100% of area median income or more",
   "amiPct": [100, null],
   "incomeRange": [82000, null],
   "households": 40564,
   "income": 145000,
   "use": {
    "electricityKWh": 13012.0,
    "gasMMBtu": 52.58,
    "propaneGal": 38.1,
    "gasolineGal": 1123.0
   },
   "index": {
    "electricity": 1.12,
    "gas": 1.12,
    "propane": 1.05,
    "gasoline": 1.22
   },
   "spending": {
    "electricity": 1879.0,
    "gas": 752.0,
    "propane": 71.0,
    "motorFuel": 3306.0
   },
   "homeEnergy": 2702.0,
   "burden": 0.0186,
   "transportBurden": 0.0228
  }
 ],
 "groupsNote": {
  "bands": "Five groups by household income as a share of area median income (AMI): LEAD's bands, with its 100-150% and 150%+ merged. Chosen over quintiles because LEAD's burden figures and HUD's low-income line (80% of AMI) are defined on these bands, and the 0-30% band keeps the tail that quintiles would average away.",
  "burden": "Energy burden = home energy spending (electricity, gas and propane bills) / income, LEAD's definition; transportBurden = motor fuel / income, shown apart. Use is the city's residential total split by the group's index (set for teaching), so that the 0-80% groups together land near LEAD's 6% and the others near 2% (national averages, ACS 2018-2022).",
  "lowIncomeBurden": 0.0612,
  "otherBurden": 0.0204,
  "leadLow": 0.06,
  "leadOther": 0.02,
  "medianFromBands": 67091,
  "homeEV": "Electricity bills include charging EVs at home (the city's balance puts that electricity under transport).",
  "set": "teaching: shares, incomes and indices; anchored: prices (prices) and the LEAD yardstick",
  "src": [
   "doe-lead",
   "census-quickfacts"
  ]
 },
 "transport": {
  "lightDutyVehicles": 189850,
  "evs": 2108,
  "evShare2025": 0.0111,
  "evShareInputs": {
   "ksEv2025": 18700,
   "ksPhev2025": 7800,
   "ksAutos2023": 766581,
   "ksTrucks2023": 1618645
  },
  "evShareNote": "Kansas plug-in vehicles registered in 2025 (AFDC: 18,700 EVs and 7,800 plug-in hybrids) over Kansas's 2023 automobiles and trucks (FHWA, 2,385,226; heavy trucks included, so the share is a little low): about 1.1%. Prairie City counts every one as a battery EV.",
  "milesPerVehicle": 10917,
  "mpg": 22.8,
  "evKWhPerMile": 0.3,
  "gasolineGal": 89893834.0,
  "evMWh": 6904.0,
  "buses": {
   "count": 60,
   "milesEach": 35000,
   "mpg": 4.0,
   "dieselGal": 525000.0,
   "set": "teaching"
  },
  "trucksDieselGal": 8000000,
  "evProfile": [0.035, 0.025, 0.02, 0.015, 0.015, 0.015, 0.02, 0.025, 0.025, 0.025, 0.025, 0.025, 0.03, 0.03, 0.035, 0.04, 0.05, 0.07, 0.09, 0.1, 0.095, 0.08, 0.065, 0.045],
  "evProfileNote": "Set for teaching: unmanaged home charging, the share of each day's charging energy in each hour (00:00 to 23:00), the same every day; most of it in the evening when cars come home.",
  "engineEfficiency": 0.3,
  "evEfficiency": 0.89,
  "note": "Miles and miles per gallon are lesson F3's typical car (EPA, FHWA 2022). Buses and trucks are set for teaching. Engine efficiency 30% (DOE's figure for gasoline cars, applied to diesel engines too, a teaching simplification); EVs 89% (DOE's 87-91%).",
  "src": [
   "epa-vehicle",
   "afdc-ks",
   "fhwa-mv1",
   "doe-fotw1360"
  ]
 },
 "farms": {
  "electricityMWh": 30000,
  "dieselGal": 2500000,
  "propaneGal": 1000000,
  "set": "teaching",
  "note": "Set for teaching: field work and grain drying; the farms' electricity is in the rural fringe's base load."
 },
 "industry": {
  "connection": "The industrial park takes power at its own substation; its loads are flat over the year (a teaching simplification).",
  "processHeat": [
   {
    "band": "low",
    "label": "below 100 C (washing, pasteurizing, hot water)",
    "deliveredMWh": 140000
   },
   {
    "band": "medium",
    "label": "100 to 400 C (steam for cooking, drying, sterilizing)",
    "deliveredMWh": 120000
   },
   {
    "band": "high",
    "label": "above 400 C (ovens and fryers)",
    "deliveredMWh": 10000
   }
  ],
  "food": {
   "heatMWh": 270000,
   "burnerEfficiency": 0.8,
   "gasMMBtu": 1151550.0,
   "electricityMWh": 150000,
   "note": "Set for teaching: meat, milling and packaged-food plants; heat from gas burners and boilers at 80% (F3's furnace figure as a stand-in); electricity for refrigeration and motors."
  },
  "fertilizer": {
   "hydrogenT": 15000,
   "ammoniaT": 84479,
   "gasPerKgH2MMBtu": 0.18,
   "gasMMBtu": 2700000.0,
   "hydrogenMWh": 591000.0,
   "electricityMWh": 45000,
   "electrolysisKWhPerKg": 57.5,
   "electrolysisEquivalentMWh": 862500.0,
   "note": "Set for teaching: a fertilizer plant that makes 15,000 t of hydrogen a year in gas reformers (above 700 C; EIA's 0.18 MMBtu of gas per kg, feedstock and firing together, not split here) and turns all of it into ammonia (17.76% hydrogen by mass). Electrolysis would need 57.5 kWh per kg (DOE): that is the electricity the same hydrogen would take from the grid or the wind to the west.",
   "src": [
    "eia-aeo2026-hmm",
    "doe-h2-24005",
    "hydrogen-properties"
   ]
  }
 },
 "dataCenter": {
  "what": "A load only: its size, its shape over the day and the year, and its cooling.",
  "contractMW": 150,
  "itMW": 120,
  "itUtilization": 0.85,
  "itDrawMW": 102.0,
  "pue": {
   "base": 1.12,
   "perC": 0.008,
   "aboveC": 5.0
  },
  "peakMW": 142.8,
  "annualMWh": 1075518.0,
  "averagePUE": 1.204,
  "cooling": "Evaporative heat rejection (cooling towers), with outside air doing more of the work in cold hours; the dry, air-cooled alternative uses little water but may need more electricity (lesson F8's two options).",
  "connection": "Its own substation on the transmission grid, not a district's.",
  "sizeReason": "Lesson F8's Prairie Town campus is a 300 MW contract drawing a steady 240 MW. Prairie City's campus is a different, fictional place: a 150 MW contract with 120 MW of IT, large against the city (at its hottest hour it draws more than the rural fringe's peak, less than the core's or the suburbs') without dwarfing the three districts together.",
  "shape": "IT draws 85% of its capacity every hour; facility power = IT x PUE, PUE = 1.12 + 0.008 per C above 5 C, so hot afternoons draw the most.",
  "set": "teaching",
  "src": [
   "doe-femp-cooling"
  ]
 },
 "supply": {
  "rooftopSolarMW": 20,
  "rooftopCF": 0.176,
  "rooftopMWh": 30835.0,
  "windToTheWest": "Wind farms can be built or contracted on the ridge to the west; per-MW hourly output on each representative day is in days[].wind. None serves the city directly in 2025.",
  "gridLossShare": 0.05,
  "gridLossNote": "Set for teaching: distribution losses 5% of the electricity delivered in the city.",
  "gas": "The gas grid serves every district except where propane is shown (the fringe's farmhouses).",
  "src": [
   "eia-dg-2024"
  ]
 },
 "flows": {
  "unit": "GWh",
  "year": 2025,
  "nodes": [
   {
    "id": "src_gas",
    "label": "Natural gas from the pipeline",
    "short": "Gas grid",
    "col": 0,
    "kind": "source"
   },
   {
    "id": "src_oil",
    "label": "Petroleum fuels brought in",
    "short": "Fuels",
    "col": 0,
    "kind": "source"
   },
   {
    "id": "src_grid",
    "label": "Electricity from the SPP grid",
    "short": "SPP grid",
    "col": 0,
    "kind": "import"
   },
   {
    "id": "src_solar",
    "label": "Rooftop solar in the city",
    "short": "Rooftop solar",
    "col": 0,
    "kind": "source"
   },
   {
    "id": "gas",
    "label": "Natural gas",
    "short": "Gas",
    "col": 1,
    "kind": "carrier"
   },
   {
    "id": "el",
    "label": "Electricity",
    "short": "Electricity",
    "col": 1,
    "kind": "carrier"
   },
   {
    "id": "gasoline",
    "label": "Gasoline",
    "short": "Gasoline",
    "col": 1,
    "kind": "carrier"
   },
   {
    "id": "diesel",
    "label": "Diesel",
    "short": "Diesel",
    "col": 1,
    "kind": "carrier"
   },
   {
    "id": "propane",
    "label": "Propane",
    "short": "Propane",
    "col": 1,
    "kind": "carrier"
   },
   {
    "id": "air",
    "label": "Heat from outdoor air (heat pumps)",
    "short": "Outdoor air",
    "col": 1,
    "kind": "ambient"
   },
   {
    "id": "homes",
    "label": "Homes",
    "short": "Homes",
    "col": 2,
    "kind": "sector"
   },
   {
    "id": "commercial",
    "label": "Shops, offices and public buildings",
    "short": "Commercial",
    "col": 2,
    "kind": "sector"
   },
   {
    "id": "food",
    "label": "Food processing (industrial park)",
    "short": "Food plants",
    "col": 2,
    "kind": "sector"
   },
   {
    "id": "fertilizer",
    "label": "Fertilizer plant (industrial park)",
    "short": "Fertilizer",
    "col": 2,
    "kind": "sector"
   },
   {
    "id": "datacenter",
    "label": "Data-center campus",
    "short": "Data centers",
    "col": 2,
    "kind": "sector"
   },
   {
    "id": "transport",
    "label": "Transport: cars, buses and trucks",
    "short": "Transport",
    "col": 2,
    "kind": "sector"
   },
   {
    "id": "farms",
    "label": "Farms",
    "short": "Farms",
    "col": 2,
    "kind": "sector"
   },
   {
    "id": "useful",
    "label": "Energy services (useful energy)",
    "short": "Useful",
    "col": 3,
    "kind": "useful"
   },
   {
    "id": "h2",
    "label": "Hydrogen made in gas reformers, turned into ammonia",
    "short": "Hydrogen",
    "col": 3,
    "kind": "product"
   },
   {
    "id": "losses",
    "label": "Conversion losses",
    "short": "Losses",
    "col": 3,
    "kind": "loss"
   },
   {
    "id": "grid_losses",
    "label": "Distribution losses",
    "short": "Grid losses",
    "col": 3,
    "kind": "loss"
   }
  ],
  "links": [
   {
    "from": "src_gas",
    "to": "gas",
    "value": 2859.3
   },
   {
    "from": "src_oil",
    "to": "gasoline",
    "value": 3167.2
   },
   {
    "from": "src_oil",
    "to": "diesel",
    "value": 444.0
   },
   {
    "from": "src_oil",
    "to": "propane",
    "value": 125.3
   },
   {
    "from": "src_grid",
    "to": "el",
    "value": 3446.3
   },
   {
    "from": "src_solar",
    "to": "el",
    "value": 30.8
   },
   {
    "from": "el",
    "to": "homes",
    "value": 1155.3
   },
   {
    "from": "gas",
    "to": "homes",
    "value": 1376.2
   },
   {
    "from": "propane",
    "to": "homes",
    "value": 98.5
   },
   {
    "from": "air",
    "to": "homes",
    "value": 137.7
   },
   {
    "from": "el",
    "to": "commercial",
    "value": 848.8
   },
   {
    "from": "gas",
    "to": "commercial",
    "value": 354.3
   },
   {
    "from": "air",
    "to": "commercial",
    "value": 23.2
   },
   {
    "from": "el",
    "to": "food",
    "value": 150.0
   },
   {
    "from": "gas",
    "to": "food",
    "value": 337.5
   },
   {
    "from": "el",
    "to": "fertilizer",
    "value": 45.0
   },
   {
    "from": "gas",
    "to": "fertilizer",
    "value": 791.3
   },
   {
    "from": "el",
    "to": "datacenter",
    "value": 1075.5
   },
   {
    "from": "el",
    "to": "transport",
    "value": 6.9
   },
   {
    "from": "gasoline",
    "to": "transport",
    "value": 3167.2
   },
   {
    "from": "diesel",
    "to": "transport",
    "value": 343.3
   },
   {
    "from": "el",
    "to": "farms",
    "value": 30.0
   },
   {
    "from": "diesel",
    "to": "farms",
    "value": 100.7
   },
   {
    "from": "propane",
    "to": "farms",
    "value": 26.8
   },
   {
    "from": "homes",
    "to": "useful",
    "value": 2414.2
   },
   {
    "from": "homes",
    "to": "losses",
    "value": 353.5
   },
   {
    "from": "commercial",
    "to": "useful",
    "value": 1171.8
   },
   {
    "from": "commercial",
    "to": "losses",
    "value": 54.5
   },
   {
    "from": "food",
    "to": "useful",
    "value": 420.0
   },
   {
    "from": "food",
    "to": "losses",
    "value": 67.5
   },
   {
    "from": "fertilizer",
    "to": "useful",
    "value": 45.0
   },
   {
    "from": "fertilizer",
    "to": "h2",
    "value": 591.0
   },
   {
    "from": "fertilizer",
    "to": "losses",
    "value": 200.3
   },
   {
    "from": "datacenter",
    "to": "useful",
    "value": 1075.5
   },
   {
    "from": "transport",
    "to": "useful",
    "value": 1059.3
   },
   {
    "from": "transport",
    "to": "losses",
    "value": 2458.1
   },
   {
    "from": "farms",
    "to": "useful",
    "value": 87.0
   },
   {
    "from": "farms",
    "to": "losses",
    "value": 70.5
   },
   {
    "from": "el",
    "to": "grid_losses",
    "value": 165.6
   }
  ],
  "note": "Annual energy flows of 2025, GWh, rounded to 0.1 GWh; every node balances exactly (each sector's loss link is the rounded remainder). Fuels at their energy content (EIA's Btu factors), electricity at 3,412 Btu per kWh. Useful energy: heat delivered for space, water and process heat (furnaces and boilers 80%, water heaters 60% gas and 90% electric, heat pumps by F3's COP curve with the outdoor air's heat shown as its own carrier); motion for vehicles (engines 30%, EVs 89%); the energy of the hydrogen made (higher heating value); for appliances, lighting, cooling, motors, cooking, drying and the data center, the energy delivered counts as useful (a convention). Electricity's upstream generation is outside the city's boundary: the grid node is where the city's own accounting starts."
 },
 "balance": {
  "unit": "GWh",
  "sectors": {
   "homes": {
    "el": 1155.3,
    "gas": 1376.2,
    "propane": 98.5,
    "air": 137.7
   },
   "commercial": {
    "el": 848.8,
    "gas": 354.3,
    "air": 23.2
   },
   "food": {
    "el": 150.0,
    "gas": 337.5
   },
   "fertilizer": {
    "el": 45.0,
    "gas": 791.3
   },
   "datacenter": {
    "el": 1075.5
   },
   "transport": {
    "el": 6.9,
    "gasoline": 3167.2,
    "diesel": 343.3
   },
   "farms": {
    "el": 30.0,
    "diesel": 100.7,
    "propane": 26.8
   }
  },
  "totals": {
   "gas": 2859.3,
   "el": 3311.5,
   "gasoline": 3167.2,
   "diesel": 444.0,
   "propane": 125.3,
   "air": 160.9
  },
  "note": "Final energy by sector and carrier (the Sankey's carrier-to-sector links). Electricity here is at the meter; distribution losses are in flows."
 },
 "annual": {
  "electricityMWh": 3311500.0,
  "electricityPerPersonMWh": 13.25,
  "gasMMBtu": 9755991.0,
  "gasMcf": 9416979.0,
  "gasolineGal": 89893834.0,
  "dieselGal": 11025000.0,
  "propaneGal": 4673520.0,
  "note": "City totals at the meter or the pump, data-center campus and industrial park included. For scale: Kansas's utilities sold 41,258,210 MWh of electricity in 2024 (EIA, Kansas Electricity Profile)."
 },
 "inventory2025": {
  "unit": "t CO2",
  "sectors": {
   "homes": 714334,
   "commercial": 390738,
   "food": 119578,
   "fertilizer": 160452,
   "datacenter": 420524,
   "transport": 852768,
   "farms": 42955,
   "grid_losses": 64749
  },
  "total": 2766098,
  "method": "Location-based, operating CO2 only: grid-supplied electricity x eGRID2023 SPP North (861.999 lb per MWh), with rooftop solar used on site taken off the homes' and businesses' electricity in proportion to their use, distribution losses as their own row; fuels x EIA's coefficients. The fertilizer plant's gas reformers are counted as if all the carbon in their gas reaches the air (plants that make urea or sell CO2 keep some: an accounting choice). Not counted: methane leaks, upstream emissions, refrigerants."
 },
 "prices": {
  "electricityCentsPerKWh": {
   "residential": 14.44,
   "commercial": 11.19,
   "industrial": 8.04
  },
  "electricitySrc": "eia-epa-2-10",
  "gasPerMcf": {
   "residential": 14.81,
   "commercial": 11.9,
   "industrial": 4.55
  },
  "gasPerMMBtu": {
   "residential": 14.295,
   "commercial": 11.486,
   "industrial": 4.392
  },
  "gasNote": "Kansas 2025 (EIA). The industrial price is set for teaching: EIA publishes no 2025 Kansas industrial price, so the park pays the 2025 Kansas citygate price ($5.52) times Kansas's 2024 ratio of industrial to citygate price (4.29 / 5.23), rounded to $0.05.",
  "gasolinePerGal": 2.944,
  "dieselPerGal": 3.621,
  "fuelSrc": "eia-gasoline",
  "gasIndustrialInputs": {
   "citygate2025": 5.52,
   "industrial2024": 4.29,
   "citygate2024": 5.23
  },
  "propanePerGal": 1.86,
  "propaneInputs": {
   "weeksSum": 48.36,
   "weeks": 26
  },
  "propaneNote": "Kansas residential propane, mean of EIA's 26 weekly prices from 7 October 2024 to 31 March 2025 (heating season only).",
  "year": 2025,
  "src": [
   "eia-epa-2-10",
   "eia-ng-ks",
   "eia-gasoline",
   "eia-propane-ks"
  ]
 },
 "emissions": {
  "gridLbPerMWh": {
   "sppNorth": 861.999,
   "sppSouth": 872.042,
   "us": 767.209,
   "year": 2023,
   "src": "egrid-2023"
  },
  "gridTPerMWh": 0.391,
  "kansasInStateLbPerMWh": 680,
  "kansasYear": 2024,
  "gridNote": "Prairie City uses eGRID2023's SPP North rate (861.999 lb, 0.391 t of CO2 per MWh), an annual average of the subregion's plants (location-based, operating only). Lesson SB0 uses Kansas's in-state rate (680 lb per MWh generated in Kansas, 2024, EIA): a different boundary and year, not a contradiction. Hourly or marginal factors differ (case file CF6).",
  "kgCO2": {
   "gasPerMMBtu": 52.91,
   "propanePerGal": 5.75,
   "gasolinePerGal": 8.49,
   "dieselPerGal": 10.19,
   "src": "eia-co2"
  }
 },
 "heatModel": {
  "balanceC": 18.3,
  "method": "heat(d, h) = uaMWperC x max(0, balanceC - T_h), MW of heat delivered; uaMWperC fitted so the weighted representative days give each district's annual heat need exactly. Balance point 65 F (18.3 C), NOAA's degree-day base; real buildings' balance points are often lower.",
  "normalsF": {
   "tmax": [43.9, 48.9, 59.1, 68.3, 77.5, 87.9, 92.6, 91.0, 83.3, 70.8, 57.0, 45.8],
   "tmin": [22.5, 26.3, 35.7, 44.8, 55.9, 65.9, 70.4, 68.8, 60.1, 47.2, 34.7, 25.4],
   "annualMean": 57.7
  },
  "design": {
   "tmin": -18.0,
   "tmax": -9.0
  },
  "heatwave": {
   "tmin": 26.0,
   "tmax": 40.0
  },
  "degreeHours": 58372.2,
  "hddRepresentative": 4123.4,
  "hddNoaa": 4413.6,
  "cddNoaa": 1773.6,
  "hddNote": "Heating degree days (base 65 F, from each day's mean) of the weighted representative days against NOAA's 1991-2020 normal at Wichita.",
  "src": [
   "noaa-normals"
  ]
 },
 "cop": {
  "supplyC": 45,
  "anchorC": -15,
  "anchorCOP": 2.4,
  "cutoutC": -23,
  "formula": "COP = anchorCOP x (supplyC - anchorC) / (supplyC - T) = 144 / (45 - T) at or above cutoutC; 1 below it (backup resistance)",
  "table": [
   {
    "c": -25,
    "cop": 1.0
   },
   {
    "c": -20,
    "cop": 2.22
   },
   {
    "c": -15,
    "cop": 2.4
   },
   {
    "c": -10,
    "cop": 2.62
   },
   {
    "c": -5,
    "cop": 2.88
   },
   {
    "c": 0,
    "cop": 3.2
   },
   {
    "c": 5,
    "cop": 3.6
   },
   {
    "c": 10,
    "cop": 4.11
   },
   {
    "c": 15,
    "cop": 4.8
   }
  ],
  "note": "Lesson F3's cold-climate air-source heat pump (f03-energy-services.json, heatpump), passing through DOE's challenge target of COP 2.4 at -15 C; an illustrative curve, not a device's test data.",
  "src": "doe-cchp"
 },
 "days": [
  {
   "key": "winter_design",
   "label": "Cold winter design day",
   "date": "2025-01-21",
   "weight": 3,
   "design": true,
   "months": [],
   "tempFrom": "teaching",
   "tmin": -18.0,
   "tmax": -9.0,
   "temp": [-16.7, -17.4, -17.8, -18.0, -17.8, -17.4, -16.7, -15.8, -14.7, -13.5, -12.3, -11.3, -10.3, -9.6, -9.2, -9.0, -9.2, -9.6, -10.3, -11.3, -12.3, -13.5, -14.7, -15.8],
   "demandShape": [755, 754, 758, 765, 777, 803, 840, 864, 859, 842, 822, 799, 780, 763, 746, 737, 746, 772, 797, 798, 794, 781, 761, 742],
   "wind": [0.124, 0.109, 0.101, 0.105, 0.122, 0.158, 0.204, 0.258, 0.326, 0.355, 0.368, 0.428, 0.536, 0.601, 0.663, 0.655, 0.685, 0.698, 0.76, 0.763, 0.78, 0.753, 0.75, 0.722],
   "solar": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.003, 0.174, 0.601, 0.629, 0.513, 0.558, 0.546, 0.496, 0.448, 0.393, 0.116, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
   "districts": {
    "core": {
     "base": [108.7, 108.6, 109.2, 110.2, 111.9, 115.6, 121.0, 124.4, 123.7, 121.2, 118.4, 115.1, 112.3, 109.9, 107.4, 106.1, 107.4, 111.2, 114.8, 114.9, 114.3, 112.5, 109.6, 106.8],
     "heat": [381.2, 388.8, 393.2, 395.4, 393.2, 388.8, 381.2, 371.4, 359.4, 346.3, 333.3, 322.4, 311.5, 303.9, 299.5, 297.3, 299.5, 303.9, 311.5, 322.4, 333.3, 346.3, 359.4, 371.4]
    },
    "suburbs": {
     "base": [106.4, 106.3, 106.8, 107.8, 109.5, 113.2, 118.4, 121.8, 121.1, 118.7, 115.9, 112.6, 110.0, 107.6, 105.2, 103.9, 105.2, 108.8, 112.3, 112.5, 111.9, 110.1, 107.3, 104.6],
     "heat": [427.2, 435.8, 440.6, 443.1, 440.6, 435.8, 427.2, 416.2, 402.8, 388.2, 373.5, 361.3, 349.1, 340.6, 335.7, 333.2, 335.7, 340.6, 349.1, 361.3, 373.5, 388.2, 402.8, 416.2]
    },
    "fringe": {
     "base": [24.1, 24.1, 24.2, 24.4, 24.8, 25.6, 26.8, 27.6, 27.4, 26.9, 26.2, 25.5, 24.9, 24.4, 23.8, 23.5, 23.8, 24.6, 25.4, 25.5, 25.3, 24.9, 24.3, 23.7],
     "heat": [99.7, 101.7, 102.8, 103.4, 102.8, 101.7, 99.7, 97.1, 94.0, 90.6, 87.1, 84.3, 81.5, 79.5, 78.3, 77.8, 78.3, 79.5, 81.5, 84.3, 87.1, 90.6, 94.0, 97.1]
    }
   },
   "dataCenterMW": [114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2]
  },
  {
   "key": "winter",
   "label": "Winter (December to February)",
   "date": "2025-01-27",
   "weight": 87,
   "design": false,
   "months": [12, 1, 2],
   "tempFrom": "noaa",
   "tmin": -4.1,
   "tmax": 7.8,
   "temp": [-2.3, -3.3, -3.9, -4.1, -3.9, -3.3, -2.3, -1.1, 0.3, 1.9, 3.4, 4.9, 6.1, 7.0, 7.6, 7.8, 7.6, 7.0, 6.1, 4.9, 3.4, 1.9, 0.3, -1.1],
   "demandShape": [625, 624, 626, 635, 648, 676, 718, 744, 734, 708, 685, 664, 645, 629, 616, 606, 609, 629, 656, 662, 662, 650, 630, 614],
   "wind": [0.322, 0.322, 0.323, 0.312, 0.299, 0.315, 0.353, 0.388, 0.411, 0.308, 0.241, 0.272, 0.321, 0.359, 0.386, 0.39, 0.386, 0.364, 0.438, 0.531, 0.58, 0.576, 0.578, 0.552],
   "solar": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.003, 0.196, 0.675, 0.701, 0.677, 0.618, 0.615, 0.73, 0.759, 0.611, 0.169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
   "districts": {
    "core": {
     "base": [90.0, 89.9, 90.1, 91.4, 93.3, 97.3, 103.4, 107.1, 105.7, 102.0, 98.6, 95.6, 92.9, 90.6, 88.7, 87.3, 87.7, 90.6, 94.5, 95.3, 95.3, 93.6, 90.7, 88.4],
     "heat": [224.4, 235.3, 241.8, 244.0, 241.8, 235.3, 224.4, 211.3, 196.0, 178.6, 162.3, 145.9, 132.9, 123.1, 116.5, 114.4, 116.5, 123.1, 132.9, 145.9, 162.3, 178.6, 196.0, 211.3]
    },
    "suburbs": {
     "base": [88.1, 88.0, 88.2, 89.5, 91.3, 95.3, 101.2, 104.9, 103.5, 99.8, 96.6, 93.6, 90.9, 88.7, 86.8, 85.4, 85.8, 88.7, 92.5, 93.3, 93.3, 91.6, 88.8, 86.6],
     "heat": [251.4, 263.7, 271.0, 273.4, 271.0, 263.7, 251.4, 236.8, 219.7, 200.2, 181.9, 163.6, 148.9, 137.9, 130.6, 128.2, 130.6, 137.9, 148.9, 163.6, 181.9, 200.2, 219.7, 236.8]
    },
    "fringe": {
     "base": [19.9, 19.9, 20.0, 20.3, 20.7, 21.6, 22.9, 23.7, 23.4, 22.6, 21.9, 21.2, 20.6, 20.1, 19.7, 19.3, 19.4, 20.1, 20.9, 21.1, 21.1, 20.7, 20.1, 19.6],
     "heat": [58.7, 61.5, 63.2, 63.8, 63.2, 61.5, 58.7, 55.3, 51.3, 46.7, 42.4, 38.2, 34.7, 32.2, 30.5, 29.9, 30.5, 32.2, 34.7, 38.2, 42.4, 46.7, 51.3, 55.3]
    }
   },
   "dataCenterMW": [114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 115.1, 115.9, 116.4, 116.5, 116.4, 115.9, 115.1, 114.2, 114.2, 114.2, 114.2, 114.2]
  },
  {
   "key": "spring",
   "label": "Spring (March and April)",
   "date": "2025-03-21",
   "weight": 61,
   "design": false,
   "months": [3, 4],
   "tempFrom": "noaa",
   "tmin": 4.5,
   "tmax": 17.6,
   "temp": [6.4, 5.4, 4.8, 4.5, 4.8, 5.4, 6.4, 7.8, 9.4, 11.1, 12.7, 14.3, 15.7, 16.7, 17.3, 17.6, 17.3, 16.7, 15.7, 14.3, 12.7, 11.1, 9.4, 7.8],
   "demandShape": [532, 528, 525, 528, 526, 546, 579, 605, 605, 594, 584, 573, 564, 558, 552, 549, 549, 548, 547, 552, 558, 551, 536, 521],
   "wind": [0.448, 0.441, 0.433, 0.427, 0.424, 0.432, 0.435, 0.444, 0.423, 0.352, 0.33, 0.349, 0.355, 0.394, 0.412, 0.433, 0.45, 0.451, 0.452, 0.454, 0.493, 0.498, 0.503, 0.488],
   "solar": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.006, 0.285, 0.529, 0.769, 0.814, 0.779, 0.817, 0.776, 0.681, 0.624, 0.549, 0.397, 0.151, 0.0, 0.0, 0.0, 0.0],
   "districts": {
    "core": {
     "base": [76.6, 76.0, 75.6, 76.0, 75.7, 78.6, 83.4, 87.1, 87.1, 85.5, 84.1, 82.5, 81.2, 80.4, 79.5, 79.1, 79.1, 78.9, 78.8, 79.5, 80.4, 79.3, 77.2, 75.0],
     "heat": [129.6, 140.5, 147.0, 150.3, 147.0, 140.5, 129.6, 114.4, 96.9, 78.4, 61.0, 43.6, 28.3, 17.4, 10.9, 7.6, 10.9, 17.4, 28.3, 43.6, 61.0, 78.4, 96.9, 114.4]
    },
    "suburbs": {
     "base": [75.0, 74.4, 74.0, 74.4, 74.1, 77.0, 81.6, 85.3, 85.3, 83.7, 82.3, 80.8, 79.5, 78.7, 77.8, 77.4, 77.4, 77.2, 77.1, 77.8, 78.7, 77.7, 75.6, 73.4],
     "heat": [145.3, 157.5, 164.8, 168.4, 164.8, 157.5, 145.3, 128.2, 108.6, 87.9, 68.4, 48.8, 31.7, 19.5, 12.2, 8.5, 12.2, 19.5, 31.7, 48.8, 68.4, 87.9, 108.6, 128.2]
    },
    "fringe": {
     "base": [17.0, 16.9, 16.8, 16.9, 16.8, 17.4, 18.5, 19.3, 19.3, 19.0, 18.6, 18.3, 18.0, 17.8, 17.6, 17.5, 17.5, 17.5, 17.5, 17.6, 17.8, 17.6, 17.1, 16.6],
     "heat": [33.9, 36.7, 38.4, 39.3, 38.4, 36.7, 33.9, 29.9, 25.3, 20.5, 15.9, 11.4, 7.4, 4.6, 2.8, 2.0, 2.8, 4.6, 7.4, 11.4, 15.9, 20.5, 25.3, 29.9]
    }
   },
   "dataCenterMW": [115.4, 114.6, 114.2, 114.2, 114.2, 114.6, 115.4, 116.5, 117.8, 119.2, 120.5, 121.8, 123.0, 123.8, 124.3, 124.5, 124.3, 123.8, 123.0, 121.8, 120.5, 119.2, 117.8, 116.5]
  },
  {
   "key": "early_summer",
   "label": "Early summer (May and June)",
   "date": "2025-06-08",
   "weight": 61,
   "design": false,
   "months": [5, 6],
   "tempFrom": "noaa",
   "tmin": 16.0,
   "tmax": 28.1,
   "temp": [17.8, 16.8, 16.2, 16.0, 16.2, 16.8, 17.8, 19.0, 20.5, 22.1, 23.6, 25.1, 26.3, 27.3, 27.9, 28.1, 27.9, 27.3, 26.3, 25.1, 23.6, 22.1, 20.5, 19.0],
   "demandShape": [549, 526, 508, 496, 490, 488, 486, 501, 532, 567, 602, 635, 665, 686, 701, 707, 708, 699, 683, 660, 631, 607, 578, 544],
   "wind": [0.222, 0.28, 0.311, 0.339, 0.357, 0.355, 0.306, 0.248, 0.171, 0.146, 0.151, 0.16, 0.183, 0.188, 0.202, 0.261, 0.29, 0.316, 0.362, 0.419, 0.44, 0.326, 0.292, 0.271],
   "solar": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015, 0.165, 0.433, 0.477, 0.514, 0.598, 0.618, 0.584, 0.623, 0.635, 0.574, 0.44, 0.381, 0.252, 0.061, 0.0, 0.0, 0.0],
   "districts": {
    "core": {
     "base": [79.1, 75.7, 73.2, 71.4, 70.6, 70.3, 70.0, 72.1, 76.6, 81.6, 86.7, 91.4, 95.8, 98.8, 100.9, 101.8, 102.0, 100.7, 98.4, 95.0, 90.9, 87.4, 83.2, 78.3],
     "heat": [5.4, 16.3, 22.9, 25.1, 22.9, 16.3, 5.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    },
    "suburbs": {
     "base": [77.4, 74.1, 71.6, 69.9, 69.1, 68.8, 68.5, 70.6, 75.0, 79.9, 84.9, 89.5, 93.7, 96.7, 98.8, 99.7, 99.8, 98.5, 96.3, 93.0, 88.9, 85.6, 81.5, 76.7],
     "heat": [6.1, 18.3, 25.6, 28.1, 25.6, 18.3, 6.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    },
    "fringe": {
     "base": [17.5, 16.8, 16.2, 15.8, 15.6, 15.6, 15.5, 16.0, 17.0, 18.1, 19.2, 20.3, 21.2, 21.9, 22.4, 22.6, 22.6, 22.3, 21.8, 21.1, 20.1, 19.4, 18.4, 17.4],
     "heat": [1.4, 4.3, 6.0, 6.6, 6.0, 4.3, 1.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    }
   },
   "dataCenterMW": [124.7, 123.9, 123.4, 123.2, 123.4, 123.9, 124.7, 125.7, 126.9, 128.2, 129.4, 130.6, 131.6, 132.4, 132.9, 133.1, 132.9, 132.4, 131.6, 130.6, 129.4, 128.2, 126.9, 125.7]
  },
  {
   "key": "summer",
   "label": "Summer (July and August)",
   "date": "2025-07-11",
   "weight": 52,
   "design": false,
   "months": [7, 8],
   "tempFrom": "noaa",
   "tmin": 20.9,
   "tmax": 33.2,
   "temp": [22.7, 21.7, 21.1, 20.9, 21.1, 21.7, 22.7, 24.0, 25.5, 27.1, 28.7, 30.1, 31.4, 32.4, 33.0, 33.2, 33.0, 32.4, 31.4, 30.1, 28.7, 27.1, 25.5, 24.0],
   "demandShape": [697, 668, 649, 637, 628, 635, 649, 679, 712, 746, 781, 818, 848, 874, 890, 903, 903, 897, 878, 853, 821, 797, 760, 717],
   "wind": [0.315, 0.304, 0.267, 0.23, 0.209, 0.189, 0.16, 0.127, 0.088, 0.079, 0.077, 0.082, 0.092, 0.097, 0.087, 0.099, 0.109, 0.117, 0.127, 0.141, 0.172, 0.223, 0.268, 0.3],
   "solar": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.009, 0.135, 0.388, 0.558, 0.642, 0.681, 0.71, 0.725, 0.714, 0.71, 0.697, 0.67, 0.563, 0.336, 0.065, 0.003, 0.0, 0.0],
   "districts": {
    "core": {
     "base": [100.4, 96.2, 93.5, 91.7, 90.4, 91.4, 93.5, 97.8, 102.5, 107.4, 112.5, 117.8, 122.1, 125.9, 128.2, 130.0, 130.0, 129.2, 126.4, 122.8, 118.2, 114.8, 109.4, 103.2],
     "heat": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    },
    "suburbs": {
     "base": [98.3, 94.2, 91.5, 89.8, 88.5, 89.5, 91.5, 95.7, 100.4, 105.2, 110.1, 115.3, 119.5, 123.2, 125.5, 127.3, 127.3, 126.4, 123.8, 120.2, 115.7, 112.3, 107.1, 101.1],
     "heat": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    },
    "fringe": {
     "base": [22.2, 21.3, 20.7, 20.3, 20.0, 20.3, 20.7, 21.7, 22.7, 23.8, 24.9, 26.1, 27.1, 27.9, 28.4, 28.8, 28.8, 28.6, 28.0, 27.2, 26.2, 25.4, 24.3, 22.9],
     "heat": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    }
   },
   "dataCenterMW": [128.7, 127.9, 127.4, 127.2, 127.4, 127.9, 128.7, 129.7, 131.0, 132.3, 133.6, 134.7, 135.8, 136.6, 137.1, 137.3, 137.1, 136.6, 135.8, 134.7, 133.6, 132.3, 131.0, 129.7]
  },
  {
   "key": "summer_peak",
   "label": "Summer peak day",
   "date": "2025-07-29",
   "weight": 10,
   "design": false,
   "months": [],
   "tempFrom": "teaching",
   "tmin": 26.0,
   "tmax": 40.0,
   "temp": [28.1, 26.9, 26.2, 26.0, 26.2, 26.9, 28.1, 29.5, 31.2, 33.0, 34.8, 36.5, 37.9, 39.1, 39.8, 40.0, 39.8, 39.1, 37.9, 36.5, 34.8, 33.0, 31.2, 29.5],
   "demandShape": [751, 716, 689, 670, 662, 670, 684, 709, 750, 799, 852, 901, 944, 947, 986, 999, 1000, 997, 985, 965, 929, 892, 841, 788],
   "wind": [0.61, 0.589, 0.542, 0.5, 0.469, 0.462, 0.39, 0.284, 0.123, 0.07, 0.047, 0.039, 0.054, 0.077, 0.094, 0.11, 0.114, 0.133, 0.179, 0.245, 0.324, 0.482, 0.538, 0.522],
   "solar": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.004, 0.164, 0.585, 0.751, 0.848, 0.827, 0.809, 0.745, 0.747, 0.734, 0.763, 0.65, 0.522, 0.253, 0.018, 0.0, 0.0, 0.0],
   "districts": {
    "core": {
     "base": [108.1, 103.1, 99.2, 96.5, 95.3, 96.5, 98.5, 102.1, 108.0, 115.1, 122.7, 129.7, 135.9, 136.4, 142.0, 143.9, 144.0, 143.6, 141.8, 139.0, 133.8, 128.4, 121.1, 113.5],
     "heat": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    },
    "suburbs": {
     "base": [105.9, 100.9, 97.1, 94.4, 93.3, 94.4, 96.4, 99.9, 105.7, 112.6, 120.1, 127.0, 133.1, 133.5, 139.0, 140.8, 141.0, 140.5, 138.8, 136.0, 131.0, 125.7, 118.5, 111.1],
     "heat": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    },
    "fringe": {
     "base": [24.0, 22.9, 22.0, 21.4, 21.1, 21.4, 21.8, 22.6, 23.9, 25.5, 27.2, 28.8, 30.1, 30.2, 31.5, 31.9, 31.9, 31.8, 31.4, 30.8, 29.7, 28.5, 26.8, 25.2],
     "heat": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    }
   },
   "dataCenterMW": [133.1, 132.1, 131.5, 131.4, 131.5, 132.1, 133.1, 134.2, 135.6, 137.1, 138.6, 139.9, 141.1, 142.1, 142.6, 142.8, 142.6, 142.1, 141.1, 139.9, 138.6, 137.1, 135.6, 134.2]
  },
  {
   "key": "autumn",
   "label": "Autumn (September and October)",
   "date": "2025-09-28",
   "weight": 61,
   "design": false,
   "months": [9, 10],
   "tempFrom": "noaa",
   "tmin": 12.0,
   "tmax": 25.0,
   "temp": [13.9, 12.8, 12.2, 12.0, 12.2, 12.8, 13.9, 15.2, 16.8, 18.5, 20.2, 21.7, 23.1, 24.1, 24.7, 25.0, 24.7, 24.1, 23.1, 21.7, 20.2, 18.5, 16.8, 15.2],
   "demandShape": [525, 505, 491, 482, 477, 478, 485, 491, 511, 538, 569, 606, 645, 680, 712, 735, 749, 752, 729, 701, 674, 639, 598, 561],
   "wind": [0.344, 0.341, 0.341, 0.33, 0.3, 0.259, 0.232, 0.221, 0.211, 0.106, 0.072, 0.086, 0.086, 0.093, 0.108, 0.104, 0.104, 0.107, 0.126, 0.22, 0.341, 0.399, 0.433, 0.436],
   "solar": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.018, 0.236, 0.516, 0.603, 0.603, 0.596, 0.62, 0.618, 0.685, 0.643, 0.507, 0.181, 0.009, 0.0, 0.0, 0.0, 0.0],
   "districts": {
    "core": {
     "base": [75.6, 72.7, 70.7, 69.4, 68.7, 68.8, 69.8, 70.7, 73.6, 77.5, 81.9, 87.3, 92.9, 97.9, 102.5, 105.8, 107.9, 108.3, 105.0, 100.9, 97.1, 92.0, 86.1, 80.8],
     "heat": [47.9, 59.9, 66.4, 68.6, 66.4, 59.9, 47.9, 33.8, 16.3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 16.3, 33.8]
    },
    "suburbs": {
     "base": [74.0, 71.2, 69.2, 67.9, 67.2, 67.4, 68.4, 69.2, 72.0, 75.8, 80.2, 85.4, 90.9, 95.9, 100.4, 103.6, 105.6, 106.0, 102.8, 98.8, 95.0, 90.1, 84.3, 79.1],
     "heat": [53.7, 67.1, 74.5, 76.9, 74.5, 67.1, 53.7, 37.8, 18.3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 18.3, 37.8]
    },
    "fringe": {
     "base": [16.8, 16.1, 15.7, 15.4, 15.2, 15.3, 15.5, 15.7, 16.3, 17.2, 18.2, 19.3, 20.6, 21.7, 22.7, 23.5, 23.9, 24.0, 23.3, 22.4, 21.5, 20.4, 19.1, 17.9],
     "heat": [12.5, 15.7, 17.4, 17.9, 17.4, 15.7, 12.5, 8.8, 4.3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.3, 8.8]
    }
   },
   "dataCenterMW": [121.5, 120.6, 120.1, 120.0, 120.1, 120.6, 121.5, 122.6, 123.9, 125.3, 126.6, 127.9, 129.0, 129.8, 130.3, 130.6, 130.3, 129.8, 129.0, 127.9, 126.6, 125.3, 123.9, 122.6]
  },
  {
   "key": "late_autumn",
   "label": "Late autumn (November)",
   "date": "2025-11-21",
   "weight": 30,
   "design": false,
   "months": [11],
   "tempFrom": "noaa",
   "tmin": 1.5,
   "tmax": 13.9,
   "temp": [3.3, 2.3, 1.7, 1.5, 1.7, 2.3, 3.3, 4.6, 6.1, 7.7, 9.3, 10.8, 12.1, 13.1, 13.7, 13.9, 13.7, 13.1, 12.1, 10.8, 9.3, 7.7, 6.1, 4.6],
   "demandShape": [522, 513, 508, 508, 514, 531, 562, 583, 592, 594, 599, 599, 599, 599, 596, 594, 594, 600, 598, 587, 576, 565, 549, 532],
   "wind": [0.413, 0.416, 0.419, 0.403, 0.373, 0.357, 0.317, 0.322, 0.285, 0.249, 0.266, 0.292, 0.365, 0.383, 0.38, 0.366, 0.341, 0.326, 0.363, 0.363, 0.321, 0.297, 0.314, 0.341],
   "solar": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012, 0.167, 0.387, 0.4, 0.38, 0.407, 0.381, 0.352, 0.323, 0.183, 0.011, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
   "districts": {
    "core": {
     "base": [75.2, 73.9, 73.2, 73.2, 74.0, 76.5, 80.9, 84.0, 85.2, 85.5, 86.3, 86.3, 86.3, 86.3, 85.8, 85.5, 85.5, 86.4, 86.1, 84.5, 82.9, 81.4, 79.1, 76.6],
     "heat": [163.4, 174.3, 180.8, 183.0, 180.8, 174.3, 163.4, 149.2, 132.9, 115.4, 98.0, 81.7, 67.5, 56.6, 50.1, 47.9, 50.1, 56.6, 67.5, 81.7, 98.0, 115.4, 132.9, 149.2]
    },
    "suburbs": {
     "base": [73.6, 72.3, 71.6, 71.6, 72.5, 74.9, 79.2, 82.2, 83.5, 83.7, 84.4, 84.4, 84.4, 84.4, 84.0, 83.7, 83.7, 84.6, 84.3, 82.7, 81.2, 79.6, 77.4, 75.0],
     "heat": [183.1, 195.3, 202.6, 205.1, 202.6, 195.3, 183.1, 167.2, 148.9, 129.4, 109.9, 91.5, 75.7, 63.5, 56.1, 53.7, 56.1, 63.5, 75.7, 91.5, 109.9, 129.4, 148.9, 167.2]
    },
    "fringe": {
     "base": [16.7, 16.4, 16.2, 16.2, 16.4, 16.9, 17.9, 18.6, 18.9, 19.0, 19.1, 19.1, 19.1, 19.1, 19.0, 19.0, 19.0, 19.2, 19.1, 18.7, 18.4, 18.0, 17.5, 17.0],
     "heat": [42.7, 45.6, 47.3, 47.8, 47.3, 45.6, 42.7, 39.0, 34.7, 30.2, 25.6, 21.4, 17.7, 14.8, 13.1, 12.5, 13.1, 14.8, 17.7, 21.4, 25.6, 30.2, 34.7, 39.0]
    }
   },
   "dataCenterMW": [114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 114.2, 115.1, 116.4, 117.7, 119.0, 120.0, 120.8, 121.3, 121.5, 121.3, 120.8, 120.0, 119.0, 117.7, 116.4, 115.1, 114.2]
  }
 ],
 "daysNote": {
  "weights": "Days of 2025 each day stands for; they sum to 365. The cold winter design day (design: true) is SPP's 2025 winter peak day with temperatures set for teaching (-18 to -9 C); the summer peak day is SPP's 2025 peak-demand day with heat-wave temperatures set for teaching (26 to 40 C). The other six are the medoid days of their months (closest to the months' mean demand, wind and solar shapes).",
  "hours": "Local time (Central), hours 00 to 23; arrays have 24 values.",
  "temp": "Outdoor temperature, C: a daily cosine from tmin at 03:00 to tmax at 15:00; tempFrom says whether tmin and tmax are NOAA's 1991-2020 normals for the months (noaa) or set for teaching.",
  "demandShape": "SPP's 2025 hourly demand for that local day, thousandths of SPP's 2025 peak hour (town_year.json).",
  "wind": "MW per MW of wind capacity: SPP's 2025 wind shape brought to EIA's 2025 monthly and annual capacity factors (33.8% for the year), method power (the best hours reach full output), as E0's wind farm: LX.townProfile('wind', 1, {year, targets, monthlyCF: true, method: 'power'}).",
  "solar": "MW per MW of solar capacity: the same with EIA's 2025 solar factors (24.0% for the year), method scale, as F7 and E1: LX.townProfile('solar', 1, {year, targets, monthlyCF: true}).",
  "districts": "Per district, MW: base = electricity for everything but space heating and EVs (the district's annual base energy spread over the year by SPP's demand shape); heat = space heat delivered (thermal MW) by the heat model. Electricity for heating = heat x (share.resistance + share.heatPump / COP(T)); EV charging = evMWhPerDay x transport.evProfile.",
  "dataCenterMW": "The data-center campus's facility power, MW, by the hour's temperature."
 },
 "sources": {
  "census-quickfacts": {
   "title": "QuickFacts: Wichita city, Kansas",
   "publisher": "U.S. Census Bureau",
   "date": "2020-2024 ACS 5-year (income, 2024 dollars); 2019-2023 (persons per household); read 6 Nov 2026 from census.gov's search listing of the page",
   "url": "https://www.census.gov/quickfacts/fact/table/wichitacitykansas/",
   "where": "median household income $64,620 (2024 dollars, 2020-2024); persons per household 2.47 (2019-2023)"
  },
  "bea-deflator": {
   "title": "NIPA Table 1.1.9, Implicit Price Deflators for Gross Domestic Product",
   "publisher": "U.S. Bureau of Economic Analysis",
   "date": "last revised 29 Oct 2026 (via e2-plains-grid.json)",
   "url": "https://apps.bea.gov/iTable/?reqid=19&step=3&isuri=1&1921=survey&1903=13&1904=2022&1905=2026&1906=a&1911=0",
   "where": "2024 125.587, 2025 128.893: 2024 dollars x 1.0263 = 2025 dollars"
  },
  "noaa-normals": {
   "title": "U.S. Climate Normals 1991-2020, Wichita Eisenhower National Airport (USW00003928), monthly and annual",
   "publisher": "NOAA National Centers for Environmental Information",
   "date": "1991-2020 normals; read 6 Nov 2026",
   "url": "https://www.ncei.noaa.gov/products/us-climate-normals",
   "where": "monthly normal maximum and minimum; heating degree days 4,413.6 and cooling degree days 1,773.6 (base 65 F); annual mean 57.7 F"
  },
  "doe-lead": {
   "title": "Low-Income Energy Affordability Data (LEAD) Tool",
   "publisher": "U.S. Department of Energy",
   "date": "ACS 5-year 2018-2022; read 6 Nov 2026",
   "url": "https://www.energy.gov/cmei/scep/low-income-energy-affordability-data-lead-tool",
   "where": "AMI bands 0-30%, 30-50%, 50-80%, 80-100%, 100-150%, 150%+; national average energy burden 6% (0-80% AMI) and about 2% (others)"
  },
  "eia-recs-wnc": {
   "title": "2020 RECS, Table CE4.6: Annual household site end-use consumption by fuel, averages",
   "publisher": "U.S. Energy Information Administration",
   "date": "2020 data; released June 2023, revised March 2024 (via f03-energy-services.json)",
   "url": "https://www.eia.gov/consumption/residential/data/2020/index.php?view=consumption",
   "where": "West North Central, MMBtu per household using the fuel and end use: gas water heating 17.4, other gas 3.8; electricity air conditioning 5.9, refrigerators 3.0, other 18.5"
  },
  "doe-cchp": {
   "title": "Residential Cold-Climate Heat Pump Technology Challenge Specification, Version 1.2",
   "publisher": "U.S. Department of Energy",
   "date": "24 Sep 2021 (via f03-energy-services.json)",
   "url": "https://www.energy.gov/sites/default/files/2021-10/bto-cchp-tech-challenge-spec-102521.pdf",
   "where": "COP 2.4 at 5 F (-15 C); compressor cut-out no higher than -10 F (-23 C): lesson F3's COP curve"
  },
  "doe-efficiency": {
   "title": "Measure Guideline: High Efficiency Natural Gas Furnaces; Strategy Guideline: Proper Water Heater Selection",
   "publisher": "U.S. Department of Energy, Building America",
   "date": "2012 and 2015 (via f03-energy-services.json)",
   "url": "https://www1.eere.energy.gov/buildings/publications/pdfs/building_america/highefficiency_gas_furnaces.pdf",
   "where": "furnaces 80% AFUE (mid-efficiency); gas storage water heaters about 0.60, electric about 0.90"
  },
  "epa-vehicle": {
   "title": "Greenhouse Gas Equivalencies Calculator: Calculations and References, Gasoline-powered passenger vehicles per year",
   "publisher": "U.S. Environmental Protection Agency",
   "date": "2022 data (via f03-energy-services.json)",
   "url": "https://www.epa.gov/energy/greenhouse-gas-equivalencies-calculator-calculations-and-references",
   "where": "22.8 miles per gallon; 10,917 miles a year (FHWA)"
  },
  "doe-fotw1360": {
   "title": "A Typical EV is 87%–91% Efficient Compared to 30% for a Conventional Gasoline Vehicle",
   "publisher": "U.S. Department of Energy, Vehicle Technologies (Fact of the Week #1360)",
   "date": "16 Sep 2024 (via f03-energy-services.json)",
   "url": "https://www.energy.gov/cmei/vehicles/articles/fotw-1360-sept-16-2024-typical-ev-87-91-efficient-compared-30-conventional",
   "where": "EVs 87-91% efficient; gasoline vehicles about 30%"
  },
  "eia-epa-2-10": {
   "title": "Electric Power Annual, Table 2.10: Average Price of Electricity to Ultimate Customers by End-Use Sector, by State, 2025 and 2024",
   "publisher": "U.S. Energy Information Administration",
   "date": "2025 data; read 6 Nov 2026",
   "url": "https://www.eia.gov/electricity/annual/html/epa_02_10.html",
   "where": "Kansas 2025, cents per kWh: residential 14.44, commercial 11.19, industrial 8.04"
  },
  "eia-ng-ks": {
   "title": "Natural Gas Prices, Kansas (annual)",
   "publisher": "U.S. Energy Information Administration",
   "date": "released 30 Oct 2026; read 6 Nov 2026",
   "url": "https://www.eia.gov/dnav/ng/ng_pri_sum_dcu_sks_a.htm",
   "where": "2025, $ per thousand cubic feet: residential 14.81, commercial 11.90, citygate 5.52, industrial not available; 2024 industrial 4.29, citygate 5.23"
  },
  "eia-gasoline": {
   "title": "Gasoline and Diesel Fuel Update: retail prices, annual, Midwest (PADD 2)",
   "publisher": "U.S. Energy Information Administration",
   "date": "released 3 Nov 2026; read 6 Nov 2026",
   "url": "https://www.eia.gov/dnav/pet/pet_pri_gnd_dcus_r20_a.htm",
   "where": "2025: regular gasoline, all formulations, $2.944 per gallon; on-highway diesel $3.621"
  },
  "eia-propane-ks": {
   "title": "Heating Oil and Propane Update: Kansas residential propane price, weekly",
   "publisher": "U.S. Energy Information Administration",
   "date": "released 4 Nov 2026; read 6 Nov 2026",
   "url": "https://www.eia.gov/dnav/pet/hist/LeafHandler.ashx?n=PET&s=W_EPLLPA_PRS_SKS_DPG&f=W",
   "where": "26 weekly prices, 7 Oct 2024 to 31 Mar 2025 (EIA surveys the heating season only): mean $1.86 per gallon"
  },
  "eia-co2": {
   "title": "Carbon Dioxide Emissions Coefficients",
   "publisher": "U.S. Energy Information Administration",
   "date": "released 18 Sep 2024; read 6 Nov 2026",
   "url": "https://www.eia.gov/environment/emissions/co2_vol_mass.php",
   "where": "natural gas 52.91 kg per MMBtu; propane 5.75 kg per gallon; finished motor gasoline 8.49 kg per gallon (fuel ethanol counted as non-emitting); diesel and home heating fuel 10.19 kg per gallon"
  },
  "egrid-2023": {
   "title": "eGRID summary data, eGRID2023 (Revision 2)",
   "publisher": "U.S. Environmental Protection Agency",
   "date": "data year 2023; revision 2 of 12 Jun 2025; read 6 Nov 2026",
   "url": "https://www.epa.gov/egrid/summary-data",
   "where": "CO2 total output emission rate, lb per MWh: SPNO (SPP North) 861.999; SPSO (SPP South) 872.042; U.S. 767.209"
  },
  "eia-ks-profile": {
   "title": "Kansas Electricity Profile 2024, Table 1",
   "publisher": "U.S. Energy Information Administration",
   "date": "data year 2024; released 10 Nov 2025; read 6 Nov 2026",
   "url": "https://www.eia.gov/electricity/state/kansas/",
   "where": "CO2 680 lb per MWh generated in Kansas; total retail sales 41,258,210 MWh"
  },
  "eia-btu": {
   "title": "Energy explained: British thermal units (Btu), sample conversion factors",
   "publisher": "U.S. Energy Information Administration",
   "date": "read 6 Nov 2026",
   "url": "https://www.eia.gov/energyexplained/units-and-calculators/british-thermal-units.php",
   "where": "gallon of motor gasoline 120,214 Btu; diesel 137,381; propane 91,452; cubic foot of natural gas 1,036; kWh 3,412"
  },
  "afdc-ks": {
   "title": "Kansas Transportation Data for Alternative Fuels and Vehicles",
   "publisher": "U.S. Department of Energy, Alternative Fuels Data Center",
   "date": "vehicles registered in 2025; read 6 Nov 2026",
   "url": "https://afdc.energy.gov/states/ks",
   "where": "electric (EV) 18,700; plug-in hybrid 7,800 (TransAtlas, data from Experian)"
  },
  "fhwa-mv1": {
   "title": "Highway Statistics 2023, Table MV-1: State Motor-Vehicle Registrations",
   "publisher": "U.S. Department of Transportation, Federal Highway Administration",
   "date": "November 2024; read 6 Nov 2026",
   "url": "https://www.fhwa.dot.gov/policyinformation/statistics/2023/mv1.cfm",
   "where": "Kansas: automobiles 766,581; trucks 1,618,645"
  },
  "eia-aeo2026-hmm": {
   "title": "Assumptions to the Annual Energy Outlook 2026: Hydrogen Market Module, Table 2",
   "publisher": "U.S. Energy Information Administration",
   "date": "April 2026 (via e0.json)",
   "url": "https://www.eia.gov/outlooks/aeo/assumptions/pdf/HMM_Assumptions.pdf",
   "where": "about 0.18 MMBtu of natural gas per kg of hydrogen from gas reformers, feedstock and firing together"
  },
  "doe-h2-24005": {
   "title": "DOE Hydrogen Program Record 24005, Clean Hydrogen Production Cost Scenarios with PEM Electrolyzer Technology",
   "publisher": "U.S. Department of Energy",
   "date": "20 May 2024 (via e0.json)",
   "url": "https://www.hydrogen.energy.gov/docs/hydrogenprogramlibraries/pdfs/24005-clean-hydrogen-production-cost-pem-electrolyzer.pdf",
   "where": "57.5 kWh of electricity per kg of hydrogen"
  },
  "eia-dg-2024": {
   "title": "Distributed Generation, Battery Storage, and Combined Heat and Power System Characteristics and Costs in the Buildings and Industrial Sectors, Table 2-2",
   "publisher": "U.S. Energy Information Administration",
   "date": "March 2024 (via e0.json)",
   "url": "https://www.eia.gov/analysis/studies/buildings/dg_storage_chp/pdf/dg_storage_chp.pdf",
   "where": "residential solar capacity factor 17.6%"
  },
  "eia-930": {
   "title": "Hourly Electric Grid Monitor (Form EIA-930), Southwest Power Pool, 2025",
   "publisher": "U.S. Energy Information Administration",
   "date": "accessed 2 Nov 2026 (via town_year.json and town_days.json)",
   "url": "https://www.eia.gov/electricity/gridmonitor/",
   "where": "hourly demand, wind and solar shapes, each normalised to its own 2025 maximum"
  },
  "eia-epm-cf": {
   "title": "Electric Power Monthly, Table 6.07.B (capacity factors, 2025, annual and monthly)",
   "publisher": "U.S. Energy Information Administration",
   "date": "issue of 23 Oct 2026 (via cf_targets.json)",
   "url": "https://www.eia.gov/electricity/monthly/epm_table_grapher.php?t=epmt_6_07_b",
   "where": "wind 33.8%, solar photovoltaic 24.0% in 2025, and each month"
  },
  "doe-femp-cooling": {
   "title": "Cooling Water Efficiency Opportunities for Federal Data Centers",
   "publisher": "U.S. Department of Energy, Federal Energy Management Program",
   "date": "page read 5 Nov 2026 (via f08-large-loads.json)",
   "url": "https://www.energy.gov/cmei/femp/cooling-water-efficiency-opportunities-federal-data-centers",
   "where": "evaporative cooling towers use water mainly by evaporation; air-cooled heat rejection is an alternative"
  },
  "hydrogen-properties": {
   "title": "Physical constants: hydrogen's higher heating value (141.9 MJ per kg, 39.4 kWh per kg); ammonia's hydrogen content (3 x 1.008 / 17.031)",
   "publisher": "standard properties",
   "date": "no date",
   "url": "no link",
   "where": "hydrogen energy in the Sankey; ammonia made from the hydrogen"
  }
 }
}
