About this tool

Hourly life-cycle emission factors for US balancing authorities, built from EIA-930 generation data and the EPA/NETL US Electricity Baseline. This page states how the numbers are produced, what they assume, how they were checked, and where they come from — so a reader can judge whether they are fit for a given purpose rather than taking them on trust.

Data freshness

Newest hour available: 3645.2 h behind at worst across covered balancing authorities.

Ingest runs in the last 24 h: 24 · last run 2026-09-01 03:00 UTC (cron, ok)

The schedule is hourly. If the run count is 1, the platform is executing it daily — EIA-930 itself also publishes with a lag of several hours, so some staleness is expected even when the schedule is healthy.

Methodology

Each hour, EIA-930 reports generation by fuel type for a balancing authority. Every fuel is multiplied by a life-cycle emission factor for that fuel in that balancing authority, and the results are summed and divided by total generation. The output is a busbar emission factor in kg CO₂e per MWh.

The per-fuel factors are not generic. They come from the EPA/NETL US Electricity Baseline (eLCI), which is resolved to individual balancing authorities, so gas in ERCOT and gas in ISO-NE carry different burdens. They are cradle-to-gate: fuel extraction, processing and transport, plus plant construction, not only combustion. Impacts are computed with a vendored FLCAC solver under TRACI 2.2 / GWP-100.

What a spike in intensity is, and what it is not

Every factor here is a ratio — emissions divided by energy — so it is worth being explicit about what moves it. For each hour the generation of every fuel is multiplied by that fuel’s life-cycle factor, summed, and divided by the generation those factors were applied to. The result is a generation-weighted average of the fuel factors. It is therefore a property of the mix, not of the size of the hour: if a region generated half as much of everything, in the same proportions, the factor would not move at all.

This matters because a reasonable first suspicion — that intensity spikes when generation falls, so the ratio is an artefact of a small denominator — is not what these data do. Across 505,895 balancing-authority hours the correlation between energy and intensity is +0.05, which is no relationship at all. Within a day the factor tracks the fossil share almost exactly, and not the load: for CISO at 03:00 it is 271 kg CO₂e/MWh on 19,652 MWh and 50.6% fossil, at 12:00 it is 133 on more energy (24,750 MWh) at 22.1% fossil, and at 18:00 — the highest-generation hour of the day at 35,450 MWh — it is 174 at 29.8% fossil. Nor do the extremes live in the small hours: hours under 100 MWh varyless (sd ≈ 118) than hours over 1,000 MWh (sd ≈ 226).

An hour with no generation cannot produce a divide-by-zero: the factor is computed through a null-guarded division, so all 22,085 zero-energy hours in the archive carry no factor rather than an infinity, and they are excluded from every plot and average rather than counted as zero. A high evening factor is a real statement about which plants were running, not an arithmetic artefact — but because it is still a ratio, the energy behind it is recorded and plotted beside it on the changes page, so a factor is never read without the quantity it was taken over.

Storage

Batteries and pumped storage are handled with a served-basis, emission-conserving allocation. Discharged energy carries the intensity of the mix that charged it, divided by round-trip efficiency; the charging energy is removed from the hour it was drawn so nothing is counted twice. Without this, discharge is given a fossil-like “other” emission factor and evening emission factors are materially overstated — for CISO, hour 21 falls from 436 to 237 kg CO₂e/MWh once the allocation is applied. Total emissions over the window are conserved to +0.06%.

Accounting boundaries

The same grid yields different, equally correct numbers depending on the question. The map exposes seven: the hourly generation basis computed here, and six annual framings published by eLCI — generation, consumption (adds imports), consumption at user (adds transmission and distribution losses), and residual variants of each (removes contractually claimed generation). Switching framing changes what the number means, not merely how it is presented, so each is labelled with its basis wherever it appears.

Assumptions

Network balance

Consumption framings rest on a flow network assembled from EIA’s directed interchange reports. That network does not close, and no amount of care will make it: generation, each neighbour’s generation and every tie are independent measurements. Requiring balance would mean discarding most hours or inventing a correction, so the method is built to tolerate imbalance and the imbalance is published.

A balancing authority’s mix shares are normalised over inbound energy — its own generation plus its imports. Inbound cannot be negative and its shares always sum to one, whatever the exports do. So a deficit changes how much confidence a factor deserves, never whether the arithmetic is valid.

