On April 1, Mayor Tim Keller sent a $1.47 billion operating budget to the City Council. The framing was restraint: belts tightening, federal uncertainty, hard choices made with discipline. "We're making the necessary cuts without sacrificing services or public safety," he said.

I attended both the April 30 and May 7 Committee of the Whole hearings. I read the budget document. I put together a briefing for Council, handed it out at the May 7 hearing, and presented during public comment (transcript, 12:14). What I found is that the administration's story doesn't hold up when you read past the cover letter.

Before we get into the pieces: the General Fund — the part of the budget that pays for actual day-to-day operations — went up $5.9 million from last year. Total revenue went up $21.7 million. Bond ratings are the highest possible. Reserves are fully funded. The city is also covered by a federal preliminary injunction that in August 2025 blocked the Trump administration from cutting funds to Albuquerque over its immigrant-friendly policies.[1] Some of the "federal cuts" being cited as justification for this budget are actively contested in court and may never materialize.

So this isn't austerity. It's a set of deliberate choices about who absorbs reductions and who gets protected — wrapped in the language of austerity. Public safety grew. Every other department was told to find 7% cuts. Working-class residents picked up millions in new fees seven months after the Mayor promised a citywide freeze. And the office that investigates the administration received only $72,000 of a much larger budget request — enough for salary adjustments, and little else.

Those two things — who's paying and who's watching — are connected. The process failure is what makes the class transfer possible, year after year.


I. Starving the watchdog

Start here, because once you understand this piece, the rest of the budget reads differently.

The Office of the Inspector General is the city's independent oversight office. It investigates fraud, waste, and abuse. It doesn't report to the Mayor — it reports to the Accountability in Government Oversight Committee, a citizen body that recommends IG candidates to the City Council. That independence is the whole point. You can't investigate an administration that controls your budget.

Except, functionally, that's what's happening. OIG caseload nearly doubled in one year, hitting 427 cases in FY25, against a FY27 target of just 100 — less than a quarter of actual demand. The administration approved $72,000 in increases for the office, covering only salary adjustments. At the May 7 hearing, interim IG Peter Pacheco sat before the full Council with four staff and a $971,000 budget. (May 7 CoW, 5:21:34)

The administration's argument is that the previous IG's work was bad. In October 2025, CAO Samantha Sengel said publicly that "It's not clear that anyone can rely on the information or conclusions included in any IG report published in the past four years." An outside firm, REDW, had reviewed nine reports and raised quality concerns. The administration leaned into this hard, publicly discrediting four years of investigations.[2]

Maybe some of those investigations had real problems. That's worth examining. But the entity doing the discrediting — and then approving only minimal funding — is the same entity the investigations were about. That's not a quality control story. That's a structural conflict of interest, and no amount of narrative about professionalism changes the structure.

When the watchdog's budget is set by the people the watchdog is supposed to bite, you don't have a watchdog. You have a performance of one.

Councilor Rogers pressed interim IG Pacheco at the May 7 hearing on whether his recommendations are even being implemented after investigations close. There's no public tracking, Pacheco said. The office checks back internally every 45 days, but none of it is published. (May 7 CoW, 5:22:04) Four people, resourced at a quarter of demand, with no public accountability loop for whether anyone does anything with what they find.


II. Millions in new fees — seven months after the freeze

In August 2025, at his State of the City address, Mayor Keller announced a citywide fee freeze. "For everyone, literally everyone, we are freezing fees citywide," he said. The formal Affordable ABQ launch followed on September 8 — a "commitment to affordability, equity, and community resilience."[3] When councilors asked CAO Sengel what "freeze" actually meant a few days later, she was clear: "The intent of freezing means that we would not be increasing any fees or proposing any fee increases."[4]

The FY27 budget, submitted seven months after that, proposes significant new fee revenue.

The convenience center fee doubles — $5.25 to $10.50 per load, generating $4.5 million in additional revenue. Flat, regardless of income. The budget also assumes $4 million in storm water fee revenue that's been written in even though the enabling ordinance hasn't been passed by Council. When Councilor Lewis pressed the municipal development director on this at the May 7 hearing, the picture that emerged was not pretty: the ordinance had only been introduced the prior Monday, the detailed revenue breakdown didn't exist, and $4 million was already counted as if the votes were a done deal. (May 7 CoW, 1:44:26) I called it phantom revenue in my public comment and I'll stand by that. (May 7 CoW, 12:47)

Horizontal bar chart: $11.5 million in new fee revenue in the FY27 budget, broken into four categories, submitted seven months after a citywide fee freeze was announced.

$11.5M in new fee revenue — FY27 proposed budget
Source: City of Albuquerque FY27 Proposed Budget; April 30 & May 7, 2026 Committee of the Whole hearings
Flat fee (regressive) Contingent / pending ordinance
Convenience center fee doubling $4.5M; Storm water fees (no ordinance yet) $4.0M; Commercial solid waste 5% escalator $1.8M; Non-resident surcharges $1.2M.

