Source data for the mid-decade redistricting map
Source data for the mid-decade redistricting map
../data.csv is the table the map reads: one row per state, with the party that
drew the map, its status, and the expected partisan seat shift (exp) and its
range across elections (lo, hi). This folder holds the data those numbers
come from, so the page and its evidence sit together.
<ST>_map_old.csv / <ST>_map_new.csv
One row per district, one column per statewide election. Each cell is the
Democratic share of the two-party vote in that district under that plan:
Dem / (Dem + Rep), computed from precinct results disaggregated to districts.
_old is the plan in force before the mid-decade redraw, _new the plan that
replaced it. The two files for a state always carry the same set of elections.
Precinct results are VEST’s; the plans and the disaggregation are Dave’s
Redistricting App. Generated by compare-plans-dra/_DRA_elections.R in the
createMaps repository, which writes
these files here and into that repo’s mid-decade-redistricting/data/.
How exp, lo, and hi follow from them
For each election column, a district is a Democratic seat when its value exceeds 0.5. That gives a seat count per election under each plan.
expis the mean seat count under the old plan minus the mean under the new one, averaged over the elections — the expected seats the drawing party gains.loandhiare the smallest and largest of that same difference across individual elections, so they bracket how much the answer depends on which election you look at.
Signs in data.csv are oriented toward the state’s drawing party, so a
Democratic gerrymander (California, Virginia) is recorded as a positive number
for the Democrats rather than a negative one for the Republicans.
Recomputing that way reproduces data.csv exactly:
| State | Districts | Elections | exp | lo | hi |
|---|---|---|---|---|---|
| CA | 52 | 12 | 6.25 | 3 | 9 |
| FL | 28 | 13 | 2.23 | 1 | 4 |
| LA | 6 | 16 | 0.69 | 0 | 1 |
| MO | 8 | 19 | 0.89 | 0 | 1 |
| NC | 14 | 27 | 0.52 | -1 | 1 |
| OH | 15 | 20 | 0.65 | -1 | 2 |
| SC | 7 | 12 | 1.00 | 1 | 1 |
| TN | 9 | 8 | 1.00 | 1 | 1 |
| TX | 38 | 17 | 3.29 | 2 | 5 |
| UT | 4 | 16 | 0.94 | 0 | 1 |
| VA | 11 | 12 | 3.08 | 2 | 4 |
Two states here carry no numbers on the map, for different reasons.
South Carolina never passed a new map, so SC_map_new.csv scores a proposal,
not a plan that ever existed in law. data.csv records the state as
possible / blocked and leaves exp, lo, and hi empty: there is no
enacted redraw to attribute a seat shift to. That is not the same as Virginia,
which is partisan / blocked — a map did pass there and was then blocked, so
its 3.08 / 2 / 4 is a real shift from a real plan, shown struck through. The
mid_decade column is what separates the two cases; status alone does not.
PA_map_old.csv and PA_map_new.csv are a separate analysis of Pennsylvania’s
203 state house districts, not a congressional mid-decade redraw; they are kept
for reference and are not part of the map.
Relation to ../elections.csv
../elections.csv is what the per-election detail table under the map reads:
one row per election per state, giving the seat split under each plan. These
files are the layer below it — the district-level shares those seat counts are
collapsed from.
Texas and Florida came into elections.csv from democracys-data. The other
eight states — California, Louisiana, Missouri, North Carolina, Ohio,
Tennessee, Utah, and Virginia — were counted from the files here, applying the
same rule (a district is a Democratic seat above 0.5). Every one reproduces the
exp, lo, and hi already in data.csv, and Texas and Florida come out the
same from either route, which is the check that the two pipelines agree.
elections.csv stores the change as rep_new - rep_old, so a Democratic
gerrymander is a negative number there; data.csv orients the same quantity
toward whichever party drew the map, so it is positive for California, Utah,
and Virginia.
Two gaps are not fillable from this folder. Alabama has values on the map but no district-level files here, so it has no detail table. South Carolina has files but no map value, for the reason above.
redistrict-map.csv
The state-level table the original mapshaper build styled its choropleth from:
2020 census population, whether the redraw was partisan, court-ordered, or
possible, its status, and the drawing party, for all fifty states and D.C.
(999 and NA mark states with no mid-decade activity.) ../data.csv
supersedes it for the web map — it covers only the seventeen states the map
labels, and adds the seat-shift columns and the label-offset columns dx/dy
— but this is the file _createMaps.sh still joins to the state geometry.
Not copied here
states.json (8.2 MB) in createMaps is the unprojected source geometry.
../states.topojson is the projected, simplified build product the page
actually loads, with each state’s guaranteed-inside label anchor baked in, so
the source is left in createMaps rather than duplicated into the site.