Washington’s 31st District: August 2026 primary results
Republicans led all three races in the 31st District’s August primary. In the historical comparison below, August’s vote shares and the tested adjustment formula had similar prediction errors.
This is the first investigation. Read the combined findings and follow-up studies.
The district covers parts of King and Pierce counties. It elects one state senator and two state representatives, identified as House Position 1 and Position 2. Find your legislative district.
Republicans led all three races.
In the Senate race, Phil Fortunato led Tamara Stramel, 54.30% to 45.70%. In House Position 1, Drew Stokesbary led Stephen Szczurko-Walton, 57.91% to 42.09%. In House Position 2, Joshua Penner led John Bielka, 56.07% to 43.93%. These percentages count votes for the two named candidates.
What might those leads mean in November?
Two approaches were tested. The first carries each candidate’s August percentage forward unchanged. The second fits a straight line between August and November vote shares in past elections, then uses that line to adjust the August percentage. To test each historical year, the line is fitted using the other six years.
The adjustment’s apparent advantage disappeared when the candidate being measured was chosen without using November’s result.
August 2026 vote counts
| Race | Candidate | Party preference | Votes | Two-candidate total | Share |
|---|---|---|---|---|---|
| State Senator | Tamara Stramel (D) | Prefers Democratic Party | 15,638 | 34,221 | 45.70% |
| State Senator | Phil Fortunato (R) | Prefers Republican Party | 18,583 | 34,221 | 54.30% |
| State Representative Pos. 1 | Drew Stokesbary (R) | Prefers Republican Party | 19,674 | 33,973 | 57.91% |
| State Representative Pos. 1 | Stephen Szczurko-Walton (D) | Prefers Democratic Party | 14,299 | 33,973 | 42.09% |
| State Representative Pos. 2 | John Bielka (D) | Prefers Democrat Party | 14,915 | 33,954 | 43.93% |
| State Representative Pos. 2 | Joshua Penner (R) | Prefers Republican Party | 19,039 | 33,954 | 56.07% |
Vote counts (CSV) · Vote-count and historical-comparison code
Choosing which candidate to follow changed the result.
Choosing the candidate from the November result gave the model information that would not be available when making a prediction.
The comparison includes 393 races with the same two named candidates in August and November, a subset of 302 Republican-versus-Democrat races, and those same 302 races with the Republican candidate followed consistently.
| Races compared | Number of races | Use August’s percentage | Use the formula |
|---|---|---|---|
| All 393 races; follow the first candidate listed | 393 | 2.64 points | 2.47 points |
| Republican vs. Democrat; follow the first candidate listed | 302 | 2.15 points | 2.11 points |
| Same 302 races; follow the Republican every time | 302 | 2.15 points | 2.17 points |
The two 2.15-point scores use the same races. Switching which candidate is followed reverses each error’s sign but leaves its size unchanged.
Bigger misses count more in this error score. Once we followed the Republican candidate every time, the formula scored 2.17 points, compared with 2.15 for using August’s percentage. The formula’s earlier edge disappeared when we stopped using the November result to choose the candidate.
The test supports keeping August’s percentages as the starting estimates. It does not establish their accuracy in the coming general election.
Where the numbers came from
How we checked the results
For each of the six candidates, King and Pierce county vote counts sum to the statewide total.
The historical comparison covers 2010, 2014, 2016, 2018, 2020, 2022 and 2024. The source files omit 2012. Each year’s estimates use the other six years, then are compared with that year’s results.
Races within a year share election conditions. The comparison also spans changes to district boundaries.
Download the data
The 20 official source files, vote counts, past-election comparisons and code used to calculate the numbers on this page.
Download data (ZIP)The calculations run in Python without extra software packages. Calculation code · Method notes · Edition record
- Washington Secretary of State. August 4, 2026 primary results and official-result metadata. The saved statewide result is dated August 21; files were captured September 11, 2026.
- King and Pierce counties. Official King County results and Pierce County results from the state reporting system.
- Washington Secretary of State historical exports. Fourteen primary and general CSV files from seven election cycles. Source links, saved dates and file records.
Review status
The published vote counts and comparison scores have reproduction code in the download. The original research record has unresolved documentation checks, listed in the review notes.
Corrections: josh@pennerstrategy.com.
Sources and production
Silphium is Penner Strategy’s research system. These studies use AI-assisted analysis and code-generated calculations and charts. The linked review records describe the calculation checks and remaining limitations.