---
title: "How San Francisco's Republican voters voted on November 3, 2026"
date: 2026-11-09
description: "San Francisco's cast vote record shows where the city's Republican mail voters agreed and disagreed with the rest of the city's mail voters, on 27 measures and races."
tags: [san-francisco, elections, data]
draft: false
---

![A San Francisco polling place set up in a residential garage: a row of voting booths on metal legs, a ballot-scanning machine in the foreground, and a table of voter rosters beside a red supply box, with storage boxes on shelves and in the rafters](/images/sf-garage-polling-place.jpg)

*"[Voting in a Garage](https://www.flickr.com/photos/44094498@N03/4054545059)" by [coolmikeol](https://www.flickr.com/photos/44094498@N03), [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/).*

A few of us on Bluesky [have been discussing what SF's November 3 election results mean](https://bsky.app/profile/mattlaroche.com/post/3mzvk3kfays24).
I have thoughts and speculations about what this means, so I dug in. One easy, accurate thing I saw and could share: what GOP voters in San Francisco voted for.

## Who are we talking about here?
Six statewide races featured a Republican against a Democrat. 10% of SF's mail ballots (details
[below](#how-this-was-measured)) voted for the Republican in 5 or 6 of those races. It's safe to call those voters actual, honest-to-god Republicans. The tables below show what those SF Republicans voted for in the other races.

## What am I not claiming?
To be utterly clear: this analysis does not mean, and does not claim, that voting for Connie Chan or voter ID makes you a
Republican (though Republicans did vote for Connie Chan, 57% to 43%, and overwhelmingly for voter
ID, 89% to 11%). All I'm saying in this post is that San Francisco Republicans voted for Connie Chan, voter ID, and a bunch of other things that the rest of the San Francisco electorate disagreed with them on, as well as some areas where the GOP and non-GOP voters agreed.

## The tables

**SF GOP voters** = the 27,144 mail voters who meet the 5-of-6 test. **Everyone else** = the other
239,687 complete mail ballots. Both columns come from the same set of ballots, so each gap compares
two groups of voters directly. Each cell gives the majority side and its share of the voters who
voted on that item; blanks are excluded. **Gap** = the difference, in percentage points, between
the share of GOP voters and the share of everyone else who supported the item (for the two
candidate races: who chose Chan, or Kim). The disagreement table is sorted by the gap, largest first; the agreement table is sorted
smallest first. The Congress row counts only ballots from CA-11 voters.

### Where GOP voters and everyone else disagreed (22 items)

| Item | SF GOP voters | Everyone else | Gap (points) |
|---|---|---|---:|
| [Prop 39, voter ID](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-39) | Support 89% | Oppose 89% | 78 |
| [Prop 3, permanent top tax rates](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-3) | Oppose 85% | Support 84% | 68 |
| [Prop 1, housing bond](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-1) | Oppose 78% | Support 86% | 64 |
| [Prop 2, rainy-day fund](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-2) | Oppose 76% | Support 87% | 63 |
| [SF H, Muni parcel tax](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-h) | Oppose 81% | Support 81% | 62 |
| [SF J, close foreclosure tax exemption](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-j) | Oppose 73% | Support 88% | 61 |
| [Prop 41, audit special taxes](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-41) | Support 86% | Oppose 71% | 58 |
| [Prop 42, ban wealth taxes](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-42) | Support 89% | Oppose 68% | 58 |
| [SF C, affordable housing fund](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-c) | Oppose 69% | Support 88% | 57 |
| [RTM, regional transit sales tax](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-rtm) | Oppose 72% | Support 85% | 56 |
| [Prop 43, 2/3 vote for local taxes](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-43) | Support 83% | Oppose 70% | 53 |
| [Prop 5, recall process](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-5) | Oppose 72% | Support 77% | 49 |
| [Prop 40, billionaire tax](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-40) | Oppose 87% | Support 60% | 47 |
| [Prop 4, public campaign financing](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-4) | Oppose 87% | Support 59% | 46 |
| [Prop 37, home-purchase bond](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-37) | Oppose 68% | Support 77% | 46 |
| [SF G, reopen Great Highway to cars](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-g) | Support 75% | Oppose 70% | 45 |
| [SF B, public bank](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-b) | Oppose 85% | Support 56% | 41 |
| [Prop 45, CEQA fast-track](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-45) | Support 75% | Oppose 64% | 39 |
| [SF I, transfer tax to housing](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-i) | Oppose 86% | Support 51% | 37 |
| [Insurance Commissioner](https://www.openballot.app/elections/california-general-election-2026/ballot-items/insurance-commissioner) | Allen 65% | Kim 55% | 21 |
| [Congress, CA-11](https://www.openballot.app/elections/california-general-election-2026/ballot-items/u-s-representative-district-11) | Chan 57% | Wiener 56% | 13 |
| [SF D, raise initiative thresholds](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-d) | Oppose 51% | Support 56% | 7 |

### Where GOP voters and everyone else agreed (5 items)

| Item | SF GOP voters | Everyone else | Gap (points) |
|---|---|---|---:|
| [SF E, City Administrator powers](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-e) | Support 62% | Support 65% | 3 |
| [Prop 38, immunology research bond](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-38) | Oppose 65% | Oppose 62% | 3 |
| [SF A, cut charter commissions](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-a) | Support 74% | Support 69% | 5 |
| [SF F, mayor's control of departments](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-f) | Support 72% | Support 59% | 13 |
| [Prop 44, clinic spending rule](https://www.openballot.app/elections/california-general-election-2026/ballot-items/proposition-44) | Oppose 72% | Oppose 87% | 15 |

Three of the five agreements are parts of the mayor's charter package (SF A, E and F); the other two (state Props 44 and
38) are measures that both GOP and non-GOP voters opposed.

## How this was measured

San Francisco publishes a cast vote record: an anonymous file with one record per scanned ballot
card, showing every choice on that card. This analysis uses the release of November 8, 2026,
which holds 1,370,121 cards. The results are preliminary; the Department of Elections expects to
certify them on December 3.

San Francisco's ballot had four cards, and the file does not say which cards came from the same
voter. For mail ballots, the four cards from one envelope are scanned one after another, so I
regrouped them by scan order, precinct and ballot style. That gave 266,831 complete mail ballots,
88% of the mail ballots in the file. The complete ballots match all mail cards to within 0.1
percentage points on every measure, so the ballots I could not regroup should not skew the sample.

I counted a voter as a "GOP voter" if they chose the Republican in at least 5 of the 6 statewide
races that had a Democrat and a Republican on the ballot (Governor, Lieutenant Governor,
Secretary of State, Controller, Treasurer, Attorney General). This is a definition by votes, not
by party registration. Most voters are at one end or the other: of the complete mail ballots,
80.1% chose no Republican, 8.3% chose all six, and 5.1% chose two to four. The rest chose exactly
one or exactly five. The 5-of-6 test gives 27,144 GOP voters, 10.2% of complete mail ballots.

All analysis code was written by Claude Code (mix of Opus and Fable), with an adversarial audit by GLM-5.3.

**Limitations:**

- **Mail ballots only.** I cannot regroup Election Day ballots (about 11% of all ballots in the
  file), because their scan order is scrambled. Election Day voters are somewhat more
  Republican: 12.2% of Election Day cards with the statewide races meet the 5-of-6 test, against
  10.2% of mail cards. So the GOP voters here are mail voters, and they may differ somewhat from Election
  Day Republicans.
- **The House race had no Republican.** 21% of GOP voters in the CA-11 district left the
  Chan–Wiener race blank. The Congress row covers only the GOP voters who chose one of the two.
- **Regrouping can make mistakes.** The method can occasionally merge the cards of two neighbors
  from the same precinct into one ballot. A wrong merge mixes two voters, which makes the GOP
  voters and everyone else look more alike. So any such errors shrink the gaps in the tables;
  they cannot create them.
- **Small numbers redacted.** The Department withheld the votes on 24 cards (6 ballots) in very
  small batches. I left them out.

## Sources

- Cast vote record and results: San Francisco Department of Elections,
  [November 3, 2026 results](https://www.sfelections.org/results/20261103w/index.html). The cast
  vote record used here is the
  [November 8, 2026 release](https://www.sfelections.org/results/20261103/data/20261108/CVR_Export_20261108134505.zip)
  (a 270 MB zip file).
