0/70 completed
Pricing Framework Interactive

Sharp vs Square Detection

Identify sophisticated bettors vs casual users. Sharp money moves lines; square money is the profit center.

๐ŸŽฉ Who's Who?

Square (Recreational)

Casual bettors who bet for entertainment. Follow public narratives.

  • โ€ข Win rate: 45-50%
  • โ€ข Negative CLV
  • โ€ข Bet favorites, overs
  • โ€ข ~85% of bettors

Semi-Sharp

Educated bettors with some edge. Break even or small profit.

  • โ€ข Win rate: 50-53%
  • โ€ข Neutral to slight + CLV
  • โ€ข More selective
  • โ€ข ~12% of bettors

Sharp (Professional)

Professional bettors or syndicates with consistent edge.

  • โ€ข Win rate: 53%+
  • โ€ข Strong positive CLV
  • โ€ข Large, quick bets
  • โ€ข ~3% of bettors

Bettor Profile

Win Rate (%) 54
40 60
Avg CLV (%) 2
-5 5
Avg Bet Size ($) 500
50 10000
Steam Move Timing (%) 40
0 100

๐Ÿ“Š Classification

Semi-Sharp
Sharp Score: 62/100

๐Ÿ“ˆ Closing Line Value (CLV)

CLV measures whether a bettor beats the closing line. It's the #1 indicator of sharp betting.

-3%
Square
Opened -110, closed -105
0%
Neutral
No edge either way
+3%
Sharp
Opened -110, closed -120

Bettor Win Rate Distribution

Most bettors cluster around 47%. Only ~3% consistently exceed 54%.

๐Ÿ” Detection Signals

Win Rate > 52%

High

Sustained winning over large sample

Positive CLV

Very High

Consistently beats closing line

Large Bet Sizes

Medium

Confidence in edge justifies size

Steam Move Timing

High

Bets before major line moves

Contrarian Picks

Medium

Fades public money regularly

Off-Peak Betting

Low

Bets when lines are soft

โšก Response Strategies

When Sharp Money Arrives

  • โ†’ Move line to balance book
  • โ†’ Use for price discovery (they know something)
  • โ†’ Lower limits on subsequent bets
  • โ†’ Consider copying the bet elsewhere (hedge)

Managing Sharp Bettors

  • โš ๏ธ Limit max bet size (but don't banโ€”they're useful)
  • โš ๏ธ Delay accepting bets during steam moves
  • โœ“ Let them bet early for line setting
  • โœ“ Track their picks for internal modeling

R Code Equivalent

# Sharp detection model
calculate_sharp_score <- function(win_rate, clv, bet_size, steam_timing) { 
  score <- 0
  
  # Win rate component
  if (win_rate > 52) score <- score + (win_rate - 52) * 10
  
  # CLV component (most important)
  score <- score + clv * 15
  
  # Bet size component
  if (bet_size > 1000) score <- score + 10
  if (bet_size > 5000) score <- score + 20
  
  # Steam timing
  if (steam_timing > 30) score <- score + steam_timing * 0.3
  
  return(pmin(100, pmax(0, score)))
}

# Classify bettor
classify_bettor <- function(score) { 
  if (score >= 70) return("Sharp")
  if (score >= 40) return("Semi-Sharp")
  return("Square")
}

# Example
score <- calculate_sharp_score(54, 2, 500, 40)
cat(sprintf("Score: %.0f - %s\n", score, classify_bettor(score)))

โœ… Key Takeaways

  • โ€ข CLV is the #1 sharp indicator (better than win rate)
  • โ€ข ~3% of bettors are truly sharp
  • โ€ข Sharps provide price discoveryโ€”useful, not just a cost
  • โ€ข Move lines when sharp money arrives
  • โ€ข Limit but don't banโ€”track and learn from them
  • โ€ข Square money is the profit center

Pricing Models & Frameworks Tutorial

Built for mastery ยท Interactive learning