Data & downloads
7 CSV files behind Oakland’s pages, plus two five-city files, with what each column means. Data as of Oct 9, 2026 (version 2ea162c); meetings Oct 24, 2025 – Oct 8, 2026.Reading the files. The first line of each file starts with # and names the city, the data date, the data version and the window; read it as a comment (pandas comment="#", R comment.char = "#") or skip one line. The saved file’s name carries the same date and version, for example oakland-meetings-2026-10-09-2ea162c.csv, so a citation can name the exact version. Counts, minutes and shares are as the pages print them before rounding.
What isn’t here. Public commenters are never named in any file: they are counted, not listed. Full transcripts aren’t published because they can carry private people’s names. School-board meetings are in meetings.csv, marked school_board, because the city’s counts include them; who spoke at them is on our school-board site. Withheld until they clear our accuracy bar: rising topics. What is and isn’t transcribed is on How we count; the checks behind each number are on Accuracy checks.
Topic time · topics.csv
Download topics.csv (47 rows)One row: One topic in one cut (citywide, or one body), plus three unranked rows per cut: routine, unsure and held. In San Francisco and Oakland, time comes from the clerk's agenda times (which cover meetings we haven't read); elsewhere, from stretches of transcript two AI readers labelled. Shares are of that timed speech, not of the whole video.
Talk time · talk.csv
Download talk.csv (8 rows)One row: One member of the council (or board) the city's ranking covers. Minutes are speech we named by voice, so every figure undercounts what a member said. Ranked only when the body clears our naming bar (/how).
People · people.csv
Download people.csv (96 rows)One row: One official on one council, committee, commission or board: every official on the People page, one row for each body they sit on (school-board members are on the school-board site).
Bodies · bodies.csv
Download bodies.csv (18 rows)One row: One public body we follow. Meeting counts here are listed meetings, transcribed or not; meetings.csv says which were transcribed.
Accuracy ledger · checks.csv
Download checks.csv (50 rows)One row: One of the 50 questions on the ledger page.
Meetings · meetings.csv
Download meetings.csv (244 rows)One row: One listed meeting: one body on one day, transcribed or not. Every meeting the city's counts include, school boards and their committees too: the rows marked read = yes add up to the meetings read on the city page, and the body_id values to its public bodies. School-board meetings are marked school_board = yes; who spoke at them is on our school-board site, not in speakers.csv.
Officials' talk time · speakers.csv
Download speakers.csv (783 rows)One row: One official in one transcribed meeting. Officials only: no member of the public is in this file. The same rows as each meeting page's "Who spoke" list. Minutes undercount what was said: a voice we couldn't name is in no row.
Across the five cities
The same two files on every city’s Data page and on the findings.
Findings, five cities · findings.csv
Download findings.csv (203 rows)One row: One number behind one finding on /findings: a bar, a point on a line, or a total. Only findings the page publishes (each with a clip to play). Counts are of meetings we transcribed, one body on one day, where the topic was mentioned at least once, by anyone.
City signatures · signatures.csv
Download signatures.csv (5 rows)One row: One city's signature: the topic its city hall brings up that the other four don't, as its hub and the front page draw it. A signature shows only when its source is a checked finding or story and the city's 90% range clears every other city's; a city with none has no row.
Cite this page
Hamlet, “Data & downloads: Oakland.” https://cities.myhamlet.com/oakland/data. Data as of Oct 9, 2026 (version 2ea162c); meetings Oct 24, 2025 – Oct 8, 2026.