Chapter 13 Exercises: Value Betting Theory and Practice

These exercises cover the core skills of value betting: estimating true probabilities, identifying positive-EV opportunities, tracking bets systematically, evaluating performance over time, and adapting to market corrections. Solutions for selected exercises are available in code/exercise-solutions.py.


Part A: True Probability Estimation (6 exercises, 5 points each)

Exercise A.1: Elo Probability Calculation

Team A has an Elo rating of 1620 and Team B has an Elo rating of 1480. Using the standard Elo formula $P(\text{A wins}) = 1 / (1 + 10^{-\Delta / 400})$ where $\Delta = R_A - R_B$:

(a) Calculate Team A's win probability without home-field advantage. (b) If Team A is the home team and the home-field advantage is +65 Elo points, recalculate. (c) Convert both probabilities to fair (no-vig) American odds.


Exercise A.2: Vig Removal Methods

A sportsbook posts Team X at -145 and Team Y at +125. The implied probabilities are 59.18% and 44.44%, summing to 103.62%.

(a) Remove the vig using the additive method (proportional scaling). What are the no-vig probabilities? (b) Remove the vig using the power (multiplicative/Shin) method. What are the no-vig probabilities? (c) Which method is considered more accurate for favorites versus longshots, and why?


Exercise A.3: Bayesian Probability Combination

Your Elo model estimates that the home team wins with probability 0.58. The sharp closing line (after vig removal) implies a probability of 0.52. Using the weighted log-odds combination formula from Section 13.1:

(a) Compute the combined probability using model weight = 0.30 and market weight = 0.70. (b) Repeat with model weight = 0.50 and market weight = 0.50. (c) At what model weight does the combined probability first exceed 0.55? (d) If you historically achieve +2.0% CLV, argue whether a model weight of 0.30 or 0.50 is more appropriate.


Exercise A.4: Calibration Assessment

Over the past 400 games, your model predicted the following probability bins (predicted probability, games, actual wins):

Predicted Range Games Wins
0.30-0.40 45 14
0.40-0.50 80 37
0.50-0.60 110 60
0.60-0.70 95 64
0.70-0.80 70 55

(a) Compute the actual win rate for each bin. Is the model well-calibrated? (b) Calculate the Brier score for the midpoint-predicted probabilities versus actual outcomes. (c) What does the pattern of over/under-prediction tell you about your model's biases?


Exercise A.5: Model Versus Market

You build a model that produces Brier score = 0.218 on 500 held-out NFL games. The no-vig closing line from a sharp book achieves Brier score = 0.212 on the same 500 games.

(a) Is your model better or worse than the market? By how much? (b) Given the Brier scores, should you rely exclusively on the model, exclusively on the market, or combine them? (c) If you could improve your Brier score by 0.003 through better feature engineering, would your model then outperform the market? What are the practical implications?


Exercise A.6: Home-Field Advantage Adjustment

In the NFL from 2015-2024, home teams won 52.8% of games. Your model uses a fixed 65-point Elo home-field advantage.

(a) Convert a 52.8% win rate to an Elo-equivalent advantage using the inverse of the Elo formula. (b) If home-field advantage has declined to 51.5% in the most recent 3 seasons, what should the new Elo adjustment be? (c) Discuss the risk of using stale home-field parameters. How would this error manifest in your CLV tracking?


Part B: Value Identification and Bet Sizing (6 exercises, 5 points each)

Exercise B.1: Edge Calculation

You estimate a team's true win probability at 55%. The best available odds are -115.

(a) What is the implied probability from the odds? (b) What is your percentage edge? (c) Using the Kelly criterion with $b = d - 1$ where $d$ is the decimal odds, what is the full Kelly bet as a percentage of bankroll? (d) At quarter-Kelly, what percentage of a $10,000 bankroll should you stake?


Exercise B.2: Minimum Edge Thresholds

Using the minimum_edge_threshold framework from Section 13.2, calculate the required edge for:

(a) A standard spread bet where you are 80% confident in your probability estimate (range: 52%-58%). (b) A player prop bet where you are 60% confident (range: 45%-65%). (c) A futures bet where you are 70% confident (range: 10%-20%). (d) Rank these three bets by the minimum edge threshold required. Explain why the ordering makes sense.


