This is the website of Abulsme Noibatno Itramne (also known as Sam Minter). Comments here or emails to me at are encouraged... or follow me on Twitter as @abulsme.




February 2019
« Jan    

Stuff over at Election Graphs

This week I’ll finally be doing some election geek posts over at with some analysis of the difference between the final state poll averages I had in 2008-2016 and the actual election results.

I just posted the first one a few minutes ago.

That kind of stuff is now over there, not here, so if you want it, you either need to be checking itself, subscribe to it with an RSS reader (RSS link), follow @ElectionGraphs on Twitter, or follow Election Graphs on Facebook.

This is still analysis of old stuff. New stuff for 2020 will be coming soon, but not quite yet. I will probably post again here once that actually starts. But if you want my “election stuff” follow one of the above…

One preview graph from the first of this series of posts…

Brandy didn’t win this time

Maybe she didn’t win her race this time… but I’m pretty sure she isn’t done with public service of one sort or another. Like her Facebook page to keep up with her in the future!

I Voted For My Wife!

Just finished filling out my ballot. I got to vote for my wife!

We will be dropping all three ballots from our family off at our closest drop box very soon.

If any of you actually live in Snohomish County Fire District 1 (map below) and haven’t voted yet, there is still time! Ballots need to be postmarked today, or in a drop box by 8 PM this evening. My wife and I thank you for your vote!

Voters’ Pamphlets and Ballots Dropped – Vote Brandy!

The official voters’ pamphlets dropped a few days ago for the local primary elections on August 1st, two weeks from today. The ballots have been delivered as well. People are already voting.

The above is my wife Brandy’s section of the voter’s pamphlet. I’m very proud of her. She’s been getting lots of very positive reactions at various local events, and we keep hearing from more supporters. Win or lose, this has been a great experience. But of course we want Brandy to win, right? There are five people running for Snohomish County Fire District 1 Commissioner Position 3, and the top two from the primaries move on to the general election.

So if you haven’t yet, it would be great if you took a few minutes to help out by doing a few things… ESPECIALLY if you live in Snohomish County… but even if you don’t.

  • Like and share her Facebook page
  • Visit her website
  • Donate to her campaign!
  • If you have something to say or ask about the campaign, leave a message on her Facebook page as well
  • And finally, of course, if you actually live in Snohomish County Fire District 1 (map below), VOTE for Brandy!

Don’t wait, do it now! :-)

Thanks all!

And here is that map. Fire District 1 is actually three discontinuous pieces. Odd. But there you go. The areas surrounded by blue lines are all in Fire District 1. I think. :-)

Trends in the 2017 Special Elections

It has been a couple days since the GA-6 and SC-5 election results, and there are other things in the news now, but I have still been frustrated by a lot of the spin about these races. Specifically, I’ve heard both Republicans and Democrats framing everything about how the Democrats have now lost four in a row, they are showing they can’t win, they are in trouble, they have to change their approach entirely to ever hope to win, etc. Republicans are of course crowing about their victories, but I’ve also heard Sanders-wing Democrats trying to make a case about how the results show that their wing of the party does better and the more centrist Democrats are doomed. Most of this is nonsense. As is my wont, I made a chart showing another way to look at things.

Now, to be fair, history has shown that drawing ANY conclusion from House special elections is dangerous. Special elections are special. And it is a long way until the 2018 elections still. The world in November 2018 is going to look a lot different than the world in June 2017. And we only have four data points. So take ANY conclusion based on this data with a huge grain of salt.

A bunch of the analysis I’ve seen has compared the House special election results to the 2016 PRESIDENTIAL results too. Huh? Why would you do that? Apples and oranges. Compare House races to House races instead. Now, even there, there are critical differences. Presence or absence of incumbents for instance. Lower turn out in special elections. All sorts of things. But at least compare the same kind of race.

In any case, when you do compare congressional race to congressional race, here are the numbers for the four special elections that had a Republican running against a Democrat. (I’m ignoring here the special election in California’s 34th that had two Democrats running against each other.)

  • Kansas’s 4th
    • 2016: Democrat 29.6%, Republican 60.7% -> Margin 31.1%
    • 2017: Democrat 45.7%, Republican 52.5% -> Margin 6.8%
    • Shift: 24.3% more Democratic
  • Montana’s At-Large
    • 2016: Democrat 40.5%, Republican 56.2% -> Margin 15.7%
    • 2017: Democrat 44.1%, Republican 50.2% -> Margin 6.1%
    • Shift: 9.6% more Democratic
  • Georgia’s 6th (numbers as of election night)
    • 2016: Democrat 38.3%, Republican 61.7% -> Margin 23.4%
    • 2017: Democrat 48.1%, Republican 51.9% -> Margin 3.8%
    • Shift: 19.6% more Democratic
  • South Carolina’s 5th (numbers as of election night)
    • 2016: Democrat 38.7%, Republican 59.2% -> Margin 20.5%
    • 2017: Democrat 47.9%, Republican 51.1% -> Margin 3.2%
    • Shift: 17.3% more Democratic

These shifts are large. 9.6% to 24.3% more Democratic depending on the district. The average of these four is a 17.7% move toward the Democrats.

Now, in real life, there are lots of factors in Congressional races. In real life districts will do all sorts of different things in 2018. But lets look at a simplified model for a minute. What if all 435 districts got 17.7% bluer? We get the chart below.

The blue line shows the election margins in all 435 districts based on the 2016 results, ordered from the most Democratic district to the most Republican district. Republican districts are positive, Democratic districts are negative. The place where the line crosses the X-axis is the number of Democrats in the House, currently 194. It takes 218 to control the House.

The red dots are the four special elections we have had. They are displaced downward from the blue line since the Democrats did better in the special elections than they did in 2016. The amount they are shifted downward represents the shift in the margin from 2016 to 2017.

The orange line is where we would be if all districts moved like the average of these four special elections. Again, we know this won’t happen exactly for any number of reasons, but this is to illustrate the degree of shift these four special elections represent.

With this amount of movement in the margins on the individual races, you end up with a 55 seat swing in the House, resulting in a Congress with 249 Democrats to 186 Republicans. That would be a substantial majority.

But you don’t even need that 17.7% shift. A 12.5% shift would be enough to just barely squeak by with a 218 seat majority. So, no, a Montana At-Large sized 9.5% shift would not be enough to give the Democrats the majority. But if they match the shift in any of the other three districts, the Democrats win the House.

Now, that may not happen. There are lots of reasons why that may not happen. But all the comments about how because they lost these four races the Democrats are doomed, or that they have to change their whole strategy to win, or that the Democratic brand is toxic, or anything of the sort… those takes are all just ridiculous on their face. What we’ve seen in these four races are massive movements toward the Democrats compared to just seven months ago… enough to show that a 12.5% movement, which might have seemed out of reach right after the November elections, is actually well within reach.

If Republicans want to protect themselves, they need to recognize the danger, and CHANGE their approach, and start defending their close districts differently, not just keep saying that “the Democrats keep losing!”. What the Republicans are doing is NOT working. Yes, they held these seats, but all these races were much closer than they “should have been”, and they had to put in a lot of resources to hold things even there. What they are doing is NOT working. Yes, the “Ha! Ha! We won!” act is fun, and it is nice to win and gloat about it, but if they are serious about holding the House, they need to be realistic about this as well.

Meanwhile, if Democrats want to capitalize on the trends, they need to be confident and be proud of these huge gains, not get paralyzed by self doubt and calls to change everything just because a 20% shift wasn’t quite enough to win Georgia’s 6th. It was a 20% shift!! That is HUGE! The fact that these districts went from places where Democrats lost by 16% to 31% to districts that Democrats lost by 3% to 7% shows that they should be pushing and competing hard in any district they lost by less than 25%, maybe even 30%. KS-4 showed it is possible for them to generate moves that size. They should attempt it.

