Minneapolis wards

[raw shortcodes=1]

.mapcontainer { width: 50%; float: left; margin-bottom: 1em; }

h4 {clear: both;}

.chart { height: 650px; margin-bottom: 1em; }

@media screen and (max-width: 1040px) { .mapcontainer { width: 100%; } }

On Tuesday night, the results of three contentious ballot measures in Minneapolis became known: a measure to strengthen the mayor’s
office by vesting most executive power in it passed, a measure to replace the Minneapolis Police Department with a Department
of Public Safety failed, and a measure allowing the City Council to enact a rent control ordinance passed.

Those were the overall results. But looking at how Minneapolitans voted on a ward by ward basis reveals some interesting
geographic patterns about how the vote shook out.

Question 1: Strong mayor

Minneapolis’ Ward 13, an affluent area in the city’s southwest, usually has the city’s highest voter turnout, a distinction
it maintained in Tuesday’s election. Ward 13 also delivered a decisive margin in favor of strengthening the mayor’s office,
with more than twice as many voters supporting the question as opposing it. In other wards, support and opposition was more evenly
divided. Ward 7, on the west side of the city, including neighborhoods like Kenwood, Bryn Mawr and parts of downtown, also backed the question decisively. The wards delivering the
strongest margins against the question were Wards 1 in northeast and Ward 10 (the Uptown area), though the ward delivering the most
“no” votes was Ward 12, in the southeast corner of the city. (Still, “yes” votes outnumbered “no” votes there.)

Yes on strong mayor

No on strong mayor

Votes on strong mayor ballot question by ward

Question 2: Department of Public Safety

If Ward 13 strongly favored a strong mayor, it almost as strongly disfavored replacing the Minneapolis police department. The
margins there on question 2 were almost exactly the same as for question 1, except the opposite: more than twice as many
opposed the question as supported it. On this question, Ward 10 delivered the biggest margin in favor, but Ward 12 delivered
the most total votes in favor of any ward (but Ward 12 voters overall rejected the measure, delivering more votes to “no.”)
North Minneapolis Wards 4 and 5, an area where a large portion of the city’s Black residents live, both rejected the measure,
though overall turnout in those wards was relatively low compared to other wards in the city.

Yes on Department of Public Safety

No on Department of Public Safety

Votes on Department of Public Safety ballot question by ward

Rent control

Voting on the rent control measure didn’t correspond quite as neatly as the “yes on 1, no on 2″/”no on 1, yes on 2” votes
tended to. Perhaps not surprisingly, some of the biggest margins in favor of the rent control measure came in areas of the
city with high numbers of renters, including Wards 6, 9 and 10. This measure won a majority of votes in 10 of the city’s
13 wards — only wards 7, 11 and 13 rejected it (though again, due to high turnout especially in Ward 13, they provided a
large number of “no” votes overall.)

Yes on rent control

No on rent control

Votes on rent control ballot question by ward









//Q1

var votesq1yes = {“ward1”: 4950, “ward2”: 4043, “ward3”: 7333, “ward4”: 3419, “ward5”: 2658, “ward6”: 3207, “ward7”: 7816, “ward8”: 5251, “ward9”: 2516, “ward10”: 4577, “ward11”: 8204, “ward12”: 7981, “ward13”: 12082}; var votesq1no = {“ward1”: 6867, “ward2”: 5513, “ward3”: 6783, “ward4”: 3863, “ward5”: 2662, “ward6”: 2704, “ward7”: 4292, “ward8”: 5852, “ward9”: 4224, “ward10”: 6530, “ward11”: 5432, “ward12”: 7791, “ward13”: 4715}

