Glow

Search…

Glow dApps

Tutorials

Smart Contracts

Security

Prize Details

Prizes and Odds

The following table shows the expected prize and odds of a winning ticket with a certain count of consecutive matching numbers.

Number of Consecutive Matching Numbers

Expected Prize

Odds

0

$0

1 / 1.07

1

$0

1 / 17

2 (Bronze)

$1+

1 / 273

3 (Silver)

$50+

1 / 4,370

4 (Gold)

$1,000+

1 / 70,000

5 (Jackpot)

$21,000+

1 / 1,120,000

6 (Super Jackpot)

$250,000+

1 / 16,800,000

Note that an increase in the number of purchased perpetual lottery tickets will **not** decrease the expected prize payouts per winning ticket. This is because as the number of perpetual lottery tickets goes up, so does the size of the lottery pool. What **will** happen as the number of perpetual tickets goes up is more total prize payouts and more winning tickets each week!

The Price Of A Lottery Ticket

Glow Lotto works by awarding you one perpetual lottery ticket per $25 dollars deposited. Another way of looking at this is that each week Glow Lotto uses a portion of the interest from your $25 dollar deposit to "buy" a single use ticket.

Looking at it this way, we see that each entry in the lottery actually costs just 6.5 cents! Talk about a bargin 😁 (

`(pow(1.2, 1 / 52) - 1) * 25 * .75 = 0.65`

)Continuing with this perspective, an important note is that the expected value of a single use Glow Lotto ticket is actually greater than the cost of the ticket, i.e. for every 6.5 cent ticket you "buy", you expect to get back more than 6.5 cents in prizes! This is because all money that goes into the lotto pool goes straight back to ticket holders, and some is carried over from previous weeks. This is very different from than most lotteries where for every $1 you spend on a ticket, you only expect to get $0.50 back (i.e. where you are playing at an expected loss).

Expected Prize Calculation

Unlike some lotteries which pay out a fixed prize based on a number of matches (i.e. a fixed $50 for a ticket with 3 consecutive matches), Glow Lotto pays out a variable amount depending on the number of winning tickets for a given tier. This is because Glow Lotto has access to a fixed amount of total funds to pay out in each lottery. In the unlikely event of many fewer winning tickets than expected for a given week, each winner will receive a larger prize than expected. Similarly, in the unlikely event of many more winning tickets than expected for a given week, each winner will receive a smaller prize than expected.

Even so, we can calculate what the expected payout will be for a given number of matches and know that the actual payouts will hover around the expected payout. See the code below. Notice that it doesn't depend on the number of purchased perpetual tickets, but it does depend on the prize distribution which you can find here.

1

# Get the weekly multiplier by taking the 52 root of anchor's 20% yearly returns

2

weekly_interest_rate = pow(1.2, 1/52)

3

4

# Set ticket_price, split_factor, and prize_distributions

5

ticket_price = 25

6

split_factor = 0.75

7

prize_distributions = [0, 0.00, .059, .184, .229, .287, .241]

8

9

# Build matching_chances so that matching_chances[i] gives the chance of a ticket having exactly i consecutive matches

10

# The idea is you want to take (1 / 16) ** i to get the chance of i consecutive matches,

11

# and then multiply by (15 / 16) to account for the fact that the number at i + 1 must not be a match

12

# (or else you would be counting a ticket with i + 1 matches, but we only want to include tickets with exactly i matches)

13

matching_chances = [pow(1/16, i) * (15 / 16 if i != len(prize_distributions) - 1 else 1) for i in range(len(prize_distributions))]

14

15

# Get the size of the lottery pool after one week proportional to the number of tickets.

16

# We take the ticket_prize times the split factor to get the value for which interest is going towards the lottery.

17

# Then multiply by the weekly interest rate to get the value we can put towards the lottery pool.

18

lottery_pool_size = ticket_price * split_factor * (weekly_interest_rate - 1)

19

20

# Get the expected payout sizes.

21

# For each prize_fraction, calculate the corresponding value of the lottery by multiplying with lottery_pool_size.

22

# Then divide by the chance of a corresponding winning ticket to get the expected value of the payout

23

expected_payouts = [lottery_pool_size * prize_fraction / matching_chances[index] for index, prize_fraction in enumerate(prize_distributions)]

24

25

# Print the expected payout sizes

26

print(expected_payouts)

27

Copied!

And the corresponding output:

1

The expected payouts are:

2

- $0.00 for tickets with 0 matches.

3

- $0.00 for tickets with 1 matches.

4

- $1.06 for tickets with 2 matches.

5

- $52.94 for tickets with 3 matches.

6

- $1054.25 for tickets with 4 matches.

7

- $21140.15 for tickets with 5 matches.

8

- $266277.50 for tickets with 6 matches

Copied!

Last modified 3mo ago