Exercise B.3: Multi-Factor Value Scoring

Compute the multi-factor value score for each of the following three bets:

Factor Bet A Bet B Bet C
Edge 4.0% 7.0% 2.5%
CLV track record +1.5% -0.5% +2.5%
Market efficiency (0-1) 0.3 0.7 0.2
Liquidity (0-1) 0.9 0.5 1.0
Correlation with portfolio 0.1 0.2 0.6
Hours to event 48 6 72

Which bet has the highest composite score? Explain which factors drove the ranking.


Exercise B.4: Confidence Adjustment to Kelly

A bettor estimates a 60% true probability on a +120 moneyline.

(a) What is the full Kelly fraction? (b) If the bettor is only 75% confident that the true probability exceeds the implied probability, what adjusted Kelly fraction should they use (multiply full Kelly by confidence)? (c) If the bettor uses quarter-Kelly and the confidence adjustment, what is their final stake as a percentage of bankroll? (d) Compare the expected growth rate under full Kelly versus the adjusted approach from part (c). Why is the conservative approach generally preferred?


Exercise B.5: Edge Sensitivity Analysis

You estimate Team A at 55% +/- 4% (one standard deviation). The best odds are -108 (implied probability 51.92%).

(a) Compute your edge at the point estimate (55%). (b) Compute your edge at the lower bound of the 95% confidence interval (55% - 1.96 * 4% = 47.16%). (c) Compute your edge at the upper bound (55% + 1.96 * 4% = 62.84%). (d) What is the probability that your edge is actually positive? (Hint: compute z = (0.55 - 0.5192) / 0.04.) (e) Given these results, classify this bet using the ValueRating framework from Section 13.2.


Exercise B.6: Comparing Value Across Markets

Three betting opportunities exist:

  • Bet X: Spread bet, your probability 54%, best odds -107 (implied 51.69%), model std 3%.
  • Bet Y: Total bet, your probability 58%, best odds -115 (implied 53.49%), model std 5%.
  • Bet Z: Moneyline underdog, your probability 38%, best odds +180 (implied 35.71%), model std 4%.

(a) Calculate the percentage edge for each bet. (b) Calculate the full Kelly fraction for each. (c) Calculate the 95% confidence interval on edge for each bet. (d) Which bet would you prioritize, and why? Consider edge size, uncertainty, and Kelly sizing.


Part C: Bet Tracking and Performance Evaluation (6 exercises, 5 points each)

Exercise C.1: ROI Confidence Interval

A bettor has placed 300 bets at an average stake of $100 and average odds of -110. They have a 54.0% win rate.

(a) Calculate total profit. (b) Using the normal approximation, compute the 95% confidence interval on ROI. (c) Is zero ROI within the confidence interval? What does this tell us about statistical significance? (d) How many more bets at the same win rate would be needed for zero to fall outside the 95% CI?


Exercise C.2: Sample Size Requirements

Using the required_sample_size function logic from Section 13.4:

(a) How many bets are needed to confirm a 2% ROI edge at 95% confidence and 80% power (standard -110 bets)? (b) How many for a 5% ROI edge? (c) If a bettor places 600 bets per year, how many years would it take to confirm each edge? (d) How does CLV analysis accelerate this timeline? Provide a quantitative comparison.


Exercise C.3: Regression to the Mean

A bettor starts the season with a 60% win rate over their first 50 bets at -110 average odds.

(a) Calculate their observed ROI over these 50 bets. (b) If their true win rate is 53%, what is the probability of observing 60%+ over 50 bets? (Use a normal approximation to the binomial.) (c) If they continue for 450 more bets at their true 53% rate, what will their overall win rate be after 500 total bets? (Compute as weighted average of actual results.) (d) What is the expected ROI after 500 bets? Compare to the 50-bet ROI to illustrate regression to the mean.


Exercise C.4: Wilson Score Confidence Interval

After 200 bets with 110 wins and 90 losses:

(a) Calculate the Wilson score 95% confidence interval for the true win rate. The formula is:

$$ \frac{\hat{p} + \frac{z^2}{2n} \pm z \sqrt{\frac{\hat{p}(1-\hat{p})}{n} + \frac{z^2}{4n^2}}}{1 + \frac{z^2}{n}} $$

