Midterm math: How Bloomington city council votes cluster after two years

At the midpoint of Bloomington city council’s four-year term, enough roll call votes exist to analyze voting patterns. Using a purely statistical method applied to 67 split votes, The B Square finds some clear two-member blocs.

Midterm math: How Bloomington city council votes cluster after two years
Each red ball corresponds to a Bloomington city councilmember. They are hung on the tree based on their voting patterns in the first two years of office. Analysis and illustration by The B Square.

Elected officials in the city of Bloomington are now midway through their four-year terms. For city councilmembers, it means that about half their votes are now on the books.

Close observers of the council will have some sense of which councilmembers tend to vote together. In the lead art for this piece, the nine red ornaments on the Christmas tree—one red ball for each councilmember—are labeled with letters, so that readers who follow the council closely can test their own perceptions against the numbers that The B Square has crunched for the first two years. [Spoiler alert: A plot labeled with the initials of councilmembers is included below.]

The ornaments for councilmembers are arranged on the tree based on how similar their voting patterns have been computed to be. If A and H are hanging closer to each other than to any other councilmember, it indicates that their voting records are more similar to each other than to anyone else’s. Conversely, if A and D are hanging far apart on the tree, it reflects a relatively low degree of similarity in their voting patterns.

The B Square’s records include 364 roll call votes for the current councilmembers. (That figure does not include the votes for Shruti Rana, who was replaced by Courtney Daily, after Rana resigned early in her term.)

To analyze voting patterns, the approach taken here is purely statistical. That is, the technique does not involve the content of the votes in any way, or measurements along a general political spectrum like conservative or liberal. There’s not a x-axis or a y-axis that means anything other than geometric distance.

The idea is to consider each councilmember’s voting record as a mathematical object—a list of ones, negative ones, and zeros. That’s a vector. And the distance between vectors is straightforward to compute. Because the analysis is blind to the content of the votes, it might be considered completely objective. It’s just a mathematical computation. That can be viewed as a strength.

At the same time it is a weakness, because even while the result tells you something about a statistical pattern of votes, but gives no insight into why the patterns look the way they do. But it’s at least a place to start.

A yes is assigned a “1”; a no a “-1” and non-participation a “0”. Non-participation due to absence or abstention are both assigned a “0.” The distance between those mathematical objects, a kind of voting vector, is computed for each pair of councilmembers.

But having a list of distances between every pair of councilmembers is not especially useful for understanding the big picture. In the same way, having a list of distances between every pair of nine cities would not be useful as a navigational tool. What’s needed is a way to convert those pairs of distances into a map—a two-dimensional plot with nine cities located on it.

A statistical technique called Multidimensional Scaling is a way to transform the distance pairs into a map. That’s the technique that was used to generate the plots for the analysis presented here.

One caveat: From the pile of roll call votes, just the truly “split” votes were fed into the analysis. There were 67 such votes. An example of the kind of vote that was excluded is one where some councilmembers were absent, but everyone who was present voted the same way. If that vote were included, then the councilmembers who were absent would be analyzed as farther away from the others, even though there might be no reason to think that their actual view on the matter was different.

The previous edition of the council could be characterized as divided into two factions. But the current edition features distinguishable two-member blocs.

Here’s the labeled plot:

Multidimensional Scaling Plot based by The B Square just on the “split votes” of the Bloomington city council from Jan. 1, 2024 through Dec. 31, 2025. KR=Kate Rosenbarger; MF=Matt Flaherty; HS=Hopi Stosberg; IPS=Isabelle Piedmont-Smith; SZ=Sydney Zulich; IA=Isak Asare; CD=Courtney Daily; DR=Dave Rollo; AR=Andy Ruff.

Two-member bloc: Ruff, Rollo

Andy Ruff and Dave Rollo are one clear two-member bloc. They’re the two longest serving and oldest members of the current council.

It’s probably occasions when Ruff and Rollo voted the same way, but all the other councilmembers who were present voted the opposite way, that lodge most firmly in an observer’s mind. The B Square identified 10 such votes. Making Rollo and Ruff more memorable as a bloc is the fact that the 10 votes were distributed over a total of just five different meetings. Four of the votes when Ruff and Rollo voted as a two-person island came at the same meeting, on May 15, 2024.

The topics where Ruff and Rollo tend to be at odds with the rest of the council include development and land use, as well as traffic issues.

Two-person island votes: Andy Ruff, Dave Rollo

Nov. 19, 2025 — No
Passed: Ord. 2025-41 (UDO change to add SROs)

