Is a Lottery Ticket Ever Worth Buying?

By  ·  October 7, 2026

In 2003 Gerald Selbee, who had run a corner store in Evart, Michigan, picked up a brochure for a new state lottery game called Winfall and did the arithmetic. “I just multiplied it out,” he told the journalist Jason Fagone, “and then I said, ‘Hell, you got a positive return here.'”

He was right, and it was not a quirk of one game. In September 2004 Massachusetts launched its own version, Cash WinFall, and over the next seven years, on 44 separate draws, a $2 ticket was worth more than $2. The state’s Inspector General put it plainly in 2012: “for every $1 wagered, there was $1.15 (or usually more) sitting in the Cash WinFall prize pool to be shared among that drawing’s ticket holders. In that sense, every ticket was worth more than it cost.” Betting clubs noticed. Four of them, among them the Selbees’ family group and a club started by MIT students, wagered more than $40 million, and the state welcomed them, because the lottery kept its cut of every dollar they spent.

This notebook, written in R, computes the game’s odds, what a ticket was worth on an ordinary draw, the one-line formula that made it worth more than its price on a “roll-down” draw, and the number of tickets at which that edge disappears. It checks the formula against the Inspector General’s own worked examples, and simulates a club buying 300,000 tickets to show why the clubs bought so many.

The Odds

Each $2 play picked 6 numbers from 46, and the lottery drew 6. The chance of matching exactly $k$ of them is hypergeometric:

$$P(k) = \frac{\binom{6}{k}\binom{40}{6-k}}{\binom{46}{6}}, \qquad \binom{46}{6} = 9{,}366{,}819$$
$(1)$

R has this distribution built in as `dhyper`.

The Odds

p <- dhyper(0:6, m = 6, n = 40, k = 6)   # chance of matching exactly k of 6
names(p) <- 0:6
odds <- data.frame(match = 6:2, one_in = round(1 / p[as.character(6:2)], 2))
print(odds, row.names = FALSE)

#  match     one_in
#      6 9366819.00
#      5   39028.41
#      4     800.58
#      3      47.40
#      2       6.83

These are the lottery’s own published odds, to the second decimal: one in 9,366,819 for all six numbers, one in 39,028.41 for five, one in 800.58 for four, one in 47.40 for three and one in 6.83 for two.

An Ordinary Draw

On an ordinary draw the smaller prizes were fixed: $4,000 for five numbers, $150 for four, $5 for three, and a free $2 bet for two. Six numbers won the jackpot, which started at $500,000 and grew from draw to draw while nobody won it. About 60% of the money wagered went into prizes, and whatever the fixed prizes did not use went into the jackpot. A ticket’s expected value is

$$\mathbb{E}[\text{ticket}] = \sum_{k=3}^{5} P(k)\,a_k \;+\; 2\,P(2) \;+\; P(6)\,J$$
$(2)$

with $a_k$ the fixed prizes and $J$ the jackpot. The free bet is counted at its face value of $2, as the Inspector General counts it.

An Ordinary Draw

fixed <- c(`5` = 4000, `4` = 150, `3` = 5)  # cash prizes for 5, 4, 3 numbers
free <- 2                                   # two numbers: a free $2 bet
c0 <- sum(p[names(fixed)] * fixed) + free * p[["2"]]
cat(sprintf("fixed prizes and the free bet: $%.3f of each $2\n", c0))
for (J in c(0.5e6, 1e6, 1.9e6))
  cat(sprintf("jackpot $%.1f million: a $2 ticket is worth $%.3f\n",
              J / 1e6, c0 + p[["6"]] * J))

# fixed prizes and the free bet: $0.688 of each $2
# jackpot $0.5 million: a $2 ticket is worth $0.741
# jackpot $1.0 million: a $2 ticket is worth $0.795
# jackpot $1.9 million: a $2 ticket is worth $0.891

On an ordinary draw a $2 ticket was worth between 74 and 89 cents. The rest of the prize money did not vanish: it sat in the jackpot, which, Selbee told the Inspector General, rose about $75,000 from one draw to the next, and it went to whoever held tickets on the draw where it was finally paid out.

The Roll-Down

Cash WinFall’s special rule decided where that was. Once the jackpot reached $2 million, if nobody matched all six numbers, the whole jackpot “rolled down” to the smaller prizes: about 26% to the five-number winners, 47% to the four-number winners and 27% to the three-number winners, each share split equally among that tier’s winners. A winner in tier $k$ was paid $a_k + s_k J / W_k$, and with $N$ tickets sold there are about $W_k = N\,P(k)$ winners in that tier. The shares cancel from the average ticket:

$$\begin{gathered} \mathbb{E}[\text{ticket}] = \sum_{k=3}^{5} P(k)\Big(a_k + \frac{s_k J}{N\,P(k)}\Big) + 2\,P(2) \\[4pt] = c_0 + \frac{J}{N} \end{gathered}$$
$(3)$