Hours that do not balance
2.5%
of modelled balancing-authority hours export more than their own generation plus imports can account for
Energy that does not balance
0.08%
408,615 MWh — the same gap measured in energy rather than in hours
Genuinely unattributable
801 GWh
arriving from the 6 endpoints no source gives an emission factor for, out of 26,448 GWh crossing unmodelled endpoints in total

The first two numbers are the same gap counted two ways, and the difference between them is the point: hours that fail to balance are common, but the energy involved is not. A node is typically short by a little, often — not by a lot, ever. Reporting only the hour count would overstate the problem by a factor of thirty.

Network-wide imbalance is exactly zero: the reconciliation rule is conserving by construction, so whatever leaves one node arrives at the other. The residual is entirely a per-node question. Measured over 615,001 balancing-authority hours, of which 87,954 have an endpoint whose generation is never ingested — a statement about this pipeline’s coverage rather than about the grid.

Where the deficit sits, across modelled endpoints only. Mostly federal power marketing administrations and generation-only entities: they sell output EIA attributes to another balancing authority’s generation, so they permanently export power they do not report generating. A structural feature of the data, not an error to be fixed.
BADeficit MWh% of exportsHours
GWA168,49524.9%3,917
TIDC126,3536.4%565
SPA34,0810.8%731
SEPA26,5261.1%2,692
GRID12,6830.1%3,949
DEAA11,2380.3%64
WALC9,6080.1%33
SEC6,0430%27

What sits at the end of each tie

60 of 71 endpoint codes are ingested hourly with their own generation. 5 more take a factor from an eLCI annual generation mix — these were a crosswalk gap rather than a data gap, published by eLCI under entity names never mapped to their EIA codes. The remaining 6 have no emission factor from any source, so energy arriving from them is reported as unattributable rather than quietly assigned a neighbour’s mix.

CodeFactor fromBasis
BCHABritish Columbia Hydro and Power AuthorityeLCI publishes a generation mix for BC Hydro (47.1 kg CO2e/MWh). Exact entity identity.
HQTHydro-Quebec TransEnergieeLCI publishes a generation mix for Hydro-Quebec TransEnergie (8.9). Exact entity identity. NOT "New Harquahala Generating Company", which a substring search also returns.
IESOOntario IESOeLCI publishes a generation mix for Ontario IESO (88.4). Exact entity identity.
MHEBManitoba HydroeLCI publishes a generation mix for Manitoba Hydro (14.3). Exact entity identity. Material: MHEB exports ~2,161 MWh/hour into MISO and imports nothing, so it is a pure source node.
NBSONew Brunswick System OperatoreLCI publishes a generation mix for the New Brunswick System Operator (213.2). Exact entity identity.
AESOno factorAlberta Electric System Operator. eLCI publishes no mix for Alberta.
BHBAno factorBlack Hills Power sub-area. No eLCI entity.
CENno factorCFE control area, Baja California. No eLCI entity. Explicitly NOT Public Service Company of New Mexico, which a name search returns.
SIKEno factorCity of Sikeston, Missouri. No eLCI entity.
SPCno factorSaskatchewan Power Corporation. eLCI publishes no mix for Saskatchewan.
SWPWno factorSouthwest Power Pool sub-area reported separately from SWPP. No eLCI entity of its own; assigning SWPP's mix would assume the sub-area matches the pool, which is untested.

Every mapping above is pinned by inspection. Searching eLCI’s entity names for the six codes with no factor returned two confident false positives — CEN matched “Public Service Company of New Mexico” on the string “Mexico”, and SWPW matched “Southwest Power Pool” on “Power Pool”. Both would have fabricated a factor from a string coincidence, so name similarity is never used to establish identity anywhere in this tool.

Following imports past the first hop

Two accountings are published for every hour, not one. First-order gives an import the emission factor of the region that exported it and stops there — this is what eLCI itself does, and reproducing its published consumption mix from its own weights confirms the method exactly, 60 of 60. Recursive follows the energy back to where it was generated: power reaching A through B from C takes the factor of what C generated, solved as a linear system rather than iterated.

