50-State Redistricting Simulations
Comprehensive project to simulate alternative congressional redistricting plans for all fifty states.
Every decade following the Census, states and municipalities must redraw districts for Congress, state houses, city councils, and more. The goal of the 50-State Simulation Project is to enable researchers, practitioners, and the general public to use cutting-edge redistricting simulation analysis to evaluate enacted congressional districts.
Evaluating a redistricting plan requires analysts to take into account each state’s redistricting rules and particular political geography. Comparing the partisan bias of a plan for Texas with the bias of a plan for New York, for example, is likely misleading. Comparing a state’s current plan to a past plan is also problematic because of demographic and political changes over time. Redistricting simulations generate an ensemble of alternative redistricting plans within a given state which are tailored to its redistricting rules. Unlike traditional evaluation methods, therefore, simulations are able to directly account for the state’s political geography and redistricting criteria.
You can dive into our analyses straightaway by clicking on a state below. From there, you’ll be able to see how the state’s new congressional districts stack up compared to a set of 5,000 simulated plans.
States colored blue have enacted a congressional map and been fully analyzed, states colored gray have enacted a plan but haven’t yet been analyzed, or just have a single district (and hence no redistricting), and states colored red haven’t enacted a plan yet.
Analyzed States
For each state, we release 5,000 alternative plans, according to our best approximation of each state’s redistricting rules. The code used to generate the simulated plans is also available so that others can use it as a template to generate their own simulated plans under different specifications. The major outputs are posted on the ALARM Project Dataverse, and the code is available on Github.). We have also developed a package, alarmdata
, which makes it easy to download and work with the simulation outputs in R.
Our simulation analyses should serve as a realistic template for those who are interested in conducting their own analyses. Our code can be modified and extended, and the resulting samples can be used to explore various properties of potential plans under the specific redistricting criteria of our analysis. Our simulations presented here, however, do not represent our evaluation of the legality of the enacted and other plans. Any such evaluation of the enacted plan would require the interpretation of relevant laws. Although some requirements are relatively straightforward to interpret and operationalize (e.g., minimizing splits of administrative boundaries), others such as compliance with the Voting Rights Act require legal justifications. For this reason, we do not claim that the analyses presented here are necessarily applicable when evaluating the legality of redistricting plans.
Data Sources and Availability
Unless otherwise noted, data for each state comes from the ALARM Project’s 2020 Redistricting Data Files, which use U.S. Census demographic data (in the public domain) and election data from the Voting and Election Science Team, which is licensed under a CC BY 4.0 license. In these cases, shapefiles are also taken from the U.S. Census Bureau. The U.S. map here, scaled to reflect Congressional representations, is courtesy of https://dkel.ec/map.
All data is available on our Dataverse and has been released to the public domain. Code is available on GitHub under an MIT license.
Thank you to the Harvard Data Science Initiative and Microsoft for computational support.
Citation
@online{mccartan2022,
author = {McCartan, Cory and Kenny, Christopher and Simko, Tyler and
Kuriwaki, Shiro and Garcia III, George and Wang, Kevin and Wu,
Melissa and Imai, Kosuke},
title = {50-State {Redistricting} {Simulations}},
date = {2022-02-08},
url = {https://alarm-redist.github.io/fifty-states/},
doi = {10.7910/DVN/SLCD3E},
langid = {en}
}