A sign outside a voting station in San Francisco.

The final two races have been called. The verdict is in: Mayor Daniel Lurie and his allies got everything they wanted.

To recap: After the first night of results (about 23 percent of ballots counted), both supervisor races and the Board of Education race were in the incumbents’ hands.

State Sen. Scott Wiener was the top vote-getter to replace Nancy Pelosi and had to wait to see which of his progressive rivals would join him in the general election. In a few days, another veteran SF politico, Sup. Connie Chan, bested local neophyte Saikat Chakrabarti for second place. Chakrabarti put his bona fides in his brief time spent as Rep. Alexandria Ocasio-Cortez’s chief of staff, a move that backfired when she refused to endorse him — or even mention his name.

Both supervisor races were considered referendums on housing, especially District 2. Another layer of the District 4 race was all the hot feelings around the fate of the Sunset Dunes Park (nee Great Highway).

Incumbents Stephen Sherrill and Alan Wong — both Mayor Lurie appointees running for their seats for the first time — coasted to victory but must run again in November.

Same goes for Phil Kim in the Board of Education race. (He was a London Breed appointee.)

Prop A, a bond to pay for an emergency water-system, won easily despite some misgivings about west-side votes.

Prop B, to cap lifetime term limits for SF elected officials, came about after Aaron Peskin failed to win the mayor’s seat in 2024, stoking the moderate bloc’s fears he’d run for a fifth Board of Supervisor term. Now leading 53-47, the Chronicle waited until yesterday to call Prop B a winner.

Peskin spoke this week with a Chronicle columnist about the outlook for local progressives.

Props C and D were dueling measures related to the city’s “overpaid CEO” tax, which applies to companies of a certain size whose top executives are paid at least 100 times more than their SF-based employees’ median salary.

C was a Chamber of Commerce-sponsored measure to shield more small businesses from the tax. It was also meant as a poison pill to trip up Prop D, which aimed to expand the tax’s rate and the number of companies it would cover.

Prop C lost right away; it took nearly a week for D to get the Chronicle’s “No” stamp, with 53.6 percent of voters against it. D’s loss cuts off a near-term solution to fill nearly half the city’s budget gap of $644 million. Despite a huge union push for the measure, enough voters sided with Lurie’s argument that the tax hike’s long-term damage to the city’s recovering economy would outweigh short-term good.

Links go to our reporting on each race or issue; or click here for our Election 2026 page.

Thursday, June 4, 4:45 p.m.

After a break Wednesday, SF Elections is now doing daily ballot count updates. Today’s count wasn’t much progress: 140,315 ballots counted, about 26 percent of registered voters.

With only 15,000 more counted since the last drop, there’s no news about the last two unresolved races, both still too close to call.

Prop B (term limits): YES 54.7%, NO 45.3%

Prop D (expanding the overpaid CEO tax): NO 55.2%, YES 44.8%

Late Tuesday night, Connie Chan’s double-digit lead over Sakrat Chakrabarti became officially a second-place “win” for her. Chan and state Sen. Scott Wiener will square off in the general election.

Cue the post-mortems about Chakrabarti falling flat and analysis of the results to gauge Chan and Wiener’s chances of nabbing votes from supporters of Chakrabarti, not to mention the barrel of down-ballot candidates who currently have about 15 percent of the vote.

Statewide, the race to decide the top two governor candidates still isn’t resolved, although Trump fave Steve Hilton and former Biden cabinet member Xavier Becerra seem very likely to win through.

CalMatters writes that the top-two “jungle” primary system isn’t working to make general elections more competitive. (Click for the trenchant policy analysis, scroll for the photo of Arnold Schwarzenegger with crazy eyebrows.)

Next ballot update: Friday 4 p.m.

Wednesday, June 3, 10 a.m.

The fate of Props B (term limits) and D (boosting the overpaid CEO tax) remain unknown this morning. If B wins and D loses, SF’s election slate will be a mod-squad sweep. Even if it’s the opposite result, Mayor Lurie, the moderate-in-chief, can boast of a winning election. 

Then again, boasting would be quite off-brand for Lurie, as would a victory lap, double fist pump, or a Steph Curry night-night. Although cooler heads have done hotter things. Remember President “No-Drama” Obama after his first inauguration telling Republicans that “elections have consequences”?

Even if B loses and D wins, Lurie has already won the next six months. His Board of Supervisors allies Sherrill and Wong will remain in place, and they now have a big leg up in the fall, assuming they run for a full term.

A man in a suit speaks into a microphone.
Sup. Stephen Sherrill, seen here in Oct. 2025. (Photo: Alex Lash)

Their landslide victories, called last night as soon as the first bag of ballots hit the counting machine, will resonate immediately. Lurie’s team is heading into a month of budget negotiations with the board. 

Although in recent weeks, signs show the mayor was willing to make concessions. Even a progressive board might not have had much quibble. Overall, it’s a nearly $1 billion bump over the previous budget, with most departments getting at least a small increase. 