where $c_0$ is the 69 cents of fixed prizes and free bet above, and $s_3 + s_4 + s_5 = 1$. A ticket was worth more than $2 whenever $N < J/(2 - c_0)$.

The Roll-Down

ev <- function(N, J) c0 + J / N        # a $2 ticket on a roll-down draw
breakeven <- function(J) J / (2 - c0)  # tickets sold at which the edge ends
for (N in c(470e3, 1.3e6))
  cat(sprintf("%.2f million tickets, $2.1 million rolled down: $%.2f\n",
              N / 1e6, ev(N, 2.1e6)))
cat(sprintf("the edge ends at %.2f million tickets\n", breakeven(2.1e6) / 1e6))

# 0.47 million tickets, $2.1 million rolled down: $5.16
# 1.30 million tickets, $2.1 million rolled down: $2.30
# the edge ends at 1.60 million tickets

Early in 2005 a roll-down could draw as few as 470,000 tickets, and a $2 ticket was then worth about $5. By 2007 the clubs had arrived, and the lottery sold between 1.2 and 1.4 million tickets for nearly every roll-down; at 1.3 million a ticket was worth $2.30, the Inspector General’s “$1.15 for every $1“. Sales would have had to pass about 1.6 million tickets for the edge to disappear (Figure 1).

The value of a 2-dollar ticket on a roll-down draw, c₀ + J/N, against the number of tickets sold, for 2.0 million and 2.4 million dollars rolled down. Above the dashed line the ticket is worth more than it costs. The grey band is the 1.2 to 1.4 million tickets sold on nearly every roll-down from…
Figure 1. The value of a 2-dollar ticket on a roll-down draw, c₀ + J/N, against the number of tickets sold, for 2.0 million and 2.4 million dollars rolled down. Above the dashed line the ticket is worth more than it costs. The grey band is the 1.2 to 1.4 million tickets sold on nearly every roll-down from 2007; the dots mark February 2005 (470,000 tickets) and the forced roll-down of August 2010 (about 800,000).

Checking the Formula Against the Record

The Inspector General’s report works two real draws through in dollars. For 8 February 2010 it follows a bettor holding 200,000 tickets, at that draw’s prizes of $22,096 for five numbers, $807.52 for four and $26.85 for three. On 16 August 2010 the MIT group bought about 700,000 tickets; the prizes were $30,282 and $37, and the four-number prize works out to $1,156 from the group’s 868 winning tickets, cashed for $1,003,408.

The Inspector General’s Numbers

comma <- function(x)                     # 1234567.8 -> "1,234,568"
  trimws(format(round(x), big.mark = ",", scientific = FALSE))
check <- function(n, prize) {            # n tickets at one draw's real prizes
  win <- n * p[names(prize)]             # expected winners in each tier
  cat(sprintf("%s tickets: winners %s; cash $%s for $%s\n", comma(n),
              paste(comma(win), collapse = " / "),
              comma(sum(win * prize)), comma(2 * n)))
}
check(200000, c(`5` = 22096, `4` = 807.52, `3` = 26.85))  # 8 Feb 2010
check(700000, c(`5` = 30282, `4` = 1156, `3` = 37))       # 16 Aug 2010

# 200,000 tickets: winners 5 / 250 / 4,219; cash $428,247 for $400,000
# 700,000 tickets: winners 18 / 874 / 14,767; cash $2,100,271 for $1,400,000

The expected winners are the report’s own: 5, 250 and 4,219 on the February draw. On the August draw the MIT group claimed 18 of the five-number prizes and 868 of the four-number prizes, against 18 and 874 expected. The report’s February cash, $425,640, multiplies the rounded counts. For August it records “a $700,000 cash profit”; the formula returns $2,100,271 for $1,400,000, a profit of $700,271, before the group’s free bets for the next draw.

Why 300,000 Tickets

The edge belongs to the average ticket, and almost every single ticket still lost. A club needed enough tickets for the rare five-number prize, worth about $20,000 once 1.3 million tickets were sold, to come in near its expected count. The Inspector General reports that Selbee considered 312,000 tickets “a statistical sweet spot for the game”, and the MIT group built up to 300,000 tickets for each roll-down. The cell below simulates such a club 20,000 times on a roll-down with $2.1 million to share and 1.3 million tickets sold, with `rmultinom` drawing how many of its tickets match each number of balls.

A Club of 300,000 Tickets

