“Counting” Votes

There’s this stuff out there on the internet. Looks like this:

And this:

Doesn’t look like much, but it is. As of this morning, it’s still there. Anyone can go look at it. Of course, who would? It’s just a bunch of gobbledygook, right? Actually, it’s not.

These are the records of information given to the New York Times by the North Dakota Secretary of State’s office on election night, through a data collection software called Edison Research.  Edison Research gets the data from the SOS and shares it.  Freeing up the SOS’s office to do their work. 

That information, right up there, tells you exactly how the counting of votes went on election night.  Every ten minutes or so, there’s an update as the votes trickle in.

The most interesting, most important, part is the percentages. What percentage of the votes went to each candidate? That’s how we determine who won, right? Right.

(% Delta is a measurement of change)

As you can see, here every single time a new batch of votes got counted the percentages stayed the same.  Which is kind of odd right?  I mean shouldn’t there be some variation?  Yes. There should.  

Just a little math.

Line #66: Two votes were counted and yet the percentages remain 65%, 31%, and 3%. 65% of 2 is 1.3.

Now let me ask you: “How did it happen that the votes at the beginning of the night had the same percentages as the votes at the middle, and the end of the night?” Well, it means… Yep, those votes weren’t counted correctly.

In essence, it seems that our votes weren’t counted AT ALL.

The percentages stayed the same, and they actually match what’s on the Secretary of State’s website right now:

If you cut up the 1,860 write-in votes by the 65/31/3 percentages and add them to the main three candidates, it’s a perfect fit.

It’s important to understand that the only way this works is if we move away from that silly, old-fashioned concept of 1 person = 1 vote.

Here’s a great video on how it works:

Straight from the horse’s mouth, or at least the horse lover’s mouth, or well milk goat lover… Draza Smith, Professional Engineer and “rocket” scientist, “what we have here, is a cruise control system.” Smith’s findings have been confirmed by multiple other scientists and mathematicians, including Dr. Frank and Edward Soloman. Someone decided how North Dakota would vote, and they made it happen.

Draza explained, “On it’s own, North Dakota started at 35MPH, someone set your cruise control to 55MPH and the voters of ND didn’t have any real say after that.” Someone, somewhere, chose how North Dakota would vote and the cruise control system made it happen. How? Through “fractional” voting, phantom voters, and out-right vote switching:

Vote counts are only supposed to go up. But what we see in the data from the New York Times website above, is that votes were switched, here, in North Dakota, likely on our machines, and certainly before the data reached the New York Times. The above two graphs show the data with equal spacing for every data entry.

Here’s one in real time:

This isn’t just a North Dakota thing nor a presidential voting phenomenon.

For example:

You may note that the write-in candidates were not reported to the New York Times. In addition, 69.2%+26.7%+4.1%=100%… thus, this should be all the votes, 100% of the votes. It is. But it doesn’t appear match what we see at the North Dakota Secretary of State’s website:

What happened to the write-in candidate’s votes? Well, it seems that them little buggers got split up and added to the other candidates, according to the percentages seen above.

For example: Lenz/Vig got 26.6% of 4.88%. Bringing their total from the SOS website of 25.41% to 26.65%. Here’s the math:

26.7-25.4=1.3 (I rounded 26.65 up to 26.7 here)

Does that look like an accurate representation? At what point in the North Dakota law does it say that we just divvy up the write-in votes and spread them around to the other candidates? Pretty sure the answer is no where…

But here we are:

Note that the vote switching peaks and valleys were so big that the vertical axis had to be extended to show most of the data.

Did President Trump or Governor Burgum actually win the election in North Dakota? The answer is we do not know. We do know that it really looks like the votes were frankly, not counted, they were calculated. Each vote that came in was split up between the candidates to force a specific outcome.

This is why we need a full, complete, forensic audit of our elections. Because right now, it looks like many if not all of our elected officials were NOT elected at all. They were chosen by someone, somewhere, for us.

If you’d like to find out more, help, or please go over to North Dakota’s Audit Channel and Chat on telegram. Or you can contact me, Justamom, using the contact form here and I will gladly help you find people in your area to work with, because, dude.