(b) Does this interval contain the break-even win rate of 52.38% (for -110 bets)? (c) How many more bets at the same win rate (55%) would be needed for the lower bound to exceed 52.38%?


Exercise C.5: Performance by Segment

A bettor has the following results by sport:

Sport Bets Wins Losses Avg Odds
NFL 250 138 112 -108
NBA 300 156 144 -110
MLB 150 82 68 -112

(a) Calculate the ROI for each sport. (b) Calculate the 95% confidence interval on win rate for each. (c) In which sport does the bettor appear to have the strongest edge? The weakest? (d) For the weakest sport, could the observed results be entirely due to luck? Justify quantitatively.


Exercise C.6: CLV as a Leading Indicator

A bettor tracks CLV on 400 bets:

  • First 200 bets: mean CLV = +1.8%, ROI = +2.5%
  • Last 200 bets: mean CLV = +0.4%, ROI = +1.2%

(a) Does the CLV decline from +1.8% to +0.4% suggest edge decay? (b) Perform a two-sample z-test on the CLV means. Assume standard deviation of CLV is 3.0% for both periods. Is the difference statistically significant? (c) The ROI only declined from 2.5% to 1.2%. Why might CLV detect problems before ROI does? (d) What specific actions should this bettor take?


Part D: Edge Decay and Market Adaptation (6 exercises, 5 points each)

Exercise D.1: Edge Lifecycle

A bettor's rolling 100-bet ROI over 800 bets is: +5.2%, +4.8%, +3.5%, +2.1%, +0.8%, -0.2%, -1.1%, +0.5%.

(a) Does this data suggest edge decay? At approximately which window did the decay begin? (b) Fit a simple linear trend (slope) through the 8 data points. Is the slope meaningfully negative? (c) The last window (+0.5%) shows slight recovery. Could this be noise, or evidence of adaptation? What additional information would help distinguish? (d) If you were this bettor, at which point would you have paused betting to reassess? Propose a formal stopping rule.


Exercise D.2: Model Staleness Detection

Your NFL model was trained on Seasons 2021-2023. You are now midway through the 2025 season. Your model's Brier score by half-season:

Period Brier Score CLV
2024 H1 0.220 +2.1%
2024 H2 0.225 +1.6%
2025 H1 0.235 +0.8%

(a) Is there a trend in model accuracy? Calculate the rate of Brier score degradation per half-season. (b) If the market's Brier score is consistently 0.215, at what point did your model stop adding value above the market? (c) Propose a retraining schedule. How often should you retrain, and on how much historical data? (d) What specific data from the 2024-2025 seasons might explain the degradation?


Exercise D.3: Market Adaptation Scenario

You have been profiting from player prop markets because sportsbooks were slow to incorporate snap count data into their prop lines. Now, a major data provider has made snap count projections publicly available.

(a) Predict the timeline over which your edge will decay. Will it be sudden or gradual? (b) What should you do immediately (within 1 week)? (c) What medium-term adjustments (1-3 months) should you make? (d) Identify two potential replacement edge sources that might emerge as this one closes.


Exercise D.4: Quarterly Review Simulation

Using the quarterly review framework from Section 13.5, analyze the following quarterly data:

Metric Q1 Q2 Q3 Q4
Bets 320 350 310 340
ROI +4.1% +2.8% +1.2% -0.5%
CLV +2.5% +2.0% +1.1% +0.3%
Books active 8 8 6 5
Model version v2.1 v2.1 v2.1 v2.1

(a) Identify the three most concerning trends in this data. (b) Propose specific corrective actions for each concern. (c) Should the bettor continue betting in Q1 of the next year, or pause? Justify your recommendation. (d) Draft a 5-item adaptation checklist tailored to this bettor's situation.


Exercise D.5: Diversification Strategy

A bettor currently bets only NFL spreads. Their 3-year average CLV is +1.8% on 400 bets per year.

(a) If their NFL edge decays to +0.5% CLV next season, what is the profit impact (assume $100 average stake)? (b) If they add NBA totals with +2.2% CLV on 300 bets per year, what is their combined portfolio expected profit? (c) Calculate the portfolio's CLV variance if NFL and NBA CLV are uncorrelated. (d) How does diversification improve the Sharpe ratio (mean CLV / std CLV) compared to the NFL-only approach?