Where following imports past the first hop changes the answer. Both columns come from the same solver — only the time resolution of the import weights differs.
BAFirst-orderRecursiveGap, hourlyGap, annual
TPWR20.653.3+158.1%+18.6%
DOPD3.06.2+105.3%0.0%
SCL21.741.0+88.9%+18.7%
PSEI82.7125.9+52.2%+4.6%
CHPD2.83.7+29.5%0.0%
PGE164.5200.1+21.6%+4.9%
GCPD30.924.3-21.3%-11.3%
SEPA214.5188.8-12.0%-4.6%

The distribution is heavy-tailed rather than uniform: the median balancing authority differs by 0.47% and 35 of 60 differ by less than 1%. Multi-hop tracing is close to irrelevant for a large, self-sufficient region and decisive for a small import-dependent one.

The last two columns are the finding. Annual weights blend the hours a hydro utility runs on its own water into the hours it buys fossil power, and the correction largely vanishes in the average — for Tacoma Power by a factor of more than eight. A practitioner using a published annual consumption mix for an import-dependent region is holding a number whose temporal aggregation has removed most of the effect it exists to capture.

Verification methods

The factors are checked against independent anchors rather than asserted. Two of those checks produce numbers that look contradictory for the same balancing authority — a 0.0% agreement with eLCI and a +29.6% divergence from it. They are not in conflict: they hold different things constant. The diagram traces both for NYISO.

eLCI per-fuel factors — NYISOrelease 1.2026-06.0 · TRACI 2.2 / GWP-100 · kg CO₂e/MWhNG 520.0 · NUC 17.3 · WAT 3.7 · WND 29.7 · OIL 1683.4 …source: Federal LCA Commons, US Electricity Baselinethe same factors feed both paths — only the mix differsA · eLCI's own generation mixvintage 2016–2023, fixed in the releaseGAS 41.7% · NUCLEAR 24.9% · HYDRO 25.6%WIND 4.3% · SOLAR 1.8% · MIXED 0.9% …source: eLCI generation-mix process exchangesB · the mix actually observed12 months to 2026-08, hourlyNG 54.1% · NUC 19.8% · WAT 18.0%WND 5.1% · OTH 2.9% · OIL 0.2% · SUN 0.0%source: EIA-930 hourly generation by fuelΣ (share × factor)Σ (share × factor)238.3 kg CO₂e/MWh308.9 kg CO₂e/MWhReference · eLCI published mix figure: 238.3what eLCI itself reports for NYISO on this boundarysource: Federal LCA Commons (same release as the factors)Reference · eGRID2023 NYISO: 218.0 kg CO₂e/MWhDIRECT emissions only — combustion, no upstream fuelor plant construction. A different boundary, so it cannever match; it bounds magnitude and direction.source: EPA eGRID2023, Jun 2025 revision (converted from lb/MWh)three checks — each testing something the other two cannot1A vs eLCI published0.0% difference→ verifies the FACTORSMix held constant, so only factors are tested.2B vs eLCI published+29.6%→ measures GRID CHANGESame factors, today's mix: 54.1% gas vs 41.7%.3B vs eGRID direct+41.7%→ bounds the MAGNITUDELife-cycle must exceed combustion-only. It does.A divergence in check 2 is a finding about the GRID. Only a divergence in check 1 would be a finding about our FACTORS.Check 3 uses an outside source on a different boundary, so it can confirm the result is the right size without ever agreeing exactly.

All balancing authorities

61 of 61 pass check 1 within 0.05%, so the factors reproduce eLCI’s own published figure across the fleet, not only for the worked example. Check 2 has no pass/fail — it measures how far each grid has moved since eLCI’s vintage. Check 3 compares against a 2023 measurement, so it mixes the boundary difference with that same vintage drift; the final column removes the drift by comparing the vintage-matched reconstruction instead, which is the column to read when judging whether the boundary logic holds.

A negative check 3 is not a failed factor. A life-cycle result must exceed a combustion-only one, so a negative looks like a defect. For every balancing authority where it occurs, eGRID’s rate turns out to exceed what that BA’s observed fuel mix could physically emit even at worst-case combustion factors — 15 BAs fail that ceiling test, and all 10 negatives are among them. Southwestern Power Administration is the clearest: 100.0% hydro across 3,989 GWh with no combustion in any hour, and an eGRID direct rate of 236.7. The two datasets are describing different sets of plants under one code, so the comparison is not like-for-like. Recorded as egrid-attribution-mismatch and raised with EPA.

