0/70 completed
Behavioral Model Interactive

Home & Fandom Bias

Public bettors overbet popular teams and home favorites. Identify mispriced lines created by emotional betting patterns.

๐Ÿ  The Bias Pattern

Home Field Bias

Public overvalues home field advantage by 1-3 points on average.

  • โ€ข Actual HFA: ~2.5 pts (NFL), ~3 pts (NBA)
  • โ€ข Public perception: often 4-5 pts
  • โ€ข Creates fade opportunity on road teams

Fandom Bias

Popular/national TV teams attract disproportionate betting action.

  • โ€ข Cowboys, Lakers get 60-70% of public bets
  • โ€ข Lines shade 1-2 points against them
  • โ€ข Contrarian value on small market teams

Scenario Setup

Select popular teams playing:

True Fair Line -3
-10 10

Bias Strength

Home Field Overvalue 3
0 5
Popularity Overvalue 5
0 8

Line Movement

True Fair Line
-3
No bias
Market Line
+2.0
With public bias
Edge Available
+5.0
Fade popular team

Betting Action Distribution

% of Bets on Popular Team 85%
% of Money on Popular Team 70%
Sharp Money on Underdog 30%

When bet count and money % diverge, sharps are on the other side.

๐Ÿ† Most Biased Teams

Dallas Cowboys

NFL

America's Team, massive public action

LA Lakers

NBA

Largest fanbase, national TV favorites

NY Yankees

MLB

Historic brand, heavy public betting

Notre Dame

CFB

National following, inflated lines

Ohio State

CFB

Huge alumni base, public favorite

Manchester United

Soccer

Global fanbase, retail favorite

๐Ÿ’ฐ Pricing Strategy

For the House

  • โ†’ Shade lines against popular teams (capture public action)
  • โ†’ Watch bet count vs money % for sharp action
  • โ†’ Prime time games get extra juice

For Bettors (to model)

  • โ†’ Fade public teams when line moves against value
  • โ†’ Small market road dogs are undervalued
  • โ†’ Track closing line value to validate edge

R Code Equivalent

# Calculate public bias adjustment
calculate_bias_adjustment <- function(is_popular, is_home, 
                                       pop_bias = 3, home_bias = 2) { 
  adjustment <- 0
  
  if (is_popular) adjustment <- adjustment - pop_bias
  if (is_home) adjustment <- adjustment - home_bias * 0.5
  
  return(adjustment)
}

# Shade line for public action
shade_line <- function(true_line, is_popular_home, 
                       public_pct = 0.65, target_balance = 0.5) { 
  # Higher public % = more shading
  imbalance <- public_pct - target_balance
  shade_factor <- imbalance * 3  # ~1.5 pts for 10% imbalance
  
  if (is_popular_home) { 
    return(true_line - shade_factor)
  } else { 
    return(true_line + shade_factor)
  }
}

# Example
true_line <- -3
market_line <- shade_line(true_line, TRUE, 0.70)
edge <- market_line - true_line
cat(sprintf("True: %+.1f, Market: %+.1f, Edge: %+.1f\n", 
            true_line, market_line, edge))

โœ… Key Takeaways

  • โ€ข Public overvalues home field by 1-3 points
  • โ€ข Popular teams attract 60-70% of public bets
  • โ€ข Lines shade against public favorites
  • โ€ข Sharps fade popular teams, take road dogs
  • โ€ข Bet count vs money % reveals sharp action
  • โ€ข Small market teams = contrarian value

Pricing Models & Frameworks Tutorial

Built for mastery ยท Interactive learning