May 2017 Update: A look at Trump favorability vs job approval

Back in March I took a look comparing Trump’s favorability rating (% saying they have a favorable opinion minus % saying they have an unfavorable opinion) to his net job approval (% approving of his job performance minus % disapproving of his job performance). This was interesting because these two ways of measuring Trump’s popularity were not really moving together.

I’ve updated those charts through today. (Once again using data for the smoothed trends.) Here is what we have:

Net job approval is much more volatile than favorability rating. This makes sense. People are basically answering, “How do I think Trump is doing RIGHT NOW?” vs “How do I like Trump overall?”. Both have been trending down… down meaning worse for Trump… with the job approval swings looking much more impressive than the slow gradual decline for favorability.

I actually think the favorability number is the more critical one to look at though. Job approval going down just means Trump had a bad week or two. It can easily bounce back if the next week goes better. Favorability going down though probably means people who voted for Trump are actually losing faith in him. They are not just saying he didn’t do great recently, they are saying they no longer like him. Big difference. And that has been slowly heading down since the beginning of February, and seems to have accelerated since the second half of April.

Favorability swings can be reversed too of course, it just seems harder to move than job approval. Having said that, these charts are extended back before the election for a reason. Note the huge swing upward in Trump’s favorability that started a couple weeks before the election and peaked in December. That was a big move in Trump’s direction. A big part of that was just an election bump and people “giving him a chance”, or giving him a boost simply for being President Elect. But it just shows that the right events can move things a lot pretty quickly.

And it shows that Trump has still not come anywhere close to losing all of the additional people who started thinking more favorably about him during that time period. Some of them, sure, but he is still looking a lot better now than he was right before the election. To all the folks hoping for Congressional Republicans to turn on Trump, I’m thinking you have to see the blue line above break the October low before you start seeing any of that sort of thing happen.

But we shall see. :-)

A look at Trump favorability vs job approval

With all the hype today about the latest Gallup poll showing Trump’s job approval rating hitting a new low, I thought I’d look at the polls a little further. First of all, the usual advice…  never look at single polls, look at averages. So look at job approval trendlines rather than just looking at the Gallup trend. Also though, I’ve been looking at favorability trendlines as well as job approval, because it goes back prior to Inauguration Day. And in both cases, I prefer looking at the “net” numbers (positive ratings minus negative ratings). So time to make my own graphs based on Pollster’s trend lines:

I’ve gone all the way back to the beginning of October to show the last inflection point prior to the election. Trump’s favorability reversed direction and started improving around the middle of October after bottoming out at -25.4%. (Bottoming out for that time period anyway, he was worse than -30% at a couple times prior to winning the nomination.) Roughly speaking this last pre-election reversal came somewhere between the 2nd and 3rd debate.

Then after he won the election the improvement in his favorability accelerated dramatically, moving to by far the best levels he had ever seen. Presumably this comes from people just feeling more positively about him simply because he won the election. Since December 1st, Trump’s net favorability has stayed in a very narrow 1.8% band from -5.6% at the best, to -7.4% at the worst. For all intents and purposes, Trump’s favorability has been flat for over three months now. Now, it has never been positive, but it has not been getting worse for Trump…  or better. Just flat.

As of inauguration day though, there was an additional measure. Job Approval. This actually started out positive, with more people approving of Trump’s performance in the job than disapproving. But this didn’t last long. Aside from a slight bump toward the end of February, the trend has been down. The longer Trump has been President, the lower his net job approval is going. It will be interesting to see how far this trend continues.

The favorability line has been the line I have watched more, leaving me with the impression that the public is so polarized that virtually nobody is changing their mind (in either direction) about Trump. But the job approval numbers tell a different story. This number is indeed shifting, and shifting away from Trump dramatically. Why the difference?

Well, of course, these are different sorts of questions. Favorability essentially measures how the public feels about a person in general. How much they “like” them. Job approval specifically measures how people think the person is doing in the job. It is very possible for someone to feel favorable about Trump (that is, they like him), while still thinking he is doing a bad job.

That is exactly what we seem to be seeing. Quite a few people are shifting toward thinking that they don’t approve of how Trump is actually performing in the job of President… but they still aren’t at the point where they will say they don’t like him.*

My gut feel is that while the job approval number is important, the real signal of a change in Trump’s political fortunes will be if the favorability numbers start to drop as well. We haven’t seen that yet. In fact he is still doing quite a bit better than he was right before the election. But surely if job approval keeps falling, at some point favorability will too… right?

(Meanwhile, I noticed another curiosity, which is that even while all this other stuff has been going on, ever since last summer… so well before the election… right track / wrong track numbers have been been moving dramatically toward right track… although wrong track does still win… What is up with that?)

*This is also where looking at separate trend lines on job approval for approve and disapprove rather than just the net value is interesting despite my preference for the net, because it looks like approve numbers are flat, while disapprove numbers are growing, which means that it isn’t so much people shifting from approve to disapprove, as folks who were undecided picking a side… the disapprove side. But I don’t think this changes the overall picture I’ve described.


Electoral College: The Actual Presidential Vote

The Electoral College voted on Monday December 19th. There were faithless electors this year, so the final results differed from the “earned” results reported in my “Final Forecast and Election Night Updates” post.

Despite the hopes of groups like the Hamilton Electors, the number of Republican faithless electors was nowhere near the 37 that would have been needed to send the election to the House. Only 2 Republican electors actually abandoned Trump. In fact, not only was the goal of stopping Trump not achieved, but the efforts backfired completely. In the end there were more Democratic defectors than Republican defectors, so Trump’s margin actually increased from a 74 electoral vote win to a 77 electoral vote win. Not quite what those campaigning for electors to vote independently were hoping for.

Lets look at the details of the final counts.

The last state called was Michigan on November 28th. The “earned” electoral vote based on the states won and lost at that point was:

  • Donald Trump 306
  • Hillary Clinton 232

When the electoral college voted, there were 7 faithless electors. 5 of these were Democratic and 2 were Republican. This was the largest number of faithless electors since 1872 when 63 electors pledged to Horace Greeley did not vote for him… because he had died between the November election and the December electoral college vote. Not counting 1872, since perhaps one shouldn’t count not voting for a dead candidate, this was the largest number of faithless electors ever.

The 7 faithless electors voted for a variety of different candidates, making the official totals:

  • Donald Trump 304
  • Hillary Clinton 227
  • Colin Powell 3
  • John Kasich 1
  • Ron Paul 1
  • Bernie Sanders 1
  • Faith Spotted Eagle 1

An additional 3 Democratic electors attempted to be faithless, but were thwarted by state laws and procedures in Maine, Minnesota, and Colorado. It is possible some or all 3 of these electors may end up filing lawsuits over this. If lawsuits actually happen and are all successful (which we obviously can not say at this point), Clinton would lose 3 additional electoral votes, Sanders would gain 2, and Kasich would gain 1. If this were to happen, Trump’s winning margin would increase further to 80 electoral votes.

Normally, we think of the Vice Presidential race as locked with the Presidential race as part of “tickets”, but in fact as far as the electoral college is concerned, these are actually two separate votes, and the faithless electors also split their choices for Vice President. The Vice Presidential results were:

  • Mike Pence 305
  • Tim Kaine 227
  • Elizabeth Warren 2
  • Maria Cantwell 1
  • Susan Collins 1
  • Carly Fiorina 1
  • Winona LaDuke 1

And with that, absent any minor adjustments from potential lawsuits by the three foiled Democratic faithless electors, or Congress doing something unexpected on January 6th, the 2016 electoral results are set.