BAreconeLCI pub.1 · factorsobserved2 · grideGRID3 · magnitude3 · vintage-matched
AECI635.2635.2+0.0%679.2+6.9%586.1+15.9%+8.4%
AVA276.0276.0−0.0%310.9+12.6%164.9+88.5%+67.4%
AVRN51.551.5−0.0%277.9+439.7%167.7+65.7%−69.3%
AZPS754.3754.3−0.0%513.0−32.0%661.1−22.4%+14.1%
BANC227.8227.8+0.0%281.9+23.7%174.2+61.8%+30.8%
BPAT118.4118.4+0.0%24.5−79.3%96.9−74.7%+22.1%
CHPD1.91.9+0.0%2.0+2.4%0.0 *
CISO209.5209.5−0.0%190.6−9.0%168.1+13.4%+24.6%
CPLE261.6261.6+0.0%468.8+79.2%219.3+113.8%+19.3%
CPLW47.047.0+0.0%662.4+1309.7%0.0 *
DEAA508.7508.7−0.0%508.7+0.0%396.4+28.3%+28.3%
DOPD0.70.7+0.0%0.7+0.0%0.0 *
DUK285.4285.4−0.0%482.9+69.2%220.6+118.9%+29.4%
EPE556.8556.8−0.0%469.8−15.6%458.9+2.4%+21.3%
ERCO384.2384.2−0.0%352.3−8.3%334.2+5.4%+15.0%
FMPP593.8593.8+0.0%580.7−2.2%524.5+10.7%+13.2%
FPC517.8517.8+0.0%514.3−0.7%441.3+16.5%+17.3%
FPL329.9329.9+0.0%306.0−7.2%271.5+12.7%+21.5%
GCPD3.73.7−0.0%3.7+0.0%0.0 *
GRID483.8483.8+0.0%470.8−2.7%399.1+18.0%+21.2%
GRIF494.9494.9+0.0%391.0+26.6%
GVL821.7821.7+0.0%822.8+0.1%719.0+14.4%+14.3%
GWA21.221.2−0.0%21.2+0.0%0.0 *
HGMA448.9448.9+0.0%378.1+18.7%
IID213.5213.5+0.0%152.0−28.8%114.0+33.4%+87.3%
IPCO138.4138.4+0.0%170.9+23.4%102.2+67.2%+35.4%
ISNE321.9321.9+0.0%371.7+15.5%247.3+50.3%+30.2%
JEA663.8663.8−0.0%736.9+11.0%531.5+38.6%+24.9%
LDWP561.1561.1+0.0%371.4−33.8%461.5−19.5%+21.6%
LGEE970.7970.7+0.0%946.7−2.5%865.5+9.4%+12.2%
MISO533.8533.8+0.0%491.4−7.9%447.9+9.7%+19.2%
NEVP382.9382.9+0.0%474.4+23.9%320.5+48.0%+19.5%
NWMT756.5756.5+0.0%547.5−27.6%723.4−24.3%+4.6%
NYIS238.3238.3+0.0%312.3+31.0%218.0+43.2%+9.3%
PACE714.4714.4+0.0%591.4−17.2%643.6−8.1%+11.0%
PACW62.362.3−0.0%253.3+306.8%140.2+80.7%−55.6%
PGE401.9401.9+0.0%412.6+2.7%361.1+14.3%+11.3%
PJM385.8385.8+0.0%423.5+9.8%326.3+29.8%+18.2%
PNM224.9224.9−0.0%252.8+12.4%179.0+41.2%+25.6%
PSCO416.2416.2+0.0%385.9−7.3%365.7+5.5%+13.8%
PSEI457.6457.6−0.0%312.1−31.8%291.5+7.1%+57.0%
SC906.0906.0+0.0%908.0+0.2%766.7+18.4%+18.2%
SCEG412.5412.5+0.0%427.3+3.6%339.5+25.8%+21.5%
SCL1.61.6+0.0%1.6+0.0%0.4 *+298.8%+298.9%
SEC655.7655.7+0.0%638.1−2.7%550.5+15.9%+19.1%
SEPA1.61.6−0.0%0.0−100.0%0.0 *−100.0%+4267.1%
SOCO462.3462.3−0.0%450.4−2.6%384.0+17.3%+20.4%
SPA278.9278.9+0.0%61.8−77.8%236.7−73.9%+17.8%
SRP275.8275.8−0.0%254.9−7.6%250.7+1.7%+10.0%
SWPP438.8438.8+0.0%445.7+1.6%397.5+12.1%+10.4%
TAL468.6468.6−0.0%468.0−0.1%384.4+21.7%+21.9%
TEC451.4451.4+0.0%400.7−11.2%388.9+3.0%+16.1%
TEPC740.6740.6+0.0%569.0−23.2%740.7−23.2%−0.0%
TIDC431.1431.1−0.0%474.3+10.0%350.6+35.3%+22.9%
TPWR2.02.0−0.0%2.0+0.0%2.7 *−24.3%−24.3%
TVA332.4332.4−0.0%357.0+7.4%292.1+22.2%+13.8%
WACM881.4881.4−0.0%697.5−20.9%853.8−18.3%+3.2%
WALC280.9280.9−0.0%265.1−5.6%218.6+21.3%+28.5%
WAUW22.722.7−0.0%22.0−3.3%0.0 *
WWA13.813.8−0.0%13.8+0.0%0.0 *
YAD4.54.5+0.0%4.5+0.0%0.0 *

