Opinions

NYC’s Budgeting Maze

NYC spends more than $120 billion a year, but with no shared identifier linking awards to contracts, tracking the money is very difficult.

Reading Time: 4 minutes

New York City spends more than $120 billion a year. Split among every New Yorker, that’s roughly $14,000: enough to buy 43 years of Netflix Premium. Yet if you asked me to follow a single $5,000 of that money from the moment a politician promises it to the moment it reaches the people it’s meant for, I couldn’t reliably tell you where it goes.

The city doesn’t hide this information. Plenty of it is published. The problem is that the pieces don’t connect well: you can see a group was promised $5,000 and that the city paid out millions, but you can’t tell whether that $5,000 was ever part of it. That’s a transparency failure, and fixing it is the city’s responsibility. If the government asks New Yorkers to trust how it spends their money, it should make that money easier to follow.

New Yorkers feel this every day. We pay some of the highest taxes in the country, and we’re told that money funds youth programs, legal aid, and senior centers. But when residents ask where it went, the honest answer is that even people who study this phenomenon for a living can’t always say.

Here’s how the budgeting process works. Every year, the City Council gets to choose where a share of the city’s budget goes, sending money off to local groups such as youth programs, legal aid providers, and senior centers. The list of choices is published in a document called Schedule C, which names each group, how much it was given, and which Council member supported it.

However, a promise is not a payment. The city has to make it official and approve it, and you can check if that approval went through via the Mayor’s Office of Contract Services (MOCS), the office that tracks city contracts. When the money is actually sent, the Comptroller’s office records the transaction on a website called Checkbook NYC. That’s three steps in three different places, and nothing ties all three parts together.

The first gap is how Schedule C is published. It’s been published only as a PDF since 2018, and it can run over 500 pages. You can read it, but you can’t easily search or sort it the way you would be able to with a spreadsheet. A PDF is designed to look appealing visually, not to keep the large amount of data within it organized, so software designed to convert it so that computer code can interpret it sometimes drops entire contracts or mixes up ID numbers. Even if the conversion works, it still means trusting an estimate about public records. The Council has published machine-readable versions before, and bringing them back would allow anyone to check the data themselves.

Even more concerning, the trail can easily go cold when you track discretionary spending. Here’s an example of what happened when I tried it: The fiscal year 2027 Schedule C lists a $5,000 award to Mobilization for Justice from Council Member Althea Stevens. On MOCS, I could confirm the contract had been approved. Then I went to Checkbook NYC and hit a dead end. The money isn’t listed on its own. It’s bundled into three giant contracts worth $20 million, $27 million, and $550,000, and nothing says which one holds my $5,000. 

So I know the money was promised and approved, but I can’t confirm whether it was paid. A common ID number on each award would fix this issue, because every step could then point to the same record. 

The issue is worse for older awards. MOCS shows only a rolling three-year window, so old contracts, with thousands of them being worth billions of dollars, vanish entirely. Without that record, it becomes very hard to even tell if those awards were ever approved. 

I’m not the only one who hit this wall. James Maule of Civic Stoop spent 15 years in mergers and acquisitions, untangling the finances and taxes of multinational corporations. Then he turned to face NYC’s budget data. “After months of working with NYC’s budget data, I still can’t close certain gaps because the city doesn’t publish common identifiers that tie its awards, contracts, payments, and vendors together. This makes it effectively impossible for citizens to verify that taxpayer money is spent as intended,” he said.

Talking with Maule and working with BetaNYC’s existing projects helped me see that the city isn’t short on information. It’s short on connections. When nobody can verify independently where money went, nobody can ask the questions that matter: Do some neighborhoods wait months longer than others for promised funding? Do some awards get approved faster? Does a $5,000 award ever actually arrive? 

None of this requires more money, just better bookkeeping. Maule said it best: “For there to be trust in our government, the public needs visibility into the inflow and outflow of funds. That starts with the city carrying the same award and vendor identifiers through every procurement and financial system, and reporting payments in a way that lets the public track funds from the initial allocation through the final payment.”

In practice, that means three things. First, publish Schedule C in a machine-readable format every year, as the Council once did, so anyone can analyze it directly. Second, give every award one ID number that follows it from promise to approval to payment. Finally, build one website that shows the whole journey, so no one has to visit all three sites and match records manually. With these changes, New Yorkers could see not just that the city allocates money, but where the money goes.