$(function(){ $(‘#map-q1yes’).vectorMap({ map: ‘minneapolis-wards’, backgroundColor: ‘#ffffff’, zoomOnScroll: false, regionLabelStyle: { initial: { fill: ‘#404040’ } }, labels: { regions: { render: function(code){ return “W-” + code.split(“ward”)[1]; }, offsets: function(code){ return { ‘ward2’: [20,0], ‘ward6’: [0,-20], ‘ward7’: [-100, 10], ‘ward10’: [40, -50], ‘ward12’: [0, -50] }[code]; } } }, series: { regions: [{ values: votesq1yes, scale: [‘#ffffff’, ‘#0D57A0’], normalizeFunction: ‘linear’, min: 0, //max: 8000, legend: { title: “Total votes”, vertical: true, labelRender: function(v) { return MP.formatters.number(v,0); } }, }] }, onRegionTipShow: function(e, el, code){ el.html(“” + el.html() + “: ” + MP.formatters.number(votesq1yes[code],0) + ” votes”); } });

});

$(function(){ $(‘#map-q1no’).vectorMap({ map: ‘minneapolis-wards’, backgroundColor: ‘#ffffff’, zoomOnScroll: false, regionLabelStyle: { initial: { fill: ‘#404040’ } }, labels: { regions: { render: function(code){ return “W-” + code.split(“ward”)[1]; }, offsets: function(code){ return { ‘ward2’: [20,0], ‘ward6’: [0,-20], ‘ward7’: [-100, 10], ‘ward10’: [40, -50], ‘ward12’: [0, -50] }[code]; } } }, series: { regions: [{ values: votesq1no, scale: [‘#ffffff’, ‘#0D57A0’], normalizeFunction: ‘linear’, min: 0, max: 14000, legend: { title: “Total votes”, vertical: true, labelRender: function(v) { return MP.formatters.number(v,0); } }, }] }, onRegionTipShow: function(e, el, code){ el.html(“” + el.html() + “: ” + MP.formatters.number(votesq1no[code],0) + ” votes”); } });

});

MP.highcharts.makeChart(‘.chart-q1’, $.extend(true, {}, MP.highcharts.barOptions,{ xAxis: { categories: [“Ward 1”, “Ward 2”, “Ward 3”, “Ward 4”, “Ward 5”, “Ward 6”, “Ward 7”, “Ward 8”, “Ward 9”, “Ward 10”, “Ward 11”, “Ward 12”, “Ward 13”] }, yAxis: {title: {text: “Votes”}}, tooltip: { formatter: function() { return MP.formatters.number(this.y,0) + ” ballots”} }, series: [{ name: “Yes”, data: [4950, 4043, 7333, 3419, 2658, 3207, 7816, 5251, 2516, 4577, 8204, 7981, 12082] }, { name: “No”, data: [6867, 5513, 6783, 3863, 2662, 2704, 4292, 5852, 4224, 6530, 5432, 7791, 4715] }] }));

//Q2 var votesq2yes = {“ward1”: 6031, “ward2”: 5451, “ward3”: 6200, “ward4”: 2780, “ward5”: 2155, “ward6”: 2433, “ward7”: 4401, “ward8”: 5921, “ward9”: 4144, “ward10”: 6654, “ward11”: 4780, “ward12”: 7192, “ward13”: 4671}; var votesq2no = {“ward1”: 5973, “ward2”: 4228, “ward3”: 8108, “ward4”: 4633, “ward5”: 3306, “ward6”: 3667, “ward7”: 7860, “ward8”: 5308, “ward9”: 2720, “ward10”: 4603, “ward11”: 9010, “ward12”: 8791, “ward13”: 12299}

$(function(){ $(‘#map-q2yes’).vectorMap({ map: ‘minneapolis-wards’, backgroundColor: ‘#ffffff’, zoomOnScroll: false, regionLabelStyle: { initial: { fill: ‘#404040’ } }, labels: { regions: { render: function(code){ return “W-” + code.split(“ward”)[1]; }, offsets: function(code){ return { ‘ward2’: [20,0], ‘ward6’: [0,-20], ‘ward7’: [-100, 10], ‘ward10’: [40, -50], ‘ward12’: [0, -50] }[code]; } } }, series: { regions: [{ values: votesq2yes, scale: [‘#ffffff’, ‘#c83d2d’], normalizeFunction: ‘linear’, min: 0, max: 14000, legend: { title: “Total votes”, vertical: true, labelRender: function(v) { return MP.formatters.number(v,0); } }, }] }, onRegionTipShow: function(e, el, code){ el.html(“” + el.html() + “: ” + MP.formatters.number(votesq2yes[code],0) + ” votes”); } });

});

$(function(){ $(‘#map-q2no’).vectorMap({ map: ‘minneapolis-wards’, backgroundColor: ‘#ffffff’, zoomOnScroll: false, regionLabelStyle: { initial: { fill: ‘#404040’ } }, labels: { regions: { render: function(code){ return “W-” + code.split(“ward”)[1]; }, offsets: function(code){ return { ‘ward2’: [20,0], ‘ward6’: [0,-20], ‘ward7’: [-100, 10], ‘ward10’: [40, -50], ‘ward12’: [0, -50] }[code]; } } }, series: { regions: [{ values: votesq2no, scale: [‘#ffffff’, ‘#c83d2d’], normalizeFunction: ‘linear’, min: 0, //max: 14000, legend: { title: “Total votes”, vertical: true, labelRender: function(v) { return MP.formatters.number(v,0); } }, }] }, onRegionTipShow: function(e, el, code){ el.html(“” + el.html() + “: ” + MP.formatters.number(votesq2no[code],0) + ” votes”); } });

});

MP.highcharts.makeChart(‘.chart-q2’, $.extend(true, {}, MP.highcharts.barOptions,{ xAxis: { categories: [“Ward 1”, “Ward 2”, “Ward 3”, “Ward 4”, “Ward 5”, “Ward 6”, “Ward 7”, “Ward 8”, “Ward 9”, “Ward 10”, “Ward 11”, “Ward 12”, “Ward 13”] }, yAxis: {title: {text: “Votes”}}, tooltip: { formatter: function() { return MP.formatters.number(this.y,0) + ” ballots”} }, series: [{ name: “Yes”, color: “#c83d2d”, data: [6031, 5451, 6200, 2780, 2155, 2433, 4401, 5921, 4144, 6654, 4780, 7192, 4671] }, { name: “No”, color: “#f6cc00”, data: [5973, 4228, 8108, 4633, 3306, 3667, 7860, 5308, 2720, 4603, 9010, 8791, 12299] }] }));

//Q3 var votesq3yes = {“ward1”: 6772, “ward2”: 6203, “ward3”: 7229, “ward4”: 3731, “ward5”: 3196, “ward6”: 4628, “ward7”: 5159, “ward8”: 6815, “ward9”: 4827, “ward10”: 7264, “ward11”: 5796, “ward12”: 8281, “ward13”: 5697}; var votesq3no = {“ward1”: 5149, “ward2”: 3408, “ward3”: 6968, “ward4”: 3599, “ward5”: 2187, “ward6”: 1341, “ward7”: 6982, “ward8”: 4356, “ward9”: 1989, “ward10”: 3918, “ward11”: 7872, “ward12”: 7571, “ward13”: 11128}

$(function(){ $(‘#map-q3yes’).vectorMap({ map: ‘minneapolis-wards’, backgroundColor: ‘#ffffff’, zoomOnScroll: false, regionLabelStyle: { initial: { fill: ‘#404040’ } }, labels: { regions: { render: function(code){ return “W-” + code.split(“ward”)[1]; }, offsets: function(code){ return { ‘ward2’: [20,0], ‘ward6’: [0,-20], ‘ward7’: [-100, 10], ‘ward10’: [40, -50], ‘ward12’: [0, -50] }[code]; } } }, series: { regions: [{ values: votesq3yes, scale: [‘#ffffff’, ‘#00792a’], normalizeFunction: ‘linear’, min: 0, max: 14000, legend: { title: “Total votes”, vertical: true, labelRender: function(v) { return MP.formatters.number(v,0); } }, }] }, onRegionTipShow: function(e, el, code){ el.html(“” + el.html() + “: ” + MP.formatters.number(votesq3yes[code],0) + ” votes”); } });

});

$(function(){ $(‘#map-q3no’).vectorMap({ map: ‘minneapolis-wards’, backgroundColor: ‘#ffffff’, zoomOnScroll: false, regionLabelStyle: { initial: { fill: ‘#404040’ } }, labels: { regions: { render: function(code){ return “W-” + code.split(“ward”)[1]; }, offsets: function(code){ return { ‘ward2’: [20,0], ‘ward6’: [0,-20], ‘ward7’: [-100, 10], ‘ward10’: [40, -50], ‘ward12’: [0, -50] }[code]; } } }, series: { regions: [{ values: votesq3no, scale: [‘#ffffff’, ‘#00792a’], normalizeFunction: ‘linear’, min: 0, max: 14000, legend: { title: “Total votes”, vertical: true, labelRender: function(v) { return MP.formatters.number(v,0); } }, }] }, onRegionTipShow: function(e, el, code){ el.html(“” + el.html() + “: ” + MP.formatters.number(votesq3no[code],0) + ” votes”); } });

});

MP.highcharts.makeChart(‘.chart-q3’, $.extend(true, {}, MP.highcharts.barOptions,{ xAxis: { categories: [“Ward 1”, “Ward 2”, “Ward 3”, “Ward 4”, “Ward 5”, “Ward 6”, “Ward 7”, “Ward 8”, “Ward 9”, “Ward 10”, “Ward 11”, “Ward 12”, “Ward 13”] }, yAxis: {title: {text: “Votes”}}, tooltip: { formatter: function() { return MP.formatters.number(this.y,0) + ” ballots”} }, series: [{ name: “Yes”, color: “#00792a”, data: [6772, 6203, 7229, 3731, 3196, 4628, 5159, 6815, 4827, 7264, 5796, 8281, 5697] }, { name: “No”, color: “#775797”, data: [5149, 3408, 6968, 3599, 2187, 1341, 6982, 4356, 1989, 3918, 7872, 7571, 11128] }] }));

[/raw]

Join the Conversation

8 Comments

  1. re: Question 1

    The ugly politics of a strongarm executive in the vein of Trump, Orbán, and Bolsonaro reaches Minneapolis. It’s a shame: our legislative council wasn’t gridlocked and was quite good, on its own, at governing i.e. taking decisive policy action (even if one didn’t always agree with their policy choices). And the thirteen-party legislative council embodied the kind of collaborative deliberation and consensus-building most voters claim to want. Minneapolis didn’t need more executive authority, despite feeble arguments to the contrary.

    But boy oh boy, some people in affluent wards who think their votes should carry more weight than others sure wanted more of that sweet, sweet power they’ve always held in the citywide offices. Why content yourself with one or two representatives out of thirteen when you can instead take charge of the administration of whole city in a single office?

    I’d love to be wrong, but I predict that Minneapolis’ reactionary forces (the “it’s Lake Calhoun!!” “there’s a war on cars!!” crowd) just gained a lot of power

    1. Oh good grief on the strongman comparisons. And the council has been a dysfunctional clown show. This is great for Minneapolis.

    2. The maps pretty convincingly show that the whitest, wealthiest neighborhoods were most supportive of the strong mayor amendment. This is no surprise- the amendment unarguably (people will lie about this, not argue) shifts power from poorer, more diverse neighborhoods to wealthier, whiter ones. That was the plan.

  2. This is a terrific article on the charter amendments, easy to use to see how big the differences in votes were, and where. Thanks!

    I was glad to see that, finally, after long decades of trying, Minneapolis has voted to institute a strong-mayor (so to speak) system of governing.

    This is definitely not dictatorship or authoritarianism. It’s simply giving the mayor the authority and responsibility most people wrongly thought he or she already had, and letting the City Council continue to establish all the policies–I don’t know where people got the inaccurate idea that this new structure somehow removes legislative power from the Council! It’s a smart move, and my hope is that Jacob Frey gets to try it out in a second term.

    1. Question 1 does not remove legislative power from the Council. But it does remove significant executive power from the council, which they formerly possessed alongside the Mayor via the Executive Committee.

  3. Seems pretty obvious to me that what Minneapolis really needs to do is sell Ward 13 to Edina. One ward should not be able to stand in the way of progress for the entire city.

Leave a comment