Methodology
SF Quorum is built to be boringly transparent. Every number on this site is computed mechanically from San Francisco's own public records. No vibes, no editorializing in the data.
Where the data comes from
All legislation, meetings, sponsorships, and roll-call votes are pulled directly from the City and County of San Francisco's public legislative portal at sfgov.legistar.com. We crawl the public calendar, each meeting agenda, the detail page for every matter, and the action history that records how each supervisor voted. San Francisco's official Legistar Web API mirror stopped updating around 2018, so we read the live record the same way a member of the public would.
Plain-English summaries
Official legislative titles are written in dense legalese. Each summary is generated from that official title, by default with a deterministic rewriter (a glossary that swaps jargon for plain words plus per-type templates). If an LLM API key is configured, summaries are produced by a model instructed to be neutral and factual. Summaries are an aid, not a legal interpretation; always read the official text for specifics.
The scores
Each supervisor gets four sub-scores, then one overall score. Impact, Activity, and Attendance are scored against absolute targets — a fixed bar for what strong performance looks like per month in office — so a single prolific outlier can't crush everyone else's grade and a score means the same thing from one board to the next. Independence is the lone relative measure, since “dissent” only has meaning compared to the rest of the group.
- Impact rewards getting substantive legislation actually passed into law. Honorary and purely symbolic resolutions are weighted near zero on purpose, and routine procedural items (such as the bulk “extend the response deadline” resolutions) are excluded so they can't pad the number.
- Activity measures how much original legislation the supervisor authors and co-sponsors. Procedural housekeeping still counts, but only a quarter as much as a real bill.
- Attendance is the share of roll-call votes where the supervisor was present and voting (versus excused or absent).
- Independence is how often the supervisor breaks from the eventual majority. High independence isn't inherently good or bad; it just measures willingness to dissent.
Time served is accounted for: Impact and Activity are measured as a rate per month in office over the current session, so a supervisor appointed partway through (for example, a mid-term replacement) is judged on pace rather than raw totals and isn't penalized for having had fewer chances to legislate. Attendance and Independence are already rates, so they are time-fair by construction.
The overall score weights these as 40% Impact, 30% Activity, 20% Attendance, 10% Independence. Letter grades map linearly from the overall score (A+ at 90 and above, down to F).
Topic classification
Each matter is tagged into policy areas (Housing, Public Safety, Transportation, and so on) using a transparent keyword matcher over its title. This drives the focus areas on each dossier. It's intentionally simple and explainable rather than a black box.
Limitations and honesty
- Scores reflect only the meetings ingested so far, a rolling recent window, not necessarily a supervisor's entire career.
- Not every item gets a recorded individual roll-call vote; consent-style and procedural items may show no per-member vote.
- Authoring fewer bills isn't automatically bad, and a high vote count isn't automatically good. The scores are a starting point for scrutiny, not a verdict.
- This is an independent, nonpartisan project and is not affiliated with the City of San Francisco or any official, campaign, or party.