2018 United States House of Representatives elections in Maine
|
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||
Both Maine seats to the United States House of Representatives |
|||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
The 2018 United States House of Representatives elections in Maine were held on November 6, 2018, to elect the two U.S. Representatives from the state of Maine, one from each of the state's two congressional districts. The elections coincided with elections to the United States Senate, a gubernatorial election, and various state and local elections.
These U.S. House elections were conducted with ranked choice voting, as opposed to a simple plurality, after Maine voters passed a citizen referendum approving the change in 2016[1] and a June 2018 referendum sustaining the change.[2] Ranked choice voting was used in the primary elections as well.[3]
While Rep. Chellie Pingree in District 1 was reelected with a majority, no candidate received a majority in District 2 which meant ranked choice tabulating needed to occur. Rep. Bruce Poliquin, who received a plurality of first round votes, filed a federal lawsuit to halt that tabulation, arguing that ranked choice voting was unconstitutional. The court ruled against Poliquin in his request for a motion on November 15 and against the lawsuit itself on December 13. On November 15, Jared Golden was declared the winner on ranked choice redistribution.
<templatestyles src="Template:TOC limit/styles.css" />
Overview
Results of the 2018 United States House of Representatives elections in Maine by district:[4]
District | Democratic | Republican | Others | Total | Result | ||||
---|---|---|---|---|---|---|---|---|---|
Votes | % | Votes | % | Votes | % | Votes | % | ||
District 1 | 201,195 | 58.82% | 111,188 | 32.51% | 29,670 | 8.67% | 342,053 | 100.0% | Democratic Hold |
District 2 | 142,440 | 50.62% | 138,931 | 49.38% | 0 | 0.00% | 281,371 | 100.0% | Democratic Gain |
Total | 343,635 | 55.12% | 250,119 | 40.12% | 29,670 | 4.76% | 623,424 | 100.0% |
Elections in Maine | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
|||||||||
|
|||||||||
|
|||||||||
|
District 1
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
Chellie Pingree, the incumbent representative, was first elected in 2008, and in 2016 defeated Republican nominee Mark Holbrook with just under 58 percent of the vote. Holbrook ran again for the Republican nomination, and was unopposed. Independent State Representative Marty Grohman, elected as a Democrat in the 2016 State House election, defected the party in 2017. He launched his campaign for the first district in spring 2018.
Due to the use of ranked choice voting in the election, Pingree was considered to be vulnerable if she did not win outright in the first round, as Grohman could have been a second choice for Republican and Democratic voters.[5] Grohman was receiving substantial support from Republican elected officials and activists, including Republican Governor Paul LePage[6] and the State Director of President Donald Trump's 2016 presidential campaign Christie-Lee McNally.[7]
Democratic primary
Declared
- Chellie Pingree, incumbent U.S. representative[8]
Results
Democratic primary results | ||||
---|---|---|---|---|
Party | Candidate | Votes | % | |
Democratic | Chellie Pingree (incumbent) | 74,376 | 100.0 | |
Total votes | 74,376 | 100.0 |
Republican primary
Declared
- Mark Holbrook, professional counselor and 2016 nominee for this seat[9]
Results
Republican primary results | ||||
---|---|---|---|---|
Party | Candidate | Votes | % | |
Republican | Mark Holbrook | 40,679 | 100.0 | |
Total votes | 40,679 | 100.0 |
Independents
Declared
- Marty Grohman, state representative [9]
Endorsements
Mark Holbrook |
---|
|
Marty Grohman |
---|
|
General election
Polling
Poll source | Date(s) administered |
Sample size |
Margin of error |
Chellie Pingree (D) |
Mark Holbrook (R) |
Marty Grohman (I) |
Other | Undecided |
---|---|---|---|---|---|---|---|---|
Emerson College | October 27–29, 2018 | 442 | ± 4.9% | 56% | 31% | – | 7% | 6% |
Pan Atlantic Research | October 1–7, 2018 | 249 | – | 53% | 29% | 11% | – | 7% |
Results
Maine's 1st congressional district, 2018[23] | ||||
---|---|---|---|---|
Party | Candidate | Votes | % | |
Democratic | Chellie Pingree (incumbent) | 201,195 | 58.8 | |
Republican | Mark Holbrook | 111,188 | 32.5 | |
Independent | Marty Grohman | 29,670 | 8.7 | |
Total votes | 342,053 | 100.0 | ||
Democratic hold |
District 2
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
Bruce Poliquin, the incumbent representative for the second district, defeated Democrat Emily Cain in the 2016 election in a rematch of the 2014 election where Poliquin was first elected. Poliquin ran for the Republican nomination unopposed. Cain did not challenge Poliquin again, instead taking a job with the progressive group Emily's List. Initially, six candidates filed for the Democratic nomination — United States Postal Service employee and activist Phil Cleaves, carpenter and former Maine State Senate candidate Jonathan Fulford, Assistant Majority Leader of the State House of Representatives Jared Golden, shopkeeper and former chair of the Isleboro Board of Selectmen Craig Olson, businessman and former State Senate candidate Tim Rich, and conservationist Lucas St. Clair. Cleaves, Rich and Fulford dropped out at various points in the campaign, though Fulford's withdrawal happened too late for his name to be removed from the primary ballot. Several candidates received prominent endorsements; St. Clair was endorsed by the League of Conservation Voters and California Congressman Jared Huffman, Fulford by the left-wing group Our Revolution prior to his withdrawal from the race, and Golden by VoteVets, Massachusetts Congressman Seth Moulton and over two dozen members of the Maine Legislature. Golden defeated St. Clair and Olson on the second ballot after ranked choice voting.
In addition, two third-party candidates announced their candidacies for the seat: Houlton Band of Maliseets State Representative Henry John Bear of the Maine Green Independent Party and Brian Kresge of the Libertarian Party. Bear, a former Democrat, left the party due to its stance on water rights for Maine's native people. He failed to qualify for the ballot. Kresge, a veteran and writer, withdrew from the race to run for a seat in the State House of Representatives. Neither the Libertarians nor Green Independents had a candidate on the ballot.
Two independent candidates qualified for the ballot: Tiffany Bond, an attorney from Portland (a city outside of the second district), and Will Hoar, a schoolteacher.
Democratic primary
Candidates
Declared
- Jared Golden, Assistant Majority Leader of the Maine House of Representatives[24][25]
- Craig Olson, former chair of the Islesboro Board of Selectmen[26]
- Lucas St. Clair, conservationist, restaurateur, and son of Roxanne Quimby[27]
Withdrawn
- Phil Cleaves, United States Postal Service employee[28]
- Jonathan Fulford, farmer, carpenter, and two-time Maine Senate candidate[29][30]
- Tim Rich, businessman[31]
Declined
- Troy Jackson, Minority Leader of the Maine Senate and candidate for this seat in 2014[32]
- Ben Sprague, Bangor City Councilor[24][25]
Endorsements
Jonathan Fulford (withdrawn) |
---|
|
Jared Golden |
---|
|
Lucas St. Clair |
---|
|
Polling
Poll source | Date(s) administered |
Sample size |
Margin of error |
RCV round |
Jonathan Fulford |
Jared Golden |
Craig Olson |
Lucas St. Clair |
Other | Undecided |
---|---|---|---|---|---|---|---|---|---|---|
Survey USA (with RCV) | April 26-May 1, 2018 | 217 LV | ± 7.2% | Round 1 | 17% | 22% | 5% | 25% | - | 31% |
Round 2 | 27% | 35% | - | 38% | - | |||||
Round 3 | - | 49% | - | 51% | - | |||||
Global Strategy Group | October 2–5, 2017 | 300 | ± 5.7% | N/A | - | 8% | - | 40% | 7% | 45% |
Fundraising
(Through March 31, 2017)[48]
- Jared Golden: $618,380.33
- Lucas St. Clair: $424,958.42
- Jonathan Fulford (withdrawn): $166,989.79
- Craig Olson: $100,299.00
- Tim Rich (withdrawn): $72,197.20
- Emily Cain (not running): $24,692.88
Results
Democratic primary results[49] | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Party | Candidate | Round 1 | Round 3 | |||||||||
Votes | % | Transfer | Votes | % (gross) | % (net) | |||||||
Democratic | Jared Golden | 20,987 | 46.4% | +2,624 | 23,611 | 52.2% | 54.3% | |||||
Democratic | Lucas St. Clair | 17,742 | 39.2% | +2,111 | 19,853 | 43.9% | 45.7% | |||||
Democratic | Craig Olson | 3,993 | 8.8% | -3,993 | Eliminated | |||||||
Democratic | Jonathan Fulford | 2,489 | 5.5% | -2,489 | Eliminated | |||||||
Total active votes | 45,211 | 100% | 43,464 | 100.0% | ||||||||
Exhausted ballots | - | +1,747 | 1,747 | 3.9% | ||||||||
Total votes | 45,211 | 100% | 45,211 | 100.0% |
% (gross) = percent of all valid votes cast (without eliminating the exhausted votes)
% (net) = percent of votes cast after eliminating the exhausted votes
Republican primary
Declared
- Bruce Poliquin, incumbent U.S. representative[50]
Results
Republican primary results | ||||
---|---|---|---|---|
Party | Candidate | Votes | % | |
Republican | Bruce Poliquin (incumbent) | 43,047 | 83.9 | |
Total votes | 43,047 | 100.0 |
Green primary
Failed to make the ballot
- Henry John Bear, state representative for Houlton Band of Maliseet Indians[51]
Libertarian primary
Withdrawn
- Brian Kresge, writer (running for State House)
Independent candidates
General election
All candidates except for Poliquin said they would abide by the results of ranked choice voting, and all candidates except for Poliquin said they would make second and third choices when they vote. Poliquin said he would only cast a first round vote for himself, stating that he felt no one but him is qualified for the seat.[53]
Poliquin filed a lawsuit in federal court on November 13, seeking an order to halt the second round tabulation of ballots and declare ranked choice voting to be against the United States Constitution.[54] Poliquin requested a recount of the ballots just before the deadline of November 26.[55] After several days of counting with the result not being significantly changed, Poliquin ended the recount after incurring $15,000 in fees.[56] Poliquin's request for an injunction to halt the ranked choice voting process was rejected, shortly before Maine Secretary of State Matthew Dunlap announced Jared Golden as the winner. Poliquin stated that his lawsuit would continue[57] and asked Judge Lance Walker, the judge hearing his lawsuit, to order a new election be held should he decline to hold ranked choice voting unconstitutional.[58] Judge Walker ruled against Poliquin on December 13, rejecting all of his arguments.[59] Poliquin appealed to the Court of Appeals in Boston and requested an order to prevent Golden from being certified as the winner, but that request was rejected.[56] On December 24, Poliquin dropped his lawsuit, allowing Golden to take the seat.[60][61][62][63]
Gov. Paul LePage, as one of his last acts in office, reluctantly initialed the certificate of election for Golden, adding the words "stolen election" to it to express his opposition to ranked choice voting.[64]
Endorsements
Jared Golden |
---|
|
Bruce Poliquin |
---|
|
Polling
Poll source | Date(s) administered |
Sample size |
Margin of error |
RCV round |
Bruce Poliquin (R) |
Jared Golden (D) |
Tiffany Bond (I) |
Will Hoar (I) |
Other | Undecided |
---|---|---|---|---|---|---|---|---|---|---|
Emerson College | October 27–29, 2018 | 441 | ± 4.9% | – | 46% | 47% | – | – | 3% | 4% |
NYT Upshot/Siena College | October 15–18, 2018 | 501 | ± 4.8% | – | 41% | 41% | – | – | – | 15% |
Global Strategy Group (D) | October 9–12, 2018 | 400 | ± 4.9% | – | 42% | 48% | – | – | – | 10% |
Pan Atlantic Research | October 1–7, 2018 | 251 | – | – | 37% | 37% | 6% | 3% | – | 17% |
NYT Upshot/Siena College | September 12–14, 2018 | 506 | ± 4.8% | – | 47% | 42% | – | – | – | 11% |
The Mellman Group (D-Golden) | September 4–7, 2018 | – | ± 4.9% | – | 46% | 54% | – | – | – | – |
The Mellman Group (D-Golden) | July 25–30, 2018 | 400 | ± 4.9% | Round 1 | 40% | 39% | 3% | 1% | – | 16% |
Round 2 | 48% | 48% | 4% | – | – | – | ||||
Round 3 | 49% | 51% | – | – | – |
Hypothetical polling | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Predictions
Source | Ranking | As of |
---|---|---|
The Cook Political Report[81] | Toss-up | October 3, 2018 |
Inside Elections[82] | Toss-up | September 28, 2018 |
Sabato's Crystal Ball[83] | Toss-up | October 4, 2018 |
Daily Kos[84] | Toss-up | September 28, 2018 |
Fox News[85] | Toss-up | September 21, 2018 |
CNN[86] | Toss-up | October 2, 2018 |
RealClearPolitics[87] | Toss-up | September 21, 2018 |
The New York Times[88] | Toss-up | September 26, 2018 |
Politico[89] | Toss-up | September 21, 2018 |
Results
Maine's 2nd congressional district, 2018 results[90] | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Party | Candidate | Round 1 | Round 2 | ||||||||
Votes | % | Transfer | Votes | % (gross) | % (net) | ||||||
Democratic | Jared Golden | 132,013 | 45.6% | + 10,427 | 142,440 | 49.18% | 50.62% | ||||
Republican | Bruce Poliquin (incumbent) | 134,184 | 46.3% | + 4,747 | 138,931 | 47.97% | 49.38% | ||||
Independent | Tiffany Bond | 16,552 | 5.7% | - 16,552 | Eliminated | ||||||
Independent | Will Hoar | 6,875 | 2.4% | - 6,875 | Eliminated | ||||||
Total active votes | 289,624 | 100% | 281,371 | 100% | |||||||
Exhausted ballots | - | +8,253 | 8,253 | 2.85% | |||||||
Total votes | 289,624 | 100% | 289,624 | 100% |
% (gross) = percent of all valid votes cast (without eliminating the exhausted votes)
% (net) = percent of votes cast after eliminating the exhausted votes
Poliquin led on first preferences with 46.4% to Golden's 45.6% and 8.1% for the two independents. However, as no candidate had a majority of the votes, the votes cast for the two independents were redistributed between Poliquin and Golden (those that didn't give a preference for either of the candidates were exhausted) and Golden won the election. The reason both independents were eliminated in a single round, as opposed to only the 4th place candidate, was because of the mathematical impossibility of the 3rd place candidate moving into 2nd place even if they had received all of the 4th place candidate's redistributed votes.
Of the votes left in the count Golden won with 50.62% of the vote to Poliquin's 49.38%. Including exhausted votes the final count was Golden 49.2%, Poliquin 48.0% and 2.8% exhausted.
The votes for the two independents were redistributed as follows: 44.5% went to Golden, 20.3% went to Poliquin, and 35.2% were exhausted votes (i.e., they didn't give a preference to either of the remaining candidates).
A week after the election (November 13), Poliquin sued to block the process to begin the ranked-choice tabulation of the results.[91] The judge denied his request two days later, and rejected the lawsuit on December 13.[92][93]
See also
References
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 6.0 6.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 7.00 7.01 7.02 7.03 7.04 7.05 7.06 7.07 7.08 7.09 7.10 7.11 7.12 7.13 7.14 7.15 7.16 7.17 7.18 7.19 7.20 7.21 7.22 7.23 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 9.0 9.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 10.00 10.01 10.02 10.03 10.04 10.05 10.06 10.07 10.08 10.09 10.10 10.11 10.12 10.13 10.14 10.15 10.16 10.17 10.18 10.19 10.20 10.21 10.22 10.23 10.24 10.25 10.26 10.27 10.28 10.29 10.30 10.31 10.32 10.33 10.34 10.35 10.36 10.37 10.38 10.39 10.40 10.41 10.42 10.43 10.44 10.45 10.46 10.47 10.48 10.49 10.50 10.51 10.52 10.53 10.54 10.55 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 15.0 15.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 16.0 16.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 17.0 17.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 18.0 18.1 18.2 18.3 18.4 18.5 18.6 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 19.0 19.1 19.2 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ https://www.maine.gov/sos/cec/elec/results/2018/rep-cd1-11-6-18.xlsx
- ↑ 24.0 24.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 25.0 25.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 28.0 28.1 http://www.sunjournal.com/democratic-2nd-district-congressional-race-heats-up/
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 31.0 31.1 31.2 http://www.sunjournal.com/congressional-contender-tim-rich-alleges-rigged-game-in-democratic-primary/
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 34.00 34.01 34.02 34.03 34.04 34.05 34.06 34.07 34.08 34.09 34.10 34.11 34.12 34.13 34.14 34.15 34.16 34.17 34.18 34.19 34.20 34.21 34.22 34.23 34.24 34.25 34.26 34.27 34.28 34.29 34.30 34.31 34.32 34.33 34.34 34.35 34.36 34.37 34.38 34.39 34.40 34.41 34.42 34.43 34.44 34.45 34.46 34.47 34.48 34.49 34.50 34.51 34.52 34.53 34.54 34.55 34.56 34.57 34.58 34.59 34.60 34.61 34.62 34.63 34.64 34.65 34.66 34.67 34.68 34.69 34.70 34.71 34.72 34.73 34.74 34.75 34.76 34.77 34.78 34.79 34.80 34.81 34.82 34.83 34.84 34.85 https://jaredgoldenforcongress.com/endorsements/
- ↑ 35.0 35.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 36.0 36.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ https://www.facebook.com/notes/lewiston-democratic-party/lewiston-democratic-party-unanimously-votes-to-endorse-jared-golden-for-congress/10155268669178369/
- ↑ https://twitter.com/golden4congress/status/913801719699660805
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 41.0 41.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ https://www.fec.gov/data/elections/house/ME/02/2018/
- ↑ https://www.maine.gov/sos/cec/elec/results/results18.html#nonrank
- ↑ http://www.sunjournal.com/bruce-poliquin-has-almost-2-million-in-campaign-cash-far-more-than-opponents/
- ↑ http://www.maine.gov/sos/cec/elec/upcoming/index.html
- ↑ 52.0 52.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ https://www.npr.org/2018/11/13/667435326/facing-defeat-maine-republican-sues-to-block-states-ranked-choice-voting-law
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 56.0 56.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ https://wgme.com/news/local/judge-denies-polquins-request-to-stop-rank-choice-voting-process
- ↑ https://www.newscentermaine.com/article/news/local/rcv-fight-poliquin-calls-for-new-election-if-judge-does-not-rule-against-ranked-choice/97-618377856
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 69.0 69.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.[permanent dead link]
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
External links
- Candidates at Vote Smart
- Candidates at Ballotpedia
- Campaign finance at FEC
- Campaign finance at Center for Responsive Politics
- Official campaign websites for first district candidates
- Official campaign websites for second district candidates