What unites all of these fees is that they're flat. The convenience center doubling costs the same whether you're making $30,000 or $130,000. The storm water fee hits all property owners equally. The commercial solid waste escalator — a 5% annual increase that didn't even appear in the published fee schedule — hits small businesses. In a city where a significant share of residents are already cost-burdened, flat fees are a transfer, not a revenue-neutral policy.


III. 47.6% for public safety — growing while everything else cuts

APD gets $278.2 million in this budget, 31.8% of the General Fund. AFR gets $138.3 million, another 15.8%. Together: 47.6 cents of every General Fund dollar, and both departments grew from last year. Every other department was directed to absorb 7% cuts.

The vacancy story is where this becomes concrete. The administration eliminated 247 positions citywide because they were vacant — that was the mechanism for most of the cuts. APD has over 200 vacant sworn positions. They're budgeted for 1,100 officers, currently employing 917, with 363 deployed to field assignments.[5] Those vacancies were not eliminated. The rule that gutted positions in transit, animal welfare, libraries, open space, and senior affairs was not applied to APD. Councilor Lewis confirmed this on the record at the April 30 hearing. (April 30 CoW, 2:55:13)

Then there's the overtime. APD will spend $24 million in overtime in FY26 — confirmed on the record. (April 30 CoW, 2:56:54) AFR Fire Chief Jaramillo was asked at the same hearing whether overtime had become a structural part of the department's staffing model. Her answer: "I 100% agree with you that it is a structural piece of our budget." (April 30 CoW, 3:41:59) Between the two departments, that's $30 million a year in structural overtime — more than the entire Transit Department subsidy of $25.3 million.

One more item that didn't get much attention: while the budget adds 50 new Police Service Aides, it cuts a victim advocate position. Councilor Fiebelkorn read language from APD's own budget table on the record: "this change will adversely impact service delivery," with response times increasing as remaining advocates take on higher caseloads. She said the quiet part out loud: "We're adding 50 new police service aides — surely we could add 49 and have victims cared for as well." (April 30 CoW, 3:18:41) That's not a radical position. It's an obvious one.

Two charts showing FY27 General Fund winners and losers. Top: APD and AFR dollar budgets and percent change. Bottom: departments cut, showing dollar amount of reduction.

General Fund: who grew, who got cut — FY27 proposed
Source: City of Albuquerque FY27 Proposed Budget. APD + AFR = 47.6% of General Fund.
Grew — and got a pass on vacancy rule
APD $278.2M up 2%; AFR $138.3M up 4%.
Cut — directed to find 7% reductions
Community Events -$1.79M (-33%); Open Space -$1.3M (-19%); Transit capital transfer -$2.6M; Animal Welfare -$718K; Senior Affairs -$169K.

IV. The HHH headline conceals the gutting

The administration has been calling HHH a department that got a 10% budget increase, and that framing has made it into coverage. What the April 30 hearing put on the record is what those numbers actually contain.

Substance use programs: cut 76%. Mental health: cut 17%. Health and Human Services: cut 22%. These are not estimates — they come directly from the budget's own program summary table.[6] The headline increase is almost entirely driven by a bookkeeping move — $8 million in housing voucher funding shifted from City Support into HHH to "better align" the source. That's not new money for homeless services. And on top of that, $10.1 million in genuinely recurring operations — the AOT program, Gateway West, affordable housing vouchers — are classified as non-recurring in this budget, meaning they're budgeted as if they might not be needed next year.

Councilor Telles spent several minutes at the April 30 hearing pressing CFO Carla Martinez on why. The CFO's answer: "It's just the way it has been done. I can't speak to why that's done that way." (April 30 CoW, 5:52:08)

I keep coming back to that quote. The city's chief financial officer cannot explain why $10 million in programs that run every year, serving people every day, are budgeted as though they're temporary. She went on to say she personally thinks the AOT program should be funded through behavioral health tax dollars — a reasonable position — but that she couldn't speak for everyone else. The honest structural answer to "why is this done this way" is that classifying recurring costs as non-recurring makes the budget look more flexible than it is and the five-year deficit look smaller than it is. That's useful when you're trying to avoid hard conversations.

Meanwhile, the city spends $25.4 million on Gateway downstream shelter services and $667,000 on eviction prevention. Councilor Rogers named this ratio at the April 30 hearing: "What I'm noticing year over year in this budget is that we are prioritizing downstream services for folks after they're already homeless — which is way more expensive than preventing homelessness." (April 30 CoW, 5:17:05) At current Gateway per-person spending, the city could buy literally everyone it's sheltering a house. That's not a policy proposal — it's a way of understanding how badly the ratio has drifted from anything approaching cost-effective prevention.

Rogers made a related point on the record about ACS. When the question came up of why ACS isn't doing more on homelessness given its expanded budget, she was blunt: "ACS is not the homelessness department... if we want them to do that, we need to fund them at the level that we do the homelessness department." (April 30 CoW, 4:45:09 and 4:52:12) The administration is growing ACS's budget, cutting HHH's program-level funding, and leaving the gap between them for someone else to figure out.


