Cumulative environmental justice score · United States
Who carries the burden, city by city
One score, seven criteria, every city and town in the contiguous United States. It combines socioeconomic disadvantage, ozone and fine particulate matter, and eleven chronic-disease measures into a single number, so that a community carrying a moderate amount of several burdens is visible next to one carrying a great deal of a single burden. Built from my own published scoring method, generalised from Greater Boston to the whole country.
Loading the national score…
Loading the national score…
–
How this score is built
The score is the sum of three terms. The threshold row is the bar a place has to clear to designate as an environmental justice community, which is 65% of the sum of the three national baselines. Compare the city against it, against its own state, and against the country.
Where it stands nationally
Percentile among all 35,655 US cities and towns. 100 means no municipality in the country scores higher.
Each criterion on its own scale
Every criterion is rescaled to 0–100 across the country, so unlike quantities can be added. The tick on each bar marks where that criterion's own threshold falls.
Every criterion, in its own units
The normalised 0–100 value that enters the sum, next to the raw quantity it came from and the threshold the published method sets for it.
| Criterion | Term | Raw value | Threshold | Normalised 0–100 |
|---|
The whole country at once
No municipality matches these filters.
One dot per municipality, sized by population, placed at its population-weighted centre. Click a dot to load that place above, or use the search at the top of the page. Alaska, Hawaii and Puerto Rico are outside the air quality model's domain and are not scored.
Most and least burdened
The last column is the share of a place's residents living in a census tract that is itself above the threshold. A city can sit below the line overall and still contain designated tracts, because averaging its tracts pulls it toward the middle. That is also why 52.8% of tracts are above the threshold while only 30.4% of cities and towns are, though those cities hold 60.2% of the municipal population.
| # | Place | State | Population | Socio | Air | Health | EJ score | % in an EJ tract |
|---|
What a cumulative EJ score is, and how to read this one
Most environmental justice designations are threshold rules. A place qualifies if its minority share exceeds some percentage, or if its median income falls below some fraction of the state's, or if it fails an English-proficiency test. Each criterion is checked on its own and the answer is yes or no.
That design has a specific blind spot: a community that is moderately burdened on every criterion, but extreme on none, qualifies under nothing. Meanwhile a place that clears one threshold by a hair gets the same designation as one that clears it by forty points. A cumulative score fixes both problems by putting every criterion on one common scale and adding them, so that partial burdens accumulate and the size of each burden is preserved.
This page implements that idea for the whole country, extending the scoring system I published for Greater Boston with a health dimension from a second paper. Everything below describes exactly what was computed. It is built for comparing places on combined burden and for surfacing communities that no single threshold rule reaches, not for deciding who receives anything.
Seven criteria, three terms
Seven criteria are measured for every census tract (the Census Bureau's neighbourhood-sized unit, about 4,000 people), then collapsed into three terms. Four of the seven are socioeconomic: minority share, limited-English households, income, and a fourth rule for one band of tracts that is described below. The other three are ozone, PM2.5 and a health composite. Grouping matters: eleven health indicators added one by one would outweigh everything else in the score, and it would stop being the same index. Air quality and health each contribute one averaged term, which is exactly how the published method already treats its two pollutants. Only five quantities are actually added: the three socioeconomic scores, the air quality mean and the health mean.
| Term | What goes in | Range |
|---|---|---|
| Socioeconomic | Minority share, limited-English-speaking households, median household income; three separate 0–100 terms, added | 0–300 |
| Air quality | Mean of normalised ozone and PM2.5. Both are required; a tract missing either is not scored | 0–100 |
| Health | Mean of eleven normalised CDC PLACES chronic-disease prevalences | 0–100 |
Turning unlike quantities into one number
Percentages, parts per billion, micrograms per cubic metre and disease prevalences cannot be added as they are. Each indicator is min–max normalised to a 0–100 scale across all tracts in the country:
score = 100 × (value − min) ÷ (max − min)
Income is inverted (100 − score), because low income is the disadvantage. The three socioeconomic scores are added; ozone and PM2.5 are averaged into the air quality term; the eleven health measures are averaged into the health term. The EJ score is the sum of the three terms, running from roughly 50 to 420 in practice.
For scale: the median city or town scores 173, the middle half falls between 156 and 199, and only one municipality in twenty is above 269. The lowest in the country is Ross, California at 48.0; the highest is Weedpatch, California at 421.2.
Winsorising, and why the published rule needed it. Strict min–max is hostage to a single extreme tract: at national scale one outlier sets the ceiling, everything else compresses beneath it, and 83.3% of the country designates as an EJ community, which is a useless result. Every indicator here is therefore clipped to its 1st and 99th percentile before normalising. This is invisible in Massachusetts, where the published method was developed, and decisive nationally.
The threshold, and what "EJ community" means here
A tract is designated when its score reaches 65% of the summed baseline, where each criterion's baseline is its own policy threshold pushed through the same normalisation. So the comparison is not against other places directly. It is against a fixed, externally defined idea of what constitutes burden.
The individual thresholds are the ones the published Massachusetts method uses, generalised where a state-specific rule had to become a national one:
One inherited quirk, kept on purpose
A tract that is 25–40% minority (14,005 of the 82,297 scored, 17% of the country) has its minority score averaged with the normalised score of its county's median household income. This is criterion (d) of the Massachusetts rule: "25–40% minority and the surrounding municipality's median income is at most 150% of the state median". Generalising "municipality" to "county" is the only sensible national reading.
Two things about the published implementation of that criterion are reproduced rather than corrected, because reproducing the published score was the point of this work:
- the income score entering that average is not inverted, unlike the tract's own income criterion, so within that band a richer county raises the blended score rather than lowering it, which is the opposite of the direction the rule's wording implies;
- the 150% baseline is computed in the published code but never added to the threshold, so it moves scores without moving the bar they are measured against.
Both are noted here rather than silently fixed. The effect is confined to that one band of tracts; corrected variants are a question for the next paper, not something to smuggle into a reproduction.
Where every number comes from
| Input | Source |
|---|
Note the vintages: this is a composite of four periods, not a snapshot. Socioeconomic data is the 2018–2022 five-year American Community Survey, a rolling average, which is how the Census publishes estimates for units this small. Ozone is the 2021–2023 design value: the fourth-highest daily maximum eight-hour concentration, averaged over three years, which is the statistic the national standard is written in. It is measured at 1,090 monitors and statistically interpolated between them, with the interpolation checked by holding out each monitor in turn (mean error 2.57 ppb). PM2.5 is a single model year, 2019, from EPA's EQUATES: a nationwide reanalysis run with the CMAQ chemical transport model on a 12 km grid. Health is the 2023 round of the CDC's national telephone health survey.
The health measures
Eleven tract estimates from CDC PLACES, which does not survey every tract: it fits a statistical model to a national survey and projects it onto small areas, so these are modelled estimates rather than counts. Each is a crude prevalence: the share of adults with the condition, with no adjustment for how old the local population is. The number beside each is the population-weighted national prevalence, the baseline a tract has to exceed to be "sicker than the country".
| Measure | US prevalence |
|---|
From tracts to cities
The score is computed on census tracts, which do not nest inside municipal boundaries: a quarter of all tracts straddle more than one place. A city's score here is the population-weighted mean of the overlapping tracts, weighted by the population actually shared between each tract and that city, from a crosswalk built out of all 8.1 million 2020 census blocks.
"City or town" also means different things by state. In New England and the township states, the functioning municipality is a county subdivision; elsewhere it is a place (an incorporated city, town or village, or a census-designated place). This page uses county subdivisions in the twelve town/township states and places everywhere else, because a places-only table would get all of New England wrong, since Chelsea and Brookline are not places. Population checks reproduce the official 2020 counts exactly.
What the national picture shows that Massachusetts did not
Air pollution disparity runs along race; health disparity runs along income. Nationally the excess-burden index for PM2.5, where positive means the disadvantaged carry more than their share of the excess, is +0.044 against minority share but −0.006 against income. For health burden the pattern inverts completely: +0.140 against income, −0.004 against race.
That income null is not what it looks like, and the page would be misleading if it stopped there. Split the underlying correlation by scale and it reverses: income and PM2.5 correlate +0.216 between counties, because density produces both income and emissions, so richer counties are dirtier. Within them it is −0.135, which is the classic environmental justice gradient. The two cancel to roughly nothing nationally. The racial disparity does not behave this way: +0.242 between counties and +0.226 within, essentially the same at both scales. So the honest statement is not that income fails to predict exposure, but that it predicts exposure locally and is masked nationally by prosperous metros being polluted metros. The racial null on the health side dissolves the same way: four of the eleven measures change sign once you condition on county, and asthma goes from −0.054 nationally to +0.458 within. Any national correlation computed without conditioning on place is measuring which counties are sick, not which neighbourhoods are.
Gary, Indiana is the case for a cumulative index. Among the 923 municipalities with more than 50,000 residents it ranks 21st overall, but only 116th on the socioeconomic term, the block every threshold rule is built from. It is carried there by air quality and health, where it ranks 35th and 2nd: the worst combined air-and-health burden of any large American city. A rule that checked socioeconomic criteria one at a time would not surface it.
The health term also adds far more independent information nationally than it did in Massachusetts: it correlates just +0.248 with the socioeconomic term here, against +0.558 in Massachusetts, so 94% of its variance is not already explained by the socioeconomic criteria.
Does it agree with the official tools?
Two federal screening tools give an external check. Against EJScreen the score tracks the demographic index closely, at a rank correlation of 0.911, and raw PM2.5 only weakly, at 0.324. That is a fair description of what this score is, and of EJScreen's own EJ indexes: a demographic instrument with a pollution component. Against CEJST, which designates 35.5% of tracts, the 0.65 cut-off is high-recall and low-precision: it catches 84% of what CEJST designates while flagging nearly twice as many tracts, and agreement peaks at a multiplier of 0.70 rather than 0.65. Where the two disagree is itself structured: CEJST is income-gated, so it cannot see tracts that are poor relative to a wealthy state, and it uniquely flags poor, white, clean-air, sick tracts, the second constituency described above. Both tools were removed from their federal websites during 2025; these comparisons use archived copies.
One tract, one city, end to end
All of that is easier to see done once. Take census tract 18089012200 in Gary, Indiana, a place of about a thousand people. Here is every number that enters its score, and where each one lands on the 0–100 scale. The middle column is the national 1st-to-99th percentile range: the window each criterion is normalised against.
| Criterion | What the tract is | National 1st–99th | Normalised |
|---|---|---|---|
| Minority population | 98.7% | 1.9% – 99.4% | 99.2 |
| Limited-English households | 0.0% | 0.0% – 36.0% | 0.0 |
| Median household income | $19,107, or 28% of Indiana's $67,173 | 30% – 270% of state median | 100.0 |
| Ozone design value | 71.6 ppb | 52.9 – 82.5 ppb | 63.4 |
| PM2.5 annual mean | 12.16 µg/m³ | 2.51 – 12.84 µg/m³ | 93.5 |
| Health, 11 measures | see below | per measure | 85.5 |
Read one row across. Minority share of 98.7% sits almost at the top of the national window, so 100 × (98.7 − 1.9) ÷ (99.4 − 1.9) = 99.2. Income runs the other way: $19,107 is below the 1st percentile of 30% of the state median, so it is pulled up to the floor, scores 0, and is inverted to 100. On this criterion the tract is as disadvantaged as the scale can record. Limited English is genuinely absent here and scores 0, which is the point of a cumulative index: one criterion at zero does not stop the others counting.
The three socioeconomic scores add to 199.2. Ozone and PM2.5 average to 78.4. The eleven health measures average to 85.5, driven by a fair-or-poor-health rate of 47.3% against a national 20.3%, and by asthma, COPD and diabetes all above their 99th percentiles and therefore capped at 100. Two measures pull the other way: cancer scores 15.8 and depression 48.9, for the reason set out under the limitations.
199.2 socioeconomic + 78.4 air + 85.5 health = 363.2 · threshold 191.07
363.2 is 1.9 times the threshold, and no single criterion had to be extreme to get there: the tract is at the ceiling on three of the six and at the floor on one.
Now the city. Gary has 32 scored tracts, and every one of its residents lives in a tract above the line. Weighted by the population each tract shares with the city, they give Gary a socioeconomic term of 180.4, an air quality term of 75.8 and a health term of 71.6, for a score of 327.9, 433rd of all 35,655 municipalities and 21st of the 923 with more than 50,000 residents.
For contrast, Palo Alto, California is almost exactly the same size, 68,572 residents against Gary's 69,093, and scores 124.4: 88.4 socioeconomic, 18.5 air quality, 17.5 health. Its median household income is 227% of California's, its ozone 54.7 ppb and its PM2.5 5.7 µg/m³, and 6% of its residents live in a tract above the threshold against Gary's 100%. Same size of place, opposite end of every scale.
Choices a reader should be able to argue with
Four defensible variants of this score exist, and they designate very different shares of the country. The explorer above shows the first. The fourth drops cancer and depression from the health composite, for the reason given under the limitations.
| Variant | Threshold | Tracts designated | Share of population |
|---|
The socioeconomic block dominates, by construction and in practice. It can contribute 300 of the possible 500 while air quality and health contribute 100 each, and the effect is measurable: the three socioeconomic criteria on their own reproduce the full national tract ranking at a rank correlation of 0.947. Removing the air quality term moves the ranking by 0.963, removing health by 0.961. That does not make the other criteria decorative, since they are what carries Gary from 116th to 21st among large cities, but anyone reading this as primarily a pollution index should read those three numbers first.
And one number is hiding two kinds of place. The criteria have about three and a half effective dimensions, and the two largest are nearly orthogonal. The first is general disadvantage, everything loading together. The second, almost as large, is a contrast: poor, sick, older, white, clean-air places on one side (Appalachia, the rural South, the northern Plains) against polluted, minority, immigrant, comparatively healthier places on the other, the dense coastal metros. The air quality and health terms correlate −0.183: the places with the worst air are not the places with the worst health. A tract scoring 250 may be either kind, and the score cannot say which.
The 0.65 factor does not transfer cleanly. Even winsorised, it designates 52.8% of the country, which is too much to be useful for targeting. The within-state variant, "how burdened is this tract relative to its own state", flags 35.3% and is arguably the more faithful generalisation, since the Massachusetts criteria were themselves state-relative. The score itself is the robust part; the cut-off is a policy choice, not a finding.
Limitations you should know about
- This is research, not a regulatory designation. No agency uses this score. For official screening, use your state's own EJ criteria, and note that EPA removed EJScreen, the long-standing federal screening tool, from its website in February 2025. Version 2.3 is still readable in EPA's own January 2025 snapshot and as a public reconstruction.
- PM2.5 is modelled, not measured. It is a 12 km CMAQ annual mean for 2019: one number for every place inside a 144 km² cell, with a known cool-season high bias in the Midwest. 2019 was also a very low California wildfire year, so the Ohio Valley rather than the Central Valley holds the national maximum; a different year would move this.
- The air quality term cannot tell neighbourhoods apart. 91.9% of its variation is between counties and only 8.1% within one; for ozone alone it is 96.7% and 3.3%. All 32 tracts in Gary sit within half a part per billion of each other on ozone, and Chelsea and Boston are given the same value. As built here it is a regional label, not a neighbourhood measure. The published Greater Boston version did not have this problem, because its air quality came from 59 sensors deployed across the city; nothing at national scale substitutes for that, which is itself the strongest argument in this work for building those networks.
- Ozone is a design value, not an annual mean. The 70 ppb baseline is the 8-hour standard, so it can only be scored against the same metric. An annual-mean field would put the normalised baseline above every observed value and make the criterion unreachable by construction.
- The health data is partly circular. PLACES tract estimates are model outputs whose covariates include age, race and poverty, and race and poverty are already two of the three socioeconomic criteria. The health term should be read as corroborating burden, not as independent evidence of it.
- Health prevalence is crude, never age-adjusted, because PLACES publishes no age-adjusted rate at tract level. An older neighbourhood scores higher partly for being older.
- Two of the eleven health measures point the wrong way. Cancer and depression correlate negatively with the rest of the composite, so in the sickest places they pull against the other nine: the Gary tract walked through above scores 100 on asthma, COPD, diabetes and general health but 15.8 on cancer. Most of that is age, since cancer prevalence tracks the over-65 share at +0.807 and older neighbourhoods have cleaner air, with diagnosis access as a second channel, since PLACES measures diagnosed prevalence. The fourth row of the variant table shows what dropping both does: the designated share moves from 52.8% to 51.9%, so the headline barely changes while individual places move a great deal.
- Two states carry an older health vintage. Pennsylvania and Kentucky had no 2023 survey sample, so their 4,663 tracts carry 2022 estimates from the previous PLACES release. Their excess burden is real, and they exceed the national average on 10 of 11 measures, but the vintage is not identical to everywhere else.
- Alaska, Hawaii and Puerto Rico are not scored. They fall outside the CONUS air quality modelling domain, so the air quality term cannot be computed for them, and this score requires both pollutants.
- Small places are noisy. A town covered by one tract inherits that tract's values wholesale; tracts under 50 people are dropped from the socioeconomic criteria entirely. The population filters above exist for this reason.
The published work behind this
K. Do, Y. Zhang, S. Ma and D. Tong (2025). Assessing air pollution exposure disparities in disadvantaged communities of Greater Boston: a new cumulative environmental justice score system. Environmental Research Letters 20 034018. doi:10.1088/1748-9326/adb16c This is the scoring system, on Greater Boston block groups.
K. Do and Y. Zhang (2025). Assessing health risks and socioeconomic disparities associated with ambient air pollution and point sources across the United States. Environmental Pollution 375 126311. doi:10.1016/j.envpol.2025.126311 This is the health-and-exposure framework the health term comes from.
Code for the published Massachusetts score is at github.com/kdo037/Multi-criterion-EJ. The national extension shown here was computed on Northeastern's Explorer cluster.