Donald Trump wins.

Donald Trump August 19, 2015

Photo by Michael Vadon [CC BY-SA 2.0], via Wikimedia Commons

Electoral College: Post Mortem

It took almost 20 days, but the last state, Michigan, was finally called for Trump on Monday November 28th.

The final results of Election 2016 are now known:

Clinton 232 Trump 306, a 74 electoral vote win for Trump.

(That is absent faithless electors or something completely unexpected coming out of recounts of course.)

(UPDATE 2016-12-20 19:27 UTC: The electoral college has actually voted, and there were 7 faithless electors. The final count was Trump 304, Clinton 227, Others 7. This is a 77 electoral vote margin for Trump. For details, see my post titled “The Actual Presidential Vote“.)

This site’s final update predicted that the result would be somewhere between a 210 electoral vote win for Clinton and a 66 electoral vote win for Trump, with the “expected” result being an 8 electoral vote win for Clinton.

Obviously I was wrong. Not just on the winner, but the result didn’t even come in within the “range of the reasonably possible” that I listed. A range which had seemed overly broad before the election. A 66 electoral vote win for Trump (or a 210 electoral vote win for Clinton) seemed like a complete fantasy. Yet Trump exceeded that margin.

Having said that, the “expected result” was actually closer than almost all electoral vote trackers out there. So I actually did about as well as could have been done given the raw data that was available. So the raw output of my model on Election Graphs was pretty good. Perhaps I could have picked a bit wider window for the “swing” states than 5%, but 5% was generally reasonable. Although of course I wish I had gotten everything exactly right like I did in 2012, I am happy with how my model performed. I may make tweaks for 2020, but I will not dramatically change what I do with the model itself in 2020.

I do fault myself however for some of how I interpreted that data in my analysis posts, most critically I concentrated too much on the “Expected Case” and the “Tipping Point” metrics, and not enough on the full range of variation between the best cases. Like most electoral college trackers, this led me to minimize the chances of Trump’s win because “he has never led the race and isn’t ahead now” while essentially ignoring the fact that while that was true, he spent most of the last 100 days close enough that a systematic polling error or significant movement in the last few days could erase Clinton’s lead. Both seem to have happened. My model was spitting out the “Trump Best Case” the whole time, but for the most part, I downplayed the best cases. That was a mistake.

Lets dig in and look at the details.

Warning in advance, the remainder of this post is likely only to be of interest to “data geek” type folks. If that isn’t you, feel free to stop now… or just skip down to the “thank you” section at the end.  If you are the data geek type, dive in with me to a lengthy discussion of the details and what lessons they may provide for 2020.

If you prefer listening to reading, or just want to hear about this in another way, I also discussed much of what I am now including in the post mortem in the November 11th episode of the Curmudgeon’s Corner podcast.

How did I do state by state?

In terms of individual states (and congressional districts), I of course did not match my 2012 record of getting 56 right out of 56. I ended up getting 5 wrong:

  • Expected Strong Clinton: Wisconsin went for Trump instead of Clinton
  • Expected Weak Clinton: Michigan went for Trump instead of Clinton
  • Expected Weak Clinton: Maine CD2 went for Trump instead of Clinton
  • Expected Weak Clinton: Pennsylvania went for Trump instead of Clinton
  • Expected Weak Trump: Nevada went for Clinton instead of Trump

So there were 4 places where I erred toward Clinton and 1 where I erred toward Trump.

Of these, four were in the “weak” category, with margins in my averages of 2.6% or less. They were in my too close to call categories, and while I would have liked to have gotten more right, my model did indeed say they could easily go either way.

The only big surprise here was Wisconsin. The polling average had Clinton up by 7.1%, but Trump won anyway. There is nothing to say there other than the polling was way off in Wisconsin. Way off. I’m sure much will be written about why that was the case.

A state that I hadn’t even classified as a swing state going the opposite direction as expected is obviously how the final result was able to end up completely outside of the expected range. Wisconsin going for Trump was simply not contemplated. All the other states that went for Trump were within the range of options this site identified as plausible.

Of course, there were other states that I did not get wrong, but the margin was still off by more than expected. That is a different kind of analysis that I won’t do today.

How did I do on the overall result?

Looking at the over all electoral college result, lets compare with where some of the other sites had the race at the end:

  • Clinton 323 Trump 215 (108 EV Clinton margin) – Daily Kos
  • Clinton 323 Trump 215 (108 EV Clinton margin) – Huffington Post
  • Clinton 323 Trump 215 (108 EV Clinton margin) – Roth
  • Clinton 323 Trump 215 (108 EV Clinton margin) – PollyVote
  • Clinton 322 Trump 216 (106 EV Clinton margin) – New York Times
  • Clinton 322 Trump 216 (106 EV Clinton margin) – Sabato
  • Clinton 307 Trump 231 (76 EV Clinton margin) – Princeton Election Consortium
  • Clinton 306 Trump 232 (74 EV Clinton margin) – Election Betting Odds
  • Clinton 302 Trump 235 (67 EV Clinton margin) – FiveThirtyEight
  • Clinton 276 Trump 262 (14 EV Clinton margin) – HorsesAss
  • Clinton 273 Trump 265 (8 EV Clinton margin) – Election Graphs
  • Clinton 272 Trump 266 (6 EV Clinton margin) – Real Clear Politics
  • Clinton 232 Trump 306 (74 EV Trump margin) – Actual result

First of all, I guess I am permitted to toot my own horn a bit. While I did not predict a Clinton victory, I came closer to the final result than all but one of the outlets above. That is something, right?


That over with, I was still quite a ways off.

I should also point out that the above is ONLY due to changes added with polls that came out on the day before election day. My very last update on election day itself had the 8 EV Clinton margin. But the update before that, on Sunday, had me at 108 electoral votes, right there with so many others. Indeed, because I had been in broad agreement with so many other outlets, and my final update caused me to deviate quite a bit, I included caveats in my last update basically saying I didn’t believe it, there were probably outliers  impacting the data, and my Sunday numbers were probably better.

Which brings me to the lessons of this post mortem…


Trust my own method and data

Now, frankly, the swing on the last day may well have just been dumb luck. Random noise happening to go in the right direction. But it also could have been an indicator of the actual movement. Right or wrong, given I had been using a fixed methodology all election season, I should have stuck with it fully. After the election, if I was wrong, I could and should use that to learn for the next election cycle. But I started making excuses because I was not matching all the other election trackers. I should not have done this, I should have taken the results I was seeing seriously, and should have based my commentary on that.

My final update had an 8 EV Clinton win with a tipping point of only 1.6% in Pennsylvania. Only that one single state needed to flip in order for Trump to win. My final update did mention that Trump had made it tight again. I summed it up like this:

Maine CD2, Pennsylvania, Nevada, North Carolina, Florida, and Iowa are all within 2% at the moment. They could still go either way based on the current averages. That is enough to swing the election.

So, as has been the case for awhile, a Trump win would be surprising, but should not be shocking. Trump has a path.

Without looking at all the other forecasts and making excuses for why I was different, this should have read more like:

Maine CD2, Pennsylvania, Nevada, North Carolina, Florida, and Iowa are all within 2% at the moment. They could still go either way based on the current averages. That is enough to swing the election. Even more states are within 5%, and they could easily flip as well.

The tipping point is only 1.6% in Pennsylvania. Clinton’s lead in Michigan is also only 2.6%. A small last minute surge too late to be caught in polls, or a small polling error, could easily flip either or both of these states, and thus the election.

Clinton is ahead, she is the expected winner, but since early October things have been trending toward Trump, with only a brief interruption after the third debate and before the Comey letter.

