How is your Chicago City Council member voting?
Find your alder by ward or address, see how they voted on key ordinances and why each vote mattered, and compare how the whole Council voted, by issue area.
Read the full summary
Alderpersons, by ward
- Ward 1 — Daniel La Spata
- Ward 2 — Brian Hopkins
- Ward 3 — Pat Dowell
- Ward 4 — Lamont Robinson
- Ward 5 — Desmon C Yancy
- Ward 6 — William E Hall
- Ward 7 — Gregory I Mitchell
- Ward 8 — Michelle A Harris
- Ward 9 — Anthony A Beale
- Ward 10 — Peter Chico
- Ward 11 — Nicole Lee
- Ward 12 — Julia M Ramirez
- Ward 13 — Marty Quinn
- Ward 14 — Jeylu B Gutierrez
- Ward 15 — Raymond A Lopez
- Ward 16 — Stephanie D Coleman
- Ward 17 — David H Moore
- Ward 18 — Derrick G Curtis
- Ward 19 — Matthew J O Shea
- Ward 20 — Jeanette B Taylor
- Ward 21 — Ronnie L Mosley
- Ward 22 — Michael D Rodriguez
- Ward 23 — Silvana Tabares
- Ward 24 — Monique L Scott
- Ward 25 — Byron Sigcho Lopez
- Ward 26 — Jessica Jessie Fuentes
- Ward 27 — Walter Burnett III
- Ward 28 — Jason C Ervin
- Ward 29 — Chris Taliaferro
- Ward 30 — Ruth Cruz
- Ward 31 — Felix Cardona Jr
- Ward 32 — Scott Waguespack
- Ward 33 — Rossana Rodriguez Sanchez
- Ward 34 — Bill Conway
- Ward 35 — Anthony Quezada
- Ward 36 — Gilbert Gil Villegas
- Ward 37 — Emma M Mitts
- Ward 38 — Nicholas Sposato
- Ward 39 — Samantha Sam Nugent
- Ward 40 — Andre Vasquez
- Ward 41 — Anthony V Napolitano
- Ward 42 — Brendan Reilly
- Ward 43 — Timmy Knudsen
- Ward 44 — Bennett R Lawson
- Ward 45 — James Jim Gardiner
- Ward 46 — Angela Clay
- Ward 47 — Matt Martin
- Ward 48 — Leni Manaa Hoppenworth
- Ward 49 — Maria Hadden
- Ward 50 — Debra Silverstein
Key votes
Parking Meter Sale Approval
Parking Meter Deal · 2026
Adoption of the negotiated deal to approve the parking meter sale to Stonepeak Partners. A "yes" vote meant to approve the deal, and "no" vote meant to not approve the deal.
Debt Control
Debt · 2026
Increasing the threshold for the City Council to approve new debt and borrowing up to a three-fifths or 30-member margin from a simple 26-vote majority. A "yes" vote meant increasing the threshold to 30 members for new debt, a "no" vote meant allowing for a simple majority, 26-vote, similar to all other legislation. The mayor vetoed this after it passed in council.
Allowing VGT's (Virtual Gambling Terminals) from Bars & Restaurants
Gambling · 2026
This was an effort to ban virtual gambling machines within bars and restaurants – a "no" vote meant that they would be banned, and "yes" vote meant that they would be allowed.
Repeal of Phase-Out of Subminimum Wage
Worker's Rights · 2026
An effort to repeal the abolition of the subminimum wage of Chicago (originally implemented as a multi-year phaseout). Yes = Repeal/Freeze the phase-out of the subminimum wage, No = Continue phasing out the subminimum wage.
Passage of 2026 Budget
Budget · 2025
In its final state – there were two options present: Option A – selling ~$900M of resident debt to a third party for a revenue of ~$90M, or Option B – implementing a per person / per month tax on large companies with more than 500 employees working in Chicago, that was projected to raise at lease $90M. This was the vote for Option A – a "yes" vote meant accepting Option A, and "no" vote meant not accepting Option A.
Teen 'Snap' Curfew Ordinance
Policing · 2025
An ordinance championed by Ald. Brian Hopkins (2nd) in response to downtown 'teen takeovers,' letting the police superintendent declare a curfew anywhere in the city with 30 minutes' notice. The Council passed it 27-22 in June 2025, but Mayor Johnson vetoed it — his first veto — and the Council failed to override in July 2025. Yes = placing the power of the police to be able to creat a "snap curfew", which had constitutional challenges, No = maintaining the current ability for the police to enact curfews.
Creation of Green Social Housing Across Chicago
Increase Housing · 2025
An ordinance to create the infrastructure for the city to build and finance Green Social Housing across the city. Yes = create the infrastructure of a development corporation, No = do not create the infrastructrue for a development corporation.
Reject Applicants for City Employment Convicted of January 6 Riot Participation
Extremists · 2025
An ordinance to barre / reject applicants to city jobs that have been convicted of January 6 riot participation. A "yes" vote meant to barre those applicants, a "no" vote meant to not create this rule.
ShotSpotter / Gunshot Detection Contract
Increase Surveillance · 2024
A series of Council actions over the city's ShotSpotter (SoundThinking) gunshot-detection contract, which Mayor Johnson moved to cancel. The Council repeatedly pushed back, voting 34-14 in May 2024 and again in September 2024 to limit the mayor's ability to end the contract. Yes = Extend the contract with SoundThinking, No = End the contract with SoundThinking
Create a $1.5Bn Housing & Economic Development Bond
Increase Housing · 2024
The creation of the largest housing and economic development bond in the history of the city. Yes = create the $1.5Bn Housing & Economic Development Bond, No = do not create the $1.5Bn Housing & Economic Development Bond
Gaza Ceasefire Resolution
Anti-War · 2024
A non-binding resolution calling for a permanent ceasefire in the Israel-Hamas war in Gaza. Mayor Brandon Johnson cast a tie-breaking vote in favor in January 2024, making Chicago the largest U.S. city at the time to pass such a resolution. Yes = call for a permanent ceasefire, No = do not call for a ceasefire
Paid Leave & Paid Sick Leave Ordinance
Worker's Rights · 2023
An ordinance requiring most Chicago employers to give workers 10 paid days off a year — five sick days and five for any reason — among the most expansive municipal paid-leave laws in the nation. The Council passed it 36-12 in November 2023; implementation was later delayed to July 2024. Yes = require these paid leave policies, No = do not require these paid leave policies
Allowing for a Ballot Referendum on Bring Chicago Home
Housing · 2023
A measure to place a binding referendum on the March 2024 ballot asking voters to convert the city's flat real-estate transfer tax into a graduated tax, raising rates on property sales above $1 million to fund homelessness services. The Council voted 32-17 to put it on the ballot; voters narrowly rejected the referendum in March 2024. Yes = place this policy on the ballot for voters to decide, No = do not place this policy on the ballot for voters to decide
How this tool is built
What this tool does
This tool brings together two public records that usually sit far apart: how each of Chicago's 50 alderpersons votes on the contested (divided) measures that come before the Council, and who funds their campaigns. Our goal is to make both legible to any resident, side by side, without requiring a subscription, a FOIA request, or a background in campaign-finance law.
One principle shapes every design choice on this site, and we want to state it plainly before anything else:
Association is not causation. When this tool shows that a member voted a certain way and also received money from a particular industry or donor, it is showing two facts that are both true. It is not claiming that the money caused the vote. Campaign contributions, shared ideology, district interests, party, and constituent pressure all travel together and are difficult to disentangle. We present the patterns and let you draw your own conclusions; we deliberately avoid language that asserts a contribution “bought” a vote.
You will see this caveat repeated wherever money and votes are shown together. That repetition is intentional.
The voting record
Where the positions come from
Chicago's City Council does not record a per-member position on every item it passes. Most routine business — permits, honorifics, omnibus packages — passes by voice vote, with no individual record of who voted how. A member-by-member roll call exists only when a vote is divided (non-unanimous) and a roll call is taken.
This tool therefore records every divided roll-call vote of the current (2023–2027) Council term. The positions are the factual roll-call record as published by the Chicago City Clerk (through the Council's Legistar system) and accessed via DataMade's Councilmatic, which mirrors the Clerk's data in the Open Civic Data standard. We refresh from that source on a regular automated schedule, so newly recorded divided votes appear here as the City Clerk's data is updated. Members' tenure, party, and neighborhood details come from public records, including the Chicago City Council roster.
Seats that changed hands mid-term. A few wards changed representatives during the 2023–2027 term, and a ward's voting record reflects whoever held the seat at the time of each vote — we do not split it into a separate per-person record. In Ward 27, the record spans Walter Burnett Jr.'s tenure and continues under Walter Burnett III, who was appointed on September 25, 2025; in Ward 35 it spans Carlos Ramirez-Rosa's tenure and continues under Anthony Quezada, who was appointed on April 7, 2025. Wherever a ward's vote is shown, a vote cast before the appointment is marked with an asterisk and names the former alder, and every count still includes it.
Because only divided votes generate a per-member record, this is a complete record of the contested votes — not of all Council activity. We think that's the right scope for an accountability tool: unanimous, uncontested business reveals little about how a member weighs a hard choice, while divided votes are exactly where members had to take a side.
How positions are labeled
We report the factual roll-call position for each member on each vote. We do not reinterpret, translate, or re-code votes — the label is simply what the Clerk's record shows, normalized into four plain values:
- Yes — voted in favor of the measure as it appeared on the floor.
- No — voted against it.
- Present — was present but cast no Yes/No. This folds together present, not voting, and abstain.
- Absent — has no recorded vote. This folds together absent and excused.
That is the entire scheme. We do not restate a vote as “support” or “opposition” for a cause, and we do not reverse-code any vote. A “Yes” means the member voted yes on the measure on the floor — nothing more, nothing less. To understand what a Yes or No did in substance, read the plain-language description attached to each vote, which explains what the measure was.
Key votes
Within the full set of divided votes, some carry a key vote designation. A key vote is one that drew significant public attention — through community or advocacy pressure, sustained media coverage, or because it was novel or precedent-setting.
The key-vote label is an editorial judgment about prominence, not a different way of counting the vote. A key vote is recorded with the exact same factual Yes / No / Present / Absent positions as every other divided vote; it is simply surfaced more prominently, given a plain-language description, and grouped by topic so readers can quickly find the votes that drew the most attention.
The campaign-finance data
Source
All contribution data comes from campaign-finance disclosure reports filed with the Illinois State Board of Elections (SBE). These are the same public filings that candidates and committees are legally required to submit. We ingest the raw filings and attribute them to the relevant member's campaign committee.
The data shown covers contributions reported for all of the current council members. The tool also lets you switch between a current-cycle view and an all-time view.
What counts as a contribution shown here
We include itemized contributions as reported to the SBE. A few handling notes:
- Itemization follows the SBE record. Contribution data is pulled directly from Illinois State Board of Elections filings, and our itemization and disclosure boundaries follow the filings themselves — every contribution the SBE itemizes, we itemize and attribute to the named donor. (Donor-cluster roll-up totals — which stand in for a group of related records rather than a single identifiable donor — remain excluded from the donor-network and “Follow the money” relationship views.)
- Amounts and dates reflect what was reported in the filings. Filers occasionally amend, misreport, or duplicate entries; see Limitations below.
- This tool also excludes contributions with no usable date. Because their date is unknown, they cannot be placed in any cycle and are not shown in any view.
- Transfers from a candidate’s other committee. Some candidates move money into their campaign committee from another committee of their own, such as a fund for a state or federal office. We count it in the total raised and label it “From the candidate’s other committee.” It is not the candidate’s personal money, and it is not a contribution from an outside donor. We mark only committees we have confirmed belong to the same person.
- Small gifts. Illinois reports a donor’s gifts by name once they pass $150 in a reporting period. Smaller gifts are reported as one total for each report, with no donor named. We count that total in the total raised and show it as “Small gifts (unitemized),” never as a donor. Each report’s total belongs to the cycle its reporting period ends in.
- Loans. A loan to a committee is counted in the total raised, as the committee filed it, and the lender’s row says so. A loan is money the committee may have to pay back; it is not a gift.
- Other receipts. Committees also report money that is not a contribution, a transfer or a loan. The state’s form calls these “other receipts”: refunds, money from selling an asset or an investment, and similar amounts. We do not count them in the total raised or in any donor, industry or flag total. Each alder’s page states the amount on its own line and lists who paid it.
How we identify and group donors
Raw campaign-finance data is messy: the same union, firm, or person can appear under a dozen slightly different names. To make donor totals meaningful, we do careful, editor-reviewed entity resolution. We use exactly three operations, and the distinction between them is central to our integrity:
- Tagging — we attach an industry classification and editorial notes to a donor. This adds context; it changes no totals.
- Merging — used only when two records are genuinely the same filing recorded twice (a re-ingested report, a trailing space, an encoding artifact). In that narrow case we combine them into one record. This is the only operation that removes a record, and it is reserved for true duplicates.
- Rolling up — used to group an organization's related entities — for example, a union and its political action committee, or a company and its affiliated PAC — under a single parent for display. A rollup never deletes anything. Every underlying record stays in the data, individually traceable to its original SBE filing. The parent shows an aggregate total, and that total can always be expanded to the role-tagged breakdown of the members that compose it.
When we show that an organization “gave $X,” that figure is auditable, not asserted: you can open it and see the specific SBE-sourced records that sum to it, each labeled by its role (the organization itself, an affiliated PAC, a subsidiary, an alternate name, or a related entity). We chose this design precisely because it keeps the receipts.
Industry classifications
Donors are classified into industry categories (for example, real estate, labor, finance, healthcare) drawn from a controlled, published vocabulary maintained by our editors. Classifications are editorial judgments, applied by hand against a fixed vocabulary; reasonable people may disagree with a given call, and we welcome correction (see below).
Independent expenditures and who funds them
Not all political money flows directly to a candidate's campaign. A significant share is spent independently — by committees that support or oppose a candidate without coordinating with them. This tool surfaces that money too, and because it behaves differently from a direct contribution, we handle and label it with particular care.
What an independent expenditure is
An independent expenditure (IE) is money a committee spends to support or oppose a candidate without giving it to, or coordinating with, that candidate's campaign — a mailer, an ad buy, a field operation for or against someone. By law it is independent: the candidate need not know about it, approve it, or receive a cent of it. We draw IEs from the State Board of Elections' expenditure filings, counting only those the filer marked as supporting or opposing a specific candidate, and we match each one by candidate name (using ward to disambiguate) to the current 50 alderpersons, shown as support or opposition spending. Spending that named a former officeholder is out of scope, as pre-2011 contributions are. Because filers re-report the same expenditure across quarterly filings, we collapse exact duplicates so each is counted once.
IE spending for a member is not a contribution to that member. It means an outside committee spent money on that race — not that the member solicited, received, or controlled it. Because independent expenditures are by definition made without the candidate's involvement, any association between IE activity and a member's vote is even more attenuated than for a direct contribution. The association-is-not-causation principle applies here with extra force.
Who funds these committees
An independent-expenditure committee is itself funded by someone — and that funding is often the more revealing fact. So alongside the spending, we surface the money flowing into the IE committees: the donors and organizations that bankroll them. When a person or company puts large sums into a committee that then spends to support or oppose Council candidates, that link is exactly what this tool exists to make visible.
What we exclude: an organization funding its own committee
One category of money flowing into these committees is not outside money and not spending on a Council race — it is an organization moving its own money into its own political fund. The clearest example is a union transferring a portion of its members' dues into its own affiliated PAC. That transfer capitalizes the PAC; it is the organization filling its own account, not giving to a candidate or spending on an election. Counting these internal transfers as “giving” would badly overstate what an organization actually directed toward Council politics — in some cases by tens of millions of dollars. So we identify these dues-and-membership transfers (the filings label them as such) and exclude them from giving and spending totals.
We are deliberately narrow about this. We exclude only an organization's transfers into its own fund. Money from a genuine third party into an IE committee — a person or company funding a committee they do not control — is kept, because that is real outside money and exactly what should be shown. And consistent with everything else here, nothing is deleted. A dues transfer is reclassified, not removed: the underlying record stays in the data, individually traceable to its SBE filing and labeled for what it is. You can always see that the money exists and where it went — we have simply declined to count an organization's self-funding as political giving.
Finding your ward (address lookup)
The address lookup is best-effort. It uses U.S. Census geocoding to turn an address into coordinates and City of Chicago ward boundaries to map those coordinates to a ward. Geocoding can misplace some addresses, and ward boundaries change with redistricting. If a result looks wrong, verify your ward directly at chicago.gov. Nothing you type into the lookup is stored.
How the data is kept current
The tool reads from a single underlying dataset that is rebuilt and republished on a regular schedule — votes are refreshed nightly, and campaign-finance data is updated periodically as new SBE filings are processed. Divided votes are pulled fresh from the City Clerk's data each cycle, and editorial changes — key-vote designations, vote descriptions, donor classifications, corrections — are made in a reviewed editorial system and flow into the published data on that schedule. Because the dataset is rebuilt from the raw sources each time and our edits are re-applied on top, corrections are durable and the underlying records remain traceable.
Limitations
We think transparency about what this tool can't tell you is part of doing it honestly:
- It covers divided votes only. Unanimous and voice votes leave no per-member record, so they cannot be included. This is a complete record of the contested votes, not of all Council activity.
- Correlation only. Co-occurrence of a contribution and a vote is not evidence that one caused the other.
- Reported data inherits its source's errors. SBE filings can be late, amended, duplicated, or misreported by the filer; roll-call records can contain clerical errors. We correct what we catch, but we cannot guarantee the source was perfect.
- Entity resolution involves judgment. Deciding that two differently-named records are the same organization, or that a PAC should roll up under a parent, is an editorial call. We err toward keeping records distinct and traceable, but reasonable people may group them differently.
- Independent expenditures are matched and classified by hand. Tying an IE to the right current alder is a name-and-ward match against the filings, and deciding that a transfer into a committee is an organization's own self-funding (and so excluded from totals) is an editorial judgment against how the filing is labeled. We keep every underlying record traceable, but these calls are open to good-faith disagreement.
- Industry tags and key-vote designations are editorial. They reflect our classification and prominence judgments, applied by people, and are open to good-faith disagreement.
- Address lookup is approximate (see above).
- Timing. There is a lag between when a filing or vote occurs and when it appears here.
Corrections, additions, and bug reports
We are committed to keeping this data as accurate as possible, and we rely on readers to help. If you spot an error in the data or a visualization, have something to add, or hit a bug, use the button in the tool — it captures what you were viewing so we can act on it quickly. You can also email us directly at contact@i4pg.org; if you have a screenshot, sending it to that address (mentioning what you reported) helps us a great deal.
Every submission is reviewed.
Designed and constructed by Ishan Daya and the Institute for the Public Good.