Exercise D.6: Account Limitation Strategy

A bettor has been limited at 3 of their 8 sportsbooks. The limited books were their top-3 by line quality.

(a) If the limited books offered average odds of -106 and the remaining 5 books average -110, estimate the impact on average obtained odds. (b) If the bettor's break-even requires average odds of -108 or better, are they still viable? (c) Propose a specific strategy for replacing the lost book access (consider new books, bet brokers, P2P exchanges). (d) What proactive steps could the bettor have taken to delay limitations?


Part E: Programming Exercises (6 exercises, 5-10 points each)

Exercise E.1: Elo Model Implementation (10 points)

Implement an EloModel class with the following requirements:

  • predict_probability(home, away, neutral=False) method
  • update(home, away, home_score, away_score) method with margin-of-victory adjustment
  • season_reset() method with configurable mean reversion
  • calibration_analysis(n_bins=10) method returning Brier score and bin-level calibration

Test your model on at least 3 seasons of synthetic game data (100+ games per season). Print the Brier score and a calibration table.


Exercise E.2: Value Assessment Pipeline (10 points)

Implement the assess_value function from Section 13.2. Given inputs (your_prob, your_prob_std, best_odds, best_book), the function should:

  • Calculate edge and 95% confidence interval on edge
  • Compute confidence that edge is positive (using normal CDF)
  • Assign a ValueRating (NO_VALUE, MARGINAL, MODERATE, STRONG, VERY_STRONG)
  • Calculate quarter-Kelly stake adjusted by confidence
  • Return a complete ValueAssessment dataclass

Test on 5 different scenarios spanning the full range of value ratings.


Exercise E.3: Bet Tracker System (10 points)

Build a BetTracker class that:

  • Stores bets in an in-memory data structure (list of dataclass objects, no database required)
  • Supports add_bet(), update_result(), and get_performance_summary() methods
  • Calculates CLV for each bet where closing odds are available
  • Generates performance breakdowns by sport, market type, and sportsbook
  • Computes rolling 50-bet ROI and CLV

Populate with at least 200 synthetic bets and print the summary report.


Exercise E.4: Edge Decay Detector (5 points)

Write a function detect_edge_decay(clv_values, window_size=100) that:

  • Computes rolling mean CLV over non-overlapping windows
  • Fits a linear trend through the window means
  • Returns the slope, p-value, and a recommendation string
  • Includes a "warning" threshold (slope < -0.001) and "critical" threshold (slope < -0.003)

Test with two scenarios: stable CLV (+2% mean, 3% std) and decaying CLV (linearly decreasing from +3% to +0.5%).


Exercise E.5: Bayesian Probability Combiner (5 points)

Implement bayesian_probability_combination(model_prob, market_prob, model_weight, market_weight) using the log-odds weighting method.

  • Handle edge cases where probabilities are near 0 or 1
  • Include input validation
  • Generate a table showing the combined probability for model_prob = 0.60, market_prob = 0.50, and model_weight varying from 0.1 to 0.9 in increments of 0.1

Exercise E.6: Monte Carlo Bankroll Simulator (10 points)

Build a Monte Carlo simulator that:

  • Takes inputs: true_roi, avg_odds, n_bets, n_simulations, bankroll, bet_sizing_method
  • Supports three bet sizing methods: flat (fixed percentage), Kelly, and quarter-Kelly
  • For each simulation, tracks the bankroll path, maximum drawdown, and final bankroll
  • Computes probability of ruin (bankroll hits zero), median final bankroll, and 5th/95th percentile outcomes

Run with true_roi = 3%, avg_odds = -110, n_bets = 1000, and compare the three sizing methods. Print a summary table.


Scoring Summary

Part Exercises Points Each Subtotal
A: True Probability Estimation 6 5 30
B: Value Identification and Bet Sizing 6 5 30
C: Bet Tracking and Performance Evaluation 6 5 30
D: Edge Decay and Market Adaptation 6 5 30
E: Programming Exercises 6 5-10 55
Total 30 175