set.seed(2010)
N <- 1.3e6; J <- 2.1e6                      # tickets sold, money rolled down
share <- c(`5` = 0.26, `4` = 0.47, `3` = 0.27)  # the jackpot's split by tier
prize <- fixed + share * J / (N * p[names(fixed)])  # one winner's prize
club <- function(n) {                       # a roll-down: nobody matched 6
  w <- rmultinom(1, n, p[as.character(0:5)])[, 1]
  sum(w[names(prize)] * prize) + free * w[["2"]] - 2 * n
}
profit <- replicate(20000, club(3e5))
cat("prizes:", paste0("$", comma(prize), collapse = " / "), "\n")
cat(sprintf("profit on $600,000: mean $%s, a loss %.1f%% of the time\n",
            comma(mean(profit)), 100 * mean(profit < 0)))

# prizes: $20,392 / $758 / $26 
# profit on $600,000: mean $90,907, a loss 5.0% of the time

The simulated prizes, about $20,400, $760 and $26, are the ones the Inspector General describes from 2007 on: “a match-five paid between $19,000 and $28,000, a match-four paid around $900 and a match-three paid about $27.” A club of 300,000 tickets made about 15% on a roll-down and lost money on about one roll-down in twenty (Figure 2). Selbee’s group, by Fagone’s tally, lost money in only three of its 55 draws.

The real risk was the jackpot itself. If anyone matched all six numbers, nothing rolled down, and every other ticket was left with the fixed prizes.

The Jackpot Risk

hit <- 1 - (1 - p[["6"]])^N       # some ticket among N matches all six
cash <- 3e5 * (c0 - free * p[["2"]])  # the club's fixed cash prizes
cat(sprintf("chance the jackpot is won and nothing rolls down: %.1f%%\n",
            100 * hit))
cat(sprintf("the club's cash then: $%s, plus %s free bets, for $600,000\n",
            comma(cash), comma(3e5 * p[["2"]])))

# chance the jackpot is won and nothing rolls down: 13.0%
# the club's cash then: $118,599, plus 43,906 free bets, for $600,000
The profit of a club holding 300,000 tickets on a roll-down draw with 2.1 million dollars to share and 1.3 million tickets sold, in 20,000 simulated draws (grey). The dashed orange line is its mean; the white line is zero. If the jackpot is won instead, the club is left with about 206,000 dollars…
Figure 2. The profit of a club holding 300,000 tickets on a roll-down draw with 2.1 million dollars to share and 1.3 million tickets sold, in 20,000 simulated draws (grey). The dashed orange line is its mean; the white line is zero. If the jackpot is won instead, the club is left with about 206,000 dollars in cash and free bets, a loss of about 394,000 dollars.

At 1.3 million tickets the jackpot was won on about one roll-down in eight, and a club then lost about two-thirds of its stake, which is how the Inspector General describes it: “losing about two-thirds of his wager”. In the game’s history a jackpot at the roll-down level was won once, on 10 July 2008, and on that night, the report says, “Mr. Harvey, Mr. Selbee and Dr. Zhang all lost hundreds of thousands of dollars because the roll-down never materialized.”

Who Paid for It

The clubs’ profit was not the lottery’s loss. The lottery kept about 40 cents of every dollar on every draw, roll-downs included, and the clubs made the roll-down draws its best nights. The Inspector General found that high-volume betting “was allowed and encouraged because it provided a financial benefit to the state”, and that it “did not adversely affect other players’ odds of having a winning ticket.”

The money came from the ordinary draws. Every ticket bought while the jackpot was building returned 74 to 89 cents of its $2 and left the rest in the jackpot, and the roll-down paid that money out to whoever held tickets on the right night. The Inspector General’s summary: “Anyone who put these two facts together would see an obvious way to make money: sit on the sidelines while other players build the jackpot up close to $2 million, and then jump in.”

The Boston Globe’s Spotlight team reported on the clubs on 31 July 2011, the state capped how many tickets a store could sell, and the game ended in January 2012. Over its life Cash WinFall sold about $300 million of tickets, nearly $120 million of which went to the lottery’s operations and to cities and towns.

So is a lottery ticket ever worth buying? A lottery keeps part of every dollar, so a ticket can be worth more than its price only when money that other people paid in is paid out to fewer tickets than paid it in. Cash WinFall’s roll-down did exactly that, and the jackpot estimates the lottery posted showed when a roll-down was coming. The test was one line: $c_0 + J/N > 2$.

Sources

  1. Office of the Inspector General of the Commonwealth of Massachusetts (G. W. Sullivan), letter to Treasurer Steven Grossman on the Cash WinFall game, 27 July 2012. Archived: web.archive.org.
  2. Massachusetts State Lottery, Cash WinFall rules, prizes and odds, 2004–2012. Archived: the rules, March 2006 and the game page, May 2010.
  3. A. Estes and S. Allen, The Boston Globe, 31 July 2011: the Spotlight report on the betting clubs.
  4. J. Fagone, “Jerry and Marge Go Large”, HuffPost Highline, 2018: highline.huffingtonpost.com.

Every number in this notebook is computed by its own cells from the game’s published rules and the figures quoted above; nothing is loaded from outside.


Interested in applying these ideas to your work? Get in touch.