On December 2nd, 2025, twenty-three Chicago alderpersons sent the mayor a letter with a spreadsheet attached.
The spreadsheet has two columns. The left is what they wanted: kill the head tax, make the full pension payment, pay the firefighters their back pay without borrowing. It totals $441,400,000. The right is how they proposed to pay for it. It also totals $441,400,000.
The last line reads: Left to Solve For — $0.00.
That’s a promise. It says we did not just object, we did the work, the money is there, the books close. I want to take it as seriously as they meant it, which means checking it — and the thing about a ledger is that it invites exactly that. You cannot publish a number and also ask that nobody add it up.
What sat on the other side of the zero was a tax Mayor Brandon Johnson’s office called a Community Safety Surcharge and everyone else called a head tax: $21.00 per employee per month, on employers with 100 or more full-time workers, at least half of them in Chicago. Budgeted at $100,000,000, and dedicated — not to the general fund, but to violence prevention, youth employment, survivor support, officer wellness. The City’s own budget book describes the reach: it applied “only to the largest 3% of businesses — those with 100 or more employees — ensuring that 97% of small and medium-sized employers are unaffected.” By December it had been narrowed again, to employers with 500 or more — fewer of them, at a higher rate of $33 per employee. The concession shrank the base and kept the target.
Then the Council struck it to zero, and the second column is what they put in its place.
Who pays instead
Their labels, not mine:
- Improved Debt Collections — $150,000,000. Unpaid tickets, fines, utility bills. In the ordinance that actually passed, this became authorization to sell city debt — “sufficient to generate not less than $89,600,000” — to a collection agency, by April 1st, 2026.
- Increase Garbage Fee to $18 w/ Exemption for Seniors — $55,000,000.
- Congestion Fee — $48,000,000.
- Liquor Tax @ 3% of Off Premise Sales — $24,000,000.
Against those, one line on that side of the ledger lands on business rather than households: Augmented Reality Advertising — $26,000,000.
Look at what those four have in common. Not one is a tax on income, profit, or property. They are fines, fees, and the sale of what residents already owe — revenue raised by enforcement instead of assessment. Johnson’s own transmittal named the mechanism when he refused it, rejecting “reliance on the sale of involuntary debt to third-party collectors whose aggressive and predatory practices disproportionately burden working families across the city.”
Here is what that debt is, taken from the City’s own budget book. In 2025 the Department of Finance ran a four-month parking-violation amnesty: pay the original fine in full and the penalties and costs come off. More than 100,000 motorists took it. They paid $15.7 million in fines and saved $16.4 million in penalties and costs — for the people who came forward, the surcharge for not paying on time had already grown larger than the ticket. And 100,000 is a floor, not a count. It includes only the ones who could produce the whole original fine inside a four-month window.
That is the well the Council voted to sell.
Who carries that debt has been measured. In February 2018, ProPublica Illinois matched a decade of Chicago ticket data — everything since 2007 — against Census figures, and found that eight of the ten ZIP codes with the most accumulated ticket debt per adult were majority Black. Those neighborhoods held 40 percent of the debt. They had received 22 percent of the tickets.
Read the two numbers together. The gap between them is the finding. It isn’t a claim about where tickets get written. It’s a claim about where a ticket stops being a fine and starts being a debt that follows you.
That analysis is eight years old, it sorts by ZIP code rather than by person, and ProPublica says so itself: the data is on tickets, not drivers — nobody knows the race of the people who got them. It is evidence of a standing pattern, not a measurement of this sale.
Johnson wrote working families, and I want to say who that is, because the phrase is built to slide past. It is the most sympathetic available way to name the people a policy is about to hurt, and it names them without naming them. The same budget book counts Chicago at 2,746,388 people — 28.8 percent Black, 29.0 percent Hispanic or Latino, per the Census Bureau as of 2024. But population share isn’t the argument. The split is: 40 percent of the debt on 22 percent of the tickets, and eight of those ten ZIP codes majority Black. Nobody in this city has ever needed a map to tell them which blocks the boot goes on. Working families means Black and brown families.
And the phrase did not save anybody. It was on the record, in the mayor’s own refusal, before the vote — and the vote happened. That is what a euphemism is for. Soft enough to say. Soft enough to ignore.
Read the garbage fee label again. With exemption for seniors. Nobody carves seniors out of a tax on corporations. The exemption is the incidence, written in their own hand — they knew precisely who would feel it, and they wrote protection for the most sympathetic group directly into the line item.
I could turn that into a percentage. I’m not going to. More than half that column sits in just two entries, and one of them — the one I haven’t gotten to yet — isn’t a tax on anyone at all. How you file that entry decides the answer before you start, and any split I published would rest on that call while looking like a fact. Their four labels are better evidence than a number I built myself.
Which brings me to the largest entry, the one that isn’t a tax at all: Additional EY Efficiencies — $90,600,000.
The attachment breaks it into fourteen items, each carrying a dollar range, and prints its own total: $63.7M - $90.6M. The lows sum to the first figure. The highs sum to the second.
The ledger books $90,600,000. The top. To the dollar.
Their notes on those same items say “labor negotiations are required” — that appears four times. Another says “This could take time.” On the medical claims audit: “it is not certain that assumed recovery rates will materialize.” Book the bottom of their own range instead and the package is short $26,900,000. Left to Solve For — $0.00 holds only if every uncertain thing pays out at its maximum, including the parts requiring the agreement of people who were not in the room.
And roughly half that money — $30.4 million against the low, $39.1 million against the high — comes from five items filed under Employee Benefits Efficiency. Verbatim: “Increase employee out-of-pocket maximums, copays, and offer High-Deductible plans.” “Increase employee premium contributions for PPO plans; remove salary caps to employee contributions… and introduce surcharges for working spouses and tobacco users.” Eliminate the HMO’s stop-loss coverage.
Relief went to every employer with 500 workers. A large share of the money paying for it comes out of the health plans of people who work for the City — and the City’s own budget book says about 89 percent of City employees have benefit plans established by collective bargaining agreement.
Working families. The entry that wasn’t a tax at all falls on the same people as all the rest of them. Not as debtors this time. As employees.
The reason they gave
None of which would matter much if the trade had bought what it was supposed to buy.
The letter is not coy about the goal. It opens on the credit rating — the January downgrade, the cost of borrowing, the warning that Chicago is “nearing junk level creditworthiness.” Their case was that a hiring tax was the wrong instrument at the wrong moment, and that the alternative was deterioration the city couldn’t afford.
That’s a real argument. It’s also a prediction, and predictions resolve.
On February 25th, 2026, Fitch downgraded Chicago’s issuer default rating and general obligation bonds to BBB+ from A−, outlook negative. The next day KBRA did the same. The Council’s own Office of Financial Analysis reported both.
Among Fitch’s stated reasons: “the still high dependence on non-structural solutions and assumptions underpinning the adopted 2026 budget.”
Non-structural solutions. Assumptions. That is the coalition’s own objection to the head tax, handed back to them, pointed at the budget they wrote instead — and “assumptions” is a fair description of booking the top of a range whose own footnotes say labor negotiations are required.
Fitch also cited “ongoing disagreements between the administration and the city council.” A disagreement takes two, so that one isn’t theirs alone. The clean finding is the first: they traded the head tax away to avoid a downgrade, and the replacement was downgraded for being the kind of revenue they said they were protecting the city from.
What it moved
The head tax died in the 2026 Municipal Code Revenue Ordinance (Alternative), moved by Alderperson Pat Dowell, on December 19th, 2025, by 29 to 19. That is forty-eight of fifty: Vasquez asked the record to show a No he couldn’t cast remotely, and Coleman simply isn’t recorded — the Journal gives no reason. Twenty-two of the twenty-three signatories voted yes. None voted no. They were twenty-two of the twenty-nine votes that carried it — take them out and the measure has seven.
The next day the ordinance carrying the debt sale passed 29 to 20, and not with the same twenty-nine. Yancy crossed off, Moore crossed on, Coleman appeared, Silverstein went unrecorded. A core of twenty held both, with movement at the edges — a coalition, not a cabal.
Which brings me to the part I want to be exact about, because there is a comfortable version of this argument and I’m not making it.
The comfortable version says structures do this. Nobody intended it. Harm at this scale is weather — it accumulates, it has no author, and the honest thing is to describe the mechanism and assign no blame. Structural analysis gets used that way constantly, and used that way it is an alibi.
Structures are made of choices. This one is made of choices I can date.
They knew the incidence. The senior exemption is knowledge, written in their own hand, sitting in the same column as the fee it protects against. And they were told the rest out loud. Johnson’s transmittal refused the debt sale over collectors’ “aggressive and predatory practices” — filed in the Journal, before the roll call. The next day they passed it 29 to 20.
Now the parts that cut the other way, because they’re real. One for the mayor, one for the coalition.
Johnson did not sign the budget. He also did not veto it, and he could have. In July 2025 the Council tried to override him on police curfew powers, put all fifty members on the roll, and failed at 28 to 22. The four budget ordinances — revenue, the appropriation text, the appropriation as amended, the management ordinance — carried 29, 30, 30 and 29, every one within a vote or two of the number that had already proven insufficient. A veto would very likely have held. What a held veto produces is the rest of the sentence: no appropriation ordinance, twelve days before the fiscal year began. Constrained choice. Not an endorsement, and not a free one.
And I’ll grant the coalition this much, because they argued it in advance and in writing: the letter says the Community Safety Fund was never new public safety money. $18 million of the $100 million funded a new “Community Business Grants” program they called a gimmick. The other $82 million was spending the Corporate Fund already carried, some of it replacing expiring federal pandemic money. Eighteen and eighty-two — their two figures add to exactly $100 million. Their ledger says the surviving items go back where they were the year before. When the fund was zeroed, the City’s books show it struck on both sides at once, revenue and spending together. Whether the programming landed back in the Corporate Fund, I can’t yet tell you; I’ve read those ledgers and the answer isn’t in them. The same package also created a dedicated fund out of a new social media tax, zero to $31,000,000. They didn’t only take things away.
Then on February 19th a court ordered the City to forgive $98.3 million in parking ticket fines — out of the same well the $89,600,000 debt sale was drawing from. That it complicates what the sale was projected to bring in isn’t my read. It’s what the Council’s own Office of Financial Analysis wrote.
The ordinance said the sale had to close by April 1st. I read the Journals for March, April, May and June and found nothing about it either way — but a sale the Council has already authorized doesn’t have to come back to the Council, so that silence settles nothing.
Here is the number I keep returning to. The Council’s own analyst measured the total distance between the mayor’s proposal and the adopted budget: $258.4 million. One-point-six percent.
That’s the whole fight. A season of it, a mayor’s central revenue measure, twenty-three signatures, four roll calls — and the budget moved 1.6%.
Which is not the same as saying nothing happened. One-point-six percent measures size. It says nothing about who absorbed it. A budget can barely move in total and move completely in incidence, and that is what this one did — the number at the bottom held almost still while the question of who pays it changed hands. The fight was never about how much. It was about who.
Seven months later, the levers came back. In July the same Office of Financial Analysis published its FY2026 Mid-Year Report, and among the revenue options it put in front of the Council are a Congestion Fee Expansion and a Garbage Fee Increase — $55.38 million to $211.75 million. Two of the four household lines from that column, back on the table. The list also includes reinstating the grocery tax, which the budget book had boasted about avoiding.
And one more, at the top: an Administrative Hearings Amnesty Period, $8.70 million to $98.15 million. Waive the accumulated late fees, interest and penalties, if people pay the original fine.
Read that with December in your hand. The Council’s own analyst is now proposing, as a way to raise money, that the City forgive the penalties on the same debt the Council voted to sell to a collection agency. That four-month amnesty back at the top of this essay wasn’t an anomaly. It was a preview.
Here is why forgiveness works as revenue. COFA reports the City is owed roughly $3.27 billion in outstanding administrative hearing debt, accumulated since 1998. In the one set of records where it could see original fines next to balances — building-code hearings — it found a 13.3 percent fine-to-debt ratio, and used that as its conservative benchmark. Thirteen cents of every dollar owed is the thing somebody actually did. The rest is what happened to them for not paying it fast enough.
I can’t tell you what any of the twenty-three felt about Black Chicagoans, and I’m not going to pretend the roll call reveals it. Several signatories are Black. That changes nothing here, because the claim was never about the race of the people voting — it’s about who the city decided to bill, and Chicago has spent a century deciding that in a pattern nobody involved has to endorse for it to hold.
What the record shows is narrower than motive and harder to answer. They were told who would carry it. They voted for it anyway.
They balanced it to zero. They wrote the number down and signed their names under it. That ledger is the receipt.