The audit files

Methodology

What this tracker covers

Audits, investigations and oversight reports on New York City agencies, programs and spending issued on or after January 1, 2025 by official watchdogs:

What counts as "New York City-related"

For state comptroller audits, an audit is included when the audited entity is a New York City agency (for example the Department of Social Services or New York City Public Schools) or a city authority such as the New York City Housing Authority. State audits of state agencies and state authorities that operate in the city, including the Metropolitan Transportation Authority, are excluded because their spending is not spending by the city, as are state audits of programs located outside the five boroughs.

Outside groups, and why they are separate

Think tanks, research centers and civic organizations also tell New York City government what to do, often in more detail than any audit. Their proposals are in the tracker, but they are off by default and are added only when a reader turns on "Add outside groups' proposals."

The two are kept apart because they mean different things. The separation says nothing about quality. A comptroller finding rests on a legal mandate: the office has standing to examine the agency, the agency is obliged to answer, and for city comptroller audits an official tracker records whether the fix happened. An outside report rests on argument alone. No agency has to respond to it, and no one publishes whether it was adopted. Mixing them in one undifferentiated list would imply an obligation that does not exist, so outside items carry a distinct badge, never carry an implementation status, and say plainly on each card that no agency is required to respond.

What qualifies: white papers, reports, studies and substantial policy briefs that make recommendations to New York City government, published on or after January 1, 2025. Testimony, public comments, letters, bill memos, op-eds, press releases, blog posts and commentary do not qualify. That bar excludes a great deal of real advocacy work, including organizations whose recommendations reach government almost entirely through testimony, and it excludes most of the output of organizations that publish mainly essays and columns.

Organizations are included on the basis of what they publish, not what they argue. The tracker takes no position on the merits of any proposal and does not label organizations by ideology; each proposal is attributed to the organization that made it, and readers can weigh the source themselves.

Watchdogs that are not here, and why

How the data is gathered

Scrapers fetch each watchdog's public listing pages, follow each report to its official page or PDF and extract the report text. Dates, titles, agencies and links come directly from those pages. The pipeline is built to fail loudly: if a source returns zero reports or a report yields no text, the update stops rather than silently publishing incomplete data.

How the plain-language summaries are written

Summaries are AI-assisted, written only from the text of each official report under rules that bar adding any fact, name or figure not present in the source, and are verified afterward by a script that checks every quoted phrase and every dollar figure against the source text. Findings and recommendations are restatements, so wording differs from the official documents; the official report is always one click away and is the authoritative version.

Since October 2026, new reports can also be summarized automatically when the scheduled checks find them. The pipeline sends the report's text to Anthropic's Claude (the Sonnet 5.5 model) with the same written rules, then publishes the draft only if it clears every check: each quote and each listed figure must appear word for word in the report text, every figure in the plain-language prose must appear in the report text, field lengths and topics must follow the rules, a city comptroller audit's recommendation count must match the comptroller's own tracker when the audit is listed there, and a second, separate Claude pass must find no statement the report does not support, no missing or merged recommendation, no editorializing and no unexplained acronym. A draft that fails any check is not published; it is set aside for a person. The pipeline never decides on its own that an outside report should be left out; it only suggests that, and a person decides. Cards with an automated summary that no person has yet read against the report say so. The code is scripts/draft_summaries.py.

How implementation status is tracked

Whether a recommendation was actually carried out is reported differently by each watchdog, and the tracker keeps those meanings distinct:

What "findings" and "recommendations" mean here

Counts shown in the tracker are counts of items in these summaries, not official tallies. Reviews and letter reports sometimes present key takeaways and suggestions rather than formal findings and recommendations; the tracker treats them the same way. Full reports contain more detail, sub-findings and formal agency response letters than any summary can carry.

Updates

An automated weekly check re-runs the comptroller scrapers. If new reports appear, they are summarized automatically where the drafts pass the checks described above, and flagged for a person otherwise; the "last updated" date on the front page reflects the most recent data build. Outside groups' publications are re-crawled twice a month in the same way. Department of Investigation and monitor reports are added on the same cadence as they are published.

Limitations

← Back to the files