Chapter 1 Exercises: Introduction to Sports Betting
Instructions: Complete all exercises in the parts assigned by your instructor. Show all work for calculation problems. For programming challenges, include comments explaining your logic and provide sample output. For analysis and research problems, cite your sources where applicable.
Part A: Conceptual Understanding
Each problem is worth 5 points. Answer in complete sentences unless otherwise directed.
Exercise A.1 — Historical Milestones
Identify and briefly describe three pivotal moments in the history of sports betting that shaped the modern industry. For each, explain the regulatory or technological change involved and its lasting impact on how bets are placed or processed today.
Exercise A.2 — The Sportsbook Business Model
Explain how a traditional sportsbook generates profit. In your answer, address the following:
(a) What is the role of the vigorish (vig) in the sportsbook's revenue model?
(b) Why does a sportsbook prefer balanced action on both sides of a wager?
(c) Under what circumstances might a sportsbook accept unbalanced risk, and what tools does it use to manage that exposure?
Exercise A.3 — Bet Type Taxonomy
Create a taxonomy (classification tree or structured list) of the major bet types discussed in Chapter 1. For each bet type, provide:
- A one-sentence definition
- An example using a real or hypothetical sporting event
- One advantage and one disadvantage from the bettor's perspective
Your taxonomy should include at minimum: moneyline, point spread, totals (over/under), parlays, teasers, props, and futures.
Exercise A.4 — The Quantitative Edge
A friend tells you, "I've watched football my whole life. I don't need math to bet successfully." Construct a structured argument (at least four points) for why a quantitative, data-driven approach to sports betting is superior to relying solely on domain expertise and intuition. Reference concepts from Chapter 1 such as implied probability, expected value, and sample size.
Exercise A.5 — Market Efficiency
Define the concept of market efficiency as it applies to sports betting. Then answer:
(a) In what ways are sports betting markets similar to financial markets?
(b) In what ways do they differ?
(c) Why does the existence of the vig make it harder for bettors to exploit inefficiencies compared to trading in a zero-commission stock market?
Exercise A.6 — Stakeholder Analysis
Identify at least five distinct stakeholders in the sports betting ecosystem (e.g., bettors, sportsbooks, regulators, leagues, media companies). For each stakeholder, describe their primary interest, how they generate or receive value, and one potential conflict of interest they face.
Exercise A.7 — Legal Landscape Overview
Describe the significance of the 2018 Supreme Court decision in Murphy v. NCAA for the U.S. sports betting industry. In your answer, explain:
(a) What law was struck down and why?
(b) How has the regulatory landscape changed since the decision?
(c) Why does a state-by-state regulatory framework create both opportunities and challenges for quantitative bettors?
Exercise A.8 — Responsible Betting Frameworks
Explain why responsible gambling practices are essential to a sustainable, quantitative approach to sports betting. Describe at least three specific practices or safeguards that a disciplined bettor should implement, and explain how each one protects against common behavioral pitfalls discussed in Chapter 1.
Part B: Calculations
Each problem is worth 5 points. Show all work and round final answers to the indicated precision.
Exercise B.1 — Odds Format Conversion
Convert each of the following odds into the other two standard formats. Round decimal odds to two decimal places and fractional odds to the nearest common fraction.
| Given Odds | American | Decimal | Fractional |
|---|---|---|---|
| American: -150 | — | ? | ? |
| Decimal: 3.40 | ? | — | ? |
| Fractional: 5/2 | ? | ? | — |
| American: +275 | — | ? | ? |
| Decimal: 1.50 | ? | — | ? |
Exercise B.2 — Payout Calculations
Calculate the total payout (stake returned plus profit) and profit for each of the following bets. Assume all bets win.
(a) A \$100 bet at American odds of -110
(b) A \$50 bet at decimal odds of 2.75
(c) A \$200 bet at fractional odds of 7/4
(d) A \$150 bet at American odds of +320
Exercise B.3 — Computing the Vigorish
A sportsbook offers the following line on an NFL game:
- Kansas City Chiefs: -110
- Buffalo Bills: -110
(a) Calculate the implied probability for each side.
(b) Calculate the total implied probability (the overround).
(c) Compute the vigorish as a percentage using the overround method:
$$\text{Vig\%} = \left(1 - \frac{1}{\text{Overround}}\right) \times 100$$
(d) Now suppose the line moves to Chiefs -105 / Bills -115. Recalculate the vig. Which line is more favorable for the bettor, and by how much?
Exercise B.4 — Implied Probability and Fair Odds
A futures market lists the following odds to win the NBA Championship:
| Team | American Odds |
|---|---|
| Boston Celtics | +350 |
| Denver Nuggets | +500 |
| Oklahoma City Thunder | +600 |
| All other teams (combined) | — |
(a) Calculate the implied probability for each listed team.
(b) What is the minimum implied probability that "all other teams" must carry for the book to be balanced?
(c) If the true probability of the Celtics winning is 20%, calculate the expected value (EV) of a \$100 bet on the Celtics at +350. Is this a positive or negative EV bet?
(d) At what true probability does the Celtics bet at +350 become exactly break-even (EV = 0)?
Exercise B.5 — Tax-Adjusted Returns
A bettor in a jurisdiction with a 24% federal tax on net gambling winnings places the following bets over the course of a season:
| Bet | Stake | Odds (American) | Result |
|---|---|---|---|
| Bet 1 | \$200 | -110 | Win |
| Bet 2 | \$150 | +200 | Loss |
| Bet 3 | \$100 | +150 | Win |
| Bet 4 | \$250 | -130 | Win |
| Bet 5 | \$175 | +180 | Loss |
(a) Calculate the gross profit or loss for each bet.
(b) Calculate the net gambling income for the season (total winnings minus total losses).
(c) Calculate the federal tax owed on the net gambling income.
(d) Calculate the after-tax return on investment (ROI), defined as:
$$\text{ROI} = \frac{\text{Net Income After Tax}}{\text{Total Amount Staked}} \times 100\%$$
Exercise B.6 — Parlay Mathematics
A bettor places a three-leg parlay with the following individual bets (all at American odds):
- Leg 1: Team A moneyline at -150
- Leg 2: Game B over 45.5 at -110
- Leg 3: Team C +3.5 at +100
(a) Convert each leg to decimal odds.
(b) Calculate the combined parlay decimal odds (product of individual decimal odds).
(c) Calculate the total payout on a \$50 parlay bet if all three legs win.
(d) If the true win probability of each leg is 60%, 52%, and 50% respectively, what is the true probability of the parlay hitting? What is the expected value of this \$50 parlay?
Exercise B.7 — Vig-Free Line Extraction
A sportsbook posts the following line on a tennis match:
- Player A: -180
- Player B: +155
(a) Calculate the implied probability for each player.
(b) Calculate the overround.
(c) Remove the vig by normalizing the implied probabilities so they sum to exactly 100%. These are the "vig-free" or "fair" probabilities.
(d) Convert the vig-free probabilities back into American odds. These represent the "true" or "fair" odds.
(e) How much edge (in percentage points of probability) does the sportsbook's line give it on each side?
Part C: Programming Challenges
Each problem is worth 10 points. Write clean, well-documented Python code. Include docstrings, type hints, and at least three test cases per function.
Exercise C.1 — Odds Conversion Library
Write a Python module containing the following functions:
def american_to_decimal(american: int) -> float:
"""Convert American odds to decimal odds."""
def decimal_to_american(decimal_odds: float) -> int:
"""Convert decimal odds to American odds."""
def american_to_fractional(american: int) -> tuple[int, int]:
"""Convert American odds to fractional odds as (numerator, denominator)."""
def decimal_to_implied_probability(decimal_odds: float) -> float:
"""Convert decimal odds to implied probability (0 to 1)."""
def american_to_implied_probability(american: int) -> float:
"""Convert American odds to implied probability (0 to 1)."""
Requirements:
- Handle both positive and negative American odds correctly.
- Raise a
ValueErrorfor invalid inputs (e.g., American odds of 0, decimal odds less than 1.0). - Include a
__main__block that demonstrates all functions with sample conversions.
Exercise C.2 — Payout Calculator
Write a Python function (or set of functions) that calculates the payout for any supported bet type:
def calculate_payout(
stake: float,
odds: float | int,
odds_format: str = "american",
bet_type: str = "straight"
) -> dict:
"""
Calculate payout for a given bet.
Parameters:
stake: Amount wagered
odds: The odds value
odds_format: One of 'american', 'decimal', 'fractional'
bet_type: One of 'straight', 'parlay' (for parlay, odds should be a list)
Returns:
Dictionary with keys: 'stake', 'odds', 'potential_profit',
'total_payout', 'implied_probability'
"""
Additionally, write a calculate_parlay_payout function that accepts a list of odds values and a stake, and returns the combined payout. Demonstrate both functions with realistic examples.
Exercise C.3 — Vig Removal Tool
Write a Python function that takes odds for both sides of a two-way market and returns the vig-free (fair) probabilities and odds:
def remove_vig(
odds_side_a: int,
odds_side_b: int,
odds_format: str = "american"
) -> dict:
"""
Remove the vigorish from a two-way betting line.
Returns:
Dictionary with keys:
- 'implied_prob_a', 'implied_prob_b' (raw implied probabilities)
- 'overround' (total implied probability)
- 'vig_percentage' (the vig as a percentage)
- 'fair_prob_a', 'fair_prob_b' (vig-free probabilities)
- 'fair_odds_a', 'fair_odds_b' (vig-free American odds)
"""
Extend the function to handle three-way markets (e.g., soccer: home win, draw, away win) as a bonus. Include test cases using real or realistic betting lines.
Exercise C.4 — Bet Tracker Class
Design and implement a BetTracker class that allows a bettor to log, track, and analyze their betting history:
class BetTracker:
def __init__(self, bankroll: float):
"""Initialize tracker with starting bankroll."""
def place_bet(self, event: str, selection: str, stake: float,
odds: int, odds_format: str = "american") -> int:
"""Log a new bet. Returns a unique bet ID."""
def settle_bet(self, bet_id: int, result: str) -> dict:
"""Settle a bet as 'win', 'loss', or 'push'. Returns settlement details."""
def get_summary(self) -> dict:
"""Return summary statistics: total bets, wins, losses, pushes,
ROI, profit/loss, current bankroll, win rate."""
def get_history(self, last_n: int = None) -> list[dict]:
"""Return bet history, optionally limited to last N bets."""
def best_and_worst(self) -> dict:
"""Return the best and worst bets by profit."""
Requirements:
- Store bets internally with timestamps.
- Validate that the stake does not exceed current bankroll.
- The
get_summarymethod should compute at minimum: total bets placed, win/loss/push record, total profit or loss, ROI percentage, and current bankroll. - Include a demonstration script that simulates a bettor placing and settling at least 10 bets.
Exercise C.5 — Odds Comparison Tool
Write a command-line tool that compares odds from multiple sportsbooks for the same event and identifies the best available odds:
def compare_odds(event: str, offerings: list[dict]) -> dict:
"""
Compare odds from multiple sportsbooks.
Parameters:
event: Description of the event (e.g., "Chiefs vs Bills")
offerings: List of dicts, each with keys:
'sportsbook': str
'side_a_odds': int (American odds)
'side_b_odds': int (American odds)
Returns:
Dictionary with:
- 'event': the event name
- 'best_side_a': {'sportsbook': str, 'odds': int, 'implied_prob': float}
- 'best_side_b': {'sportsbook': str, 'odds': int, 'implied_prob': float}
- 'arbitrage_opportunity': bool
- 'arbitrage_margin': float (if applicable)
- 'all_offerings': sorted list of offerings with computed metrics
"""
Requirements:
- Determine the best available odds for each side of the bet.
- Check whether an arbitrage opportunity exists (combined implied probability of best odds < 100%).
- If an arbitrage opportunity exists, calculate the optimal stake allocation and guaranteed profit for a given total investment.
- Print a formatted comparison table to the console.
- Include a demonstration with at least four hypothetical sportsbooks.
Part D: Analysis & Interpretation
Each problem is worth 5 points. Provide structured, well-reasoned responses.
Exercise D.1 — Line Shopping Scenario
You want to bet on the Los Angeles Lakers moneyline in an upcoming game against the Golden State Warriors. Three sportsbooks offer the following odds:
| Sportsbook | Lakers ML | Warriors ML |
|---|---|---|
| Book A | -145 | +125 |
| Book B | -135 | +115 |
| Book C | -140 | +130 |
(a) Which book offers the best odds for a Lakers bet? Which for a Warriors bet?
(b) Calculate the implied probability and vig for each book's line.
(c) Is there an arbitrage opportunity by combining the best odds from different books? Show your work.
(d) If your model estimates the Lakers' true win probability at 57%, which (if any) of these lines offer positive expected value on a Lakers bet? On a Warriors bet?
Exercise D.2 — Bet Type Selection
It is the week before the Super Bowl. You have done extensive research and hold the following beliefs:
- Team A will likely win, but it will be a close game (your estimated probability of Team A winning: 58%)
- The game will likely be high-scoring (your estimated probability of the total going over: 62%)
- The star quarterback of Team A will have a big game (your estimated probability of him throwing 3+ touchdowns: 45%)
The sportsbook offers the following:
| Bet | Odds (American) |
|---|---|
| Team A moneyline | -150 |
| Team A -3.5 | +100 |
| Over 48.5 total points | -105 |
| QB throws 3+ TDs | +180 |
| Parlay: Team A ML + Over 48.5 | +185 |
(a) Calculate the expected value of each individual bet for a \$100 stake using your estimated probabilities.
(b) Calculate the expected value of the parlay assuming your probabilities are independent.
(c) Rank the bets from best to worst expected value.
(d) Considering factors beyond pure EV (variance, correlation, bankroll management), which bet or combination of bets would you recommend for a bettor with a \$2,000 bankroll? Justify your reasoning.
Exercise D.3 — Sportsbook Comparison
You are evaluating three online sportsbooks to determine which to use as your primary book. Analyze the following profiles:
| Feature | Book X | Book Y | Book Z |
|---|---|---|---|
| Standard vig (NFL sides) | -110/-110 | -108/-112 | -105/-115 |
| Reduced juice promotions | None | Weekly | None |
| Deposit bonus | 100% up to \$500 | 50% up to \$250 | None | |
| Withdrawal speed | 3-5 business days | 1-2 business days | Same day |
| Bet limits (NFL sides) | \$5,000 | \$2,000 | \$10,000 | |
| Live betting | Yes | Yes | Limited |
| Player prop availability | Extensive | Moderate | Limited |
| Account restriction policy | Aggressive | Moderate | Lenient |
(a) For a recreational bettor wagering \$50-\$200 per game, which book would you recommend and why?
(b) For a sharp bettor wagering \$1,000-\$5,000 per game focused on sides and totals, which book would you recommend and why?
(c) Why might a serious bettor maintain accounts at all three books?
(d) Calculate the long-run cost difference (per \$1,000 wagered) between the standard vig at Book X versus Book Z. Assume 50% win rate on true-odds bets.
Exercise D.4 — Interpreting Line Movement
The opening and closing lines for a college football game are shown below:
| Time | Spread | Total |
|---|---|---|
| Open (Monday) | Alabama -7 (-110/-110) | 52.5 (-110/-110) |
| Tuesday | Alabama -7.5 (-110/-110) | 52.5 (-110/-110) |
| Wednesday | Alabama -7.5 (-105/-115) | 53 (-110/-110) |
| Closing (Saturday) | Alabama -8 (-110/-110) | 53.5 (-115/-105) |
(a) What do the spread movements suggest about the betting action or new information entering the market?
(b) On Wednesday, the spread is -7.5 but the vig shifted to -105/-115. What does this specific vig shift indicate about the market's positioning, and why might the book adjust the vig rather than the number?
(c) Why might a bettor care about the difference between the opening line and the closing line? Which is generally considered a better predictor of the game outcome?
(d) If you had bet Alabama -7 at the opening line, how would you evaluate that bet given the closing line of Alabama -8?
Exercise D.5 — Evaluating a Betting System
A website advertises the following betting system: "Bet on NFL home underdogs of 3 to 7 points when the line moves in their favor by at least 1 point from open to close. Our backtested results show a 56% win rate against the spread over the last 5 seasons (312 qualifying bets)."
(a) Calculate the approximate profit or loss from 312 bets at -110 odds with a 56% win rate, assuming \$100 per bet.
(b) Conduct a rough significance test: assuming the true ATS win rate is 50%, what is the probability of observing a 56% or higher win rate over 312 bets by chance? (Hint: use the normal approximation to the binomial.)
(c) Identify at least three reasons to be skeptical of this system's claimed edge, referencing concepts such as data mining, overfitting, survivorship bias, and market adaptation.
(d) What additional information would you want before committing real money to this system?
Part E: Research & Extension
Each problem is worth 5 points. These require independent research beyond Chapter 1. Cite all sources.
Exercise E.1 — State Regulatory Deep Dive
Choose one U.S. state that has legalized sports betting. Research and report on:
(a) When sports betting was legalized and through what legislative mechanism.
(b) The regulatory body that oversees sports betting in that state.
(c) The types of betting permitted (online, in-person, mobile) and any restrictions on bet types or sports.
(d) Tax rates imposed on operators (gross gaming revenue tax) and on bettors (income tax obligations).
(e) How the state's approach compares to at least one neighboring or comparable state.
Provide at least three credible sources for your research.
Exercise E.2 — International Market Comparison
Compare the sports betting markets in two of the following regions: the United Kingdom, Australia, and continental Europe (pick one country, e.g., France or Germany).
For each market, research and report on:
(a) The primary regulatory framework and licensing requirements.
(b) The dominant odds format and how it reflects cultural betting traditions.
(c) The market size (approximate annual handle or gross gaming revenue).
(d) Key differences in product offerings (e.g., exchange betting, in-play markets, cash-out features).
(e) What lessons the U.S. market can learn from the selected international markets.
Exercise E.3 — Sportsbook Business Model Analysis
Select a publicly traded sports betting company (e.g., DraftKings, Flutter/FanDuel, BetMGM parent Entain, or Caesars). Using public filings and reporting:
(a) Describe the company's primary revenue streams from sports betting.
(b) What is the company's hold percentage (or win margin) on sports betting, and how does it compare to the theoretical vig on their lines?
(c) How much does the company spend on customer acquisition (marketing and promotions) relative to revenue?
(d) Analyze whether the company is currently profitable from sports betting operations, and if not, what is its path to profitability.
(e) How does the company use technology and data to manage risk and set lines?
Exercise E.4 — The Evolution of Odds and Information
Research how the process of setting and adjusting betting lines has evolved over the past 50 years. Your report should cover:
(a) How lines were set in the pre-internet era (the role of linemakers like Bob Martin and LVSC).
(b) The impact of the internet and offshore sportsbooks on line-setting and betting accessibility.
(c) How algorithms and machine learning are used in modern line-setting.
(d) The role of "steam moves" and syndicate betting in moving lines.
(e) Your assessment of whether today's betting markets are more or less efficient than those of 30 years ago, and why.
Exercise E.5 — Ethical and Social Dimensions
Research and write a structured essay (500-800 words) addressing the following question:
As sports betting becomes increasingly legalized and mainstream, what are the most significant ethical and social concerns, and how should the industry, regulators, and bettors address them?
Your essay should address at minimum:
(a) Problem gambling prevalence and the effectiveness of current harm-reduction measures.
(b) The relationship between sports betting advertising and youth exposure.
(c) Integrity risks (match-fixing and insider information) and how they are monitored.
(d) The equity implications of who benefits and who is harmed by widespread sports betting.
(e) A concrete proposal for one policy or practice that would improve the balance between industry growth and social responsibility.
Scoring Guide
| Part | Problems | Points Each | Total Points |
|---|---|---|---|
| A: Conceptual Understanding | 8 | 5 | 40 |
| B: Calculations | 7 | 5 | 35 |
| C: Programming Challenges | 5 | 10 | 50 |
| D: Analysis & Interpretation | 5 | 5 | 25 |
| E: Research & Extension | 5 | 5 | 25 |
| Total | 30 | — | 175 |
Grading Criteria
Part A (Conceptual): Full credit requires clear, accurate explanations that demonstrate understanding of the underlying concepts. Partial credit for incomplete but correct reasoning.
Part B (Calculations): Full credit requires correct final answers with all work shown. Partial credit for correct methodology with arithmetic errors.
Part C (Programming): Graded on correctness (40%), code quality and documentation (30%), and test coverage (30%). Code must execute without errors.
Part D (Analysis): Graded on analytical depth, logical reasoning, and appropriate application of chapter concepts. Multiple valid approaches may exist.
Part E (Research): Graded on research quality, source credibility, analytical depth, and clear writing. Minimum source requirements specified per problem.
Solutions: Complete worked solutions for all exercises are available in
solutions/chapter-01-solutions.md. For programming challenges, reference implementations are provided insolutions/code/chapter_01/.