homeHome
shareShare

Virginia election State Senate results

Last Updated: Nov 6, 2019, 1:51 PM EST

Democrats took control of Virginia’s state Senate in a general election on Nov. 5. Prior to the election, Republicans held the Senate by a single vote — 20-19, with a vacancy.

The race for control

Democrat called/leading

Republican called/leading

Other candidates called/leading*

< 10% reporting

State Senate

21 Democrats Check
19 Republicans
EVEN

*Third party or total write-in

Democrats fielded candidates in 36 of 40 state Senate districts — a record for modern elections — but Republicans contested just 25. Republicans were hoping that outside money flowing into the race would help them hold their slim majority, but Democrats flipped at least two seats to win control.

Alexandria

Roanoke

Virginia Beach

Charlottesville

Richmond

Called/leading Republican

Called/leading Democrat

Estimated turnout

So far 808,633 Democratic votes, 843,652 Republican votes and 112,897 votes for other candidates have been counted statewide for all contested state Senate races. We estimate this is around three-quarters of expected turnout.

All results

23Likely Democrat

3Leaning Democrat

0Tossups

7Leaning Republican

7Likely Republican

DistrictDem.Rep.Other
1Unc.
2Unc.
579.0%-21.0%
659.6%40.4%-
749.6%50.4%-
980.8%-19.2%
1054.3%45.7%-
1249.0%51.0%-
1354.6%45.4%-
1665.2%-34.8%
18Unc.
2166.0%-34.0%
2567.7%-32.3%
29Unc.
30Unc.
31Unc.
3273.7%26.3%-
3365.0%35.0%-
34Unc.
35Unc.
36Unc.
37Unc.
3965.9%34.1%-
DistrictDem.Rep.Other
847.8%52.2%-
1144.8%55.2%-
1748.3%51.7%-
DistrictDem.Rep.Other
DistrictDem.Rep.Other
1439.7%60.3%-
1531.5%68.5%-
1928.8%71.2%-
20-70.8%29.2%
2237.2%62.8%-
2635.0%65.0%-
2842.3%57.7%-
DistrictDem.Rep.Other
338.2%61.8%-
436.8%63.2%-
23Unc.
2428.5%71.5%-
2735.7%64.3%-
38-64.2%35.8%
40-76.6%23.4%
CandidatePct.Votes
Monty Mason*Check
0%0
Uncontested
No votes reported0
* Incumbent
CandidatePct.Votes
Mamie Locke*Check
0%0
Uncontested
No votes reported0
* Incumbent
CandidatePct.Votes
Thomas Norment*GOPCheck
61.8%50,088
Herbert JonesDEM
38.231,001
Total votes from 99% of precincts81,089
* Incumbent

So far 81,089 votes have been counted in this race.Turnout has exceeded our estimates.

CandidatePct.Votes
Ryan McDougle*GOPCheck
63.2%45,702
Stanton ScottDEM
36.826,631
Total votes from 100% of precincts72,333
* Incumbent

72,333 votes were counted in this race, which is more than we estimated.

CandidatePct.Votes
Lionell Spruill*DEMCheck
79.0%30,289
Jeff StaplesIND
21.08,057
Total votes from 100% of precincts38,346
* Incumbent

38,346 votes were counted in this race, which is around what was we estimated.

CandidatePct.Votes
Lynwood Lewis*DEMCheck
59.6%25,361
Elizabeth LankfordGOP
40.417,187
Total votes from 100% of precincts42,548
* Incumbent

42,548 votes were counted in this race, which is more than we estimated.

CandidatePct.Votes
Jen KiggansGOPCheck
50.4%29,587
Cheryl TurpinDEM
49.629,073
Total votes from 100% of precincts58,660

58,660 votes were counted in this race, which is around what was we estimated.

CandidatePct.Votes
William DeSteph*GOPCheck
52.2%28,622
Missy SmasalDEM
47.826,228
Total votes from 100% of precincts54,850
* Incumbent

54,850 votes were counted in this race, which is more than we estimated.