The race is now very close. While Clinton is still favored, the bottom line is there is a reasonable chance this could go either way.

But I did not say that. And the reason was primarily because in that final update, I looked like an outlier, and I therefore didn’t believe what my own model said, specifically in terms of just how close it really was.

Which brings us to the next lesson.

Trust the Uncertainty

For the three election cycles I have done this, I have used a 5% margin as the boundary for what I call the “weak states”. States that you should consider to be too close to call and which could go either way. When justifying this, I have always said something like this:

Obviously 5% is an arbitrary number, which conveniently is a nice round number too, but between possible polling error, and possible last minute swings that happen to close to election day to be reflected in polls, 5% seems reasonable. A 5% last minute swing in response to news events is a bit large, but perfectly possible. Similarly a 5% polling error is a bit large, but possible. And my model only looks at the margin between the two major candidates, it does not explicitly account for the group of undecided voters, they could also possibly swing a result by that much in some cases. 5% seems as good a place to draw this line as any.

While having some sort of empirical way to define this line may be preferable, this election has shown that 5% is indeed pretty reasonable, and there are arguments that it should be even larger. (See Wisconsin again, which Trump won while my average had Clinton ahead by more than 7%.)

With that in mind, lets look at the two main graphs the site provides once again:



For almost all of the last 100 days of the race, we were in the “could go either way” zone. The exceptions were short periods in August, right around the Access Hollywood tape release, and right before the Comey letter. The rest of the time we had a close race.

Yes, Clinton was ahead the whole time. Yes, Trump had never actually led in my model. But we were within my own self-defined “this is close enough we can’t trust this” margin. This was a close race. And yes, there was a “ceiling” for Trump, but that ceiling was within the margin of error for this kind of model.

I let myself think mostly about the center line of the model, and not as much about the “best cases”. At least toward the end of the campaign cycle. I had convinced myself based on looking at other people’s models that my best cases were probably too extreme. Perhaps useful 6 months out to reflect how much things could change over many months, but certainly too wide in the last couple of weeks or days.

But even if I’d set my thresholds at 2% instead of 5%, my last couple of updates would have shown it too close to call. At 3% it would have been my last three updates. This was close by my own definition of close, and my updates minimized that. They should not have.

And Trump was surging, which brings me to my next lesson:

Don’t call the end of trends too soon

On the Sunday before the election my post was titled “Trump Surge Sputtering Out?“. While the next update did indicate Trump had made the race close again, that was the post full of caveats about how I didn’t really believe the data.

The “looks like Trump has topped out” call was indeed premature. There was indeed mixed data. Clinton was improving on some metrics. But all within the realm that could have been noise. The overall trend was still toward Trump. There was no definitive reversal at that point, as the very next update showed, or would have if I had trusted my own data. If I had, I would have said that last update showed that the trend toward Trump had continued, and had made the race once again very close.

The actual flow of the last 100 days seem really to only have a few phases:

  • Before the August Trump campaign shakeup, Trump was in a steady decline
  • After the August shakeup, Trump maintained discipline and made it very close by late September (or possibly he was leading if the same polling errors that existed at the end of the race were present then too).
  • The first debate caused Trump to crater. Clinton’s margin grew rapidly.
  • Trump started recovering almost exactly when the Access Hollywood tapes came out. Far from hurting him, the media pile on about how this was probably the end of Trump’s campaign seems if anything to have rallied people to him.
  • After the third debate, there is evidence that people were starting to move away from Trump again, his “best case” was once again a loss. But this didn’t last long.
  • After the Comey letter the movement toward Trump (or away from Clinton) resumed. This trend continued up until the last pre-election polls.

In between those there was a bunch of movement, and I pointed out some of them as trends. Many were noise. When you are looking at a jaggy signal full of noise, it is hard to determine where to start saying something is a real trend rather than random movement. Maybe even the trends I called out above are illusions. But it is clear I should have been more conservative in calling out trends before they were dramatic enough to know with a decent amount of certainty that they were not just noise.

Don’t assume trends will continue either

Near the bottom of the trend that started with the 1st debate and ended with the Access Hollywood tape I said this on October 14th:

There is no time left for a Trump comeback from behind win from these levels. It would take something massive that would completely reverse everything we know about this race so far. It would be an unprecedented reversal. Impossible? No. Incredibly unlikely? Yes.

A few weeks ago Trump had managed to make this race close. But it was short-lived. Starting with the debate he has been dropping steadily. We don’t yet have signs that we have hit bottom either. There have been new negative stories about Trump almost every day. Further drops would not be surprising.

We’re no longer really talking about who will win this election. Clinton will win this election. The only question is by how much.

Now, it WAS the biggest comeback in the history of American presidential races in terms of how different the outcome was compared to polling at that time given how little time was left. And I had caveats that it wasn’t impossible. But still, that last paragraph completely dismissing the possibility of a Trump comeback was flat out wrong. It was clearly putting way too much stock in the trend at that moment, and not taking into consideration how little it would take to put Trump’s best case back into the win column.

Indeed, at the time of the comment we’d just seen polls move just about 6% in Clinton’s direction in just a couple of weeks, showing that rapid movement in the polls was very possible. There was plenty of volatility. Plenty of room for movement. A 6% move in the opposite direction in the 26 remaining days should not have been dismissed out of hand.

Save the “it is over” comments until it is actually over. Things can change a lot in just a small amount of time if the right things happen in the course of a campaign. And they did.

Other lessons

