Datasets
San Francisco’s public records as tables: what the Board of Supervisors decided since 1906, who voted how, and the places the decisions name. Every row links to the scanned page on the Internet Archive it was read from.
Releasev0.7.1
Published21 October 2026
LicenceCC0 1.0
Coverage1906–2026
Tables49, as Parquet and SQLite
Data dictionaryChangelogHeadline numbers and their SQLCite this releaseA release never changes after it is published; corrections ship as a new version.
Start here
Six tables answer most questions. Each is one Parquet file; the same tables are in the SQLite file.
| Table | What it holds | Rows | Parquet |
|---|---|---|---|
| Decisionsdecisions | Every item the Board acted on, 1906–2026, with date, outcome, a one-line summary and the scanned page. | 718,093 rows | 89.2 MB ↓ |
| Votesx_roll_call_votes | How each supervisor voted in every printed roll call, 1906–1998. | 2,084,507 rows | 3.8 MB ↓ |
| Supervisorspersons | The 294 supervisors, with their Wikidata ids. | 294 rows | < 0.1 MB ↓ |
| Placesplaces | Streets, blocks, addresses and named places, with stable ids and locations. | 470,596 rows | 19.9 MB ↓ |
| Scanned pagespages | Every archive.org page the data cites. We link to the scans; we never copy them. | 183,888 rows | 6.8 MB ↓ |
| Sourcessources | Every volume and report cited, with its archive.org collection. | 6,377 rows | 0.3 MB ↓ |
Download the whole release
| File | What it is | Size | Format |
|---|---|---|---|
parquet/Parquet, one file per table | The reference format. Read in DuckDB, Polars, pandas or R; no need to download first. | 49 files · 1510 MB | Parquet |
qipu_sf.dbSQLite, San Francisco | The same tables in one file, privacy-filtered, plus ready-joined tables. Opens in any SQLite tool or Datasette. | 6.44 GB | SQLite |
csv/CSV extracts | Decisions, votes, roll calls, pages, places and sources, plus the facts by kind and decade (the list is in CSV_MANIFEST.json). | 94 files · 1.8 GB | CSV, gzip |
SQL consoleIn your browser | Query the Parquet files here, without downloading anything. | no download | DuckDB |
All 49 tables including working tables
Each table is one Parquet file, and a table of the same name in the SQLite file. Its page has the columns and a preview; the columns are also in the data dictionary.
| Table | Description | Rows | Parquet |
|---|---|---|---|
| Board of Supervisors decisionsdecisions | One row per item the Board acted on, as printed in the Journal or the minutes. Some items were read more than once, so an item can have more than one row. | 718,093 rows | 89.2 MB ↓ |
| Printed roll callsx_roll_calls | Every printed roll call ("Adopted by the following vote: Ayes: Supervisors ... Noes: ... Absent: ...") found in the Journal text, 1906-1999. | 171,123 rows | 16.1 MB ↓ |
| Votes in printed roll callsx_roll_call_votes | One row per name in a roll call: the vote, the name as printed, and the official it was matched to and how. | 2,084,507 rows | 3.8 MB ↓ |
| Ordinances, resolutions and billsinstruments | Ordinances, resolutions and bills by printed number. | 72,224 rows | 0.9 MB ↓ |
| Numbers printed in decisionsdecision_numbers | Decision -> number(s) printed in its text. | 88,876 rows | 0.9 MB ↓ |
| Claimsclaims | One fact per row (a thing, a place, a time), each with the page it comes from. Every source gives facts of the same shape. | 8,367,105 rows | 807.5 MB ↓ |
| Claim supportclaim_support | The readings behind each fact: when several readings found the same statement, it is one fact with several supports. | 6,594,525 rows | 137.7 MB ↓ |
| Claim reliabilityclaim_reliability | How firmly each fact is backed: verified (checked against the scan by a person, or stated by two documents), quoted (its words are on the cited page) … | 8,367,105 rows | 132.2 MB ↓ |
| Placesplaces | Today's places with stable qipu ids. | 470,596 rows | 19.9 MB ↓ |
| Place geometriesplace_geometries | Dated shapes of places (EPSG:4326): parcel and block outlines, address points, street lines, neighbourhoods and the 1906 burn zone. | 459,992 rows | 137.7 MB ↓ |
| Place namesplace_names | Names of places, official and other. Today's names and search aliases for now; historic names will follow. | 2,274 rows | < 0.1 MB ↓ |
| Address resolutionaddress_resolution | Addresses as printed ("<number> <street>") matched to today's city address list. Only exact, unique matches. | 805,748 rows | 7.8 MB ↓ |
| Personspersons | The officials in the data: members of the Board of Supervisors from the official roster, with Wikidata ids, and four printed in the Journals but … | 294 rows | < 0.1 MB ↓ |
| Person names as printedperson_names | Each name as printed in roll calls, with the years seen and the person it resolves to. | 9,251 rows | < 0.1 MB ↓ |
| Rolesroles | Supervisor terms (contiguous years served, from the roster). | 318 rows | < 0.1 MB ↓ |
| Organisationsorgs | Organisations (v1: the Board). | 1 row | < 0.1 MB ↓ |
| Place relationsplace_relations | How places relate, computed from geometry each build (plus declared links): an address within a block, a block within a neighbourhood, a street crosses … | 1,284,690 rows | 5.3 MB ↓ |
| Block pointsblock_points | One point per assessor block (the map's block index), for fast lookups. | 5,102 rows | < 0.1 MB ↓ |
| Sourcessources | Every source cited. archive.org items carry their collections and Democracy's Library membership. | 6,377 rows | 0.3 MB ↓ |
| Pagespages | Every archive.org page cited. We point at the scans; we never copy them. | 183,888 rows | 6.8 MB ↓ |
| Runsruns | What made each table: rules, hand work, or a model run (model, prompt). | 43 rows | < 0.1 MB ↓ |
| Field scoresfield_scores | Measured accuracy of each reading, field by field, with the sample each was measured on (model checks and answer keys; no person has checked a sample yet). | 36 rows | < 0.1 MB ↓ |
| Identifier redirectsid_redirects | Old or merged identifiers and the identifier each now points to, so links keep working. | 135,661 rows | 1.5 MB ↓ |
| Correctionscorrections | Corrections made by people, kept next to what was read. The site applies them at once; the files get them with the next release. | 0 rows | < 0.1 MB ↓ |
| OCR filesocr_files | The OCR files on archive.org behind each source item (the manifest the page texts were read from), so a reader can fetch and check them. | 11,323 rows | 0.6 MB ↓ |
| Decisions, per runx_decisions | One row per Board item per reading, with the columns each reading filled. | 748,894 rows | 94.0 MB ↓ |
| Map decision rowsx_site_rows | The decision rows shown on qipu's map, with the Board item each comes from. | 62,917 rows | 3.5 MB ↓ |
| Redevelopment Agency appraisalsx_appraisals | The Redevelopment Agency's property files for the Western Addition A-2 project, one row per parcel page, matched to today's parcels. | 3,189 rows | 0.3 MB ↓ |
| Democracy's Library place tagsx_dl_tags | Democracy's Library items about San Francisco, with the neighbourhoods, streets and places each is about (read by a language model). | 1,131 rows | < 0.1 MB ↓ |
| Mediamedia | Every photo, film, recording and document qipu's map shows, with its credit, licence and holder. | 1,428 rows | 0.1 MB ↓ |
| Democracy's Library factsx_dl_facts | Facts read page by page from Democracy's Library documents about San Francisco (costs, homes, dates, places), each with its page and quote. | 150,446 rows | 11.9 MB ↓ |
| Assessor real-property directoryx_realprop_dir | Extraction table: the Andrews Real Property Directory of San Francisco, 1943 and 1949 editions (archive.org scans), one row per printed address line: … | 276,599 rows | 4.0 MB ↓ |
| Mentionsx_mentions | Democracy's Library items and the neighbourhoods and streets they mention (one row per mention; from the DL place tags, x_dl_tags). | 915 rows | < 0.1 MB ↓ |
| Claim propertiesproperties | The claim property vocabulary (spec/vocab/properties.csv). | 85 rows | < 0.1 MB ↓ |
| Place typesplace_types | The place type vocabulary (spec/vocab/place_types.csv): id segment, family, clickable buffer, salience, Wikidata class. | 82 rows | < 0.1 MB ↓ |
| Citiescities | City configuration (config/cities/*.json): namespace, currency, privacy embargo, address authority. | 2 rows | < 0.1 MB ↓ |
| Privacy rulesprivacy_rules | Names of private people are public after N years: sf 75, van 92. | 2 rows | < 0.1 MB ↓ |
| Eventsevents | Events (for now one: the 1906 earthquake and fire, with the area the fire burned). | 1 row | < 0.1 MB ↓ |
| Consumer price index, United Statescpi_us | Vocabulary: the US consumer price index by year (1982-84 = 100), used to state amounts in 2026 dollars (scripts/18_cpi.py). BLS CPI-U U.S. city … | 227 rows | < 0.1 MB ↓ |
| Consumer price index, Canadacpi_ca | Canadian consumer price index per year (and the latest month), used for 2026 dollars on Vancouver amounts: Statistics Canada BLS CPI-U U.S. city … | 113 rows | < 0.1 MB ↓ |
| Entity idsentity_ids | v0.7: the minted-id registry of persons and organisations (ids/persons.csv, ids/orgs.csv in the code repo, append-only). An id is minted once and never … | 336 rows | < 0.1 MB ↓ |
| Org mergesorg_merges | v0.6.2 stub (empty in the release): the merge log of organisation names. One row per printed name variant folded into an organisation, with the rule … | 0 rows | < 0.1 MB ↓ |
| Place mentionsplace_mentions | v0.7: every place string a statement was read with, one row per page and string; claims.place_mention_id points here. The input to place resolution, … | 892,915 rows | 17.1 MB ↓ |
| Withdrawnwithdrawn | v0.7: record time. Every id that was in an earlier release and is gone from this one, with why and what replaced it; carried forward from release to … | 54,652 rows | 0.3 MB ↓ |
| Blocks and census tractsx_block_tract | Which census tract each city block falls in, for each census map. From DataSF and the Census, not the Internet Archive. | 20,389 rows | < 0.1 MB ↓ |
| Registered business locationsx_business_locations | Registered business locations (DataSF) matched to today's address and block, with start and end years. Owner names are not included. | 248,990 rows | 6.5 MB ↓ |
| Census tracts, 1980–2020x_census_tract | People, households and homes per census tract, 1980 to 2020, with median household income. US Census Bureau. | 925 rows | < 0.1 MB ↓ |
| Building permits by blockx_permits_block | Building permits per city block and kind (DataSF), filed 1982–2026: how many, and the first year of each kind. | 28,708 rows | < 0.1 MB ↓ |
| Outside identifiersxref | Outside identifiers (Assessor block and lot, DataSF address id, ordinance number, Wikidata, Internet Archive item and page, census tract) and the qipu … | 1,320,115 rows | 4.0 MB ↓ |
Documents and other files 13
| File | What it is | Size | Format |
|---|---|---|---|
README.md | What the release is and how to read it | 11 KB | Markdown |
DATA_DICTIONARY.md | Every column of every table | 263 KB | Markdown |
DATASHEET.md | How the data was made, its gaps and its uses | 10 KB | Markdown |
CHANGELOG.md | What changed in each release | 32 KB | Markdown |
CITATION.cff | How to cite the release | 1 KB | CFF |
LICENSE | CC0 1.0 for the facts; the scans keep their own rights | 2 KB | Text |
NUMBERS.json | The headline numbers, each with its SQL | 4 KB | JSON |
manifest.json | sha256 of every file, build commit, checks | 18 MB | JSON |
release.json | File list with rows and sizes | 9 KB | JSON |
metadata.json | Datasette metadata | 10 KB | JSON |
showcase_queries.json | Example queries for the six places searched in depth | 8 KB | JSON |
qipu-data-scripts-v0.7.1.tar.gz | The scripts that built the release | 734 KB | tar.gz |
iiif/ | IIIF annotation pages: 109,079 files, listed in manifest.json | 721 MB | IIIF JSON |
Cite this release
qipu (2026). San Francisco public records, release v0.7.1 [data set]. 21 October 2026. https://data.qipu.org/usa/san-francisco/. CC0 1.0.
There is no DOI yet. Each release will get its own archive.org item.