CandidatePct.Votes
Jennifer McClellan*DEMCheck
80.8%49,269
Mark LewisLIB
19.211,676
Total votes from 100% of precincts60,945
* Incumbent

60,945 votes were counted in this race, which is around what was we estimated.

CandidatePct.Votes
Ghazala HashmiDEMCheck
54.3%43,806
Glen Sturtevant*GOP
45.736,811
Total votes from 100% of precincts80,617
* Incumbent

80,617 votes were counted in this race, which is around what was we estimated.

CandidatePct.Votes
Amanda Chase*GOPCheck
55.2%44,646
Amanda PohlDEM
44.836,275
Total votes from 100% of precincts80,921
* Incumbent

80,921 votes were counted in this race, which is more than we estimated.

CandidatePct.Votes
Siobhan Dunnavant*GOPCheck
51.0%39,902
Debra RodmanDEM
49.038,384
Total votes from 100% of precincts78,286
* Incumbent

78,286 votes were counted in this race, which is more than we estimated.

CandidatePct.Votes
John BellDEMCheck
54.6%43,733
Geary HigginsGOP
45.436,359
Total votes from 100% of precincts80,092

80,092 votes were counted in this race, which is less than we estimated.

CandidatePct.Votes
John Cosgrove*GOPCheck
60.3%36,226
Rebecca RavesonDEM
39.723,890
Total votes from 100% of precincts60,116
* Incumbent

60,116 votes were counted in this race, which is around what was we estimated.

CandidatePct.Votes
Frank Ruff*GOPCheck
68.5%38,729
Virginia SmithDEM
31.517,838
Total votes from 100% of precincts56,567
* Incumbent

56,567 votes were counted in this race, which is more than we estimated.

CandidatePct.Votes
Joseph MorrisseyDEMCheck
65.2%29,389
Waylin RossIND
34.815,719
Total votes from 100% of precincts45,108

45,108 votes were counted in this race, which is around what was we estimated.

CandidatePct.Votes
Bryce Reeves*GOPCheck
51.7%34,478
Amy LauferDEM
48.332,151
Total votes from 100% of precincts66,629
* Incumbent

66,629 votes were counted in this race, which is more than we estimated.

CandidatePct.Votes
Louise Lucas*Check
0%0
Uncontested
No votes reported0
* Incumbent
CandidatePct.Votes
David Suetterlein*GOPCheck
71.2%41,257
Flourette KetnerDEM
28.816,649
Total votes from 100% of precincts57,906
* Incumbent

57,906 votes were counted in this race, which is more than we estimated.

CandidatePct.Votes
William Stanley*GOPCheck
70.8%32,523
Sherman WitcherIND
29.213,388
Total votes from 100% of precincts45,911
* Incumbent

45,911 votes were counted in this race, which is around what was we estimated.

CandidatePct.Votes
John Edwards*DEMCheck
66.0%26,570
Steven NelsonIND
34.013,662
Total votes from 100% of precincts40,232
* Incumbent

40,232 votes were counted in this race, which is around what was we estimated.

CandidatePct.Votes
Mark Peake*GOPCheck
62.8%37,612
Dakota ClaytorDEM
37.222,246
Total votes from 100% of precincts59,858
* Incumbent

59,858 votes were counted in this race, which is around what was we estimated.

CandidatePct.Votes
Stephen Newman*Check
0%0
Uncontested
No votes reported0
* Incumbent
CandidatePct.Votes
Emmett Hanger*GOPCheck
71.5%46,871
Annette HydeDEM
28.518,670
Total votes from 100% of precincts65,541
* Incumbent

65,541 votes were counted in this race, which is around what was we estimated.

CandidatePct.Votes
Creigh Deeds*DEMCheck
67.7%44,717
Elliott HardingIND
32.321,315
Total votes from 100% of precincts66,032
* Incumbent

66,032 votes were counted in this race, which is less than we estimated.

CandidatePct.Votes
Mark Obenshain*GOPCheck
65.0%36,986
April MooreDEM
35.019,937
Total votes from 100% of precincts56,923
* Incumbent

56,923 votes were counted in this race, which is less than we estimated.

