Sources and method
The public datasets behind San Francisco’s budget, payees, contracts and payroll: what each one is, who publishes it and what we do with it.
- The account categories changed. FY2018 mixes old and new, so for that year the site shows citywide, service-area and fund totals only.
- Program detail is coarser: many programs per department before, a few general tags (operating, capital, administrative…) from FY2019.
- Payments start to carry a contract number and a nonprofit mark; earlier payments can’t be linked to either.
- Payee names are recorded differently, so a payee’s long series can jump at FY2018.
Department history starts in FY2019; service-area history covers every year.
Dataset: The budget the Board of Supervisors adopts for every City fund, and the spending and revenue actually recorded.
Published by: SF Controller's Office, on DataSF, the City’s open data portal: Budget ↗ · Spending and Revenue ↗
Our use: We add the lines up by department and by purpose, counting money moved between the City’s own funds once. Department names and explanations are written for this site; the City’s own label stays next to them.
Latest year: FY2025 is closed: the adopted budget and the year-end accounts are final.
Good to know: The City adopts its budget two years at a time, and the second year is voted again a year later.
Source updated October 5, 2026; our copy made October 13, 2026.
Dataset: Every payment the City makes, line by line, including to other public bodies (the retirement system, the health service system, City College) and on its debt.
Published by: SF Controller's Office, on DataSF, the City’s open data portal: Vendor Payments (Vouchers) ↗
Our use: We add payments up by payee and year, and sort the largest payees into kinds by hand; smaller payees stay unsorted. Bond repayments, benefit plans, taxes withheld and payments to other governments are not purchases: the payees page shows them on a line of their own.
Good to know: People paid as individuals, mostly landlords, are in the source data; this site does not feature them in rankings or examples.
Source updated October 5, 2026; our copy made October 12, 2026.
Dataset: The City’s register of contracts with its suppliers: who holds each one, for which department, the amount agreed and the amount paid.
Published by: DataSF, the City’s open data portal: Supplier Contracts ↗
Our use: One line per contract. What was paid on it each year comes from the City’s payment records, matched on the contract number.
Good to know: Payments can be higher than the amount agreed: changes to a contract add money that the agreed amount does not always include.
Source updated October 5, 2026.
Dataset: Pay and benefits of every City employee each fiscal year (July to June), including part-time and part-year staff.
Published by: SF Controller's Office, on DataSF, the City’s open data portal: Employee Compensation ↗
Our use: We publish totals by department and kind of job; no single person is shown. Groups too small to stay anonymous are pooled into “Other roles” rows, and nothing is left out of the totals. For the median, each person’s pay is first added up across their jobs.
Good to know: Department names and working-hours details change format in FY2017; totals are not affected.
Source updated October 5, 2026; our copy made October 12, 2026.
Dataset: The Census Bureau’s estimate of the city’s population on July 1 of each year.
Published by: U.S. Census Bureau: Population estimates ↗
Our use: Per-resident figures on the budget and payroll pages divide by it (826,079 residents on July 1, 2025).
Good to know: Years without an estimate get no per-resident figure.
132,417 decisions of the Board of Supervisors, 1906 to 2026, in one downloadable table of 161,015 rows, each linked to the scanned page it was read from.