I think those were the main lessons, but there were a few others too that will also inform my choices going forward for 2020.

  • Showing polls at their mid-point: This cycle I used the midpoint of the time in the field of polls for both determining which polls to include in an average, and showing them on the state detail graphs. This means that if there is a change caused by a news event, the change should be CENTERED on the event rather than START at the event. It means that the movement caused by an event often starts on the chart prior to the event itself. How much so depends on the lengths of the polls that were in the field at the time. Although there are good reasons I thought this was better, it ended up being confusing, even for me. Several times during the cycle I said things like “but this change started before event X”. Some of those (but not all) were just me misreading the graph because of this confusion. Putting all polls at their end date would ensure that any influence from an event would always only show on the part of the charts after that event. (There are down sides to this as well, but it might be better on balance.)
  • Third Parties: Although he faded in the last weeks, for awhile McMullin was getting lots of individual polls showing him in 2nd place, or even 1st place in Utah. Johnson came in 2nd in two other individual polls in some states earlier in the cycle as well. The way my site is currently structured, it does not deal properly with 3rd party candidates who are actually doing strongly enough to have a shot at 2nd place or better. I had a high level plan in my head (but nowhere else) for how to revamp my site to deal with this situation, but by the time McMullin surged it was too late to implement it. This may or may not end up mattering in 2020, but I should adjust the site so it can handle these situations from the beginning, so if it does arise, I don’t end up scrambling to deal with it.
  • Concentration on the margin: Everything on Election Graphs presents things in terms of the Republican minus Democrat margin. Not only does this break down in the 3rd party case mentioned above, but it also fails to give any way to represent how big the undecided group is and how that might matter. It also can’t differentiate between one candidate gaining, and the other losing ground. Both show up similarly in the margin, but the interpretation for what is happening in the race is different. I think the margin view is very useful, but there is a need to also see the lines for the individual candidates, so I should consider showing that as well.
  • Outliers: There were persistent outliers from some pollsters. The case that comes most easily to mind is Google Consumer Surveys persistently saying that Clinton had not just a lead but a big lead… in Kansas. This was ridiculous, and luckily most of the time there were enough other polls in Kansas to keep me from constantly saying Kansas was a possible Clinton pick up. I only said that a couple times, and each time I noted that I didn’t believe it. But it always made Kansas look closer than it really was. Even without the Kansas case, outliers introduced volatility where there wasn’t any in a variety of states, or pushed the average in one direction or another. I need a better way to minimize the impact of outliers. There are a variety of options. I should look into them.
  • Poll Selection: There were a number of cases over the course of the year where there were polls of dubious quality. There was also sometimes a question of “is this a poll, or is it a model?”. Or if a pollster was releasing results selectively to favor one side or the other. This site’s bias is to include as much as possible, so I included almost everything. Next time, I need to have clear written guidelines in advance of what gets included and what does not, and I need to stick to it.
  • Tracking Polls: Because I base my averages (usually) on “the last five polls” once certain outlets started releasing polls daily, they have the power to completely take over the averages, especially in lesser polled states. This time around I countered this by including only one poll per week from these tracking polls. This solution is not ideal though, as I am clearly ignoring data that might be useful. I need to come up with a solution that can properly deal with tracking polls, incorporating the data they provide, while not improperly weighting them vs the one off polls.
  • Data acquisition: My data acquisition process is manual and quite time consuming. It is exhausting physically. I actually kind of enjoy it, but the raw amount of time it consumes, especially in the last few weeks before the election, are disruptive to the rest of my life and unsustainable. It was hard to keep up. Especially with the proliferation of 50 state polls toward the end. At times I was extremely frustrated when I knew certain polls were released, but I didn’t get them incorporated for a day or two, on occasion even three days. I want to be as up to date as possible, and that requires more automation. I have been reluctant to cede control over poll selection by relying exclusively on the data feeds from one of the big poll trackers that provide an API, but I may have no other option for 2020. (Also, at least for 2016, it seemed that I was up and running with my 2016 poll tracking months before those other trackers had 2016 listings up on their sites, although maybe their APIs were already returning the raw data, I don’t know.)
  • What to include in average: I like the simplicity of “last five polls” (even with the exceptions I carve out for that). But there is an argument that in the early parts of a campaign it includes too much, and in the latter parts too little. Five polls leaves a lot of room for a single poll to have a big influence. In addition to poll selection questions noted above, the question of how to construct the average itself matters. 5 polls? 10 polls? Some sort of weighting that decays over time? For any day just show the average based on polls actually in the field that day? (You’d still need logic to give a value when no polls were in the field.) If I open the door to weighting the polls, do I weight on other things? Sample size? Previous accuracy of the pollster? This would be throwing out the “keep it simple” tenet of Election Graphs. I already added some of this with weighting multiple results from single pollsters. But is there more I could or should do that would improve things without making the math completely inscrutable to all but the most interested? Or is the site already there actually? I’ve had multiple people say they don’t understand the charts at all. Should I even care about keeping it simple? Or should I just feel free to add all the complications I think would improve the result? Or is all that just tinkering around the edges without actually making an improvement, and 5 polls is just fine…
  • Odds: With a race that is close like this one, everybody started looking at the “% chance of winning” not just the expected electoral college results. This is understandable. My model provides absolutely nothing along those lines at the moment. The accurate interpretation of my model would have just been “Sorry, can’t tell you who will win, too close to call!” for most of the last 100 days. To do odds right, I would have to do a real simulation of some sort, like many other people do. But many other people already do that, and do it well. What would I add? I could fake a “percentage chance” based on the model I do have. I could just give what percentage of the “bubble” between the two best cases had each candidate winning. In the case of my final data for this election, that would have shown a 76.1% chance of a Clinton win and a 23.9% chance of a Trump win. That would have put me in between the percentages FiveThirtyEight and ElectionBettingOdds were giving. Of course it would not actually be “odds” in the mathematical sense. It was not calculated in a way that should be called odds. But it is a percentage. And people would probably interpret it as odds. It would also be quite volatile. On the Sunday before the election I would actually have had Trump’s “odds” even higher at 34.8%. A couple weeks earlier I would have had Trump at 0%. People seem to really like having a “% to win” number, I do too. But would putting a number like this just be completely misleading?


It would have been nice to get 56/56 again. But none of the election trackers that I follow did, and my final results were actually better than all but one of them. So on the whole, I think 2016 came off about as good as it could have given that everybody shared the same underlying data. From what I understand, even Trump’s internal polling predicted he would lose, and his win was a surprise to his own team.

So I did pretty well, and I had fun. And really, I do it because it is fun for me. This site does not make me money, it costs me money. And time. Lots of time. So it is important that I have fun with it, and I did.

Thank You

But also thank you to all the people out there who have been following me.

This site does not have the traffic of the “big guys” of course, but there were still a bunch of you out there.

Page views for the site (including both proper and where these blog posts live) peaked at 23,097 on November 8th (UTC). Unique visitors peaked on November 9th (UTC) at 11,268. And although a few have dropped off since the election, we peaked at 2,334 likes on the Facebook page, 215 followers of the low-volume summary only @ElectionGraphs twitter account, and 405 followers of the @ElecCollPolls twitter account that tweeted out every single new poll as I added them. There were even six people who donated money to the cause through my tip jar in the time since I added it a number of months ago.

A few of you have also made it over to the current events podcast Curmudgeon’s Corner podcast which I do with my cohost Ivan. If you haven’t, check it out. It is more of an opinionated discussion rather than the kind of straight “here are the facts” kind of analysis here, but we think it is fun and interesting too.

These numbers are big for me, but very small compared to the professionals who do this, or even some of the other amateurs.

None the less, while of course there have been trolls saying my analysis was bought and paid for by Clinton or that the numbers were made up, or whatever, there have also been quite a few people who have written in or left comments to say they really appreciate the site, or who have engaged with me in substantive discussion on the analysis or methods. I really appreciate this positive engagement.

I am so glad that the site was useful and interesting to you in this election season. It makes the time and effort I spent much more rewarding than if I was simply putting this out there and nobody was looking.

And of course thank you to my wife Brandy, daughter Amy, and son Alex for putting up with the many, many hours of my time that this has taken up over the last two years, and especially the last 9 months, that I probably should have been spending with them. I appreciate it so much.

One last time to everybody… Thank you!

There will probably be one last post in December after the electoral college meets to report on the actual official results, including faithless electors if there are any. And maybe a post looking at actual state margins vs the last polling averages in each state sometime before that.

But other than those, Election Graphs will now go dormant for awhile. We’ll see you again for real once we start seeing polls for 2020!

1,436.7 days until polls close on Election day 2020. Stay tuned!

Electoral College: Final Forecast and Election Night Updates

For election night, this post will have the most recent updates at the top. Scroll down for earlier updates. Times listed for updates are hours and minutes since the first states close all polls at 0 UTC (7 PM Eastern, 4 PM Pacific). Updates will be added as states are called by the major news organizations. If you want to see the data in a more raw fashion, the spreadsheet I am using to track changes as states are called can be found here.


A few minutes ago Michigan officially certified their results, and immediately afterwards CNN finally called the state based on those results. As expected, Trump won.

Absent faithless electors, that makes the final results of the 2016 election:

Clinton 232 Trump 306 – Trump wins by 74 electoral votes

(UPDATE 2016-12-21 17:56 UTC – There were indeed faithless electors, making the actual final result Trump 304, Clinton 227, Others 7. That is a 77 electoral vote margin for Trump. For details see my “The Actual Presidential Vote” post.)

This was better than this site’s “best case” for Trump of a 66 EV win that we had on election day.

Trump exceeded the most optimistic projection for him based on this site’s methods. And of course our “expected” result was a narrow 8 EV Clinton win.

Despite that, only one other electoral college tracking site seems to have gotten closer to the final electoral college result than this one. So we actually didn’t do that badly. We did about as well as could be done given the underlying data.