Values in kg CO₂e/MWh. recon = our factors applied to eLCI’s own mix shares; observed = generation-weighted mean over everything ingested, matching the basis eLCI and eGRID both publish on; eGRID = eGRID2023, direct emissions only.

* 11 balancing authorities have an eGRID rate below 5 kg CO₂e/MWh — hydro-dominated federal marketers, mostly. Percentage comparisons against a near-zero denominator explode and should be read as absolute differences instead.

4 fail check 3 even vintage-matched: AVRN, PACW, TEPC, TPWR. A life-cycle figure below a combustion-only one should not happen, so these are open items rather than explained ones. Two are immaterial — TEPC, TPWR differ by under 1 kg CO₂e/MWh, which is noise at that magnitude. The others are genuine discrepancies under investigation, most likely where eLCI’s mix for the BA and the fleet eGRID measured are not describing the same set of plants.

Check 3, at the level EPA recommends

EPA is explicit that the balancing-authority rates are the wrong tool for this: “EPA recommends using the output emissions rates from the eGRID subregion level … Data for balancing authorities are included in eGRID as a reference.” Compared at the level EPA does recommend, aggregating our balancing authorities up by eGRID’s own plant-level generation shares, the check carries weight.

Ours, life-cycle
408.4
kg CO₂e/MWh across 4,322 TWh
eGRID, direct only
347.6
same generation, combustion boundary
Difference
+17.5%
life-cycle above direct, as it must be — 16 of 22 subregions positive
Life-cycle against direct, by eGRID subregion. Positive is the required direction.
SubregionOurseGRID directDifferenceTWh
NYLI312.3539.5-42.1%10.1
MROE491.4637.3-22.9%25.3
NYCW312.3392.7-20.5%35.7
NWPP263.8288.2-8.4%284
RMPA444.5472.9-6%61.8
SRMW532.8566.3-5.9%104.3
RFCW436.3415.5+5%557.6
ERCT353.4334.1+5.8%503.8
RFCM485.6442.7+9.7%95.5
SPSO441.4397.2+11.1%170.1
CAMX216.6195+11.1%207.3
SRTV456.3409.7+11.4%212.6
SPNO445.6393.6+13.2%81.6
FRCC407.3356+14.4%269
MROW482.8420.3+14.9%246.6
AZNM369.7320.3+15.4%173.2
SRSO451.3383.7+17.6%261.3
SRMV491.3336.4+46%181.7
NEWE371.7246.4+50.9%111.5
RFCE423.5271.8+55.8%306.3
SRVC481.2270.5+77.9%334.8
NYUP312.3110.1+183.6%88.3

† The three New York rows are one balancing authority. NYISO spans NYUP, NYCW and NYLI, so it carries a single factor of 312.3 against subregion realities eGRID puts at 110.1, 392.7 and 539.5. No method operating at balancing-authority resolution can represent a spread like that — it is a limit of the accounting unit, not an error in the arithmetic. The remaining negatives are small (NWPP −8.4%, RMPA −6.0%, SRMW −5.9%) and consistent with a 2023 measurement being compared against a 2025–26 window on a grid that has kept getting cleaner.

