0/70 completed
Dynamic Pricing Interactive

Price Elasticity

Measure how betting volume responds to payout changes. Find the revenue-maximizing price point for each market segment.

๐Ÿ“Š The Elasticity Formula

E = (% ฮ” Volume) / (% ฮ” Price)
  • E = Price elasticity of demand
  • E < -1 = Elastic (volume sensitive)
  • E = -1 = Unit elastic
  • E > -1 = Inelastic

In Betting Terms

If you increase payout from 1.9x to 2.0x (+5.3%), how much does volume change?

  • โ€ข Volume +10% โ†’ E = -1.9 (elastic)
  • โ€ข Volume +5% โ†’ E = -1.0 (unit)
  • โ€ข Volume +2% โ†’ E = -0.4 (inelastic)

Market Parameters

Base Payout (x) 1.9
1.5 2.5
Base Volume ($) 10000
5000 50000
Elasticity -1.5
-3 -0.3

๐Ÿ“Š Current Metrics

Hold Rate 47.4%
Revenue $4737
Elasticity -1.5

๐ŸŽฏ Optimal Price

Optimal Payout 1.80x
Max Revenue $4795
Revenue Gain +1.2%

Volume vs Payout

Higher payouts attract more volume, but with diminishing returns.

Revenue vs Payout

Revenue peaks at optimal price. Too high = low margin, too low = low volume.

๐Ÿ“ˆ Elasticity Interpretation

E < -1 Elastic

Volume very sensitive to price

Strategy: Raise prices cautiously, focus on volume
E = -1 Unit Elastic

Proportional response

Strategy: At the sweet spot
-1 < E < 0 Inelastic

Volume less sensitive

Strategy: Can raise prices, volume won't drop much

๐Ÿ€ Market Elasticity Examples

NFL Spreads

-0.8

Core product, loyal bettors

Player Props

-1.5

Entertainment, price sensitive

Parlays

-2.0

Discretionary, jackpot seekers

Live Betting

-1.2

Impulse, some price sensitivity

R Code Equivalent

# Price elasticity optimization
optimize_price <- function(base_price, base_volume, elasticity) { 
  prices <- seq(1.5, 2.5, by = 0.05)
  
  results <- sapply(prices, function(p) { 
    price_change <- (p - base_price) / base_price
    volume_change <- price_change * elasticity
    volume <- base_volume * (1 + volume_change)
    hold <- (1 - 1/p) * 100
    revenue <- volume * hold / 100
    return(revenue)
  })
  
  optimal_idx <- which.max(results)
  list(
    optimal_price = prices[optimal_idx],
    max_revenue = results[optimal_idx],
    prices = prices,
    revenues = results
  )
}

# Estimate elasticity from data
estimate_elasticity <- function(price_old, price_new, vol_old, vol_new) { 
  pct_price <- (price_new - price_old) / price_old
  pct_volume <- (vol_new - vol_old) / vol_old
  elasticity <- pct_volume / pct_price
  return(elasticity)
}

# Example
result <- optimize_price(1.9, 10000, -1.5)
cat(sprintf("Optimal: %.2fx, Revenue: $%.0f\n", 
            result$optimal_price, result$max_revenue))

โœ… Key Takeaways

  • โ€ข Elasticity measures volume sensitivity to price
  • โ€ข E < -1: volume very responsive (elastic)
  • โ€ข E > -1: volume less responsive (inelastic)
  • โ€ข Optimal price maximizes revenue, not hold
  • โ€ข Different markets have different elasticities
  • โ€ข A/B test to estimate elasticity empirically

Pricing Models & Frameworks Tutorial

Built for mastery ยท Interactive learning