I wrote my post-mortem back on November 10th, and it was written assuming a Trump win in Michigan, but since I haven’t looked at it in a couple weeks, I’ll do a last once over of it tonight before posting it. It will basically look at what this site got wrong, and what it got right, in the 2016 cycle and what changes that may suggest for 2020.


There were a bunch of Michigan counties that reported official results today, but it seems CNN and some other outlets are waiting for it to be fully official before they call the state. Sounds like that might not be until Monday.


As per @DecisionDeskHQ it looks like we should expect an update on Michigan on Wednesday. Everybody is waiting for canvassing to be done before calling the state. But everybody also agrees there is little to indicate that the fact that Trump is ahead will change.


Yup, still waiting on Michigan.


Nope. Still no Michigan. It has now been 7 days since the first states were fully closed. Having hit that milestone, as has been planned for months, I have now turned off Facebook promotion for Election Graphs as a whole, and for this post specifically.

I’ll keep updating this post until Michigan is called, and there will be a handful of additional wrap up posts between now and when the Electoral College votes are official in December, but we’re basically now in “between elections” mode.


Yup, still waiting for Michigan. There has been speculation that we might be waiting until Michigan actually fully completes their process and certifies the results, which won’t be until close to the end of the month. So still we wait.


Still waiting for Michigan. If they are waiting for final certification, it may take awhile yet. We have now taken more time to get the last state called than it took in 2012. We have a long way to go until we match 2008 (which took about 15 days).

I won’t publish the final post mortem until Michigan is called, but I talk about a lot of what is in it in the latest episode of Curmudgeon’s Corner. Darryl Holman, who does the electoral college estimates for HorsesAss also joins us to talk about his own analysis. (And we talk about other reactions and ramifications of Trump’s win as well. Unlike the neutral perspective here, fair warning that the podcast is not politically neutral.)


Yup, still waiting on Michigan. Maybe it will be called sometime this weekend. Or maybe the weekend means there won’t be any updates to its status until Monday. I’m checking a few times a day for updates. :-)


I was asked on twitter why bother even posting about Michigan if it won’t change the result of the election. The reason is that this site is not just tracking who wins and loses the overall election, but also who wins and loses each state, and what the actual margin is. Right now we know Trump wins, but do not know if Trump wins by 42 electoral votes, or if he wins by 72 electoral votes. So we continue tracking until that is known.

We’ll also be back in December to report on the actual results when the electoral college actually votes and we see how many faithless electors we have (if any). We’ve had a couple Democratic electors promise to be faithless. They can now do so without any fear of tipping the outcome, so they are probably even more likely to do so now than before. Since Trump has a healthy margin at this point, some Republican electors might be tempted to go rogue as well, since they too are unlikely to make a difference. If that happens, we’ll report on the final electoral college tally, whatever it may be, even though it won’t change the winner.


Still waiting on a call for Michigan. Hoping it is more like 2012, which took about 90 hours (just under 4 days), than 2008, where it took about 477 hours (almost 15 days) to call the last state. My post mortem is done, just waiting for Michigan. I’ve also recorded an episode of the Curmudgeon’s Corner podcast where Ivan and I are joined by Darryl Holman from HorsesAss to talk about (along with other things) poll tracking and prediction and what went right and what went wrong. The new episode will be out tomorrow.


Still waiting on Michigan. In 2012 it took until about the 90th hour to call the last state. We will see if it is more or less this time.


I used my lunch hour to finish writing my post mortem on how this site did in 2016, and what lessons it brings for 2020. My post assumes Trump wins Michigan, since he currently leads there, but if Clinton pulls out a surprise and wins the state, I have a handful of sentences to change. Since Michigan still has not been called, that post will stay sitting in my drafts folder just a little bit longer.

Still waiting on CNN to call Michigan. Come on already! :-)


Still waiting on CNN to call Michigan.


CNN has called New Hampshire for Clinton. Expected. Since New Hampshire was not a “weak” state this does not change the range of outcomes.

  • Trump best case: Clinton 232 Trump 306 – Trump wins by 74
  • Expected case: Clinton 248 Trump 290 – Trump by 42
  • Clinton best case: Clinton 248 Trump 290 – Trump by 42

Only Michigan is outstanding now. Trump leads. So the Trump wins by 74 scenario is expected as of now, but CNN hasn’t called it yet, so presumably they still see some scenario where that might change. So we continue to wait to finalize these results. Absent faithless electors of course. :-)


24 hours after the first states were fully closed. Still waiting on New Hampshire and Michigan. Both were very close. We may be waiting awhile for things like absentee ballots and such.


CNN has called Minnesota for Clinton and Nebraska CD2 for Trump. Both expected. Because neither of these were “Weak” states, the range of remaining possibilities does not narrow.

Current stats:

  • Trump best case: Clinton 232 Trump 306 – Trump wins by 74
  • Expected case: Clinton 248 Trump 290 – Trump by 42
  • Clinton best case: Clinton 248 Trump 290 – Trump by 42

Still outstanding with no call by CNN:

  • Expected Strong Clinton: New Hampshire
  • Expected Weak Clinton: Michigan


A little sleep and some breakfast later… and CNN has not yet called any more races.

We’ll keep monitoring until all the races are called, then do a quick post mortum on what states we got right, and which we got wrong. So far the averages here had four errors:

  • Expected Weak Clinton Maine CD2 went for Trump instead of Clinton
  • Expected Weak Clinton Pennsylvania went for Trump instead of Clinton
  • Expected Strong Clinton Wisconsin went for Trump instead of Clinton
  • Expected Weak Trump Nevada went for Clinton instead of Trump

The weak states flipping was not a huge surprise. They were “weak” states anyway. The margins were close. By definition of the category they could all have been expected to go either way.

Of the four above Wisconsin is the big surprise.

We’ve gotten all the other states right so far.

This includes Florida and North Carolina, where I specifically doubted my own numbers, but the averages here got it right in the end where many others got them wrong. (My doubts turned out to be correct on Nevada though.)

Still outstanding with no call by CNN:

  • Expected Strong Clinton: New Hampshire, Minnesota
  • Expected Weak Clinton: Michigan
  • Expected Strong Trump: Nebraska CD2


Not that it matters in our system, but as of a minute or two ago, it looks like Clinton passed Trump in the national popular vote. But her support was too concentrated in blue states, so that didn’t translate into an electoral victory.

Also, there have been no more calls for a couple hours, and the vote totals in the outstanding states don’t seem to be moving at the moment and I’ve been updating for 12+ hours straight…  so I think we’ll wrap it up for a bit. I’ll be back after a few hours and will provide updates on those last remaining states when available.


CNN calls Maine-All and Maine-CD1 for Clinton, and Maine-CD2 for Trump. CD2 is another “surprise”. The average had been in the red for awhile but slipped back to the blue before the election.

New numbers:

  • Trump best case: Clinton 232 Trump 306 – Trump wins by 74
  • Expected case: Clinton 248 Trump 290 – Trump by 42
  • Clinton best case: Clinton 248 Trump 290 – Trump by 42

Trump’s margin will be somewhere between 43 and 74 depending on the remaining calls.

Still waiting on:

  • Strong Clinton: New Hampshire, Minnesota
  • Weak Clinton: Michigan,
  • Strong Trump: Nebraska CD2


Looks like McMullin is now in a solid 3rd place in Utah. No longer looking like he might take 2nd.


I can tell from the little map they have in the corner during the Trump speech that they called Pennsylvania for Trump. Another one that had been leaning Clinton in the poll averages. updated range:

  • Trump best case: Clinton 232 Trump 306 – Trump wins by 74
  • Expected case: Clinton 249 Trump 289 – Trump by 40
  • Clinton best case: Clinton 249 Trump 289 – Trump by 40