The three sources are not interchangeable. eLCI supplies the factors and a figure to check them against; EIA-930 supplies the mix eLCI’s vintage cannot know; eGRID is an outside measurement on a narrower boundary, so it can confirm the result is the right size without ever agreeing exactly. Losing any one of them would leave a class of error undetectable.

Data sources

EIA-930 Hourly Electric Grid Monitor · data
Hourly generation by fuel and directed interchange between balancing authorities. Ingested through the EIA API v2 with a trailing three-day re-pull, because EIA revises after publication.
eLCI — US Electricity Baseline, Federal LCA Commons · data
Life-cycle emission factors per fuel and balancing authority, release 1.2026-06.0, TRACI 2.2 / GWP-100. Repository Federal_LCA_Commons/US_electricity_baseline.
eGRID2023 — US EPA · data
Direct (combustion-only) emission rates for 2023, used as an independent magnitude check. EPA recommends the subregion level; the balancing-authority rates are reference only.

Detail on how each is used, and what it does not cover:

Hourly generation by fuel — EIA-930
US Energy Information Administration, Hourly Electric Grid Monitor, via the EIA API v2. Ingested hourly with a trailing three-day re-pull to absorb revisions.
Life-cycle factors — EPA/NETL US Electricity Baseline (eLCI)
Federal LCA Commons, Federal_LCA_Commons/US_electricity_baseline, release 1.2026-06.0. TRACI 2.2, GWP-100, computed with a vendored FLCAC matrix solver calibrated to openLCA within ~0.05%. Chosen over raw USLCI because USLCI has no wind, solar or hydro electricity processes and is national-only.
Balancing-authority territories — HIFLD Control Areas
A 2025-04 archived snapshot obtained from DataLumos. This dataset is no longer publicly hosted — both the original HIFLD Open entry and the EIA Atlas layer now return 404 — so it is a point-in-time archive rather than a live source, and will not reflect later boundary changes. EIA-930 codes come from the EIA API, joined to the geometry by a pinned crosswalk rather than name similarity.
eGRID subregions and rates — EPA eGRID2023
January 2025 mapping files for geometry and the June 2025 data revision for emission rates. Boundaries are ZIP-code-derived.

Questions for the data publishers

Some findings cannot be resolved here. Where the evidence points at the source rather than at this tool, the question is recorded with the numbers that prompted it and put to the publisher. 11 are open.

eGRID · 3

  1. Is eGRID2024 still expected, and when?

    Evidence. The detailed-data page states "Next planned release: eGRID2024 in January of 2026". The eGRID landing page, last updated 2026-07-28, still presents eGRID2023 (2023 data, released 2025-01-15, revised 2025-06-12) as current.

    Why it matters. Our observation window is 2025-08 to 2026-08, so the reference measurement is two to three years stale and biases check 3 in a known direction. About half the residual subregion-level disagreement should close if the vintage explanation is right, which is testable the moment eGRID2024 lands.

  2. Does the BPAT rate cover plants beyond those EIA-930 attributes to BPAT?

    Evidence. EIA-930 reports BPAT as 75.7% hydro, 10.7% nuclear, 7.7% wind and 3.8% gas. The most a mix like that could emit directly, using worst-case combustion factors, is about 34 kg CO2e/MWh. eGRID2023 gives BPAT 96.9 -- 2.85x that ceiling. Fifteen BAs exceed their physical ceiling on the same test.

    Why it matters. eGRID is our only source independent of both EIA and eLCI, so it is the check that catches errors the other two share. If its BA-level plant set differs systematically from EIA-930's, that check needs re-basing on subregions rather than balancing authorities. PARTIALLY ANSWERED by EPA's FAQ: "EPA recommends using the output emissions rates from the eGRID subregion level ... Data for balancing authorities are included in eGRID as a reference." That resolves which level to use. It does not state the BA assignment rule, which is what makes the BA-level figures misleading when joined to EIA-930.

  3. Sikeston is a balancing authority in EIA-930 and not an eGRID BACODE. What rule assigns a plant to a BA, and how should marketing administrations be treated?

    Evidence. eGRID2023 PLNT23 assigns the Sikeston coal plant (operator: City of Sikeston, Missouri) to BACODE=SPA. It contributes 1,615 of SPA's 1,617 kt CO2e, so 99.9% of the emissions attributed to Southwestern Power Administration come from one plant that EIA-930 reports as its own balancing authority, SIKE -- a code that does not appear in eGRID at all. EIA-930 reports SPA itself as 100.0% hydro across 3,989 GWh with no combustion in any hour.

    Why it matters. Anyone joining eGRID BA rates to EIA-930 BA data -- a natural thing to do, since both key on the same code space -- silently combines two different plant sets. EPA's FAQ recommends the subregion level but does not say the BA level is unsafe to join, and the code overlap makes it look safe.

