An appraiser working for the federal government walked a few streets on the southern edge of Cleveland in the late summer of 1939 and then filled in a form. It had spaces for the terrain, the class of the inhabitants, the age of the buildings, the availability of mortgage money. Under Clarifying Remarks he wrote:
This area is the least desirable neighborhood in Garfield Heights. Immediate proximity to negro settlement abutting north boundary – absence of transportation – lack of sewers – unpaved streets and general isolation all have taken their toll. This community was developed about 20-25 years ago and then stopped with the influx of negroes into abutting area. At present, property can be sold only at sacrifice and mortgage money is not available which indicates that potentially this neighborhood will eventually be taken over by negroes with improvement in their financial condition. Approximately 30 homes are located in this area; developed about 40%; no further development is anticipated for white ownership.
The area is D9, Garfield Hts. (Orchard Ave. Section), and the sheet is dated 9-9-39. Two other lines on that form matter as much as the paragraph. One is headed Infiltration of, and on it he wrote Potential influx of Negro. The other asks what share of the residents were Black, and on that line he wrote 0, meaning none. He gave the area a grade of D.
Race was not standing in for something else on that sheet. It was the stated criterion, applied to a street where by the appraiser’s own count no Black family yet lived. Grades like this one told a federal corporation where mortgage lending was safe, and lending is how most American families come to own anything. School money is raised on property, and services, transit and policing are all handed out on a map. So the question is worth asking plainly: ninety years later, on the actual ground, does that line still show?
Answering it means putting two files beside each other. The first is Mapping Inequality, the digitized “residential security maps” of the Home Owners’ Loan Corporation, the HOLC, a federal agency created in 1933 to refinance the mortgages of families facing foreclosure in the Depression, which from 1935 to 1940 sent appraisers into American cities to grade each neighborhood for lending risk.1 The file holds 10,154 neighborhood areas traced from 314 city surveys, 9,324 of them carrying a grade, and it is published by the Digital Scholarship Lab at the University of Richmond (https://dsl.richmond.edu/panorama/redlining/). The second is the 2020 Census, which counts every resident of every tract, the small areas of a few thousand people each that the Bureau draws in order to publish local counts;2 the counts are in the redistricting file, the first release of the 2020 count, at https://www2.census.gov/programs-surveys/decennial/2020/data/01-Redistricting_File--PL_94-171/.
The 1930s file is the right instrument because it is not a study of the period. It is the working paperwork of the agency that did the sorting, written to be acted on rather than read later. The men who wrote it had no reason to overstate the part race played, because they did not think it needed justifying. A modern index of disfavored neighborhoods would carry its author’s theory of what disfavor looks like. Nobody graded on these sheets was asked anything, and most never learned a federal agency had given their street a letter. That is the kind of record Section III is about.
The census is doing a second job here that is easy to miss. The grade file holds shapes and letters and no people at all. Every share below is a count of Black residents over a count of all residents, and both numbers are borrowed from the census. The record supplies only the letter, and somebody else counted everyone standing under it.
The table the figures rest on is tracts.csv: one row per
2020 census tract, 4,489 rows, covering 56 cities in 6 states. Each row
carries GEOID, the tract’s eleven-digit identifier, with
state and city; grade, the letter
the ground under it was given in the 1930s; and total,
white, black and pct_black from
the census.
| Tract GEOID | State | City | 1930s HOLC grade | 2020 population | Black residents | % Black |
|---|---|---|---|---|---|---|
| 06001400100 | CA | Oakland | B | 3038 | 144 | 4.74 |
| 06001400200 | CA | Oakland | B | 2001 | 40 | 2.00 |
| 06001400300 | CA | Oakland | C | 5504 | 561 | 10.19 |
Read the first row. Tract 06001400100 is in Oakland, CA. Its center point falls inside an area the corporation graded B (how a 2020 tract is matched to a 1930s area is explained below), so the row carries a B. The 2020 census counted 3,038 people living in it, 144 of them Black, and 144 ÷ 3,038 = 4.74%. Every figure below is that row, 4,489 times over.
The letter is the strangest thing in that row. The corporation used four of them:
| Grade | Label | Color |
|---|---|---|
| A | Best | green |
| B | Still Desirable | blue |
| C | Definitely Declining | yellow |
| D | Hazardous | red |
The D areas were printed in red, which is where the word redlining comes from,3 and the paragraph above is what a D looked like from the inside. Figure 1 is Cleveland’s whole sheet.
Figure 1. Cleveland as the Home Owners’ Loan Corporation graded it in 1939. 190 graded areas over 302 square kilometers, filled with the corporation’s own four colors read out of the source file rather than chosen here. A map is the right form because the grade was applied to ground. Red sits in the industrial core, an average of 7.8 km from the center of the surveyed area; green sits 12.4 km out at the edge. The concentric rings of creditworthiness are visible before any census number arrives. The dashed rectangle marks the ground enlarged in Figure 2.
Getting the census onto that map takes a decision, because the two sets of shapes have nothing to do with each other. A 1937 boundary was drawn with no knowledge of a 2020 census tract, and tracts have been redrawn every decade since. There is no shared identifier and no lookup table. The rule used here is the simplest defensible one: take each tract’s center point, and ask which graded area contains it.
| Step | Value |
|---|---|
| HOLC areas digitized | 10,154 |
| of them graded A to D | 9,324 |
| Rule applied | tract center point inside a graded polygon |
| Tracts matched to a grade | 4,489 |
| Cities represented | 56 |
| States | 6 |
Figure 2. A 5.6 km window of Cleveland, with 1939 underneath and 2020 on top. Colored surfaces are HOLC areas, thin outlines are 2020 tracts, and each dot is the center point the rule consults. The heavily outlined tract is the rule getting it wrong: its center falls in a D area, so the whole tract is coded D, but its land is 63% C, 35% D, 1% B, 1% A.
That cost is worth stating in numbers. The rule grades 587 tracts in Cleveland and Philadelphia, and 33 of them get a letter that is not the letter covering most of their own land. Another 181 are dropped, because their center falls outside every graded area. It is at least reproducible: re-running it from the polygons returns the grade the file already carries for all but 1 of 588 tracts. A crosswalk is a table that translates one set of areas into another, and one weighted by population would grade some of these tracts differently. Choosing between such rules is Section IV’s subject, in Join Keys and Crosswalks.
Two details matter to anyone who opens these files.
GEOID has to be read as text, because the Californian
identifiers begin with a zero that a spreadsheet, or any program reading
the column as a number, silently deletes, leaving a ten-digit number
that names no state. And the areas in square kilometers above were
measured on the ground, after converting the map’s latitude and
longitude to meters; the source’s own area field is in
square degrees, which is not a unit of land.
Before you read on, commit to two numbers. The file holds 33 cities with both A-graded and D-graded ground. In the average city, how many percentage points more Black is the D-graded ground than the A-graded ground today? And how many of the 33 cities run the other way? Write both down.
Add up all 4,489 tracts by grade, every city together, and the obvious comparison appears at once.
| HOLC grade | Tracts | 2020 population | Black residents | % Black |
|---|---|---|---|---|
| A | 273 | 978,270 | 163,372 | 16.7 |
| B | 899 | 3,269,467 | 762,053 | 23.3 |
| C | 2096 | 7,273,922 | 1,555,044 | 21.4 |
| D | 1221 | 3,984,323 | 1,018,080 | 25.6 |
Areas graded A are 16.7% Black today and areas graded D are 25.6%, a gap of 8.9 points. After the appraisal sheet above, that is deflating, and the ordering does not even behave: C areas are 21.4% Black, less than the 23.3% in B areas.
The pooled table is not measuring grades. It is measuring cities. Cleveland’s D areas and Oakland’s A areas sit in it together, and American cities differ enormously in overall Black population for reasons unconnected to the corporation. San Francisco’s D neighborhoods sit in a city whose graded ground is 4.2% Black; Cleveland’s A neighborhoods sit in one whose graded ground is 39.2% Black. Differences between cities swamp the difference within them, and only the difference within them is the question. Adding groups together can hide, or even reverse, a pattern that holds inside every one of them; statisticians call it Simpson’s paradox, and it is the standing hazard of any pooled table.
So make the comparison inside each city, where the same housing market, the same city government and the same regional history apply to both grades.
| City | A tracts | D tracts | A areas % Black | D areas % Black | Gap |
|---|---|---|---|---|---|
| Cleveland | 25 | 47 | 21.3 | 68.1 | 46.9 |
| Pontiac | 1 | 4 | 32.1 | 71.0 | 39.0 |
| Decatur | 1 | 4 | 19.4 | 54.8 | 35.4 |
| Toledo | 3 | 4 | 6.6 | 40.5 | 33.9 |
| Greater Kansas City | 5 | 34 | 4.0 | 37.7 | 33.6 |
| St. Louis | 15 | 17 | 14.0 | 47.6 | 33.6 |
| Chicago | 18 | 249 | 3.2 | 36.6 | 33.4 |
| Pittsburgh | 7 | 43 | 4.2 | 34.1 | 29.9 |
In Cleveland, whose 1939 sheet opens this brief, neighborhoods graded A are 21.3% Black today and neighborhoods graded D are 68.1%. That is 46.9 points between two sets of neighborhoods separated by nothing except a letter assigned before the Second World War. Cleveland is the extreme case, and the extreme case is never the argument. Across all 33 cities holding both grades the average gap is 14.5 points, and 26 run in the direction the history predicts.
One line per city. Hover to isolate. Labeled cities are the reversals and the largest gaps.
Figure 3. Within each city, from its A-graded ground to its D-graded ground. One line per city, joining the share of residents who are Black in the tracts graded A to the share in the tracts graded D, 2020 Census. Of the 33 cities with both grades, 26 rise and 6 fall; the steepest rise is Cleveland, at 46.9 points. The average line rises 14.5 points.
The 6 downward lines are the most useful thing in the figure, and they are two different things wearing the same sign.
| City | A tracts | D tracts | A population | D population | A % Black | D % Black | Gap |
|---|---|---|---|---|---|---|---|
| Joliet | 2 | 1 | 6,265 | 3,040 | 16.0 | 6.3 | -9.6 |
| Philadelphia | 28 | 138 | 97,336 | 548,467 | 40.7 | 34.3 | -6.4 |
| Stockton | 1 | 6 | 5,750 | 26,692 | 11.5 | 6.3 | -5.2 |
| Canton | 1 | 1 | 3,278 | 2,884 | 15.2 | 11.7 | -3.5 |
| Detroit | 22 | 102 | 82,787 | 251,281 | 46.8 | 43.9 | -3.0 |
| San Jose | 1 | 6 | 3,728 | 29,341 | 5.4 | 3.7 | -1.7 |
Philadelphia is a real reversal. Its D areas are 34.3% Black and its A areas 40.7%, backwards by 6.4 points across 138 D tracts holding 548,467 people. North Philadelphia was graded D and has been substantially gentrified, and several historically Black neighborhoods there were never graded D at all. Urban renewal, deindustrialization, highway building and very uneven reinvestment all happened in between.
Joliet is not a real reversal. Its 9.6-point gap rests on 2 A tracts against 1 D tract, and a percentage computed on a handful of tracts is not a stable quantity. Printing it beside Cleveland’s 25-against-47 as equal weight would mislead a reader with accurate numbers. Several other reversals are small in the same way.
So the sentence this evidence will bear is the middle of three. The grade is associated with a neighborhood’s racial composition today, on average, within a city. It did not determine it, because Philadelphia went the other way, and nothing here shows that it caused it.
It cannot tell you whether the maps did anything. The appraisers were describing segregation that already existed, much of it produced by restrictive covenants, by violence and by private lending that predated the corporation. On that reading these maps are an excellent record of 1930s segregation and no evidence about its causes. Separating the two needs a different design, not a bigger version of this one. Aaronson, Hartley and Mazumder (2021) compared blocks on either side of a grade boundary, and cities just above and just below the population cutoff for being mapped at all, and found effects on home ownership, house values and segregation that lasted decades.4
It cannot speak for the country. The corporation surveyed only cities above a population threshold, so there was never a national frame, and this file holds 56 cities in 6 states.
It cannot show a path. This is one snapshot. These neighborhoods may have been converging for fifty years, or diverging, or crossing over, and 2020 looks the same in all three cases.
And a grade is not a measurement. It is one appraiser’s letter, with no second rater, no units and no standard error, used here as though it were an assignment made at random. Grade was never the only thing that differed between an A and a D neighborhood in 1937.
None of these is answered above, and every one can be answered from the tables below.
cities.csv gives each city a gap, the
share Black in A areas against the share in D areas. Sort by it and read
both ends. Do the a_tracts and d_tracts counts
make the smallest gap worth anything?
tracts.csv has grade beside
total and pct_black. Group by
city and grade and compare the population
under each letter. Which cities put most of their people under a
C?
fig_mix.csv carries own_share, how much
of a tract’s graded land carries the letter it was given. Sort it and
read the lowest rows. Those tracts are the ones any map of this data
draws wrong.
fig_quote.csv holds one appraiser’s own words, with
the sheet’s label and dated. Read it, then
look up that neighborhood now.
Stretch. Mapping Inequality publishes the description sheets for every graded city. Read three D sheets and three A sheets, and count how many name a group of people rather than a state of the buildings.
Stretch. The 2020 census also publishes Hispanic
origin by tract. Attach it to tracts.csv by
GEOID and ask whether the within-city gap
survives.
Data
The data itself
Every figure above is drawn from these tables. They are plain CSV, they open in a spreadsheet, and they are yours to take further.
cities.csv, fig_holc_attr.csv,
fig_holc_meta.csv,
fig_holc_rings.csv,
fig_mix.csv, fig_quote.csv, fig_source.csv, fig_zoom_attr.csv,
fig_zoom_holc.csv,
fig_zoom_tracts.csv,
fig_zoom_win.csv,
tracts.csv
Academic literature
I want to rebuild a public dataset from its original sources, without any starting files. Please do the following and show your work. THE FIRST SOURCE. "Mapping Inequality: Redlining in New Deal America", Digital Scholarship Lab, University of Richmond (CC BY-NC-SA). One GeoJSON file, about 10.5 MB, holding every area drawn on the Home Owners' Loan Corporation's 1930s security maps: https://dsl.richmond.edu/panorama/redlining/static/mappinginequality.json No account or key is needed. Each feature is one appraisal area with its city, state, and grade — 10,154 areas, of which 9,324 carry a grade A through D. The grade field arrives padded with spaces: the same grade appears as "A", "A ", and " A". Trim it before filtering, because keeping only A through D without trimming looks like a clean subset and silently drops areas. THE SECOND SOURCE. U.S. Census Bureau, TIGER/Line 2020 census-tract boundaries, one zip per state, at https://www2.census.gov/geo/tiger/TIGER2020/TRACT/tl_2020_<FIPS>_tract.zip for six states: California (06), Illinois (17), Michigan (26), Missouri (29), Ohio (39), Pennsylvania (42). Every tract polygon carries an internal point the Bureau guarantees to lie inside the tract. THE THIRD SOURCE. 2020 Census P.L. 94-171 redistricting data for the same six states — table P1 has each tract's total, white, and Black population. One zip per state, named like Michigan's: https://www2.census.gov/programs-surveys/decennial/2020/data/01-Redistricting_File--PL_94-171/Michigan/mi2020.pl.zip The files inside are pipe-delimited segments that join on a record number. Read that number as text on both sides — it is zero-padded, and a numeric read makes the join silently match nothing. WHAT TO BUILD. 1. A grade for each 2020 tract: the tract takes the grade of the graded area its internal point falls inside, first match wins. Keep the tracts that get one. 2. Those graded tracts joined to their 2020 population counts, with percent Black per tract. 3. For every city holding both an A tract and a D tract, the percent Black of the pooled population on each side, and the gap between the two. CHECK YOUR WORK. The copies this book used were downloaded in August 2026. If your rebuild matches them, you should find: - 10,154 areas in the map file, 9,324 of them graded A through D - 4,489 tracts carrying a grade across the six states - 33 cities with both an A and a D tract; the widest gap is Cleveland, whose once-A tracts hold 79,609 people and whose once-D tracts hold 100,969 Mapping Inequality keeps adding newly digitized cities; a larger area count means the project grew, not that you made an error.
The corporation and its maps are described in the project’s introduction: Robert K. Nelson et al., Mapping Inequality, “Introduction,” https://dsl.richmond.edu/panorama/redlining/introduction; and in Richard Rothstein, The Color of Law (New York: Liveright, 2017), https://wwnorton.com/books/the-color-of-law.↩︎
Census Bureau, geography glossary, “Census tract”: https://www.census.gov/programs-surveys/geography/about/glossary.html.↩︎
Nelson et al., Mapping Inequality, “Introduction,” https://dsl.richmond.edu/panorama/redlining/introduction.↩︎
Daniel Aaronson, Daniel Hartley and Bhashkar Mazumder, “The Effects of the 1930s HOLC ‘Redlining’ Maps,” American Economic Journal: Economic Policy 13, no. 4 (2021): 355–392, https://www.aeaweb.org/articles?id=10.1257/pol.20190414.↩︎