Methodology
How Scratch IQ calculates Expected Value per Dollar — the formula, the data sources, and the limits.
As of May 2026, Scratch IQ tracks 2,740 active scratch-off games across 41 states + DC using public state lottery data, updated daily.
Last data update:
The EV/Dollar formula
Expected Value per Dollar (EV/Dollar) is the statistical average return per $1 spent on a given scratch-off game, based on the prizes still remaining and the tickets still in circulation. It is computed identically for every game in every state we cover.
tickets_remaining = remaining_winners × overall_odds EV/Dollar = sum(prize × remaining) / tickets_remaining / ticket_price
- remaining_winners — total prize-winning tickets still unclaimed, summed across all prize tiers, as published by the state lottery.
- overall_odds — the published "1 in N" chance of any prize on the ticket. Multiplied by remaining_winners to back-derive the total tickets still in circulation.
- prize × remaining — for each prize tier, the dollar value of the prize multiplied by the count of tickets still claiming it. Summed across all tiers gives the total prize dollars left on the shelf.
- ticket_price — the printed price of one ticket ($1, $2, $3, $5, $10, $20, $25, $30, or $50).
An EV/Dollar of $1.23 means that, statistically, for every $1 spent on this game today, the average return is $1.23. This is a long-run average across many tickets — not a per-ticket prediction. Every individual ticket is still a game of chance.
The Prize Ratio
Prize Ratio is a secondary metric that tracks how the distribution of remaining prizes compares to the original print run. It surfaces games where the high-value tiers have been disproportionately depleted vs. the lower tiers.
Prize Ratio = (top_prizes_remaining / top_prizes_original)
÷ (total_tickets_remaining / total_tickets_original)A Prize Ratio > 1.0 means the top tier is depleting slower than tickets overall — proportionally more top prizes still available per ticket sold. A ratio < 1.0 means the opposite. EV/Dollar already accounts for this implicitly; Prize Ratio exposes it as a separate visible signal.
Where the data comes from
Every state lottery commission publishes some form of remaining-prize data on its public website. The shape and completeness of that data varies. We classify states into three data-quality tiers based on what each lottery actually publishes:
Dynamic — the lottery publishes complete tier-level remaining-prize counts that update daily (or close to it). EV/Dollar responds to real depletion data on every refresh. This is the case for the majority of states we cover.
Static — the lottery publishes only the launch-time prize counts and the overall payout percentage. No depletion signal is available, so EV/Dollar is frozen at the launch payout. This applies to Minnesota, Colorado, and Montana.
Synthetic — the lottery publishes some tier counts but not all. The missing tiers are modeled from the published per-tier odds and observed claim ratios. The models are state-specific and documented in each state's scraper. Synthetic-data states include Indiana, Iowa, Nebraska, Vermont, Wisconsin, Montana, Pennsylvania, and Maine (Montana is both Static and Synthetic — its launch tier counts are themselves derived from published odds).
| State | Tier | Source | Notes |
|---|---|---|---|
| AZArizona | Dynamic | Arizona Lottery | Real depletion data, updated daily. |
| ARArkansas | Dynamic | Arkansas Lottery | Real depletion data, updated daily. |
| CACalifornia | Dynamic | California Lottery | Real depletion data, updated daily. |
| COColorado | Static | Colorado Lottery | Launch-only counts; EV frozen at published payout percentage. |
| CTConnecticut | Dynamic | Connecticut Lottery | Real depletion data, updated daily. |
| DCDistrict of Columbia | Dynamic | District of Columbia Lottery | Real depletion data, updated daily. |
| FLFlorida | Dynamic | Florida Lottery | Real depletion data, updated daily. |
| GAGeorgia | Dynamic | Georgia Lottery | Real depletion data, updated daily. |
| IDIdaho | Dynamic | Idaho Lottery | Real depletion data, updated daily. |
| ILIllinois | Dynamic | Illinois Lottery | Real depletion data, updated daily. |
| INIndiana | DynamicSynthetic | Indiana Lottery | Some tier counts are modeled (lottery doesn't publish them directly). |
| IAIowa | DynamicSynthetic | Iowa Lottery | Some tier counts are modeled (lottery doesn't publish them directly). |
| KSKansas | Dynamic | Kansas Lottery | Real depletion data, updated daily. |
| KYKentucky | Dynamic | Kentucky Lottery | Real depletion data, updated daily. |
| LALouisiana | Dynamic | Louisiana Lottery | Real depletion data, updated daily. |
| MEMaine | DynamicSynthetic | Maine Lottery | Some tier counts are modeled (lottery doesn't publish them directly). |
| MDMaryland | Dynamic | Maryland Lottery | Real depletion data, updated daily. |
| MAMassachusetts | Dynamic | Massachusetts Lottery | Real depletion data, updated daily. |
| MIMichigan | Dynamic | Michigan Lottery | Real depletion data, updated daily. |
| MNMinnesota | Static | Minnesota Lottery | Launch-only counts; EV frozen at published payout percentage. |
| MSMississippi | Dynamic | Mississippi Lottery | Real depletion data, updated daily. |
| MOMissouri | Dynamic | Missouri Lottery | Real depletion data, updated daily. |
| MTMontana | StaticSynthetic | Montana Lottery | Launch-only counts; tier breakdown synthesized from published odds. |
| NENebraska | DynamicSynthetic | Nebraska Lottery | Some tier counts are modeled (lottery doesn't publish them directly). |
| NHNew Hampshire | Dynamic | New Hampshire Lottery | Real depletion data, updated daily. |
| NJNew Jersey | Dynamic | New Jersey Lottery | Real depletion data, updated daily. |
| NMNew Mexico | Dynamic | New Mexico Lottery | Real depletion data, updated daily. |
| NYNew York | Dynamic | New York Lottery | Real depletion data, updated daily. |
| NCNorth Carolina | Dynamic | North Carolina Lottery | Real depletion data, updated daily. |
| OHOhio | Dynamic | Ohio Lottery | Real depletion data, updated daily. |
| OKOklahoma | Dynamic | Oklahoma Lottery | Real depletion data, updated daily. |
| OROregon | Dynamic | Oregon Lottery | Real depletion data, updated daily. |
| PAPennsylvania | DynamicSynthetic | Pennsylvania Lottery | Some tier counts are modeled (lottery doesn't publish them directly). |
| RIRhode Island | Dynamic | Rhode Island Lottery | Real depletion data, updated daily. |
| SCSouth Carolina | Dynamic | South Carolina Lottery | Real depletion data, updated daily. |
| SDSouth Dakota | Dynamic | South Dakota Lottery | Real depletion data, updated daily. |
| TXTexas | Dynamic | Texas Lottery | Real depletion data, updated daily. |
| VTVermont | DynamicSynthetic | Vermont Lottery | Some tier counts are modeled (lottery doesn't publish them directly). |
| VAVirginia | Dynamic | Virginia Lottery | Real depletion data, updated daily. |
| WAWashington | Dynamic | Washington Lottery | Real depletion data, updated daily. |
| WVWest Virginia | Dynamic | West Virginia Lottery | Real depletion data, updated daily. |
| WIWisconsin | DynamicSynthetic | Wisconsin Lottery | Some tier counts are modeled (lottery doesn't publish them directly). |
The "Source" column links to each state's official lottery website — the same URL each scraper points at for daily data collection.
Claim lag
State lottery commissions update their published remaining-prize counts on different cadences. Some publish in near-real-time after each prize claim; others batch updates daily, weekly, or on-claim-event. Even the fastest publishers operate downstream of physical retail sales, so the data we read is always at least slightly behind real ticket-buying activity.
EV/Dollar is therefore a snapshot of yesterday's state of the game, not a live count. We update once per day, and we print the "Last updated" timestamp on the homepage, FAQ, and dashboard so users can see exactly when the rankings were last refreshed.
Per-state synthesis details
For the eight states classified as Synthetic, here is exactly what is modeled vs. what is published directly:
Indiana (IN)
The Hoosier Lottery publishes top-prize remaining counts but not lower-tier counts. Lower tiers are bucketed and modeled using the published per-tier odds plus observed claim ratios across tier groups. The Indiana branch in the EV calculator applies this synthesis before producing EV/Dollar.
Iowa (IA)
The Iowa Lottery publishes only top-tier remaining counts. Lower-tier remaining counts are modeled assuming a 65% lower-tier payout proportion (calibrated against historical Iowa game closeout data). EV/Dollar responds to top-prize depletion daily; lower-tier values are a stable baseline.
Nebraska (NE)
Nebraska publishes total remaining tickets and a partial tier breakdown. Hidden tiers are synthesized from the observed claim ratios across visible tiers, scaled to match the published total.
Vermont (VT)
Vermont publishes Total Unclaimed dollars, % Sold, and the total ticket print run, but not per-tier counts. We synthesize a single lower-tier row per game from those three values, with a guard rail that flags any per-tier modeled count exceeding the published total.
Wisconsin (WI)
Wisconsin publishes only top-prize remaining counts in real-time. Lower tiers are synthesized via a payout-ratio model — the only daily-dynamic signal is the top tier; lower tiers contribute a stable EV baseline.
Pennsylvania (PA)
The Pennsylvania Lottery publishes the top-6 remaining-prize counts but not the lower-tier counts. Lower-tier remaining counts are modeled from the observed top-6 claim rate: claim_rate = 1 − (sum of top-6 remaining / sum of top-6 original), applied to each lower tier's published initial total. EV/Dollar responds to top-tier depletion daily; lower-tier remainders track the same claim-rate signal.
Maine (ME)
The Maine Lottery publishes top-prize remaining counts and a percent-unsold figure per game. Lower-tier remaining counts are modeled by deriving a claim rate from the percent-unsold value: claim_rate = 1 − (percent_unsold / 100), applied to each lower tier's published initial total. Same shape as the Pennsylvania model but uses the lottery's own sell-through metric instead of an observed top-tier ratio.
Montana (MT)
The Montana Lottery does not publish daily depletion data. EV/Dollar is computed at launch using synthesized per-tier winner counts derived from each tier's published odds and the total ticket print run. EV/Dollar for a Montana game is effectively the launch payout percentage and does not change day-over-day.
Limits of this approach
- EV/Dollar is a statistical average across many plays. It does not predict the outcome of any individual ticket.
- The lottery retains a mathematical edge on every scratch-off game. EV/Dollar > $1.00 is rare and indicates a game where high-value prizes are disproportionately under-claimed relative to remaining tickets — not a guarantee of profit.
- Synthetic-tier modeling introduces estimation error. We prefer correct static values plus honest NULLs over fabricated variation; we don't invent precision the lottery doesn't publish.
- All data is downstream of what state lottery commissions publish. If a lottery's feed is delayed, incorrect, or taken offline, our rankings reflect that delay until the feed recovers.
- Static-EV states (MN, CO, MT) cannot show day-over-day EV changes. Their rankings are useful as a baseline comparison but should not be expected to track depletion the way dynamic-state rankings do.
Version history
Current methodology version: v1.1 · Last reviewed:
- v1.1
Added Pennsylvania and Maine to the Synthetic data-quality classification. Pennsylvania synthesizes lower-tier remaining counts from the observed top-6 claim rate; Maine synthesizes from the lottery's published percent-unsold figure. Both follow the same shape as Iowa, Vermont, Wisconsin, and the other synthesis states already documented on this page.
- v1.0
Initial public methodology page. Documents the canonical EV/Dollar formula, Prize Ratio formula, per-state data-quality classification, claim-lag behavior, and the synthesis approach for the six states whose lotteries don't publish complete tier-level remaining counts.
- v0.4
Vermont scraper rebuilt with a single-synthesized-lower-tier model derived from Total Unclaimed dollars + % Sold + total tickets. Added an EV-calculator guard rail that flags any per-tier modeled count exceeding the published total.
- v0.3
Iowa EV calculation switched from sparse-tier-only computation to a default 65% modeled lower-tier payout. The IA path now produces daily EV/Dollar that responds to top-prize depletion without fabricating tier-level precision the lottery doesn't publish.
- v0.2
Indiana scraper migrated to the bucket-modeling path used by the EV calculator's per-state branches. Reconciled IN tier-level counts against the lottery's published top-prize totals.
- v0.1
Initial canonical EV/Dollar formula stabilized across all states: tickets_remaining = remaining_winners × overall_odds; EV = sum(prize × remaining) / tickets_remaining. State-specific data gaps are handled in each state's scraper or in an isolated per-state branch — never by editing the global formula.
All site-wide changes (coverage, pricing, compliance, product) are tracked separately on the changelog.