Methodology
The math behind the stats. How we compute hot, cold, and overdue numbers, and how the Quick Pick generator actually works.
Why we publish this
Most "lottery stats" sites publish a number with no explanation of how it was calculated. We think readers deserve to know exactly what we did and what the data means — especially because the honest answer to "do these stats predict anything?" is no, and pretending otherwise would be dishonest. The stats are descriptive, not predictive. Here is exactly how they're built.
Where the data comes from
Every Lottery Atlas stat is computed from our own database of stored draw results. The database is populated by a background process that runs every two minutes:
- Fetches draw schedules from a commercial US-lottery data feed.
- For each draw whose scheduled time has passed and whose result hasn't been stored yet, fetches the winning numbers, jackpot, and prize tier breakdown.
- Stores the result in our database keyed by
(game_id, draw_id). - Reconciles the result against the official lottery's published figure within 24 hours.
Stats are computed at page-load time against the database — there is no pre-computed cache that can go stale. When you load a page, you see the stats as of the most recent draw stored.
Hot numbers
Definition: the main-pool numbers that appeared most frequently in the last 50 draws of a specific game.
How it's computed:
- Fetch the last 50 draws of the game from
lottery_drawing_results, ordered bydraw_date DESC, draw_time DESC. - For each draw, parse the
winning_numbers_jsonfield (the main-pool balls — bonus balls are excluded from hot/cold). - Tally how many times each number appeared.
- Sort descending by count. The top 5 by tally are "hot."
If a game has fewer than 5 stored draws, we show no hot stats for it (sample too small to be meaningful).
Cold numbers
Definition: the main-pool numbers that appeared least frequently — but at least once — in the last 50 draws.
How it's computed: Same data and pipeline as hot. Sort the same tally ascending; the bottom 5 by tally are "cold."
Numbers that appeared zero times in the last 50 draws are not shown in the cold list — they're shown in the overdue list, because "absence" is a stronger signal than "low frequency."
Overdue numbers
Definition: the main-pool numbers with the largest gap since their most-recent appearance in the last 50 draws.
How it's computed:
- For each number in the game's main range, find the index (0 = most recent draw, 1 = previous, etc.) of its last appearance within the window.
- If a number hasn't appeared at all in the window, its gap is the window size (50).
- Sort by gap descending. The top 5 by gap are "overdue."
We display the gap as "drawn N draws ago" — so "drawn 17 ago" means the number last appeared 17 drawings back.
Why these stats don't predict anything
Each lottery draw is independent. The ping-pong balls in the machine don't know what was drawn last week. The probability of any given number being drawn tonight is exactly the same regardless of how often it has been drawn in the past 50 draws.
This is the gambler's fallacy: the intuition that if a number is "due," it's more likely to appear. It isn't.
If you computed hot/cold/overdue numbers for any 50-draw window, then ran the same calculation on the next 50 draws, the overlap between the two sets would be roughly what random chance predicts. There's no carryover.
So why publish the stats? Because they're fun, because picking from a list of "hot" or "overdue" candidates feels better than blindly hitting Quick Pick (even when the underlying odds are identical), and because every other US lottery site publishes them. Refusing to publish them would only push readers to less-honest competitors who claim the stats do predict something.
For a deeper exploration, see our blog post: Hot, Cold, and Due Numbers: What They Really Mean.
Quick Pick generator
The Quick Pick block on every game page generates a fresh number suggestion on every page load. The math:
- Look up the game's main-pool range (e.g., 1–69 for Powerball, 1–70 for Mega Millions) and the number of main balls drawn (typically 5).
- Randomly pick one of four modes for this page load: pure random (60% of the time), hot-weighted, cold-weighted, or balanced (each ~13%).
- For non-random modes, build a candidate pool from the game's current hot/cold lists. Draw from this pool first, then fill remaining slots from the full main-pool range.
- For the bonus ball (Powerball, Mega Ball, etc.), pick uniformly at random from that ball's range.
- Sort the main numbers ascending for display.
The randomness comes from PHP's random_int() function, which uses the operating system's cryptographically-secure random source. The numbers it produces are statistically indistinguishable from the lottery's own draws.
Important: A Quick Pick suggestion has exactly the same odds as any other combination, including the numbers you might pick yourself. Mode-switching (hot-weighted vs random) does not change the odds; it only changes which numbers tend to appear in our suggestions. See our blog post on Quick Picks vs picking your own numbers for the full mathematical case.
Per-state lottery facts (anonymity, tax, age, claim deadline)
The FAQ block on each state page is built from a curated table of state-specific facts maintained in our codebase. Each field is sourced from one of:
- The official state lottery's published rules and FAQ.
- State tax authority publications (for withholding rates).
- The state's enabling lottery statute (for anonymity provisions and age requirements).
We review the table annually and after any state legislation that changes the rules. Where a state's rules are conditional (e.g., "anonymous above $250,000"), we note the threshold explicitly.
Limitations and known issues
- Sample size: 50 draws is a small sample. For games that draw daily, that's about 7 weeks of data. For games that draw twice a week, it's about 6 months. Smaller samples produce noisier hot/cold lists.
- Main pool only: Hot/cold/overdue stats are computed for the main number pool only. Bonus balls (Powerball, Mega Ball, etc.) have their own much smaller range and are not included in the stats block.
- Multi-state games: Hot/cold stats for Powerball, Mega Millions, Lotto America, and similar multi-state games are computed from a single canonical game record — they represent the actual nationwide draws, not state-specific tallies.
- Stat refresh latency: Stats are recomputed on every page load from current database state, so they're always at most a few minutes behind the latest draw. There is no cache that can go stale.
Reproducing the stats yourself
The math is intentionally simple. If you have the last 50 winning-number rows for a game, you can reproduce our hot/cold/overdue lists with a few lines of Python or a spreadsheet. We publish this methodology in plain English specifically so that anyone who wants to double-check our numbers can.
If you find a discrepancy between our stats and your own calculation, email hello@lotteryatlas.com with the specific game and we will investigate.