
Most residents who want to hold their local government accountable start with the wrong question, “What is wrong with city hall?” That question has no end, and it gives an official an easy reply. How to audit local government in a way that produces usable results comes down to a narrower question about one office, one budget or one list of contracts, answered from documents the government is already required to keep.
This guide covers a method for doing that without legal training or a press credential. The tools are a spreadsheet, a records request and a seat in the meeting room.
Pick one function to audit, not the whole government
A city, county or school district does dozens of things at once. Auditing all of them means you will skim all of them and prove nothing about any. Choose one function and stay with it for the whole project.
Good candidates are functions where money, discretion and public complaints overlap:
- A permitting or building inspection office, where delays and inconsistent approvals are common complaints.
- A school board budget, especially line items for consultants, software and facilities.
- A county contract list, such as road maintenance, towing, IT services or legal counsel.
- A parks or public works department with a visible capital project.
Pick the one where you can already name a specific question. “Why did the permit office approve some projects in two weeks and others in four months?” is a question you can test. “Is the school board wasteful?” is not.
Then write the question down in one sentence and set a boundary on time. A single fiscal year, or the last three, is enough. Every document you request or read from here on should serve that sentence.
Start with the paper trail: budgets, annual audits and meeting minutes
Before you ask anyone for anything, read what is already posted. Most governments publish more than residents realize, and reading it first keeps your later requests precise.
Gather these documents for the function you chose:
- The adopted budget. Find the department’s line items and the narrative that explains them. Note what was proposed versus what was adopted.
- The annual financial report. Cities, counties and school districts typically publish an audited annual financial report, often titled an annual comprehensive financial report. It is prepared with an outside auditor and often includes notes on debts, contracts and unusual items.
- The auditor’s findings or management letter. If the outside auditor flagged weaknesses in internal controls, they are usually described here. Check whether the following year’s documents show anything was fixed.
- Meeting minutes and agendas. Read the minutes for every session where your function came up. Agenda packets, the attachments behind each agenda item, usually contain the real detail: contract amounts, staff memos, vendor names.
As you read, keep a simple log with four columns: date, document, what it says, and what it leaves out. The fourth column matters most. A budget that shows a total for “professional services” without naming who was paid is telling you what to request next.
If your state has a searchable transparency portal for local spending, use it to cross-check what the budget says against what was actually paid. Portals vary widely in quality, and some local governments have none, so treat this as a bonus rather than a requirement.
Write a public records request that is hard to dodge
Every state has some form of public records law, called a freedom of information act, an open records act or a public records act depending on where you live. The rules on deadlines, fees and exemptions differ by state, so read your state’s version before you file. Many state attorney general offices and open government nonprofits publish plain-language guides.
A request fails most often because it is vague, so officials can answer slowly, narrowly or with “no responsive records.” Write yours so that a clerk can tell exactly what to pull and cannot reasonably claim confusion.
Follow these rules:
- Name the records, not the topic. Ask for “all contracts, amendments and invoices” instead of “information about contracts.”
- Set a date range. Specific start and end dates prevent the answer “that’s too broad.”
- Name the office or custodian. Direct it to the department and the official records custodian listed on the government’s website.
- Ask for electronic formats. Request spreadsheets and searchable PDFs, and ask for data in its native format when it comes from a database.
- Cite the statute. Name the state law you are filing under, so it is clear you know it applies.
- Ask for a fee estimate before work begins. This avoids a surprise bill and shows you are reasonable.
- Request an explanation for any redaction or denial, including the specific exemption claimed.
An example for a permitting office might read: “Under [your state’s public records statute], I request electronic copies of all building permit applications received by the Building Department between July 1, 2023 and June 30, 2026, including the date received, the date approved or denied, the reviewer assigned, and any fee waivers granted. A spreadsheet export is preferred. Please provide a fee estimate before processing if charges will exceed the statutory limit.”
Substitute your own state’s statute name and your own dates, send it by email or the portal so there is a timestamp, and keep a copy. If the deadline in your state passes without a response, send a short follow-up that cites the deadline. If you are denied, most states have an appeal route, often through the attorney general or a state open records office, and the denial letter should say how to use it.
Follow the contracts and the vendors who keep winning them
Contracts show where public money actually goes, and patterns across contracts show more than any single one. Build a vendor table from the contract list, the budget and your records request results.
For each contract, record:
- The vendor’s legal name
- The amount, including every amendment and extension
- The date awarded and the term
- How it was awarded: competitive bid, request for proposals, sole source or emergency procurement
- Who approved it, and at which meeting
Then look for patterns a resident can verify:
- The same vendor appearing repeatedly. One firm winning many contracts is not wrong by itself, but it deserves a look at whether the bids were truly competitive.
- Amounts clustered just under an approval threshold. Most governments require competitive bidding or board approval above a set dollar amount, and that amount varies by jurisdiction. Several awards sitting just below your local limit is a pattern worth asking about.
- Large growth through amendments. A contract that doubles through add-ons after the award can undercut the original bid process.
- Sole-source and emergency awards. These are legitimate in narrow cases. Check whether the stated emergency matches the facts.
To learn about the vendors themselves, search your secretary of state’s business registry for the company’s ownership filings, incorporation date and registered agent. Check your state’s campaign finance database for donations from the vendor’s owners or executives to the officials who approved the contract. A donation alone proves nothing, and you should say so in your findings, but a documented timeline of donation, then vote, then contract is a fact a reader can evaluate. For how the same logic works one level up, tracing lobbying money to a bill covers the federal version.
Sit in the meeting: what to watch, record and ask
Open meetings laws in most states require governing bodies to deliberate and vote in public, with notice and an agenda. Attending shows you what the documents leave out: who speaks, who defers, which items pass without discussion.
Before you go, read the agenda packet and mark every item that touches your function. At the meeting:
- Note the consent agenda. Items grouped for a single vote often pass without discussion, and contracts are frequently among them.
- Record what is said about your function, with timestamps. Many governments post video; if yours does, you can verify quotes later. If you plan to record the meeting yourself, check your local rules, since most open meetings allow it.
- Track the votes by name. Write down who moved, who seconded and how each member voted.
- Note when a body goes into closed session and the legal reason announced for it. Compare that reason to what the law allows in your state.
Public comment is your chance to put a question on the record. Keep it to one question, tied to a document: “The staff memo for item 7 says the contract was bid competitively, but the bid tabulation shows one respondent. Can the board explain how that meets the procurement policy?” A comment that cites a page number is much harder to brush off than a general complaint, and the answer, or the absence of one, becomes part of your record.
Compare what officials said with what the records show
This is the step where an audit becomes a finding. Build a two-column comparison: on one side, what officials claimed in meetings, press releases, newsletters or campaign materials; on the other, what the documents show.
Each row should include the quote or claim, the source and date, the document that confirms or contradicts it, and the page or file reference. Sort the rows into three categories:
- Confirmed. The record supports the claim. Include these, because they make the rest of your work credible.
- Contradicted. The record shows something different, such as a stated completion date that the project schedule missed or a cost figure that differs from the invoices.
- Unverifiable. No record exists for a claim. This is not proof of wrongdoing, but it is a legitimate gap to ask about.
Keep your language tied to the evidence. “The staff report states 14 days; the permit log shows a median I calculated at 31 days” is a statement an official has to answer with data. “The department is lying” is an accusation that lets them change the subject. Check your arithmetic twice and have someone else look at your spreadsheet, because one calculation error can discredit an otherwise sound report.
Give officials a chance to respond before you publish. Send your key findings and ask specific questions with a reasonable deadline. Their reply, or silence, can be reported accurately, and it removes the argument that you ambushed them.
Publish your findings so they cannot be ignored
A strong audit can still disappear if it sits in a folder. Format and distribution decide whether anyone has to respond.
Write a short report. Open with a one-paragraph summary of the question you asked and the main answer. Follow with the evidence in order, each claim linked to its source document. Put your method at the end: which records you requested, on what dates, what you received and what was withheld.
Publish the documents themselves. Host the PDFs and spreadsheets alongside your report so any reader can check your work. Officials find it much harder to wave away a finding when the underlying records carry the government’s own letterhead.
Show your math. Put the spreadsheet online with formulas visible. Anyone should be able to reproduce your totals.
Separate fact from opinion. State findings plainly in one section and put your interpretation or recommendations in another. This protects the facts from being dismissed because of the opinions.
Take it to people with standing. Send the report to every member of the governing body, the local newspaper or independent news outlet, neighborhood groups, and the state or county auditor if your findings suggest a procurement or controls problem. A finding that shows up in several inboxes on the same day is harder to answer privately and then drop.
Return at the next meeting. Read a two-minute summary into the public comment record and ask a single question the report raises. That puts it in the minutes, which are themselves a public record.
Keep the tone factual and the scope narrow. If you want tools that make records and data easier to handle, see this review of civic research tools, which focuses on federal research but covers habits that carry over to local work.
When the first audit is done, the method repeats. The records requests, vendor tables and comparison sheets can be reused for the next function, and officials will have learned that your questions come with documents attached.
Browse the civic research tools on the Resources page and pick the one function in your town you will audit first. Then leave a comment below telling us which local function you plan to audit first.