Nov. 19, 2025 — Yes
Failed: Am. 02 to Ord. 2025-41 (SRO occupancy limit)

Feb. 5, 2025 — No
Passed: Motion to introduce and read Ord. 2025-04 (combining commissions into traffic commission)

Feb. 5, 2025 — No
Passed: Motion to adopt Ord. 2025-04 (establish traffic commission)

Dec. 11, 2024 — No
Passed: Motion to table Am. 02 to Ord. 2024-26 (elected-official salaries)

Nov. 20, 2024 — No
Passed: Ord. 2024-24 (GO bond issuance)

May 15, 2024 — No
Passed: Ord. 2024-07 (Summit District PUD)

May 15, 2024 — No
Passed: Call the question on Ord. 2024-07 (Summit District PUD)

May 15, 2024 — Yes
Failed: Motion to postpone Ord. 2024-07 (Summit District PUD) to June 5

May 15, 2024 — No
Passed: Motion to postpone indefinitely Ord. 2024-11 (stop intersections on 7th Street)

Two-member bloc: Flaherty, Rosenbarger

The brother-in-law and sister-in-law pair of Matt Flaherty and Kate Rosenbarger have now completed six years of service on the council.

In the first two years of their second term, they six times voted together on items when everyone else voted the opposite way. Topics that tend to separate Rosenbarger and Flaherty from the rest of the council include the convention center expansion (seen in votes related to the Monroe County CIB), and general opposition to Bloomington mayor Kerry Thomson.

Two-person island votes: Flaherty and Rosenbarger

Nov. 19, 2025 — No
Passed: Motion to approve Ord. 2025-45 (elected-official salaries)

Oct. 8, 2025 — No
Passed: Appropriation Ord. 2025-11 (basic budget)

Jan. 22, 2025 — No
Passed: Motion to approve Res. 2025-01 (need for convention center)

Jan. 22, 2025 — No
Passed: Motion to appoint Doug Bruce to seat C-1 on the CIB

Sept. 4, 2024 — No
Passed: Motion to pass Res. 2024-17 (request FABTAC approval for CIB budget expenditures)

Apr. 10, 2024 — No
Passed: Motion to approve Res. 2024-10 (2024 CIB budget)

Other groupings?

Based on the plot, another candidate for a two-member bloc is the pair of Isabel Piedmont-Smith and Hopi Stosberg. But The B Square was not able to identify any instances of votes where they voted the same and everyone else voted the opposite. Still, of the council’s 67 split votes, Piedmont-Smith and Stosberg voted the same on 55 of them.

Based on the plot, two other councilmembers, Isak Asare and Courtney Daily, are not easily grouped with any of the three two-member blocs. The final councilmember, Sydney Zulich, might be analyzed with Piedmont-Smith and Stosberg as a three-member bloc. But in terms of voting patterns, Zulich is not as closely aligned with either Piedmont-Smith or Stosberg as Piedmont-Smith and Stosberg are with each other.

Bloomington city council split votes: 2024, 2025