(Note from Draza Smith: “When we calculate out the number of votes that each candidate has, by multiplying the reported total number of votes by the reported percentage each candidate has, the votes received by each candidate is NOT a whole number, it is a fraction. Edison did not share whole number votes in the json file, they shared fractional votes. This is also what the evaluation of the interval votes shows. This is part of what makes it possible for 2 votes to be split by the same percentage.”)



  1. This is excellent work! Thank YOU!
    I am now in my mid 60s with a degree in computer science and have worked in a number of industries for over 30 years. I don’t remember the exact year, but sometime in the late 90s when computers were introduced into the voting process, I think it was Chicago, I decided, I would never vote again. In 2020, it seemed expedient for me to vote so I did, knowing full well the probability that it would be for naught.
    Since the early days of computer voting systems, as a computer expert, I have KNOWN how trivial it is to predetermine the outcome of any election. It is just too easy to manipulate the outcome. I knew politicians and non-techies would never believe just how easy it is.
    Your EXCELLENT work confirms what I have suspected since those early computer voting devices, OUR VOTE DOESN’T COUNT AT ALL.
    I am thinking of writing a history of elections in America, and if I do, I will most definitely site your work!

    Liked by 1 person

  2. Thank you for your informative blog post on election integrity. I generated a Python class which will download all NYT publicly available data sets based on your url description to anyone’s local machine for analysis. Please reference this gist for the code: .gist table { margin-bottom: 0; } This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters #!/usr/bin/env python # -*- coding: utf-8 -*- __license__ = "MIT" __version__ = "0.1" __py_version__ = "3.8.7" __status__ = "Development" import json from pathlib import Path from time import sleep import requests import us from backpack import Collection class NYTElectionDataDownloader: ''' Downloads publicly available data from New York Times which was streamed in real-time during the 2020 elections. Data is in JSON format. Note that no error capturing has been implemented. Inspired by blog post: https://justamom.code.blog/2021/07/15/counting-votes/ Required third party modules: pip install us backpack Usage —– # download all 50 states data from 2020-11-03 NYTElectionDataDownloader() # download a list of specific states from 2020-11-03 target_states = ['florida', 'arizona'] NYTElectionDataDownloader(states=target_states) # download a specific state's data from 2020-11-03 NYTElectionDataDownloader(states='florida') ''' us_states = Collection([state.__dict__ for state in us.states.STATES]) def __init__(self, page="race-page", position="president", date="2020-11-03", states=None, save=True, rate_limit=1): """ :param page: str: The NYT target page :param position: str: The NYT position designation :param date: str: The date data was transmitted to NYT :param states: str: The required US states, blank captures all states :param save: bool: Flag to save data to local filesystem, default True. :param rate_limit: int: Limits the number of requests by provided seconds; default 1 second. """ self.base_url = "https://static01.nyt.com/elections-assets/2020/data/api&quot; self.page = page self.position = position self.date = date self.rate_limit = rate_limit self.states = [states] if isinstance(states, str) else states self.states = [state.lower().replace(' ', '-') for state in self.us_states.pluck('name')] if states is None else self.states self.results = self.get_data() if save: self.save_locally(self.results) def urlify(self, date, page, state, position): """ Generates a valid NYT url. :param date: str: The date data was transmitted to NYT :param page: str: The NYT target page :param states: str: The required US states, blank captures all states :param position: str: The NYT position designation :return: str: A properly formatted NYT url """ # generate url result = f"{self.base_url}/{date}/{page}/{state}/{position}.json" return result def query(self, url): """ Queries a url, respecting the data provider with a rate limit. :param url: str: A properly formatted NYT url :return: json: Publicly available JSON from NYT """ # limit request rate sleep(self.rate_limit) # query print(f"Requesting url: {url}") result = requests.get(url).json() return result def get_data(self): """ Generates valid NYT urls and downloads data. """ # generate target urls target_urls = [self.urlify(self.date, self.page, state, self.position) for state in self.states] # request data from target urls print("Requesting data for all US States, this may take up to 60 seconds to download.") results = [self.query(target_url) for target_url in target_urls] print("Data acquired.") return results def save_json(self, data, filename): """ Saves a NYT formatted JSON file to local directory. :param data: :param filename: :return: """ try: with open(f'{filename}.json', 'w') as json_file: json.dump(data, json_file) except UnboundLocalError as ule: print("No results") return None def save_locally(self, data): """ Parses a list of NYT results into separate JSON files and saves them to the local directory. """ save_dir = Path(__file__).resolve().parent / 'data' save_dir.mkdir(parents=True, exist_ok=True) _ = [self.save_json(result, f"{save_dir}/{result['data']['races'][0]['race_slug']}") for result in self.results] return None class NYTEAnalyzer: """ Loads NYT Election Data for analysis. """ us_states = Collection([state.__dict__ for state in us.states.STATES]) data_dir = Path(__file__).resolve().parent / 'data' def __init__(self, states=None, position="president", category="general"): self.position = position self.category = category self.files = None self.states = [states] if isinstance(states, str) else states self.states = [state.lower().replace(' ', '-') for state in self.us_states.pluck('abbr')] if states is None else self.states self.find_fraud() self.lost_votes() @staticmethod def find_all_files(): """ Determines what json files exist in the data directory. """ save_dir = Path(__file__).resolve().parent / 'data' file_path = save_dir.glob('*.json') #**/* return [x for x in file_path if x.is_file()] def get_files(self): """ Determines which json files are in the 'data' directory. :return: """ save_dir = Path(__file__).resolve().parent / 'data' file_path = save_dir.glob('*.json') # **/* return [x for x in file_path if x.is_file()] def find_fraud(self): # determine filepaths of json files in the 'data' directory files = self.get_files() # run fraud finder on each file for file in files: print(f"nn{file.name}") with open(file, encoding="utf8") as f: x = json.load(f) TotalVotesLostTrump = 0 TotalVotesLostBiden = 0 TrumpToThird = 0 TrumpToBiden = 0 BidenToTrump = 0 ThirdToTrump = 0 ThirdToBiden = 0 BidenToThird = 0 TotalVotesLostThird = 0 series = x["data"]["races"][0]["timeseries"] for i in range(len(series)): thirdPartyNow = series[i]["votes"] * ( 1 – series[i]["vote_shares"]["bidenj"] – series[i]["vote_shares"]["trumpd"]) thirdPartyThen = series[i – 1]["votes"] * ( 1 – series[i – 1]["vote_shares"]["bidenj"] – series[i – 1]["vote_shares"]["trumpd"]) TrumpNow = series[i]["votes"] * series[i]["vote_shares"]["trumpd"] TrumpThen = series[i – 1]["votes"] * series[i – 1]["vote_shares"]["trumpd"] BidenNow = series[i]["votes"] * series[i]["vote_shares"]["bidenj"] BidenThen = series[i – 1]["votes"] * series[i – 1]["vote_shares"]["bidenj"] if i != 0 and TrumpNow < TrumpThen and (TrumpThen – TrumpNow) > (0.00049999 * series[i]["votes"]) + 50: if BidenNow > BidenThen or thirdPartyNow > thirdPartyThen: if TrumpNow – TrumpThen <= BidenNow – BidenThen or TrumpNow – TrumpThen <= thirdPartyNow – thirdPartyThen: print("(TRUMP") print("Index : " + str(i) + " Past Index : " + str(i – 1)) print(TrumpNow – TrumpThen) TrumpLostNow = TrumpThen – TrumpNow TrumpLostTotal = TrumpThen – TrumpNow if BidenNow > BidenThen and TrumpNow – TrumpThen <= BidenNow – BidenThen: if BidenNow – BidenThen > TrumpLostTotal: TrumpToBiden += TrumpLostTotal TrumpLostTotal = 0 else: TrumpToBiden += BidenNow – BidenThen TrumpLostTotal -= BidenNow – BidenThen if thirdPartyNow > thirdPartyThen and TrumpNow – TrumpThen <= thirdPartyNow – thirdPartyThen: if thirdPartyNow – thirdPartyThen > TrumpLostTotal: TrumpToThird += TrumpLostTotal TrumpLostTotal = 0 else: TrumpToThird += thirdPartyNow – thirdPartyThen TrumpLostTotal -= thirdPartyNow – thirdPartyThen if TrumpLostNow < 0: TrumpLostNow = 0 TotalVotesLostTrump += TrumpLostNow – TrumpLostTotal print("TRUMP)") if i != 0 and BidenNow < BidenThen and (BidenThen – BidenNow) > (0.00049999 * series[i]["votes"]) + 50: if TrumpNow > TrumpThen or thirdPartyNow > thirdPartyThen: if BidenNow – BidenThen <= TrumpNow – TrumpThen or BidenNow – BidenThen <= thirdPartyNow – thirdPartyThen: print("(BIDEN") print("Index : " + str(i) + " Past Index : " + str(i – 1)) print(BidenNow – BidenThen) BidenLostNow = BidenThen – BidenNow BidenLostTotal = BidenThen – BidenNow if TrumpNow > TrumpThen and BidenNow – BidenThen <= TrumpNow – TrumpThen: if TrumpNow – TrumpThen > BidenLostTotal: BidenToTrump += BidenLostTotal BidenLostTotal = 0 else: BidenToTrump += TrumpNow – TrumpThen BidenLostTotal -= TrumpNow – TrumpThen if thirdPartyNow > thirdPartyThen and BidenNow – BidenThen <= thirdPartyNow – thirdPartyThen: if thirdPartyNow – thirdPartyThen > BidenLostTotal: BidenToThird += BidenLostTotal BidenLostTotal = 0 else: BidenToThird += thirdPartyNow – thirdPartyThen BidenLostTotal -= thirdPartyNow – thirdPartyThen if BidenLostNow < 0: BidenLostNow = 0 TotalVotesLostBiden += BidenLostNow – BidenLostTotal print("BIDEN)") if i != 0 and thirdPartyNow < thirdPartyThen and (thirdPartyThen – thirdPartyNow) > ( 0.00049999 * series[i]["votes"]) + 50: if thirdPartyNow < thirdPartyThen: if thirdPartyNow – thirdPartyThen <= TrumpNow – TrumpThen or thirdPartyNow – thirdPartyThen <= BidenNow – BidenThen: print("(3RD PARTY") print("Index : " + str(i) + " Past Index : " + str(i – 1)) print(thirdPartyNow – thirdPartyThen) ThirdLostTotal = thirdPartyThen – thirdPartyNow ThirdLostNow = thirdPartyThen – thirdPartyNow if BidenNow > BidenThen and thirdPartyNow – thirdPartyThen <= BidenNow – BidenThen: if BidenNow – BidenThen > ThirdLostTotal: ThirdToBiden += ThirdLostTotal ThirdLostTotal = 0 else: ThirdToBiden += BidenNow – BidenThen ThirdLostTotal -= BidenNow – BidenThen if TrumpNow > TrumpThen and thirdPartyNow – thirdPartyThen <= TrumpNow – TrumpThen: if TrumpNow – TrumpThen > ThirdLostTotal: ThirdToTrump += ThirdLostTotal ThirdLostTotal = 0 else: ThirdToTrump += TrumpNow – TrumpThen ThirdLostTotal -= TrumpNow – TrumpThen if ThirdLostNow < 0: ThirdLostNow = 0 TotalVotesLostThird += ThirdLostNow – ThirdLostTotal print("3RD PARTY)") print(str(str(TotalVotesLostTrump) + " TRUMP LOST")) print(str(TrumpToBiden) + " Trump to Biden") print(str(TrumpToThird) + " Trump to Third") print(str(str(TotalVotesLostBiden) + " BIDEN LOST")) print(str(BidenToTrump) + " Biden to Trump") print(str(BidenToThird) + " Biden to Third") print(str(str(TotalVotesLostThird) + " 3RD PARTY LOST")) print(str(ThirdToBiden) + " Third to Biden") print(str(ThirdToTrump) + " Third to Trump") if BidenToTrump > TrumpToBiden: print(str(BidenToTrump – TrumpToBiden) + " TRUMP") elif TrumpToBiden > BidenToTrump: print(str(TrumpToBiden – BidenToTrump) + " BIDEN") self.lost_votes(x) def lost_votes(self, x): print(f"nnLost Votes") TotalVotesLost = 0 TotalVotesLostBiden = 0 TotalVotesLostTrump = 0 TotalVotesLostThird = 0 series = x["data"]["races"][0]["timeseries"] for i in range(len(series)): thirdPartyNow = 1 – series[i]["vote_shares"]["bidenj"] – series[i]["vote_shares"]["trumpd"] thirdPartyThen = 1 – series[i – 1]["vote_shares"]["bidenj"] – series[i – 1]["vote_shares"]["trumpd"] if (series[i]["vote_shares"]["bidenj"] < (series[i – 1]["vote_shares"]["bidenj"] – 0.001) or series[i]["vote_shares"]["bidenj"] > (series[i – 1]["vote_shares"]["bidenj"] + 0.001)) and ( series[i]["vote_shares"]["trumpd"] < (series[i – 1]["vote_shares"]["trumpd"] – 0.001) or series[i]["vote_shares"]["trumpd"] > (series[i – 1]["vote_shares"]["trumpd"] + 0.001)): if i != 0 and series[i]["votes"] < series[i – 1]["votes"] and series[i]["votes"] * series[i]["vote_shares"][ "bidenj"] < series[i – 1]["votes"] * series[i – 1]["vote_shares"]["bidenj"] and series[i]["votes"] * series[i]["vote_shares"]["trumpd"] < series[i – 1]["votes"] * series[i – 1]["vote_shares"][ "trumpd"]: TotalVotesLost += series[i]["votes"] – series[i – 1]["votes"] print("Index : " + str(i) + " Past Index : " + str(i – 1)) print(series[i]["votes"] – series[i – 1]["votes"]) TotalVotesLostTrump += series[i]["votes"] * series[i]["vote_shares"]["trumpd"] – series[i – 1][ "votes"] * series[i – 1]["vote_shares"]["trumpd"] TotalVotesLostBiden += series[i]["votes"] * series[i]["vote_shares"]["bidenj"] – series[i – 1][ "votes"] * series[i – 1]["vote_shares"]["bidenj"] TotalVotesLostThird += series[i]["votes"] * thirdPartyNow – series[i – 1]["votes"] * thirdPartyThen print(str(TotalVotesLostTrump) + " TRUMP") print(str(TotalVotesLostBiden) + " BIDEN") print(str(TotalVotesLostThird) + " THIRD") print(TotalVotesLost) if __name__ == '__main__': NYTElectionDataDownloader() NYTEAnalyzer() view raw gistfile1.txt hosted with ❤ by GitHub LikeLike
  3. Hey! This post couldn’t be written any better! Reading through this post reminds me of my old room mate! He always kept chatting about this. I will forward this post to him. Fairly certain he will have a good read. Many thanks for sharing!


  4. An outstanding share! I have just forwarded this onto a coworker who has been conducting a little research on this. And he actually ordered me dinner simply because I discovered it for him… lol. So allow me to reword this…. Thank YOU for the meal!! But yeah, thanks for spending some time to talk about this subject here on your site.

    Liked by 1 person

  5. Wow that was strange. I just wrote an very long comment but after I clicked submit my comment didn’t show up. Grrrr… well I’m not writing all that over again. Anyways, just wanted to say fantastic blog!

    Liked by 1 person

  6. You say “As you can see, here every single time a new batch of votes got counted the percentages stayed the same. Which is kind of odd right? I mean shouldn’t there be some variation? Yes. There should.”

    Looking at the data I have to say I disagree.

    As an example take line 65, the total votes counted by that point were 361,296 Trump had 65.1% of the vote and Biden had 31.7%

    Because of rounding Trump could have had between 235,024 and 235,384 votes a range of 360 possible numbers that would not alter the 65.1% figure.

    Same with Biden, because of rounding he could have had anywhere between 114,351 votes and 114,711 votes.

    As long as votes are added within these margins the percent will stay the same. The larger the total votes number is, the more likely it is to happen.


  7. Excellent post. I used to be checking constantly this weblog and I’m inspired! Very useful info specially the closing phase 🙂 I handle such info a lot. I used to be seeking this certain info for a long time. Thank you and best of luck.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s