With this any non-Trump option officially disappears. Margin could still end up between 40 and 74 depending on how the remaining states go.

Still waiting on calls for the following:

  • Solid Clinton: Maine CD1, Maine All
  • Strong Clinton: New Hampshire, Minnesota
  • Weak Clinton: Michigan, Maine CD2,
  • Strong Trump: Nebraska CD2


CNN calls the election as Trump takes the stage, without specifying which additional states they are calling. Presumably those details will come later.


Arizona called for Trump. Expected. New status:

  • Trump best case: Clinton 232 Trump 306 – Trump wins by 74
  • Expected case: Clinton 269 Trump 269 – TIE – Election to the House
  • Clinton best case: Clinton 269 Trump 269 – TIE – Election to the House

Now the best Clinton could do is tie. But she would have to win states she is way behind in and will assuredly be called soon. And she has already conceded. Trump to speak soon.


Clinton called Trump to concede. Done. (We will keep tracking results until all states are called.)


AP has called the election. CNN waiting on calling one more state.


One of the big ones, and one of the big surprises. CNN calls Wisconsin, which the poll average had at a 7.1% Clinton lead, just got called for Trump. This was a state that was supposed to be safe Clinton and not even in play. The new summary:

  • Trump best case: Clinton 232 Trump 306 – Trump wins by 74
  • Expected case: Clinton 269 Trump 269 – TIE – Election to the House
  • Clinton best case: Clinton 280 Trump 258 – Clinton wins by 22

Trump actually improved his best case over the last update because he won a state that wan’t even in play.

To tie Clinton would have to hold Maine CD1, Maine All, New Hampshire, Minnesota, Michigan, Maine CD2, and Pennsylvania.

She is behind in several of those. The scenarios which would have her actually winning would have her do all of the above, plus win Arizona.

Still waiting on calls for these states:

  • Solid Clinton: Maine CD1, Maine All
  • Strong Clinton: New Hampshire, Minnesota
  • Weak Clinton: Michigan, Maine CD2, Pennsylvania
  • Weak Trump: Arizona
  • Strong Trump: Nebraska CD2


Still waiting on calls for these states:

  • Solid Clinton: Maine CD1, Maine All
  • Strong Clinton: New Hampshire, Wisconsin, Minnesota
  • Weak Clinton: Michigan, Maine CD2, Pennsylvania
  • Weak Trump: Arizona
  • Strong Trump: Nebraska CD2


Alaska called for Trump. Expected. Not one of the anticipated swing states. So no change to the summary:

  • Trump best case: Clinton 242 Trump 296 – Trump wins by 54
  • Expected case: Clinton 279 Trump 259 – Clinton wins by 20
  • Clinton best case: Clinton 290 Trump 248 – Clinton wins by 42

So far this site has only gotten one state wrong, and that was one where Clinton won when she was not expected to. I expect to get several wrong in the other direction when CNN finally gives up and calls some of these last states.


Note that the two “best cases” assume nobody loses a state that they were leading by more than 5%. It certainly looks possible that Clinton may end up losing a state that she was ahead by more than 5% in. So Trump may end up doing better than his current best case.


Utah called for Trump. As expected. And not one of the close states. So no change to the summary.

  • Trump best case: Clinton 242 Trump 296 – Trump wins by 54
  • Expected case: Clinton 279 Trump 259 – Clinton wins by 20
  • Clinton best case: Clinton 290 Trump 248 – Clinton wins by 42


CNN hanging on and not calling MI, NH, PA, WI. But most others are calling at least some of those for Trump. I’ll continue to track CNN until all states are called, but this thing is over. Trump has won the presidency.


The first “surprise” of the night. This site’s estimate was that Nevada would go for Trump. It was just called for Clinton. Probably not enough. She still has to come back and win in states she is way behind in.

  • Trump best case: Clinton 242 Trump 296 – Trump wins by 54
  • Expected case: Clinton 279 Trump 259 – Clinton wins by 20
  • Clinton best case: Clinton 290 Trump 248 – Clinton wins by 42


Iowa to Trump. Expected as well. So far every state as expected. But Clinton is behind in states she was expected to be ahead in. Her best case is shrinking fast.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 290 Trump 248 – Clinton wins by 42


269 to 269 is not out of the question. Which throws it to the house. And probably Trump, but opens doors for shenanigans.


McMullin very close to 2nd place in Utah.


Trump wins Georgia. Expected. Still no surprise states. But several are in the wings. Clinton’s best case reduces further.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 296 Trump 242 – Clinton wins by 54

Clinton is almost done here unless something changes dramatically.


Washington for Clinton. Expected.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 312 Trump 226 – Clinton wins by 86


Florida called for Trump. As expected. Still nothing going other than how the states led on this site. But this was another close state, and once again reduces Clinton’s best case. And she is behind in some of the close states. Some places have already called some for Trump. CNN hasn’t yet.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 312 Trump 226 – Clinton wins by 86

Fox has called Wisconsin for Trump. If so, game over. The only question will be Trump’s margin.


Clinton can afford to lose Maine CD2 if she wins everything else where she led on this site. That is the only thing she can afford to lose. She has to sweep everything else or she is done.


Oregon to Clinton. Nebraska’s 1st district to Trump. Both expected.

All states have gone as expected on this site so far, but Clinton can’t afford to lose a single state she led in here. Right now that means Pennsylvania, Michigan, Wisconsin, Minnesota, and New Hampshire as the weakest ones. She has to win every single one of them. (Well, losing New Hampshire throws the race to the House, assuming she wins Maine CD2.)

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 341 Trump 197 – Clinton wins by 144

And she is behind in several.


North Carolina called for Trump. That is expected. It is our second close state though, so that takes winning that out of Clinton’s best case. New stats:

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 341 Trump 197 – Clinton wins by 144


California and Hawaii called for Clinton. Both expected. Still waiting on a surprise state, but they must be coming.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 356 Trump 182 – Clinton wins by 174


California, Washington, Oregon and Idaho now closed. None of them are expected to be remotely close.


Colorado to Clinton as expected. Still no states actually going opposite the expected direction.

But all the talk is about the close states that have not been called all leaning toward Trump at the moment.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 356 Trump 182 – Clinton wins by 174


Virginia goes to Clinton as expected. But it was expected to be easy. It wasn’t.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 356 Trump 182 – Clinton wins by 174


The first close state just got called. Ohio, which went to Trump… as expected. So we still don’t have a surprise state. But this now does reduce Clinton’s best case.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 356 Trump 182 – Clinton wins by 174


NYT now has Trump at a 79% chance of winning. I said a few weeks ago the main question was not who was going to win, but just how big Clinton’s margin would be. That if Trump came back from where he was at that point it would be the biggest comeback in US presidential history. It is looking more and more like that may happen.


Missouri for Trump. New Mexico for Clinton.

Still every state as expected, and none of the “weak” states that were expected to be close called yet.


A while ago the networks all called that the House would stay Republican. That was expected.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 374 Trump 164 – Clinton wins by 210


Montana called immediately for Trump. Expected. Still no “weak” states called, so the summary of possibilities remains the same:

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 374 Trump 164 – Clinton wins by 210


Nevada, Iowa, Montana, and Utah now closed. Nevada and Iowa both expected to be close.

I said in my last week’s podcast that if there was a Trump win people should be surprised, because he would have beat the odds, but not shocked, because it was within the realm of possibility.

We’ll see.

Given how the rest of the night is going, it will be very interesting to see real McMullin numbers.


Connecticut and Louisiana both called as expected.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 374 Trump 164 – Clinton wins by 210

Still no surprises in the called states, but many of the uncalled states are surprising people by how close they are. Odds sites are increasing Trump’s odds by the minute.

