Seven years, three grids
Between 2019 and 2025 the carbon intensity of New York's grid rose 29% and Texas's fell 20%, on the same source, the same emission factors and the same code path. Great Britain fell 39% on its own, non-comparable basis. Here are the 84 monthly means behind each line, and what they do and do not show.
Every value the API serves is an hourly mean; stacked up, they make a record. This page takes three zones with near-complete hourly coverage since January 2019 — US-NYISO, US-ERCOT and GB — and plots the 84 monthly means for each. Nothing here is modelled or forecast: each point is the plain average of that month's hourly values as they stand in the archive today.
§ 1The chart
The chart
Two panels on purpose. New York and Texas come from the same upstream (EIA-930), the same emission factors (IPCC AR5 lifecycle) and the same code path, so they share an axis. Great Britain is NESO's own operational number, on which wind, solar, nuclear and hydro count as exactly zero; its level cannot be compared with the panel above, only its direction, so it gets its own axis. Hover or focus a chart and use the arrow keys to read any month; the full table is underneath.
New York and Texas — monthly mean, gCO2eq/kWh, lifecycle basis
Source: EIA-930 hourly generation by fuel, IPCC AR5 lifecycle factors, via gridcarbon. Same code path for both zones.
Great Britain — monthly mean, gCO2eq/kWh, NESO operational basis
Source: NESO Carbon Intensity API, republished by gridcarbon. Combustion-only factors: not comparable in level to the chart above, only in direction. Separate axis on purpose.
Table view — all 84 monthly means
| Month | US-NYISO | US-ERCOT | GB (NESO basis) |
|---|---|---|---|
| 2019-01 | 220.6 | 400.2 | 280.8 |
| 2019-02 | 216.8 | 382.6 | 217.7 |
| 2019-03 | 225.6 | 381.6 | 197.3 |
| 2019-04 | 197.6 | 355.7 | 212.6 |
| 2019-05 | 176.0 | 400.6 | 209.6 |
| 2019-06 | 206.3 | 419.2 | 215.2 |
| 2019-07 | 272.5 | 424.3 | 222.5 |
| 2019-08 | 258.5 | 427.1 | 181.4 |
| 2019-09 | 219.1 | 422.6 | 177.9 |
| 2019-10 | 198.4 | 395.6 | 201.7 |
| 2019-11 | 201.5 | 380.1 | 240.3 |
| 2019-12 | 208.7 | 374.5 | 203.1 |
| 2020-01 | 210.0 | 356.2 | 208.6 |
| 2020-02 | 222.2 | 344.7 | 175.6 |
| 2020-03 | 216.0 | 353.1 | 189.0 |
| 2020-04 | 177.5 | 357.9 | 167.9 |
| 2020-05 | 201.7 | 353.8 | 142.2 |
| 2020-06 | 256.0 | 364.8 | 172.3 |
| 2020-07 | 301.9 | 401.4 | 184.7 |
| 2020-08 | 287.7 | 415.7 | 202.6 |
| 2020-09 | 265.7 | 417.1 | 194.4 |
| 2020-10 | 227.7 | 378.9 | 161.7 |
| 2020-11 | 222.7 | 352.0 | 176.8 |
| 2020-12 | 227.7 | 354.5 | 185.3 |
| 2021-01 | 240.4 | 368.6 | 219.3 |
| 2021-02 | 243.3 | 377.6 | 179.2 |
| 2021-03 | 220.1 | 274.7 | 184.6 |
| 2021-04 | 206.8 | 324.9 | 200.6 |
| 2021-05 | 241.6 | 337.0 | 178.0 |
| 2021-06 | 285.6 | 408.0 | 170.8 |
| 2021-07 | 295.6 | 426.8 | 207.9 |
| 2021-08 | 308.6 | 404.7 | 181.7 |
| 2021-09 | 264.5 | 390.0 | 204.4 |
| 2021-10 | 361.9 | 372.2 | 150.6 |
| 2021-11 | 251.7 | 334.9 | 182.3 |
| 2021-12 | 247.9 | 321.6 | 191.8 |
| 2022-01 | 276.9 | 357.9 | 184.6 |
| 2022-02 | 266.4 | 344.3 | 126.6 |
| 2022-03 | 263.6 | 284.4 | 186.9 |
| 2022-04 | 253.4 | 286.7 | 181.1 |
| 2022-05 | 267.9 | 309.7 | 182.8 |
| 2022-06 | 278.2 | 359.6 | 183.0 |
| 2022-07 | 316.0 | 379.2 | 209.5 |
| 2022-08 | 321.7 | 406.2 | 220.6 |
| 2022-09 | 315.5 | 398.6 | 210.4 |
| 2022-10 | 350.4 | 365.4 | 156.1 |
| 2022-11 | 263.9 | 340.0 | 168.5 |
| 2022-12 | 261.2 | 352.6 | 178.8 |
| 2023-01 | 255.1 | 284.5 | 143.3 |
| 2023-02 | 257.4 | 288.2 | 165.9 |
| 2023-03 | 337.8 | 281.2 | 157.8 |
| 2023-04 | 393.4 | 295.6 | 160.9 |
| 2023-05 | 242.8 | 364.9 | 147.8 |
| 2023-06 | 288.8 | 372.0 | 166.8 |
| 2023-07 | 318.0 | 372.1 | 142.6 |
| 2023-08 | 289.3 | 391.2 | 161.5 |
| 2023-09 | 295.3 | 383.9 | 158.1 |
| 2023-10 | 258.5 | 343.1 | 139.0 |
| 2023-11 | 262.9 | 349.9 | 161.4 |
| 2023-12 | 255.3 | 320.1 | 122.5 |
| 2024-01 | 264.2 | 365.5 | 166.4 |
| 2024-02 | 256.9 | 259.6 | 133.3 |
| 2024-03 | 256.2 | 280.3 | 127.7 |
| 2024-04 | 229.5 | 275.0 | 92.7 |
| 2024-05 | 259.5 | 326.2 | 124.3 |
| 2024-06 | 283.5 | 331.4 | 99.4 |
| 2024-07 | 311.6 | 363.7 | 115.0 |
| 2024-08 | 303.6 | 373.7 | 83.8 |
| 2024-09 | 307.8 | 379.7 | 121.8 |
| 2024-10 | 344.5 | 332.0 | 138.2 |
| 2024-11 | 258.1 | 308.7 | 171.4 |
| 2024-12 | 276.0 | 326.1 | 127.0 |
| 2025-01 | 275.2 | 345.4 | 168.2 |
| 2025-02 | 286.1 | 312.7 | 147.5 |
| 2025-03 | 267.9 | 248.9 | 146.4 |
| 2025-04 | 240.5 | 261.7 | 133.0 |
| 2025-05 | 236.7 | 314.2 | 106.4 |
| 2025-06 | 285.7 | 314.5 | 98.8 |
| 2025-07 | 333.1 | 340.3 | 129.2 |
| 2025-08 | 311.3 | 365.8 | 123.6 |
| 2025-09 | 293.6 | 359.2 | 112.5 |
| 2025-10 | 269.0 | 333.1 | 138.3 |
| 2025-11 | 260.9 | 293.9 | 126.1 |
| 2025-12 | 286.3 | 302.9 | 120.2 |
§ 2New York went up
New York went up
NYISO's yearly mean rose from 216.9 to 278.9 gCO2eq/kWh, +28.6%. It did not drift: it stepped, +18 in 2020, +29 in 2021, +22 in 2022, and has been flat since.
The generation data says where the steps came from. Nuclear's share of NYISO generation was 33.6% in 2019, 29.4% in 2020, 23.8% in 2021 and 20.1% in 2022; gas went 34.7%, 39.3%, 45.0%, 48.5% over the same years and reached 53.0% in 2025. Indian Point, about 2,000 MW of nuclear north of New York City, shut one reactor at the end of April 2020 and the other at the end of April 2021, and permanently ceased operation on 30 April 2021. Hydro held at about 21% throughout and wind grew from 3.3% to 5.3%, which is not enough to matter against a 13-point swing from a zero-rated fuel to a 490 g one.
| Share of NYISO generation | 2019 | 2020 | 2021 | 2022 | 2025 |
|---|---|---|---|---|---|
| Nuclear | 33.6% | 29.4% | 23.8% | 20.1% | 21.1% |
| Gas | 34.7% | 39.3% | 45.0% | 48.5% | 53.0% |
| Hydro | 21.9% | 21.9% | 22.0% | 21.1% | 18.2% |
| Wind | 3.3% | 3.4% | 3.3% | 3.8% | 5.3% |
That is as far as this page goes. I have not modelled imports, demand or the dispatch order, and these are production-based figures for what was generated inside the zone. The swap from nuclear to gas is where the rise sits in the data; whether it is the whole story is a question for someone with the interchange data.
§ 3Texas went down
Texas went down
ERCOT's yearly mean fell from 397.2 to 316.2, −20.4%, and fell in every single year with 100% hourly coverage until 2025 (99.7%). No steps here: solar's share of generation went 1.0%, 2.2%, 3.9%, 5.5%, 7.1%, 10.3%, 13.7% year by year, wind rose from 20.0% to 23.3%, coal fell from 20.4% to 12.8%, and gas from 47.3% to 40.5%. Batteries appear at 1.1% in 2025 and are excluded from the intensity calculation as storage, per the method.
Texas remains the higher-carbon grid by a wide margin — 316 against New York's 279 in 2025 — and the two lines have not crossed. They have closed from a gap of 180 g to 37 g.
§ 4Great Britain, on its own basis
Great Britain, on its own basis
GB fell from 213.3 to 129.2 on NESO's operational basis, −39.4%. That number is not mine and not comparable with the two above: NESO's factors are combustion-only, so the same physical grid reads structurally lower than a lifecycle calculation would. The direction is real and the seasonal shape is visible — GB's winter peaks are the sharpest in the set — but do not subtract it from either US line. For GB you should also know that the newest half-hour the API serves is NESO's forecast rather than a settled value; every month on this page is settled.
§ 5The yearly table
The yearly table
Coverage is the share of the year's hours (GB: half-hours) with a value in the archive. Every cell below is 99.5% or better; the years and zones excluded from this page — US-ISONE and US-TVA before 2022 in particular — were left out because they are not.
| Year | US-NYISO | US-ERCOT | GB (NESO basis) |
|---|---|---|---|
| 2019 | 216.9 | 397.2 | 213.3 |
| 2020 | 234.9 | 371.0 | 180.1 |
| 2021 | 264.3 | 361.6 | 187.6 |
| 2022 | 286.5 | 348.8 | 182.8 |
| 2023 | 287.9 | 337.5 | 152.2 |
| 2024 | 279.5 | 327.2 | 125.1 |
| 2025 | 278.9 | 316.2 | 129.2 |
| 2019 → 2025 | +28.6% | −20.4% | −39.4% |
§ 6Reproduce it
Reproduce it
The history endpoint takes a zone and a UTC window and returns hourly values, capped at 5000 points per response, so pull it a month at a time:
curl -s "https://api.gridcarbon.dev/v1/intensity?zone=US-NYISO&from=2019-01-01T00:00:00Z&to=2019-02-01T00:00:00Z"
Average gco2eq_kwh over each response and you have the first panel. GB is zone=GB; the fuel shares in §2 and §3 are not exposed by the API — they come from the generation table behind it, and EIA-930 publishes the same series directly. No key, no signup; the pip install gridcarbon and npm i gridcarbon clients wrap the same call. Please pull months, not years, in one go: the cap will truncate a year and say so in the response.
§ 7What this page does not show
What this page does not show
- Consumption. These are production-based: what was generated inside the zone, not what was consumed there. Imports are not flow-traced.
- Losses. Generator-terminal, not at the meter.
- Marginal emissions. Average intensity of the mix, which is the wrong number for deciding whether to run one more load right now.
- A stable record. Values are recomputed in place as operators revise; nothing is versioned, so the 2019 mean could move by a rounding digit if EIA restates a month. It has not so far.
- Anything about lignite. AR5 gives all coal 820; neither NYISO nor ERCOT burns lignite at scale, so it does not bite here, but it does in DE and PL.
The methodology page has the factor table, the storage exclusion and every other known bias.