Closing Line Value in NFL Research: Uses and Limits
Closing-line value can be a useful research measurement when its benchmark and units are defined. It is not the only metric that matters, a guaranteed estimate of true probability or a reason to continue a losing strategy. Keep quote movement, realized outcomes, costs and uncertainty separate.
For an NFL experiment, specify the instrument before calculating anything. A team-win contract, a margin threshold and a player-statistic payout are different questions. A sportsbook line and an exchange quote cannot be treated as interchangeable merely because they refer to the same game.
Define what close means in the experiment
Choose a benchmark time before inspecting the result. It might be a specified pre-game observation or the last eligible quote before a documented trading boundary. Record the actual timestamp and why that boundary fits the hypothesis. Kickoff, trading closure, determination and settlement need not coincide.
Keep the quote type fixed. A last trade can be stale; a midpoint can be unavailable or non-executable; a bid supports a sale estimate only for its available quantity. A benchmark selected after the fact because it gives the largest improvement changes the experiment.
Compute a narrowly defined quote change
For the same ordinary binary outcome, a simple dollar measurement is benchmark price minus entry price. The example below is a standalone arithmetic component. It does not convert a price movement into an independent probability estimate or claim that a closing trade occurred.
from decimal import Decimal
def quote_change(entry_usd, benchmark_usd):
# One fully paid ordinary binary outcome; same price units and identity.
# Raw quote change, not expected profit, realized proceeds or calibration.
entry, benchmark = map(lambda x: Decimal(str(x)),
[entry_usd, benchmark_usd])
if not all(x.is_finite() and 0 <= x <= 1 for x in [entry, benchmark]):
raise ValueError("prices must be finite dollar values in [0, 1]")
return benchmark - entry
print(quote_change("0.40", "0.50")) # 0.10 dollars per contract
# Hypothetical inputs; no fees, quantity, execution or forecast modeled.The hypothetical result means the chosen quote is ten cents above the specified entry price. A positive number can coexist with a losing settlement, costs larger than the difference or an unavailable sale. The calculation was checked offline for positive, negative, zero, boundary and non-finite inputs.
Separate price formats and margin assumptions
American sportsbook odds can be converted to a break-even probability before costs. Normalizing the two implied sides is one margin-removal convention; it does not reveal true probability. State the method and save both contemporaneous quotes rather than mixing a normalized close with a different unlabeled entry convention.
A point-spread change is measured in points, while a contract-quote change is measured in dollars. Those are not interchangeable quantities. A changed threshold can alter the qualifying outcomes, so preserve the exact contract rules instead of treating a favorable line move as an automatic payout advantage.
Evaluate several forms of evidence
- Preserve entry and benchmark identity, timestamp, type and units.
- Keep actual or simulated quantity, fees and execution assumptions.
- Report missing benchmark observations instead of dropping inconvenient runs.
- Group fills that depend on the same game or outcome.
- Examine outcomes and defined P&L alongside quote movement.
- Record every benchmark or rule variation inspected.
There is no universal sample of 65 bets, a few hundred fills or one season that validates a CLV signal. Dependence, selection, variation and the chosen analysis determine what can be inferred. A positive average alone does not prove statistical significance or a profitable strategy.
What Banger can add to the research record
Banger's public beta is paper-only. Its public 0.1.7 callback is on_market_tick(market, tick, ctx), so a bounded observer can help record delivered quotes and timestamps. This is different from a shipped automatic CLV capture or a full closing-price archive; add only what your actual observation procedure collects.
When inspecting simulated orders, retain the model: the packaged forward-paper path can assume a non-crossing limit fill and has mode-specific fee behavior. A reported fill price is not proof of a real entry or exit. Preserve the version, original history and completed shutdown with the comparison. CLV helps describe a selected price path; stronger conclusions need separate evidence.