eLCI · 8

  1. Does "Avangrid Renewables, LLC" denote the company's national portfolio or the AVRN balancing authority?

    Evidence. eLCI's mix is WIND 82.66%, SOLAR 13.26%, GAS 4.08%. EIA-930's AVRN over 8,887 hours is WND 60.9%, NG 39.1% and SOLAR exactly 0.0% -- no solar output in any hour. The gas is one unit peaking at 554 MWh/h and running in 7,841 of 8,887 hours. AVRN has only two ties (BPAT, PACW) and net-exports 99% of what it generates.

    Why it matters. A fleet cannot gain a baseload combined-cycle plant and lose its entire solar portfolio in one revision, so this looks like two different plant sets under one name. If eLCI models the company, its factor should not be joined to the EIA BA code, and our crosswalk is wrong to do so.

  2. Is there an official mapping from eLCI entity names to EIA balancing-authority codes?

    Evidence. We match by pinned inspection because name similarity is unsafe here: "SOUTHEASTERN POWER ADMINISTRATION" and "SOUTHWESTERN POWER ADMINISTRATION" score 0.97 similar and are different agencies, both real BAs. Two further false positives arose while mapping tie endpoints -- "CEN" matched "Public Service Company of New Mexico" on the string "Mexico" (CEN is a CFE control area in Baja California) and "SWPW" matched "Southwest Power Pool" on "Power Pool" (SWPW is a sub-area).

    Why it matters. Every downstream join depends on this mapping, and a wrong pin silently assigns one utility's emissions to another. A published crosswalk would remove an entire class of error.

  3. The Canadian intertie entities are published without EIA codes. Can the mapping be confirmed?

    Evidence. eLCI publishes generation mixes for British Columbia Hydro and Power Authority (47.1), Hydro-Quebec TransEnergie (8.9), Ontario IESO (88.4), Manitoba Hydro (14.3) and the New Brunswick System Operator (213.2). EIA-930 reports the corresponding ties as BCHA, HQT, IESO, MHEB and NBSO. Alberta (AESO) and Saskatchewan (SPC) appear as tie endpoints with no eLCI entity.

    Why it matters. MHEB alone exports ~2,161 MWh/hour into MISO and imports nothing. Without the mapping that energy is unattributable; with an unconfirmed mapping it is attributed on our judgement rather than the publisher's.

  4. Are the published consumption mixes first-order by design -- imports priced at the exporter's GENERATION mix, with no further tracing?

    Evidence. Reconstructing each consumption mix from its own declared import shares, pricing every import at the exporter's generation mix and stopping there, reproduces the published figure for 60 of 60 balancing authorities to within 0.05%. A full recursive solve over the same weights does not.

    Why it matters. It determines whether a recursive flow-tracing result should be expected to agree with eLCI or to differ from it. We currently publish both and describe the difference as a method choice; confirmation would let that be stated as fact rather than inference.

  5. Was the MISO hydro factor in release 1.2025-06.0 a known error, and is there an erratum?

    Evidence. Release 1.2025-06.0 gave MISO hydro 1702.6 kg CO2e/MWh -- higher than coal, and the largest of 42 hydro processes against a median of 9.7. Release 1.2026-06.0 gives 35.3 for the same entity, and the earlier process UUIDs no longer resolve.

    Why it matters. We found it by outlier review rather than by any published notice. Anyone still pinned to the earlier release is using a hydro factor roughly 48x too high with nothing signalling it.

  6. What year or years does each entity's generation mix represent?

    Evidence. Release notes give a 2016-2023 range for the baseline, but per-entity vintage is not stated. Check 2 (observed mix against published mix) is intended to measure how far a grid has moved since its vintage, and currently ranges from 0.0% to +440% across the fleet.

    Why it matters. Without a per-entity vintage, a large check-2 gap cannot be separated into "the grid changed" and "the model is wrong". It is the single piece of metadata that would make that check diagnostic rather than merely descriptive.

  7. PacifiCorp West has no fossil generation process. Is that intentional, or an omission?

    Evidence. The generation-mix process for PacifiCorp West (release 1.2026-06.0) draws only on HYDRO 58.51%, WIND 22.54%, SOLAR 15.89% and BIOMASS 3.06%. There is no Electricity - GAS - PacifiCorp West process. The release nevertheless publishes "power plant construction - ngcc_const - PacifiCorp West", modelling the construction of a combined-cycle gas fleet. EIA-930 reports PACW at 38.9% natural gas over 2025-08 to 2026-08, between 18.9% and 53.0% every month, and eGRID2023 gives PACW a direct rate of 140.2 kg CO2e/MWh.

    Why it matters. PACW's published generation mix (62.3) sits below eGRID's combustion-only rate, which cannot hold for one system. Any practitioner using eLCI for PacifiCorp West is pricing a fossil-free grid that neither EIA nor EPA observes.

  8. What exactly does the residual mix subtract -- voluntary claims only, or all registry-settled certificates including RPS compliance?

    Evidence. Read from the release's own process exchanges: the ISO New England residual generation mix removes 0.71pp of hydro, 0.30pp of solar, 0.27pp of wind and 0.18pp of biomass versus the generation mix -- an even ~8% haircut on each renewable category, about 1.5% of the pool. NEPOOL GIS settled, reserved or exported 39.47% of the region's 2023 certificates; its unsettled pool (73% gas, 10% oil, four nuclear certificates of 66.6M) reconstructs to 585.9-619.3 kg CO2e/MWh with the release's own per-fuel factors, against the published residual of 324.5. Same comparison for PJM (GATS registry, 2023): unsettled pool reconstructs to 467.5-468.7 kg CO2e/MWh vs eLCI residual_generation 394.0 (+19%), with 17.55% of certificates settled; the identical pricing of the full system mix lands within 4% of eLCI's generation mix. Extended to all regions with public 2023 data: New York (NYGATS publishes its residual directly: our pricing 403.5 vs eLCI 229.9, +75.5%), MISO (M-RETS claim rate: 588.2 vs 552.9, +6.4%), Texas (ERCOT REC retirements: 466.3 vs 482.5, -3.4%), California (no public WREGIS data; Green-e CAMX rate 197.0 vs 217.6, different construction). The gap tracks each pool's settled share; system-mix checks price within 2.4-4.0% wherever a registry system mix exists to check against.

    Why it matters. Residual mixes exist to prevent double counting. If eLCI subtracts less than the registry settles, a consumer using eLCI's residual while others hold the settled certificates is still double counting -- by nearly a factor of two on this measurement.

Known discrepancies

63 recorded · 19 open, 9 high-severity. Everything found so far, including the items that are unresolved. An entry is closed only when it is actually fixed; findings that were explained rather than fixed stay listed, because the explanation is itself something worth checking. Nothing is removed.

All sources are public US government data. Every figure on the map can be exported with its boundary, method, release and source process identifier attached, so any number can be traced back to the process it came from.

Disclaimer

This project is developed purely out of academic intrigue. It is not a commercial product, a compliance tool, or professional advice of any kind.

It is built on United States Government data - EIA-930, the EPA/NETL US Electricity Baseline (eLCI), and EPA eGRID - which is used responsibly and cited throughout. Any error in the processing, interpretation or presentation of that data is mine and not the publishing agencies'. Nothing here is endorsed by, affiliated with, or approved by any government agency.

The outputs of this page should be used at the user's own risk. I make no warranty that any figure is accurate, complete, or fit for any particular purpose, and I bear no responsibility or liability for any decision taken on the basis of them. The limitations I have found are documented openly on the About page and in the discrepancy register - that register is a record of what I have found, not an assurance of what remains.

This work presents only my own opinions, if any. It reflects no position or opinion of my employer.