Frog Bog Metrics

The school carnival was a couple weekends ago, and I volunteered at a game called Frog Bog. Players use a hammer to hit a lever that launches a frog at a rotating set of lily pads. You score by getting a frog in the lily pad. Players get four frogs per turn. I thought it might be nice to know the probability of success to help understand how to distribute prizes.

Here’s a video from a different carnival. We only have one rotating set of lily pads at our carnival.

Loading the data…

library(googlesheets)
suppressPackageStartupMessages(library(dplyr))
library(binom)
my_sheets <- gs_ls()
fb <- gs_title("Frog_bog")
## Sheet successfully identified: "Frog_bog"
x <- gs_read(fb)
## Accessing worksheet titled 'Sheet1'.
## Parsed with column specification:
## cols(
##   Successes = col_double()
## )

Here is what the raw data look like.

x <- tbl_df(x)
x
## # A tibble: 48 x 1
##    Successes
##        <dbl>
##  1         0
##  2         0
##  3         0
##  4         0
##  5         0
##  6         0
##  7         0
##  8         0
##  9         1
## 10         0
## # … with 38 more rows

Summarized in table form we have the number of times each outcome happened per game of 4 tries.

table(x)
## x
##  0  1  2  3 
## 30 15  2  1

To find the probability of success, we make a big assumption that success is completely random and independent of each player’s skill. The probability of a success on any one attempt is thus successes divided by attempts.

attempts <- nrow(x) * 4
successes <- sum(x$Successes)
psuccess <- successes/attempts

Below I calculate the probability of 4, 3, 2, 1, and 0 successes per game.

data.frame(successes = 0:4, p = dbinom(0:4, size = 4, prob = psuccess))
##   successes            p
## 1         0 0.6145974736
## 2         1 0.3181445746
## 3         2 0.0617574762
## 4         3 0.0053280960
## 5         4 0.0001723796

If we want to take about 90% of the entry fee (return 10% to winners), we need to determine what each prize should be. If we have no prize for 0 frogs, you already are collecting 61.46% of the proceeds.

Let’s say we have a small prize for 1 success, valued at a small percentage of the entry fee. We would have a medium prize for 2 successes and a big prize for 3 successes. The grand prize could be much larger than the entry fee since it only happens about 1 in 5800 tries. I set the absolute dollar returns in the vector below.

fractions <- c(0, 0.1, 1, 3, 10)

Here’s the expected payout, broken down by probability of successes in one 4 frog game.

dbinom(0:4, size = 4, prob = psuccess) * fractions
## [1] 0.000000000 0.031814457 0.061757476 0.015984288 0.001723796

Overall expected payout per game would be then:

sum(dbinom(0:4, size = 4, prob = psuccess) * fractions)
## [1] 0.11128

That gets pretty close to the goal amount of proceeds. The actual entry fee was $2.50.

At a conservative estimate of one game per minute, over 10 hours per day, in a 2 day fair, that’s 1200 games. The game thus makes approximately $2866.46 or $143.32 per hour.

games