Weak states outstanding: Georgia (expected Trump), North Carolina (expected Trump), Ohio (expected Trump), Michigan (expected Clinton), Maine CD2 (expected Clinton), Pennsylvania (expected Clinton), Florida (expected Trump), Arizona (expected Trump)

Since Virginia seems like it might be in play, here are the “strong” states still outstanding as well: Virginia (expected Clinton), New Hampshire (expected Clinton), Missouri (expected Trump), Wisconsin (expected Clinton), Colorado (expected Clinton), New Mexico (expected Clinton), Minnesota (expected Clinton), Nebraska CD2 (expected Trump)


Maybe those last minute poll shifts I was dubious about were real. Certainly looking that way in Florida and North Carolina at the moment.


If Clinton doesn’t catch up in Virginia, it will look very bad for Clinton, as she was expected to win that state easily and it may indicate shifts elsewhere.


Texas and Arkansas both called for Trump. Again no surprises.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 374 Trump 164 – Clinton wins by 210

Expected close states we are waiting for: Georgia, North Carolina, Ohio, Michigan, Maine CD2, Pennsylvania, Florida, Arizona


Instantly called: NY for Clinton, KS, NE-All, SD, ND, WY, NE-CD3. No surprises.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 374 Trump 164 – Clinton wins by 210


Just closed:

  • Solid Clinton: NY
  • Strong Clinton: WI, CO, NM, MN
  • Weak Trump: AZ
  • Strong Trump: NE-CD2, TX
  • Solid Trump: KS, NE-All, SD, LA, NE-CD1, ND, WY, NE-CD3

The only one to really watch is AZ.

Interesting VA is still outstanding. Was supposed to be easy Clinton. Although it looks like the heavily Democratic parts of the state are slow counting.

As expected, Trump has taken a lead in Texas. That Clinton lead was never going to last. :-)


Interesting states we are waiting on: Georgia, North Carolina, Ohio, Michigan, Maine CD2, Pennsylvania, Florida,

States that should be no brainers we are waiting on: Virginia, Maine CD1, Connecticut, Maine All, New Hampshire, Missouri


South Carolina and Alabama both called for Trump. Both expected.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 374 Trump 164 – Clinton wins by 210

Clinton ahead in Texas with more than 50% counted? That won’t last I don’t think…


Arkansas just closed. Expect it to be called for Trump near instantly.


Florida going back and forth in the count. Very close. That may take awhile.


Interesting CNN hasn’t called South Carolina yet. Other outlets have already called it. I’m sticking with CNN’s non-call for the moment.

No “interesting” states called yet. Longest closed outstanding states are VA/GA/SC. GA expected to be close. VA and SC are not.


DC, MA, MD, RI, IL, NJ, DE, TN, MS, OK all called instantly. No surprises.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 374 Trump 164 – Clinton wins by 210

Oops, TX doesn’t close until 2:00 due to the panhandle.


Lots of states closing this hour:

  • Solid Clinton: DC, MA, MD, RI, ME-CD1, IL, CT, ME-All, NJ, DE
  • Strong Clinton: NH
  • Weak Clinton: MI, ME-CD2, PA
  • Weak Trump: FL
  • Strong Trump: MO, TX
  • Solid Trump: TN, MS, OK, AL

The ones to watch are of course the close ones: Michigan, Maine CD2, Pennsylvania, and Florida


West Virginia called instantly for Trump. Not a surprise.

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 374 Trump 164 – Clinton wins by 210


Now Closed:

  • North Carolina (Weak Trump) – some precincts still open
  • Ohio (Weak Trump)
  • West Virginia (Solid Trump)

West Virginia should be called quickly.


Called instantly: Indiana and Kentucky for Trump, Vermont for Clinton.

No surprises. Picture remains the same:

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 374 Trump 164 – Clinton wins by 210


Now closed:

  • Vermont (Solid Clinton)
  • Virginia (Strong Clinton)
  • Georgia (Weak Trump)
  • South Carolina (Strong Trump)
  • Indiana (Solid Trump)
  • Kentucky (Solid Trump)

Only Georgia is expected to be close. The rest should be called relatively quickly.

I will be following the state calls on CNN primarily, although if other outlets are calling a state and CNN is delaying, I may consider the call if most places seem to think it should be called.


Polls are now closed in parts of Indiana and Kentucky (as well as the three small towns in New Hampshire), but we shouldn’t get any calls for another hour until full states start to close. So just a quick reminder of where we start the night:

  • Trump best case: Clinton 236 Trump 302 – Trump wins by 66
  • Expected case: Clinton 273 Trump 265 – Clinton wins by 8
  • Clinton best case: Clinton 374 Trump 164 – Clinton wins by 210

Closing in an hour: Vermont, Virginia, Georgia, South Carolina, Indiana, and Kentucky. Georgia is the only one of those that is expected to be close.

Final Forecast on Election Day

After the last full update there were poll results added in Arizona, California, Nevada, and Washington. While these slightly changed the poll averages in those states, none changed the categorization of those states, or the tipping point. At 20 UTC on election day (3 PM Eastern, Noon Pacific) Election Graphs shut our books. If any straggler polls come in at this point, it is too late.

Final summary


As a point of personal privilege, I will note that I believe this site’s estimates on Sunday, when we had an expected case of Clinton 323 to Trump 215, a 108 electoral vote win for Clinton, were probably a better estimate. This is because the last minute polls that came in Monday and early Tuesday contained some results that seem like outliers and seem to contradict early polling data that has been coming in so far. With the Tuesday update Florida, North Carolina, and Nevada flipped from blue to red. I’m not so sure those three changes are reflective of reality on the ground.

My gut is also that if we do see one candidate or another outperform the polling average above, it is more likely to be Clinton due to strong ground game and early voting efforts.

But the final polls “count” and this site’s official predictions have to abide by the methodology used through the whole campaign season.

We have what we have. We will see very soon where reality falls.

Spectrum of Close States


When watching election results come in tonight, these states are the only ones that you really need to pay attention to, and really only the ones labeled “Weak”. Those have a decent chance of flipping to the other side of the center line.

Obviously the smaller the margin, the higher the likelihood the state will end up on the other side of the center line. States very near zero are very likely to flip, those near 5% are actually pretty unlikely to switch.

Chances of the states labeled “strong” above going to the other candidate are very low, but it could potentially happen if one candidate or the other is having a very good night and therefore is significantly exceeding expectations.

Chances of any of the “solid” states not listed above not going as expected are essentially zero. Wyoming and Alabama are red. DC and Vermont are blue. They will not unexpectedly do anything different. :-)

Closing Map


Electoral College Trend

This chart shows the “expected” electoral college margin between the two candidates as the dark green center line. The “bubble” represents the absolute extremes of plausible outcomes. The closer to the edge of the bubble, the less likely an outcome is.


Tipping Point Trend

The “tipping point” is the margin the losing candidate would have to make up in all states to flip the outcome.


At the End

That summarizes the state of the race as of the end of the campaign.

As I type this there are less than 4 hours until the first full states close and we start to get called races. (Parts of some states close an hour earlier, and of course the three small towns in New Hampshire voted last night.)

We are at the end. Congratulations everyone, you made it.

For more information…

This post is an update based on the data on Election Graphs tracks a state poll based estimate of the Electoral College. All of the charts and graphs seen in this post are from that site. Additional graphs, charts and raw data can be found there. Follow @ElectionGraphs on Twitter or like Election Graphs on Facebook to see announcements of updates or to join the conversation. For those interested in individual general election poll updates, follow @ElecCollPolls on Twitter for all the polls as they are added. If you find the information in these posts interesting or useful, please consider visiting the tip jar.