Our methodology for tracking live results, verifying sources, and calculating the trends you see on the dashboard.
Every figure on this tracker is recorded from a published source: official precinct tally sheets, county-level count reports and the results bulletins released as counting proceeds. A tally is either keyed in by hand from the report or uploaded in a batch from the same document. Nothing is inferred, interpolated or filled in from a model — if a precinct has not reported, its votes are simply not there.
As count reports are published, the running tallies are updated and the dashboard picks them up within 30 seconds. On top of that, the tracker stores a permanent record of the running totals every 30 minutes, Monrovia time. Those stored snapshots are never rewritten: they are the historical record that the trends, margins and lead-change alerts are all built from, so any movement you see can be traced back to the points it came from.
Verification happens in two stages. A tally is first recorded as reported and shown as provisional. It is then checked a second time against the official precinct record; only after that second check is it marked Verified, and the record keeps who validated it and when. Because verification is applied to specific tallies rather than to the whole dashboard, the trust strip on the live page always shows exactly how many of the tallies we hold have passed that second check.
Each snapshot stores every candidate’s cumulative votes at that moment. A trend line plots those running totals over time. Momentum is the change between the earliest and latest point in the period shown, so a rising line means a candidate is adding votes faster than the period began. Vote share compares a candidate’s votes with all votes recorded in that same race at the same snapshot, which keeps the comparison honest while the count is still filling in. A lead margin is the leader’s votes minus the runner-up’s, and when that margin crosses zero we record a lead change rather than quietly redrawing the map.
The official first-round, runoff and general-election results of 2017, 2020 and 2023 are stored separately from the live count and labelled by their source. They exist so readers can place a running total in context, and for comparison views such as party vote share and legislative seats. At no point do historical figures feed into the live tallies, and the two are always presented as clearly distinct.
Count reports are sometimes restated, and mistakes can be made when keying them in. When a figure is corrected, the record is updated in place so the dashboard, the county breakdown and the historical snapshots stay consistent with the source. If something looks wrong to you — a misspelled candidate, a mislabelled party, a total that does not match the official report — tell us via the contact page and we will re-check it against the source.