DATE
MF
SZ
DR
AR
IPS
HS
IA
KR
CD
Topic >>>>
2025-12-17
Y
Y
Y
N
Y
Y
Y
Y
N
Passed: Ordinance 2025-46 zoning of parcel that was annexed
2025-12-17
Y
Y
N
N
Y
Y
Y
Y
N
Passed: Ordinance 2025-43 annexing one parcel real estate
2025-12-17
N
Y
Y
Y
Y
N
Y
N
Y
Passed: Ordinance 2025-47 Title 8 Historic Preservation. Ivan Adams House on 12th Street
2025-12-17
N
Y
Y
Y
N
N
Y
Y
Y
Passed: Am 04 to Ord 2025-20 (non-consensual towing) addes the possibility of adding an administrative fee of $25.
2025-12-17
Y
Y
Y
Y
Y
N
Y
Y
Y
Passed: Motion to approve Ord 2025-19 as amended
2025-12-17
N
Y
Y
Y
N
N
Y
N
Y
Passed: Am 05 Ord 2025-19 (initiated towing) adds ability to add a $25 administrative fee.
2025-12-03
Y
A
N
Y
Y
Y
N
A
Y
Failed: Ordinance 2025-20 (non consensual towing) founders on the 2/3 majority after 10:30 p.m. rule
2025-12-03
Y
A
Y
Y
Y
Y
N
A
Y
Passed: Ordinace 2025-19 (city initiated towing) changes 12-hours back to 24 hours before storage fees accrue; eliminates $75 fee
2025-12-03
Y
A
N
Y
N
Y
Y
A
Y
Passed: Am 01 Ord 2025-44 (septic hauling) numbering, eliminate surcharge
2025-11-19
Y
Y
N
N
Y
Y
Y
Y
Y
Passed: Ord 2025-41 UDO change to add SRO
2025-11-19
N
N
Y
Y
N
A
N
N
N
Failed:Am 02 Ord 2025-41 UDO change for SRO housing (changes occupancy from 2 occupants to 1)
2025-11-19
N
Y
Y
Y
Y
A
Y
N
Y
Passed: Motion to approve Ord 2025-45 (set elected official salaries)
2025-11-05
N
A
N
N
Y
N
N
N
N
Failed: Ord 2025-32 (commercial agriculture)
2025-11-05
Y
A
Y
Y
Y
N
Y
Y
Y
Passed: Motion to postpone indefinitely Res 2025-18 name area Stadium District
2025-10-22
Y
A
Y
Y
Y
Y
Y
N
Y
Passed: Motion to postpone Ord 2025-32 to Nov. 5
2025-10-22
Y
A
N
Y
Y
Y
N
N
Y
Passed: Motion to approve Am 01 on Ord 2025-32 Urban agriculture
2025-10-08
N
Y
Y
Y
Y
Y
Y
N
Y
Passed: Appropriation Ordinance 2025-11 (basic budget)
2025-09-30
A
N
Y
A
N
Y
Y
A
Y
Failed: Introduce Ordinance 2025-36 An Ordinance Authorizing the Acquisition, Construction and Installation by The City of Bloomington, Indiana, of Certain Extensions and Improvements to the City’s Waterworks Utility,
2025-09-17
Y
Y
Y
Y
Y
Y
Y
N
Y
Passed: Res 2025-16 request for FABTAC to review request of CIB
2025-07-30
N
Y
A
N
Y
Y
N
N
N
Failed: Motion to postpone decision on tax abatement
2025-07-30
N
Y
A
N
Y
Y
Y
N
Y
Passed: Appropriation Ordinance 2025-07 (adjustments due to salary)
2025-05-07
N
A
Y
Y
Y
Y
Y
Y
Y
Passed: Ordinance 2025-16 vacate an alley in Trades District
2025-03-26
Fl
Fl
Ru
Ru
Fl
Fl
Ru
Fl
Ru
Passed: Flaherty
2025-03-12
Y
A
N
N
Y
Y
N
Y
N
Failed: Motion to introduce Res 2025-06
2025-03-12
Y
A
N
N
Y
Y
N
Y
N
Failed: Motion to introduce Res 2025-05
2025-03-12
Y
A
N
N
Y
Y
N
Y
Y
Failed: Motion to suspend the rules and adopt procedure for debate
2025-02-19
A
Y
N
N
N
N
Y
N
Y
Failed: Motion to adopt Am 02 Ordinance 2025-05
2025-02-05
Y
Y
N
N
Y
Y
Y
Y
Y
Passed: Motion to adopt Ordinance 2025-04 (combination of three commissions into traffic commission)
2025-02-05
Y
Y
N
N
Y
Y
Y
Y
Y
Passed: Motion to introduce and read Ordinance 2025-04 by title and synopsis only (combination of three other commissions into the traffic commission)
2025-02-05
N
Y
N
Y
Y
N
Y
N
Y
Passed: Motion to approve Ordinance 2025-01 (Curry PUD payment in lieu of affordable housing.
2025-02-05
N
Y
N
N
N
N
Y
Y
N
Failed: Motion to amend the agenda
2025-01-22
N
Y
Y
Y
Y
Y
Y
N
Y
Passed: Motion to approve Resolution 2025-01 (need for convention center)
2025-01-22
N
Y
Y
Y
Y
Y
Y
N
Y
Passed: Motion to appoint Doug Bruce to seat C-1 on the capital improvement board (CIB)
2024-12-11
N
Y
Y
Y
N
Y
N
N
Y
Passed: Motion to postpone indefinitely Ord 2024-27
2024-12-11
Y
Y
Y
N
Y
Y
Y
Y
Y
Passed: Am 02 Ord 2024-27 (combine 3 commissions into 1 traffic commission)
2024-12-11
A
Y
Y
Y
Y
Y
N
Y
Y
Passed: Ord 2024-26 (set salaries for elected officials)
2024-12-11
Y
Y
Y
Y
Y
N
Y
Y
Y
Passed: Motion to pass Am 02 Ord 2024-26
2024-12-11
Y
N
N
N
Y
Y
N
Y
N
Failed: Motion to pass Am 01 Ord 2024-26
2024-12-11
Y
Y
Y
Y
Y
Y
N
N
Y
Passed: Motion to take Am 01 from the table Ord 2024-26
2024-12-11
Y
Y
N
N
Y
Y
Y
Y
Y
Passed: Motion to table Am 02 Ord 2024-26 (fix salaries for elected officials) from Rollo
2024-12-11
Y
Y
Y
N
Y
Y
Y
Y
Y
Passed: Motion to table: Am 01 to Ord 2024-26 (fix salaries for elected officials) from Flaherty
2024-12-03
Y
Y
N
Y
Y
Y
Y
Y
A
Passed: Motion to introduce Res 2024-20 (SS4A action plan) by title and synopsis only
2024-11-20
Y
Y
N
N
Y
Y
Y
Y
Y
Passed: Motion to approve Ord 2024-24 (GO bond issuance)
2024-10-30
Y
Y
N
A
N
N
N
Y
Y
Failed: Am 01 Ord 2024-22 (clerk's staff salary adds certification)
2024-10-09
Y
N
Y
N
Y
Y
Y
Y
Y
Passed: Motion to structure debate on taxpayer petition objecting to budget (Joe Davis)
2024-10-01
Y
Y
A
N
Y
Y
Y
N
N
Failed: Suspend the rules to allow for Green Acres comment during the general time
2024-09-18
A
Y
N
Y
Y
Y
Y
Y
Y
Passed: Motion to approve App Ord 2024-04 (debris removal)
2024-09-18
A
Y
Y
Y
N
N
N
N
N
Failed: Motion to postpone App Ord 2024-04 (debris removal)
2024-09-18
A
Y
Y
Y
Y
Y
N
Y
Y
Passed: Motion to postpone App Ord 2024-03 public works position
2024-09-04
N
Y
Y
A
Y
Y
Y
N
Y
Passed: Motion to pass Res 2024-17
2024-06-18
Y
N
N
N
Y
Y
Y
Y
N
Passed: Ord 2024-16 (limit council speaking time)
2024-06-18
Y
Y
N
N
Y
Y
N
Y
Y
Passed: Am 01 increase from 3 minutes to 5 minutes
2024-05-15
Y
Y
N
N
Y
Y
Y
Y
Y
Passed: Ord 2024-07 (Summit District)
2024-05-15
Y
Y
N
N
Y
Y
Y
Y
Y
Passed: Call the question for Ord 2024-07 (Summit District PUD)
2024-05-15
N
N
Y
Y
N
N
N
N
N
Failed: Motion to postpone Ord 2024-07 to June 5 meeting
2024-05-15
Y
Y
N
Y
Y
Y
Y
Y
Y
Passed: Reasonable Condition #10 Ord 2024-07 (home ownership options)
2024-05-15
Y
Y
N
N
Y
Y
Y
Y
Y
Passed: Motion to postpone indefinitely Ord 2024 (stop intersections on 7th Street)
2024-05-08
Y
Y
Y
Y
Y
Y
Y
Y
Passed: Am 01 Ord 2024-8 (stormwater ordinance) typos
2024-04-17
A
Y
Y
Y
Y
Y
Y
Y
Passed: Res 2024-04
2024-04-10
N
Y
Y
A
Y
Y
Y
N
Y
Passed: Motion to approve Res 2024-10 (2024 budget for CIB)
2024-04-03
Y
Y
Y
N
Y
Y
N
Y
Y
Passed: Motion to allow 1 minute
2024-04-03
N
N
Y
Y
N
N
N
N
Y
Failed: Motion to allow 2 minutes for remaining 17 speakers
2024-04-03
Y
Y
N
N
Y
Y
N
Y
N
Failed: Motion to end public comment, move to council comment and limit 2 minutes.P
2024-03-28
Y
Y
Y
Y
Y
N
N
Y
Y
Passed: Motion to move budget advance meeting from April 25 to April 24
2024-03-27
Y
Y
Y
Y
Y
Passed: Res 2024-04 (anti-LEAP pipeline)
2024-03-27
N
N
Y
Y
N
N
N
N
Y
Failed: Ord 2024-02 (Lower Cascades historic presentation)
2024-03-06
Y
Y
Y
Y
Y
Y
N
Y
Y
Passed: Motion to postpone until March 27 Res 2024-04 (opposing LEAP)