Last weekend, the State Supreme Court announced the new Congressional boundaries for the 2018 election. Even though the GOP immediately challenged them in federal court, these boundaries appear fairer than any of the other maps proposed--by Republicans or Democrats. (NB: I purely define "fairness" as producing districts with partisanship close to the popular vote. I think compactness and county alignment are well-meaning but bad standards).
This week, I'll be digging into each of the districts in the Philadelphia area, looking at their map, their voting behavior, and their demographics. But first, here are some high-level summaries of the Court's districts. I'm not going to narrate, but mostly planting the images here for posterity. (Note, these were tweeted out by the @sixtysixwards twitter account. Follow that for the hottest real-time analysis.)
Governor Wolf has responded to the GOP's proposed congressional districts by proposing a map of his own. How does it compare?
The districts are compact (as were the GOP districts), but treat Philadelphia and suburbs very differently from the GOP's map, and slightly reduces the wasted vote gap between parties.
To see how Wolf's districts would change congressional voting, below is a plot of the current districts' results in the 2016 Presidential Election, and what it would have been under the proposed districts.
Similar to the GOP's map, Wolf's largely preserves districts' current partisanship. But there are notable exceptions.
District 6, in Delaware and Chester county voted barely for Clinton in 2016, 48.1% to 47.6%. Under the GOP's districts, it would have been a Trump 52-48 win (I do all of my projections using only the two-party vote). Under Wolf's districts, it would have been a Clinton 56-44 win.
Wolf's plan also changes District 15, which covers Reading and Allentown, from Republican to Democratic. In doing so, it makes Bucks County's District 8 more Republican; the district narrowly crosses from Blue to Red in the 2016 vote tally.
District 7, Patrick Meehan's district that the GOP plan sacrifices, similarly becomes a Democratic stronghold under Wolf's plan. That's the comically gerrymandered "Goofy kicking Donald" district, and any redistricting that values compactness will almost certainly swing it hard to the left.
Wolf's map also makes a number of Republican districts much safer. Districts 12 and 16 move from 10-point Republican wins to over 20-point wins, with only District 18 swinging from a 27-point Republican win to a 14-point win.
Overall, Wolf's map brings districts closer to 50-50 splits. And in doing so, it moves one district from Republican to Democratic. The current map has 12 districts that voted for Trump, 6 that voted for Clinton. The GOP's maintains the exact same split. Wolf's map would shrink that slightly to 11-7, or 61% Republican. This in a state that voted 50-50, with Donald Trump winning by less than a percentage point.
So what are we to do? Wolf's map may be as fair as we can expect while being tied to outdated notions of geographical representation and compactness. Maybe, some day, proportional representation.
Pennsylvania Republicans submitted a new map of proposed Congressional Districts to Governor Wolf on Friday. He has until Thursday to approve it and send it to the State Supreme Court.
I've downloaded the boundaries from pubintlaw, and created an interactive map. In order to project how each district would perform, I've aggregated the results of the races for President in 2016 and Governor in 2014. Let's dig in.
You can visit the full-scale interactive maps here.
The GOP's proposal clearly creates compact boundaries that align with county boundaries much more often. While this is what most people focus on with gerrymandering, I think the compactness standard is nonsense: it is completely possible to waste a party's votes with compact boundaries if perniciously drawn. In fact, the concentration of Democrats in cities means that even naive compact districts will almost certainly favor Republicans.
The new districts maintain the exact same Republican advantage as the prior ones. To assess this, let's look at the outcome of the 2016 Presidential election. Donald Trump narrowly won Pennsylvania, with 48.2% of the vote to Hillary Clinton's 47.5%. However, he won 12 of the Congressional Districts to Clinton's 6 (and in total 13 Republican House members won to Democrats' 5). This imbalance between topline vote and district count was achieved by packing Democrats all into a few districts, to waste their votes in landslide elections, leaving comfortable but not wasteful Repubican wins in the rest of the state.
With respect to the 2016 Presidential election, the new boundaries look a lot like the old ones:
Before we look at the district, notice the asymmetric skew between Republicans and Democrats. Republicans don't have a single district where they won by more than 50 points (thereby wasting their votes); Democrats have two. Given this, Trump would still have won 12 of the 18 districts under the proposed boundaries. The Democrats are still given the two most wasteful districts: PA-01 and PA-02, both in Philadelphia. They would continue to comfortably win PA-14, Pittsburgh, and PA-13, in Northeast Philadelphia.
District PA-07 swings hard to the Democrats. That district, famously gerrymandered as "Goofy kicking Donald," is a convenient sacrifice for Republicans as Representative Pat Meehan has already stepped down from the race amidst sexual misconduct allegations.
By sacrificing PA-07, Republicans make PA-06 a more likely Republican seat. The district, covering the farther-West Philadelphia suburbs, had been narrowly won by Clinton, but would now be a 4.4% Trump win.
PA-08 remains the most evenly split district. It covers the suburbs to Philadelphia's Northeast: Doylestown, Newtown, et al. It was and would remain essentially 50-50. Clinton would have won it by the slimmest of margins in 2016.
A strong Democratic 2018 could still swing seats. Districts 12 and 17 would have been Trump wins by 10 percentage points under these boundaries. These are the types of seats that we would expect to see competitive in a Democratic wave election. In fact, the logic of gerrymandering may mean that wave elections have more power: gerrymandered seats should be safe but not too safe, to avoid wasting votes, which may put a lot of them in play in a 10-20% Democratic swing.
But we shouldn't lose sight of just how troubling the baseline assumption in that logic is: Democrats basically need a wave election just to break even. In the dead-even state-wide election of 2016, Republicans won 13 seats to Democrats' 5 (Trump won only 12; another district split). Just because Democrats may be able to overcome the disadvantage to barely break even doesn't mean that the districts are fair.
Just to check that 2016 wasn't a fluke, here is the same plot for the 2014 Governor's race.
The Governor results are all shifted more Democratic; Wolf won the state with 54.9% of the vote to Corbett's 45.1%. Despite the rout, Corbett *won more* congressional districts: he won more than half the vote in 10 of 18 districts. The proposed boundaries do nothing to change that. PA-15, representing Allentown, becomes much more Democratic while PA-06 again becomes much more Republican.
The wasted votes are particularly breathtaking here: Corbett wins 10 of the 18 seats in both scenarios despite losing by 10% overall. And his largest win in a single district is by 18% in the new PA-04; Democrats would win by that much in *four* districts. Their votes are being concentrated, and wasted.
A note about my methodology:
To predict results within the new boundaries, I need to rely on data calculated from previous boundaries.
I am using election data from the amazing folks at openelections.org. I begin with election results at the smallest available unit of geography, the State House Districts. When a district is entirely contained within one of the new Congressional Districts, I simply add the votes. When the state house district is split between two or more of the congressional districts, I allocate its votes based on the 2010 census population-over-age-18 of the overlapping areas. Often, analyses apportion these voters based on area, but I expect using population-weighted measures to be much more accurate. Code available upon request (or once I organize my github repository).
US Congressman Bob Brady stunned Philadelphia yesterday when he announced that he would not run for reelection. This puts Congressional District 1, which he has held since 1998, up for grabs. Immediately, the scramble among Democrats to pursue the seat began.
In November, the seat will almost certainly be won by the Democrat. But who can win the Democratic Primary in May? Is the district ripe for pick-up by a progressive change candidate? Or will Brady, who is also president of the Democratic City Committee, be replaced by another Party stalwart?
What should we expect from the district? Where do its votes come from, and what do we know about those voters? Let's look at some maps. (You can visit my interactive maps, too).
EDIT: This may obviously all be moot if the district changes in response to the State Supreme Court’s map overturn...
District 1 stretches from Northeast Philadelphia, through South and Southwest Philly, and down into Media. The gerrymandering is obvious: the southeast stretch encompasses Chester and Swarthmore, which get grouped in with Philadelphia in hopes of concentrating Democratic votes and thus wasting them.
The district is a completely safe Democratic seat. Clinton won it in 2016 with 80% of the vote. Below, I've aggregated votes to State House districts. Interestingly, the River Wards and parts of South Philly that may be considered Brady's base were the Trumpiest Democrats, swinging sharply for the Republican.
So the Democrat will almost certainly win in November. But what kind of Democrat will it be? Does the district seem to prefer establishment, Clinton types, or leftist, Sanders types? The voters are actually quite diverse in this regard, combining Black and Hispanic neighborhoods that voted entirely for Clinton in North and West Philly and Chester, with River Wards and South Philly neighborhoods that voted for Sanders. (I continue to find fascinating the overlap between Sanders and Trump voters, suggesting that voters may not have been Left or Right so much as Anti-Clinton. I leave it to you to speculate on the reasons.)
However, the neighborhoods that most strongly supported Clinton are also the neighborhoods that voted the most. A huge majority of the District's votes come from Center South Philly, North Philly, and Southwest/West Philly. These overlap with some of Clinton's strongest neighborhoods, especially in Southwest and West Philly.
Since most of the votes come from the city anyway, it's useful to look at the other competitive Democratic Primary we recently had: the 2017 Philadelphia race for District Attorney. This will exclude the suburban voters in District 1, but they are unlikely to carry the District. Those Center City and South Philly neighborhoods that supported Clinton came out for Larry Krasner one year later, as did the Sanders supporters in the River Wards.
District 1 is racially diverse in a way little of America is. Of course, this top-line diversity does not actually represent neighborhood diversity, but is achieved by aggregating largely segregated neighborhoods. Below is a map of census tract race and ethnicity from the American Community Survey for 2012-16. Hispanic North Philly combines with White South Philly and River Wards and Black West Philly to create a patchwork representation. The map of race also lines up with the gerrymandered carve-outs of the district: District 1 hooks out to include predominately White Fairmount in Brady's district, while it notably excludes predominately Black Point Breeze.
Brady's district is predominately poor, typical of the City as a whole. Of course, while the population may be poor, the high-income tracts in Center City are also the places where most of the votes come from, so the average voter is wealthier than the district's average resident.
What should we expect in May?
A ton of candidates are going to run for the House seat. Whoever wins the Democratic primary is going to win in November. Philadelphia voters constitute the vast majority of the district's Primary turnout, and Philadelphians will decide the election. Given the neighborhoods that typically vote in primaries, the race will probably be decided by the White voters in Center City, South Philly and the River Wards along with the Black voters in West and Southwest Philly. Those voters split between Clinton and Sanders in 2016, but voted strongly for Krasner in 2017. If a candidate can manage to consolidate the left, especially in a likely high-candidate field, the race should be theirs.
The 2016 election was expected to split the Republican party. Donald Trump coalesced a base of voters fueled by cultural displacement and racial resentment, saying out loud what had only been hinted at. This seemed like it could threaten the alliance between cultural and fiscal conservatives that made up the Republican Party. Leading into November 2016, Democrats hoped that the fault line would turn off "establishment" conservatives and lead to a Hillary victory. Alas.
Ahead of the 2016 election, analysts predicted that Pennsylvania would come down to Philadelphia's suburbs. Voters there had traditionally voted Republican, but swung for Obama in 2012 and were the exact well-educated, wealthier Republicans expected to be turned off by Trump's rhetoric. Many of these districts did, in fact, vote for Clinton, but not strongly enough to swing the state in her favor.
How did these districts split?
Where the districts split
Last week, I posted interactive maps aggregating Pennsylvania's recent elections. I just added to them the ability to map "split districts", in which Clinton won the presidential vote but the Republican won the local race, or vice versa.
Pennsylvania's State House has 203 members, who are voted on every two years. In 2016, 113 Republicans and 77 Democrats won. The remaining candidates were listed on the ballot as a third party, often D/R; when they are added based on their caucus, the overall Republican House victory was 121 - 82. Republicans thus won 59.6% of the House seats; thanks to gerrymandering and asymmetric concentration of votes, they did this with only 52.7% of the total State House vote.
In the plot below, I compare each district's vote for President with its vote for State House. Points on the diagonal line represent districts where Clinton received the same percentage of the vote as the Democratic Representative (and Trump the same as the Republican). Points to the right of the plot voted for Clinton, to the left voted for Trump. Points to the top voted for the Democratic Representative, to the bottom the Republican.
Among the 190 districts that had at least one major party candidate, Clinton outperformed the Democratic Representative in 110, and Trump outperformed the Republican in 80. This suggests an anti-Trump sentiment, which was nonetheless overcome by the overall Republican vote.
Many of these districts still elected representatives of the same party. However, the points in the top left quadrant (above the x-axis and to the left of the y-axis) and the bottom right quadrant (belowthe x-axis and to the right of the y-axis) are districts that actually elected different parties in the topline results. Some 18 contested districts that Clinton won were won by the Republican Representative, compared to 10 districts that Trump won going to Democrats.
The districts at the very top and bottom of the plot are districts where the State House race was uncontested, and thus the gap was 100%. Amazingly, five districts with uncontested Democrats voted for Trump, and one district with an uncontested Republican voted for Clinton.
In the Philadelphia region, the only splits that occurred were voters selecting Clinton but a Republican representative. And there were a lot of them. Check out the interactive maps for more exploration.
What should we expect from the splits?
Democrats would need to win 20 seats to take control of the State House. What should we expect from these 18 that voted for Clinton but a Republican representative? That's an open question.
One line of reasoning is that these districts will continue to support their local Republicans. They clearly dislike President Trump, but even in 2016 that wasn't enough for Democratic representatives to win. In 2018, when Trump isn't even on the ballot, surely voters will continue to support their local, traditional Republicans.
On the other hand, support for Trump has set record lows for Presidential approval (only 39.5% of Americans approve as of this writing), and it appears that voters' distaste may be spilling over to the rest of his party. As Republican officials have fallen in line behind Trump during his first year, they've fallen decisively behind in generic ballots, with unnamed Democrat beating unnamed Republican by 8 points. Voters in the Philadelphia suburbs may have expected Hillary to win, and voted for the Republicans they were familiar with as the Republican Party would inevitably reject Trumpism. Instead, Trump won, and his takeover of the Party may sour these voters on their local Republicans, too.
There were 34 split districts in Pennsylvania in 2016, and even more that just barely missed the cut. Democrats need to gain 20 seats to take over the house. That gap, which once would have seemed insurmountable, may be in play.
I'll be looking at state legislative districts in some next posts.
In preparation, I've created an interactive map using data from the amazing folks at the Open Elections Project. Below, I present data for State House, State Senate, U.S. Congress, and President/Governor for each election from 2010 to 2016. The 2010 and 2012 elections used the previous boundaries based on the 2000 Census, the 2014 and 2016 elections used boundaries based on the 2010 Census, which were approved in 2012 and are currently under review. I'll be looking at state legislative races in future posts.
A full scale version of the map is available at http://jtannen.shinyapps.io/pa_state_elections .
2018 is finally here, and with it midterm elections. While national eyes will be focused on control of Congress, Pennsylvania's voters will decide in November whether to reelect Democratic incumbents Governor Tom Wolf and Senator Bob Casey, or support as-yet undecided Republican challengers.
Within swing-state Pennsylvania, Philadelphia plays the role of Democratic bastion. Elections often boil down to two questions (1) how do Pittsburgh and Philadelphia's suburbs swing between parties, and (2) can Philadelphia's turnout overcome those swings.
I've downloaded data from the *amazing* Open Elections Project. Let's look ahead to November.
Philadelphia and Pennsylvania's turnout
Turnout in PA Governor races is typically 2/3 of the turnout in Presidential elections. Just under 6 Million votes are typically cast for President, while under 4 Million are cast for Governor. This means that there is significant room for growth in 2018 turnout with an energized electorate.
The closest proxy for 2018 is probably 2006: in that year, an unpopular Republican President and an incumbent Democratic Governor led to a sweeping victory across the state, with Ed Rendell winning reelection by 19.8 percentage points. Coincidentally, Bob Casey was running then as now, and this wave carried him to a 17.4 point win over incumbent Rick Santorum.
That election also saw the highest statewide turnout for a Governor's race, with 4.1 million Pennsylvanians voting. Democratic voters in 2018 appear to be even more motivated than twelve years ago; if turnout closes even a fraction of the 2 Million vote gap between Presidential and Gubernatorial races, we could expect record vote counts.
Despite its reputation as a swing state, Pennsylvania entered 2016 with the Democrat having won six of the prior seven President & Governor races. Of course, swinginess reasserted itself in 2016, as Trump carried the state overall by 44 thousand votes. Interestingly, Rendell's big Democratic win in 2006 came even while the Republican count of votes held steady: he received 55,000 more votes than in 2002, and that leap was responsible for the surging victory.
Within the state, Philadelphia serves both the roles of casting the most votes and being the most Democratic county. In 2014, Philadelphia supported Wolf with 88% of the vote. He carried the state with 55%.
Together, Philadelphia and its four-county suburbs--Bucks, Chester, Delaware and Montgomery--constitute 31% of the state's population and 33% of its votes. Philadelphians vote disproportionately more in Presidential elections, making up 11.8% of the electorate on average, as opposed to 10.8% of the electorate in Governor's races. That difference may seem small, but combined with the fact that Philadelphia often votes 36 percentage points more Democratic than the rest of the state, this single swing can change statewide results by 0.36 percentage points. For a sense of size, Donald Trump won the state by 1.2 percentage points.
Philadelphia and its suburbs regularly vote more Democratic than the rest of the state. Across the years, however, there are some subtle trends. Philadelphia's suburbs appear to be the most susceptible to waves: the swing from Democrat to Republican between 2006 and 2010 was much more dramatic than in Philadelphia or the rest of the state. In 2016, those same suburbs exemplified the anti-Trump movement, and actually voted *more* for Clinton than they had for Obama in 2012. Both Philadelphia and the rest of PA did the opposite.
Turnout vs. Persuasion in Pennsylvania
In a previous post, I decomposed swings in votes into changes in turnout and changes in party selection. Let's apply that same calculation to state, county by county.
A recap: the calculation decomposes each county's effect on the statewide election results into the effect of its turnout swings and of swings in its party preference. If a county has a score of 0.2 in Party Variability, that means that its typical swing in party preference changes the statewide election outcomes by 0.2 percentage points. If a county has strong average turnout but varies in which party it votes for, it will have a high Party Variability score. If a county always votes for one party, and its turnout varies from election to election, it will have a high Turnout Variability score. Counties that always have low turnout or don't vote strongly for a given party will have low scores, as will counties that never vary.
In almost every county, party variability dominates turnout variability. The single, huge exception is Philadelphia. Philadelphia's score of 0.37 means that its changes in turnout between Governor and Presidential races can change the statewide election by 0.74 percentage points, as it goes from one deviation below its mean to one deviation above. All other counties almost entirely affect the state by swings in party preference.
(Note: This calculation focuses on county-level results, and I don't have data on individual voter turnout. Some of the Party Variability is almost certainly within-county turnout differentials: if within a county the Republicans are more likely to vote than the Democrats in a given election, that will appear in this calculation as a change in that county's party preference. As such, this calculation almost certainly overstates Party Variability and understates Turnout Variability. Nonetheless, Philadelphia's larger score is telling.)
Party Variability impacts the entire state, and the map of the Variability impact largely looks like the map of voters.
By comparison, only Philadelphia has a consistent-enough party preference and enough turnout variability for its turnout to have a large effect.
Now that 2018 is finally here, there is a lot of analysis to do. In the coming year, I will be profiling local congressional districts, analyzing state and local polls, and trying to understand our city and state a little bit better with each week.
Do you have thoughts for a post? An open question? A calculation or map you'd like to see? Let me know!
Sorry for the sparse posts. I am in the process of trying to wrangle state election data into a useable form, to ramp up for the 2018 Governor's race.
(Big, big shout-out to the Open Elections Project)
Once the data is in working order, keep an eye out for some thoughts on PA in 2018. But in the meantime, I thought I would present a sequence of maps that made me laugh out loud, and reinforce some basic rules about maps and data. (I am not the first to come up with these, but PA makes them *super* striking).
How did Pennsylvania vote in the 2014 Gubernatorial Election? Democrat Tom Wolf beat Republican incumbent Tom Corbett by 1.92 M votes (55%) to 1.57 M (45%). However, Corbett won 43 counties, to Wolf’s 24.
A naïve map of the election, coloring counties by winner, makes the election look outstanding for Corbett.
The binary nature of this maps hides the fact that much of PA is actually purple. Here’s a map where we color counties by a continuous version of the percentage gap between Wolf and Corbett.
The race looks a lot closer.
This map isn’t perfect either. It shows us how the land-area of Pennsylvania voted, but land doesn’t vote. People do. Some of these pixels represent many fewer voters than others. If we now change the transparency of the colors to represent the voters per mile, we get a map that in which the strength of the color is proportional to the number of votes the pixel represents.
With this map, we see... um... why Wolf won.
There is another method to correctly represent counties' vote total. That is to ignore the polygons all together, and represent counties by dots at their centroid, scaled by the number of votes.
We see that Pittsburgh and Philadelphia carry the largest weight, and just how important the Philadelphia suburbs are.
A number of Philadelphians find themselves engaged in politics like never before. Many are considering running for office. While you may not be eyeing a run for Governor, the 2018 primary includes the race for 3,372 Democratic Committeepeople. What would it take for you to be one of them?
What's a committeeperson?
Philadelphia is divided into 66 political wards, which serve as the geographic unit for political party organization. The Wards are subdivided into 1,686 divisions. Divisions contain about 1,000 people, and typically cover about 11 city blocks. Your division dictates your polling place.
Both the Democrats and Republicans represent their divisions with two elected committeepeople. These elections are held every four years in the party primary. Every committeeperson is up for reelection in 2018.
The bulk of a committeeperson's role is to be the foot soldiers for the party—managing get out the vote efforts and distributing endorsements. They participate in Ward meetings, and are the residents' conduit for communications (the effectiveness of this depends on the Ward and committeeperson, obviously). In some Wards, committeepeople also participate in selecting candidates to endorse. Finally, committeepeople are the ones who select Ward leaders, in a vote shortly after their election.
For more reading, I recommend the Committee of Seventy's Guide. But here, let's look at the voting patterns, and what it takes to win. Being a committeeperson is a natural point of entry to city government. And, frankly, it’s the easiest race you could run.
How many votes does it take to win?
Many committee positions are left completely empty. In 2014, 348 of the 3,372 Democratic committee positions went unfilled. An additional 95 candidates won with only a single vote, and 214 winning candidates received ten or fewer. In the map above, win count is the number of votes received by the second winning candidate.
How do people win with so few votes? Many won as write-in candidates, without their name on the ballot. All 95 one-vote winners were write-ins, and presumably either wrote in their own name or have really proud mothers. In total, 275 candidates won as write-ins. Almost all of the write-in winners were in divisions with fewer than two names on the ballot, though amazingly 11 write-in candidates won in divisions by beating someone on the ballot.
Some 168 divisions (10%) had no candidates on the ballot, while 273 (16%) had one candidate. In the rest, 1,012 divisions (60%) had exactly two candidates, one for each position, and only 233 (14%) had a competitive race with three or more.
What to look for in May 2018
Petitions for committee candidates to get on the ballot are due March 6, 2018. If you're interested, the Committee of Seventy provides a useful guide for How to Run for Office.
Even if you're not running for office, stay tuned. One of the important open questions of 2017 is the extent to which newfound national political energy will translate into local political engagement. Will our new political world effect city and state governance? May's committeeperson race will be an important signal.
 I focus on Democratic committeepeople. If you want to be a Republican Committeeperson, the competition is non-existent.
One of the ongoing debates in politics is whether elections are won by persuading swing voters to vote for your side or maximizing turnout among your base. We instinctively talk about campaigns as if they are battling for voters' minds. Can Hillary win over Working Class Whites? Can Donald Trump limit his harm among racial minorities? This implies that the most important movement in elections is due to voters who are on the fence, changing their minds.
Recent push-back has argued that simply nobody changes their minds anymore, and the people who do probably aren't all that likely to vote anyway. What really matters is energizing your base, and making sure they vote. There can be once-a-generation political realignments, but for the most part people just vote for their party. The difference between victories for one party or another is which party is more energized.
There are smarter people than me having this debate (my favorite recent book has been the eye-opening Democracy for Realists), but what I can do is look at the Philadelphia version. Where in Philadelphia does Turnout matter? Where does Persuasion?
How to measure the difference between turnout and persuasion
One of the favorite tools of demographers is the decomposition. This is a (surprisingly simple) mathematical technique for breaking down the change in something into the relative importance of the change in its constituent parts. In the footnotes, I develop a formula that decomposes a the variability in a party's win total (measured as the gap in votes between the winning party and the losing party) into variability of turnout plus variability of party preference. The equation boils down to
Variability in Gap = (Variability in Preferences) x (Average Turnout) + (Variability in Turnout) x (Average Preference)
= (Party Variability Component) + (Turnout Variability Component)
The equation reveals two campaign strategies, by maximizing each of the two addends:
(1) maximize the first component by persuading voters in divisions with variable preferences and high turnout.
(2) maximize the second component by turning out voters in divisions with highly variable turnout, where the average preference is strongly for your party.
These components boil down to obvious strategies, but the decomposition gives us a way to score divisions based on each. A division's score along each component tells us what impact that division has changes in the citywide election.
Party variability measures the impact on the citywide Democrat-Republican gap that a division's preference swings have. A division with a score of 0.02 means that when a division changes its party percentage by its average swing, the citywide vote total changes by 0.02 percentage points. This will depend on (1) how swing-y that division is, i.e. what constitutes its "average swing", and (2) its typical turnout. Divisions that swing between Democrats and Republicans, and where everyone votes, will have high scores.
Turnout variability measures the impact on the gap that a division's turnout swings have. A division with a score of 0.02 means that when a division increases its turnout by its average swing, the citywide vote total changes by 0.02 percentage points. This will depend on (1) how much turnout varies in that district, which determines its "average swing", and (2) its typical party gap. Divisions where turnout varies wildly but which is strongly Democratic or Republican will have high scores.
(I use "relative turnout", which is a division's proportion of the citywide total, rather than vote counts. Thus, large swings for a Presidential election aren't considered a swing unless the division votes disproportionately more than other divisions in that year. This also means that citywide turnout efforts won’t affect the score, only localized ones.)
Overall, it appears that persuasion has a larger impact on Philadelphia's vote gap than turnout. The longer tail in the top facet means that many divisions have high scores along this dimension. This is largely because turnout doesn't vary much between divisions--a division that represents 1% of the city's votes will do so in most elections. The total votes for the city as a whole fluctuates dramatically, but divisions' share within a given year doesn't.
I expect this result to reverse when we zoom out to the state level; relative turnout variability is likely much higher between the city and the rest of the state than it is within the city.
Where Turnout Matters
Turnout will matter in divisions where the percentage of voters varies from year to year, and where voter preferences are overwhelmingly Democratic or Republican. The map below colors divisions by the turnout component score, with the hue representing whether Republicans or Democrats benefit from an increase in turnout. The Northeast and Manayunk have low scores--they are too split between parties for turnout to help one party more than another. West Philly also has surprisingly low scores: turnout there is simply too stable for turnout efforts to have an effect (except for in University City). Interestingly, the predominately-Hispanic section of North Philly has very high scores: voters turn out for Presidential elections and not for other elections, and they vote overwhelmingly Democratic.
Where Persuasion Matters
Persuasion campaigns will have an impact in divisions where the party preferences vary from election to election, and where turnout is always high. The map below colors divisions by their party preference score. The Northeast, Manayunk, and Port Richmond now light up: these are all neighborhoods where people vote at high rates, and swing between Democrats and Republicans. North Philly and West Philly are simply too consistent in party preferences--Democrats win with 99% of the vote--for convincing to matter.
What does this mean for the state?
Our most important upcoming election is the 2018 race for Governor. In a future post, I will replicate this analysis at the state level. What counties can be persuaded? What counties need to be mobilized? I expect that the state results could be very different than for within Philadelphia. Stay tuned!
 Of course, strategies for convincing and strategies for turnout are not so separable. There are probably a lot of campaign actions that achieve both.
Appendix: The Decomposition
First, I'll motivate demographers' common decomposition in the case of only two years, then I'll expand it to a multi-year version. (Apologies for the hideous math, I haven't been able to figure out how to typeset math in this blog yet.)
Suppose we have a value G that is the product of two numbers, P and T. In the current case, G is the citywide vote gap between Democrats and Republicans, defined as the total votes for Democrats minus the total votes for Republicans. P is the percentage gap between Democrats and Republicans, and T is the total turnout in votes. Notice that
G = P * T
Consider the case where we observe these values in two time periods, 0 and 1. We are interested in what caused the gap G to change between year 0 and year 1. It could be changes in the percentage P (call this persuasion) or changes in turnout T (call this mobilization). That is, we are interested in G_1 – G_0. We can write
G_1 – G_0 = (P_1 * T_1) – (P_0 * T_0)
A little bit of algebra can show that:
G_1 – G_0 = (P_1 – P_0) * Avg(T) + (T_1 – T_0) * Avg(P)
These two addends are our components. The first addend can be interpreted as the change in the vote gap due to the changes in the proportion voting for the Democrat, scaled by the average number of voters. The second is the change in the gap due to changes in the total people voting, scaled by the average party preference.
A simple picture helps build intuition for this decomposition. Below, we are interested in the difference of the areas of the two rectangles, G_1 and G_0. Notice that the area of each can be written as base times height, or P * T. The area from G_0 to G_1 changes both because P changes and T changes. But how much of the change was due to P, and how much due to T?
One way to decompose the area is to draw the diagonal between the top right corners. The total difference between G_1 and G_0 is then the sum of the areas of the two trapezoids.
Remembering the 8th grade formula for the area of a trapezoid (area = height * avg(base lengths)) gives us the decomposition from above. Notice that the trapezoid on the right is the first component, and the trapezoid on the top is the second.
We aren't limited to doing this for only the city as a whole. We can calculate this decomposition for each division. The total gap in the city is the sum of the gaps in each precinct. The total state gap is given by summing over each precinct i:
G_1 – G_0 = SUM(G_i1 – G_i0)
= SUM(P_i1 * T_i1 – P_i0 * T _i0)
= SUM( (P_i1 – P_i0) * Avg(T_i) + (T_i1 – T_i0) * Avg(P_i) )
= SUM( Preference_Component_i + Turnout_Component_i)
We can thus calculate each precinct’s two scores, and then the total change in the city-wide gap between year 0 and year 1 as the sum of both scores for all precincts.
Thus far we've only been using two years. However, we want to be able to incorporate all of the elections at once.
The absolute value of the first term can be written as
|(P_i1 – P_i0) * Avg(T_i)| = (|(P_i1 – Avg(P_i)| + |(P_i0 – Avg(P_i)|) * Avg(T_i),
(this relies on the fact that Avg(P_i) is between P_i0 and P_i1). This may look complicated, but it has a nice interpretation: it is the size of typical deviation of P_i from its average value, scaled by the average turnout.
We similarly write
|(T_i1 – T_i0)| * Avg(P_i) = (|(T_i1 – Avg(T_i)| + |(T_i0 – Avg(T_i)|) * Avg(P_i)
Where I’ve left P_i outside of the absolute value so the sign captures partisanship: positive values represent a Democratic gap, negative a Republican gap (signs are arbitrary).
This inspires a multi-year version of the decomposition:
Decomposed Variability = Avg(|P_ij – Avg(P_i)|) * Avg(T_i) + Avg(|T_ij – Avg(T_i)|) * Avg(P_i)
= Preference Variability Component + Turnout Variability Component
Notice that the last term does not use the absolute value on P_i. This means that it will have the sign of the typical partisan gap, and thus the last term is capable of showing which party an increase in turnout will help.
(Statsy readers: Avg(|P_ij – Avg(P_i)|) is like a linear version of the variance).
This allows us to score a county i based on whether its percent-Democrat varies more, or its turnout. It’s no longer an accounting identity, but it does simplify to the accounting identity above when you only consider two years.
We could be done here, but to really compare across years, I divide a precinct’s vote total by that year’s City vote total, T_j. This means that the left hand side can be interpreted as the percentage gap between Democrats and Republicans, rather than a raw vote count. For example, if the Republican won 52% to 48%, the gap would be 4 percentage points.
Decomposed Pct Gap = Avg(|P_ij – Avg(P_i)|) * Avg(T_ij / T_j) + Avg(|T_ij/T_j – Avg(T_ij/T_j)|) * Avg(P_i)