V. The process failure that makes all of this possible

Every one of these problems — the OIG, the fees, the vacancy asymmetry, the non-recurring classifications — has a common root: you can't catch what you can't measure, and this city has made itself very hard to measure.

Councilor Telles raised this at the April 30 hearing in the first budget she'd seen as a new councilor. She was direct: "What I am seeing here is a list of intents. I see that you're capturing data, but then it stops there. And without outcomes, we can't be properly informed." (April 30 CoW, 2:44:53) Rogers jumped in immediately: "This is year three now. There's not a metric tied to the objectives... I just don't want to have to keep saying the same thing for three years." (April 30 CoW, 2:47:03) The CFO's response was to gently note that performance measures are "done in collaboration with city council staff" — essentially suggesting Council shares the blame for the metrics not existing.

Without outcome data, Council can't compare whether APD's $278 million produces more safety per dollar than ACS's $20 million. It can't tell whether Gateway's $25 million produces better housing outcomes than direct vouchers. It can't know whether the substance use cuts will show up as emergency costs somewhere downstream. All it can see is volume — calls handled, meals served, transports completed — and trust that the administration is making rational allocations.

This is the exact problem that Ordinance O-24-67 was designed to fix. Sponsored by Council Vice President Klarissa Peña, it passed 8-1 in December 2025, with Councilor Fiebelkorn casting the lone no vote.[7] It required the administration to provide vacancy data, salary breakdowns, and outcome metrics during budget development. Keller vetoed it. When the override came to a vote on January 5, only Vice-President Dan Champine moved to override — and every other councilor, including Peña herself, voted to sustain the veto. The override failed 1-8.[8]

This budget cycle has now demonstrated, with receipts, every transparency failure that ordinance was written to prevent. The OIG gets starved by the entity it oversees. Recurring operational costs are classified as non-recurring and the CFO can't explain why. A $4 million revenue line gets budgeted on fees that require an ordinance that hasn't passed. And after three years of councilors asking for outcome metrics, the answer is still: we're working on it.


What happens next

The May 14 markup is the last stop before the budget goes to full Council adoption on May 18. Nine specific amendments can be introduced at that hearing: restoring full OIG funding, reclassifying $10.1 million in HHH non-recurring items, fixing the library IT classification that has been non-recurring since FY18, restoring the victim advocate, redirecting $2 million toward eviction prevention, reversing the convenience center fee doubling, restoring the Transit capital transfer that would keep ABQ Ride Forward alive past Phase 2, adding contingency language on the storm water revenue, and requiring a solvency plan for the Senior Services fund, which is projected to go into deficit this year.

Each of those is achievable. Together they're about $15 million in structural corrections on an $817 million General Fund. Less than 2%.

The harder question is O-24-67. The council that voted 8-1 for it in December voted 1-8 to sustain the veto six weeks later. I'd genuinely like to hear from any of those seven who flipped why the transparency failures on display this spring — the non-recurring classification nobody can explain, the outcome metrics nobody's tracking after three years of asking, the phantom storm water revenue — don't rise to the level of concern that motivated their original yes vote.

What I saw across both hearings is that Rogers, Telles, Fiebelkorn, and Lewis are doing real work. They're asking the questions that force things onto the record. They're naming the asymmetries. They're catching the classification games. But scrutiny without consequence is theater. The question for May 14 is whether any of what got said in April and May is going to change a single line in the budget.


Sources

City of Albuquerque FY27 Proposed Budget (April 1, 2026); Albuquerque City Council Committee of the Whole hearing transcripts, April 30 and May 7, 2026; Albuquerque City Council Action Summary, January 5, 2026.

  1. Judge William Orrick extended the preliminary injunction to cover 34 cities and counties, including Albuquerque, on August 22, 2025. Source: Associated Press, Aug. 22, 2025; City Desk ABQ, Aug. 25, 2025.
  2. City of Albuquerque press release, "City Responds to Inadequate Inspector General Reports," Oct. 6, 2025.
  3. City of Albuquerque Mayor's Office, "Mayor Keller Launches Affordable ABQ," Sept. 8, 2025.
  4. CAO Samantha Sengel, Albuquerque City Council meeting, Sept. 3, 2025. Reported in City Desk ABQ, Oct. 14, 2025.
  5. City of Albuquerque FY27 Proposed Budget; confirmed on the record, April 30 CoW, 2:55:05.
  6. City of Albuquerque FY27 Proposed Budget, Program Summary by Fund: HH-Substance Use ($3,294K→$788K); HH-Mental Health ($5,199K→$4,331K); HH-Health and Human Services ($5,095K→$3,955K).
  7. City Desk ABQ, "Council forces budget transparency after year-long fight with Keller administration," Dec. 17, 2025.
  8. City of Albuquerque City Council Action Summary, January 5, 2026 (EC-26-11).