More granular examples: A $34 million dose of emergency cash will help cover the loss of federal food and medical benefits. Another emergency reserve of $98 million will be held to offset federal cuts to housing and homelessness services. A deal’s in place that could boost the city’s affordable housing commitment long-term. 

Sup. Alan Wong (right) and rival candidates for the District 4 supervisor seat wait for a March 2026 debate to start. (Alex Lash)

Cuts to grants could affect 1,000 nonprofit jobs, advocates said last week, but are still subject to a final deal. So far, efforts to keep open three “low-volume” community health clinics, targets of budget cuts, have only succeeded in delaying closure by a few months.  

Meanwhile, union talk of a shutdown strike next year has cooled; cuts to the city’s 34,000-plus workforce will be de minimus. Beyond 127 layoffs announced this spring, labor savings will come through the elimination of 400 vacant positions and attrition.  

More layoffs could come next year, but Lurie has said he’ll stick with this budget even if Prop D and its annual promise of $250 million to $300 million more fail. In the same report, however, the city controller also warned that D would chase jobs and revenue out of the city: “Employment gains in the public sector are projected to be more than outweighed by losses across the private sector.” 

a man wearing glasses and a suit and tie sits at a desk behind a microphone. The flags of California and San Francisco are behind him.
Mayor Daniel Lurie addresses the Board of Supervisors, Feb. 2025. (SFGovTV)

If the tide turns and Prop D flips its current 55 percent “No” vote, Lurie still wins. He’ll be able to tell business folks that he tried. He’ll also have an extra chunk of change to play with, per the controller’s estimates, and can still double down on convincing companies not to hightail it to Austin or Miami or, less glamorously, South City

Unlike that famous hothead Obama (kidding), Lurie isn’t likely to ruffle feathers with his words. (This is the man who sweet-talked the Hothead-in-Chief into calling off a massive ICE raid.) 

Last night, he told reporters that he understands the impetus of Prop D: “This city is incredibly expensive, it’s unaffordable for so many people.” He underscored his own initiatives — unlocking more housing, expanding early childcare — as evidence of his attention to the affordability problem.

As of the ballot count at midnight last night a majority of San Franciscans, at least those who vote, seem to agree.

Correction: This post initially misstated that Prop B was losing, and that its loss would boost the moderate slate. Prop B is in fact winning (but too close to call), and its victory would boost the moderate slate.

Wednesday, June 3, 12:30 a.m.

Happy Wednesday. The final SF update of the night brings us to just a smidge over 125,000 ballots now counted, representing 23.4 percent turnout. It’s possible we’ll have closure on a few races tomorrow — wait, make that today at 4 p.m.

We’ve indicated in green or red where the Chronicle has called the race.

More than 80 percent of California precincts have at least started to report, and the governor’s race remains stuck in place: Hilton 28%, Becerra 26%, Steyer 20%. (Rounding up for each.)

Chakrabarti hasn’t made up ground on Chan for the runner-up Congressional race slot, and the Chron says he won’t: it’s Wiener and Chan through to the general election.

Prop D, the effort to boost the overpaid CEO tax is still underwater and too close to call. Prop B is ahead but also too close to call.

Congressional District 11 (top 2 advance): Wiener 41%, Chan 29%, Chakrabarti 15%. (Wiener and Chan advance)

Board of Education: Kim 63%, Cheung 25%, Marckmann 12%.

District 2 Supervisor: Sherrill 70%, Brooke 30%

District 4 Supervisor: Wong 70%, Gee 30%, others eliminated

Prop A: Yes 77%

Prop B: Yes 55%

Prop C: No 64%

Prop D: No 55%

Two State Assembly seats: Incumbent Matt Haney is running unopposed. Catherine Stefani has 80% of the vote.

Next update is Wednesday 4 p.m.

Tuesday, June 2, 10:58 p.m.

You know what they say. The third drop’s the charm. OK, only punchy journalists who are usually asleep by now say that.

Here’s the latest:

Nearly 125,000 ballots now counted, representing 23.4 percent turnout. We’ve indicated in green or red where the Chronicle has called the race.

Tom Steyer continues to lead … in San Francisco. Otherwise, it’s not looking good for him. More than three-quarters of California precincts have at least started to report, and the governor’s race is Hilton 27%, Becerra 26%, Steyer 20%.

Chakrabarti hasn’t made up ground on Chan for the runner-up Congressional race slot.

Prop D’s “no” vote lost a tiny bit of air, but the effort to boost the overpaid CEO tax is still underwater, and still too close to call.

In the D4 race, Wong has lost a percent or two but is still miles ahead of the competition. (On the first drop at 8:45, the Elections Department reported Wong leading Gee 72-28 with all others eliminated, but all five candidates are back on the roster.)

Congressional District 11 (top 2 advance): Wiener 41%, Chan 29%, Chakrabarti 15%. (Wiener advances)

Board of Education: Kim 63%, Cheung 25%, Marckmann 12%.