CandidatePct.Votes
Jill Vogel*GOPCheck
64.3%43,419
Ronnie RossDEM
35.724,122
Total votes from 100% of precincts67,541
* Incumbent

67,541 votes were counted in this race, which is more than we estimated.

CandidatePct.Votes
Richard Stuart*GOPCheck
57.7%39,469
Qasim RashidDEM
42.328,932
Total votes from 100% of precincts68,401
* Incumbent

68,401 votes were counted in this race, which is less than we estimated.

CandidatePct.Votes
Jeremy McPike*Check
0%0
Uncontested
No votes reported0
* Incumbent
CandidatePct.Votes
Adam Ebbin*Check
0%0
Uncontested
No votes reported0
* Incumbent
CandidatePct.Votes
Barbara Favola*Check
0%0
Uncontested
No votes reported0
* Incumbent
CandidatePct.Votes
Janet Howell*DEMCheck
73.7%48,686
Arthur PurvesGOP
26.317,363
Total votes from 100% of precincts66,049
* Incumbent

66,049 votes were counted in this race, which is more than we estimated.

CandidatePct.Votes
Jennifer Boysko*DEMCheck
65.0%34,492
Suzanne FoxGOP
35.018,602
Total votes from 100% of precincts53,094
* Incumbent

53,094 votes were counted in this race, which is around what was we estimated.

CandidatePct.Votes
J. C. Petersen*Check
0%0
Uncontested
No votes reported0
* Incumbent
CandidatePct.Votes
Richard Saslaw*Check
0%0
Uncontested
No votes reported0
* Incumbent
CandidatePct.Votes
Scott Surovell*Check
0%0
Uncontested
No votes reported0
* Incumbent
CandidatePct.Votes
Dave Marsden*Check
0%0
Uncontested
No votes reported0
* Incumbent
CandidatePct.Votes
Benton Chafin*GOPCheck
64.2%30,198
George McCallIND
35.816,815
Total votes from 100% of precincts47,013
* Incumbent

47,013 votes were counted in this race, which is more than we estimated.

CandidatePct.Votes
George Barker*DEMCheck
65.9%40,294
S.W. HillenburgGOP
34.120,843
Total votes from 100% of precincts61,137
* Incumbent

61,137 votes were counted in this race, which is around what was we estimated.

CandidatePct.Votes
Todd PillionGOPCheck
76.6%40,172
Kenneth HeathIND
23.412,265
Total votes from 100% of precincts52,437

52,437 votes were counted in this race, which is more than we estimated.

Correction (Nov. 7): A previous version of this page listed the total votes cast for Democratic and Republican candidates, but mislabeled the figures as statewide totals. Only votes cast in contested races were included.

By Jason Bernert, Lenny Bronner, Madison Dong, Simon Glenn-Gregg, Jason Holt, Isabelle Lavandero, Erik Reyna, Ashlyn Still and Susan Tyler

Additional contributions from Laura Vozzella and Gregory S. Schneider

Sources: AP, Virginia Department of Elections


For the Virginia general election in 2019, The Washington Post has developed a model that estimates turnout for each state House and state Senate district before voting begins, then updates these estimates throughout the night as precincts report.

Previously, the best way for us to estimate votes remaining was to use the fraction of precincts that have reported their results, usually expressed like this: “50 out of 1,750 precincts reporting.” However, depending on early voting and the distribution of votes between precincts, this “precincts reporting” metric can be a misleading estimate of how many votes are actually left to be counted.

The foundation of our model is that past turnout predicts future turnout. We collected data from previous elections that most closely resembled this one and used these to form our base estimates for turnout in each state House and state Senate district. But a novel feature of our model is that it should respond to precincts that have already reported and update its estimates based on this new information. This is intuitive, as the same factors that might drive increased turnout in one precinct would likely drive increased turnout in other precincts within the same district. These kinds of factors might also suggest increased turnout across the entire election.

If you’re interested in additional details, we’ve published a full writeup on our engineering blog, and we’re also planning on making much of our model code public — so stay tuned!