Tag Archives: R

New Powerball (lottery) Rules Will Cost You More

The popular news are reporting [1,2,3,4,5] that the Multi-State Lottery Commission (MUSL) will change the rules for their lottery game Powerball, effective Jan. 15, 2012. I sent an email to the MUSL (at 8:00am Dec, 14th) asking for the new official rules, but haven't received a response yet (as of 10:30am Dec, 16th). Hence, these calculations are based on information from the popular news.

The rule changes are summarized as follows:

  • cost to play increased to $2 from 1$
  • jackpot starts at $40M instead of $20M
  • second prize starts at $1M instead of $0.2M
  • number of red balls (powerballs) reduced to 34 from 39
  • prize for matching the red ball alone increased to $4 from $3

The MUSL is touting the changes using the slogan "MORE, BIGGER, BETTER: more millionaires, bigger starting jackpots, and better overall odds." However, as I demonstrate below, the average loss incurred by playing Powerball will increase by more than two times, from $0.49 to $1.15. That is, under the new rules, Powerball players can expect to lose $1.15 for every $2 ticket purchased. In the long run, this is equivalent to worse than exchanging a $2 bill for a $1 bill every time Powerball is played.

Note that these calculations are approximate because the jackpot is estimated using historical jackpots, and very generous because taxes are not deducted from winnings.

The following R code computes the expected winnings (loss) under the old and new rules. You download the script or source the file from within R like so:

R> source("http://biostatmatt.com/R/powerball.R")
# jackpot amounts (as of 12/16/2011)
# http://www.lottostrategies.com/script/jackpot_history/draw_date/101
# http://www.usamega.com/powerball-jackpot.asp
jackpots <- read.csv('http://biostatmatt.com/csv/jackpot.csv')
average_jackpot <- mean(jackpots$PrizeMillions)

# for convenience
ch <- choose

# old rules
# choose 5 from 59 white balls, 1 from 39 red balls

# probabilities of winning
powerball_old <- function(w, r)
    ch(5,w)*ch(54,5-w)/ch(59,5)*ch(1,r)*ch(38,1-r)/ch(39,1)

# 9 ways to win
p_old <- vector("numeric", length=9)
p_old[1] <- powerball_old(5, 1) # five white + powerball_old
p_old[2] <- powerball_old(5, 0) # five white
p_old[3] <- powerball_old(4, 1) # four white + powerball_old
p_old[4] <- powerball_old(4, 0) # four white
p_old[5] <- powerball_old(3, 1) # three white + powerball_old
p_old[6] <- powerball_old(3, 0) # three white
p_old[7] <- powerball_old(2, 1) # two white + powerball_old
p_old[8] <- powerball_old(1, 1) # one white + powerball_old
p_old[9] <- powerball_old(0, 1) # powerball_old

# winnings
w_old <- vector("numeric", length=9)
w_old[1] <- 1000000 * average_jackpot
w_old[2] <- 200000
w_old[3] <-  10000
w_old[4] <-    100
w_old[5] <-    100
w_old[6] <-      7
w_old[7] <-      7
w_old[8] <-      4
w_old[9] <-      3

# expected winnings (loss)
# cost to play is $1
expected_winnings_old_rules <- -1 * (1 - sum(p_old)) + sum(p_old * (w_old - 1))

# new rules
# choose 5 from 59 white balls, 1 from 35 red balls
# probabilities of winning powerball
powerball_new <- function(w, r)
    ch(5,w)*ch(54,5-w)/ch(59,5)*ch(1,r)*ch(34,1-r)/ch(35,1)

# 9 ways to win
p_new <- vector("numeric", length=9)
p_new[1] <- powerball_new(5, 1) # five white + powerball_new
p_new[2] <- powerball_new(5, 0) # five white
p_new[3] <- powerball_new(4, 1) # four white + powerball_new
p_new[4] <- powerball_new(4, 0) # four white
p_new[5] <- powerball_new(3, 1) # three white + powerball_new
p_new[6] <- powerball_new(3, 0) # three white
p_new[7] <- powerball_new(2, 1) # two white + powerball_new
p_new[8] <- powerball_new(1, 1) # one white + powerball_new
p_new[9] <- powerball_new(0, 1) # powerball_new

# winnings
# jackpots start $20M larger than before
# second prize is $1M instead of $0.2M
# prize for powerball only is $4 instead of $3
w_new <- vector("numeric", length=9)
w_new[1] <- 1000000 * (average_jackpot + 20)
w_new[2] <- 1000000
w_new[3] <-  10000
w_new[4] <-    100
w_new[5] <-    100
w_new[6] <-      7
w_new[7] <-      7
w_new[8] <-      4
w_new[9] <-      4

# expected winnings (loss)
# cose to play is $2 instead of $1
expected_winnings_new_rules <- -2 * (1 - sum(p_new)) + sum(p_new * (w_new - 2))

I found this picture apropos (from http://www.toxel.com/inspiration/2009/09/18/12-creative-toilet-paper-designs/):