District 2 Supervisor: Sherrill 70%, Brooke 30%

District 4 Supervisor: Wong 50%, Gee 20%, Chow 18%

Prop A: Yes 77%

Prop B: Yes 55%

Prop C: No 64%

Prop D: No 55%

Two State Assembly seats: Incumbent Matt Haney is running unopposed. Catherine Stefani has 80% of the vote.

Next update is at 11:45.

Tuesday, June 2, 9:57 p.m.

Ready for the second drop? Of course you are.

It’s just a blip beyond the first. More than 108,000 ballots have been counted, representing about 20 percent turnout. We’ve indicated in green or red where the Chronicle has called the race.

One notable change: In D4, Wong’s percentage is down to 52 percent, with Natalie Gee and Albert Chow a distant second with 18 percent each. At the first drop an hour ago, the Elections Department reported Wong leading Gee 72-28 with all others eliminated. It’s possible the big drop is an artifact of ranked-choice voting. The Chronicle, which called the race for Wong after the first drop, hasn’t recanted.

Congressional District 11 (top 2 advance): Wiener 43%, Chan 28%, Chakrabarti 14%. (Wiener advances)

Board of Education: Kim 64%, Cheung 24%, Marckmann 12%.

District 2 Supervisor: Sherrill 70%, Brooke 30%

District 4 Supervisor: Wong 52%, Gee 18%, Chow 18%

Prop A: Yes 77%

Prop B: Yes 55%

Prop C: No 64%

Prop D: No 56%

Two State Assembly seats: Incumbent Matt Haney is running unopposed. Catherine Stefani has 80% of the vote.

Next update is at 10:45 p.m.

Tuesday, June 2, 9:25 p.m.

Quick check on a few state races (the full slate is here), with about half of precinct at least partially reporting:

It’s always interesting to see how Republicans fare in San Francisco. Not surprisingly, they’re underperforming their state tallies, while Sea Cliff billionaire Tom Steyer gets a hometown boost and San Jose mayor Matt Mahan is in third.

Former U.S. Rep. Katie Porter isn’t getting much Frisco love so far, barely keeping ahead of ultra-MAGA sheriff Chad Bianco.

Tuesday, June 2, 9:05 p.m.

The Chronicle is already calling several results:

  • Wiener has enough votes to advance
  • Sherrill wins in D2
  • Wong wins in D4
  • Kim wins the school board seat
  • Prop A (earthquake safety) wins
  • Prop C (more exemptions for the overpaid CEO tax) loses

Tuesday, June 2, 8:54 p.m.

The first drop is here, about 100,000 SF mail-in ballots counted. No in-person votes are part of the count yet.

Congressional District 11 (top 2 advance): Wiener 43%, Chan 28%, Chakrabarti 13%.

Board of Education: Kim 65%, Cheung 24%, Marckmann 11%.

District 2 Supervisor: Sherrill 72%, Brooke 28%

District 4 Supervisor: Wong 72%, Gee 28% (all others eliminated)

Prop A: Yes 76%

Prop B: Yes 56%

Prop C: No 64%

Prop D: No 57%

Two State Assembly seats: Incumbent Matt Haney is running unopposed. Catherine Stefani has 80% of the vote.

Next update is at 9:45 p.m.

Tuesday, June 2, 6:45 p.m.

Turnout (noun): the number of people who participate in or attend an event.

It also means a place on the side of the road to pull over so that others may pass. Perhaps that will be relevant tonight, too.

As with primary elections, there’s much chatter and reading of tea leaves about who will vote, and who won’t. Statewide, the prevailing theory about low mail-ins (21 percent as of today; 27 percent four years ago, per the Chron) is that Democrats are ballot-hugging as long as possible, hoping for enlightenment in the governor’s race.

In SF, Asian voters are outpacing early mail-in totals, according to Mission Local’s 11:30 a.m. post. (Caveat: Sup. Connie Chan’s team shared the data, which one might guess benefit Chan, the only Chinese-American and Chinese speaker among the top three candidates to replace Pelosi.)

SF’s Department of Elections has a turnout chart of elections going back a long time. One takeaway: SF hasn’t hit 80 percent turnout since 2020.

If this election doesn’t crack 50 percent — the fate of the previous two midterm tilts in 2022 and 2024 — get ready for the losers to blame low turnout. Rarely if ever do they say, “Well, I guess we didn’t do a good enough job turning people out for us.”

Tuesday, June 2, 5:40 p.m.

Two and a half hours until our polls close. Before we go down the local rabbit hole, a reminder that other states have primary action today: New Jersey, Iowa, New Mexico, South Dakota, and Montana.

Why does it take so long to get results in California? CalMatters has you covered on that story. We shouldn’t expect a call tonight on the governor’s race.

The last big election was November 5, 2024. (Remember?) Ten days later, there were still races to call in San Francisco.

So if you’re waiting for the pundits (and maybe even us) to tell you What It All Means, you might have to wait a while.

Leave a comment