Research · Study #1

How Fast Do +EV Flags Disappear at Sportsbooks?

By Patrick Hayes · Published November 10, 2026 · Data as of November 7, 2026

The median moneyline +EV flag our model raised at DraftKings and FanDuel lasted between 15 minutes and about an hour. Our odds polling is too coarse to say which side of an hour it falls on, so the main hypothesis is inconclusive.

Flags raised within two hours of kickoff looked shorter-lived than flags raised more than a day out, but there were only 31 of them, the difference failed its pre-registered test, and much of it comes from polling more often near kickoff. That hypothesis is inconclusive too.

728 flags across 454 games starting October 15 to November 7, 2026. Moneyline only; DraftKings and FanDuel, seven sports. Pre-registered; an earlier internal check had already measured next-poll survival on overlapping games.

We found a bug in our own scanner

While preparing this study we found a bug in the odds scanner that raises the flags. For spreads and totals, it compared a sportsbook's price at one line with consensus books quoting a different line. A FanDuel spread at −4.5 and +100, for example, was priced against the consensus books' coin flip at −4 and read as positive EV, when at −4.5 it is worth about −3%. The bug was there from the scanner's first version.

In this study's data, 85% of spread flags and 94% of total flags were priced at a line the consensus wasn't on, almost all of them at a line worse for the bettor. Most of those flags were the line gap, not a price. Moneyline bets have no line and weren't affected.

So we re-ran the study on moneyline flags only, with the same data and code, filtered to moneyline. Too few spread and total flags were at the consensus line to study on their own. The first version, on all three markets (3,287 flags), was never published; it had found the second hypothesis supported, and on moneyline alone it isn't. Note 11 in the technical write-up has the details.

What a flag is

Our model compares each sportsbook price with a fair price built from a consensus of other books. A flag starts at the first poll where the model rated one side of a market positive expected value at that book (the higher-EV side, with EV above zero), when that side wasn't flagged at the previous poll. The flag dies at the first poll where that side no longer clears the bar. Only the first flag for each side of a market at a book counts: if it comes back later, that isn't counted again.

A flag is the model's output, not a recommendation to bet. Nothing in this study says a flag was worth betting.

What we tested

HypothesisResultVerdict
H1: most flags are gone within an hourMedian lifetime between 15 min [95% CI 10–25] and about 60 min [60–90]Inconclusive
H2: flags near kickoff die faster than flags a day outFar minus near median: +5 min [−10 to +20] on the lower bound, about +75 min [+45 to +105] on the upperInconclusive: the lower-bound interval includes zero

We only see a flag when we poll, so each flag's lifetime is known to lie in an interval: at least as long as it was seen alive, at most the time from the poll before it appeared to the poll where it was gone. We estimated survival on both ends of that interval. The rules for each verdict were written down before the analysis ran. H1 would be supported if even the upper-bound median's confidence interval sat below 60 minutes, and refuted if the lower-bound median's sat above it. H2 needed the difference's confidence interval to sit above zero on both bounds. Confidence intervals come from 2,000 bootstrap resamples of whole games.

Why H2 isn't settled. Only 31 flags were raised within two hours of kickoff. On the lower bound the difference is 5 minutes, with an interval from −10 to +20 that includes zero. The upper-bound difference clears zero, but it mostly reflects polling. The poll before a typical near-kickoff flag came about 5 minutes earlier; before a typical far flag, about 30. That is longer than the overall 10-minute spacing a day out, because flags tend to appear after longer gaps, and it stretches the far flags' upper bound. Counted in polls, near-kickoff flags did no worse: of flags with a next poll, 59% of near-kickoff flags were still flagged at it, against 53% of far ones. Also, because only a side's first flag counts, a flag raised within two hours of kickoff is a side that was never flagged earlier in the game at that book, so the two groups differ in more than timing.

Why the main question can't be settled

Flags tended to appear after a longer-than-usual gap between polls: the median gap before a flag was about 30 minutes, against 5 to 10 minutes between polls overall. So a typical dead flag's lifetime is known only to within a window about an hour wide. The median sits somewhere between 15 and about 60 minutes. An hour is at the edge of that range, and nothing in this analysis narrows it. An interval-censored estimator might narrow it somewhat; finer polling would be needed to settle it.

How long flags lasted

More than 24h before kickoff (n=423)

Within 2h of kickoff (n=31)

0%25%50%75%100%5m15m30m1h2h4h12h5m after the flag: more than 24h before kickoff 53%–100%; within 2h of kickoff 65%–100% still flagged15m after the flag: more than 24h before kickoff 49%–94%; within 2h of kickoff 31%–53% still flagged30m after the flag: more than 24h before kickoff 43%–82%; within 2h of kickoff 10%–16% still flagged1h after the flag: more than 24h before kickoff 34%–64%; within 2h of kickoff 0%–4% still flagged2h after the flag: more than 24h before kickoff 25%–41%; within 2h of kickoff 0% still flagged4h after the flag: more than 24h before kickoff 17%–22%; within 2h of kickoff 0% still flagged12h after the flag: more than 24h before kickoff 11%–12%; within 2h of kickoff 0% still flagged
Share of flags still flagged, by time since the flag. Each band spans the lower-bound and upper-bound Kaplan–Meier estimates; the actual share should fall between them, apart from sampling error, which is not shown. Only 31 flags were raised within 2 hours of kickoff, and the difference between the two groups did not pass its pre-registered test. Time is spaced by checkpoint, not to scale.

Share of flags still flagged, lower-bound estimate to upper-bound estimate:

Groupn15 min30 min1 h2 h4 h12 h
All flags72850–90%43–77%33–59%26–37%18–22%11%
Raised within 2h of kickoff3131–53%10–16%0–4%0%0%0%
Raised 2–24h before kickoff27453–89%45–75%34–58%29–34%21–23%10–11%
Raised more than 24h out42349–94%43–82%34–64%25–41%17–22%11–12%

The within-two-hours row rests on 31 flags, so treat it as a sketch.

Near-kickoff games are polled more often, which could make their flags look shorter-lived. A check we added after the pre-registration reads each flag at the same checkpoint instead. Among flags with a poll 25 to 40 minutes later (17 near kickoff, 285 more than a day out), the side was flagged at that poll for 12% of near-kickoff flags, against 40% of flags raised more than a day out. At both that checkpoint and one 55 to 70 minutes after the flag, it was 0% against 29% (11 and 277 flags). That points the same way as H2, but 17 and 11 flags are too few to rely on.

What moved when a flag died

Consensus moved, book heldBook moved, consensus heldBoth movedNeither
All (n=678)59%15%24%2%

When a flag died, our consensus price had usually moved, and in most deaths the sportsbook's price held. The table records whether each side moved, not which way, and not which move ended the flag. An earlier internal audit of moneyline flags that died at the next poll found the consensus moving toward the sportsbook's price, by 3.9 percentage points on average. That suggests many flags end with our reference price catching up with the book. The book's own price moved in about 4 of every 10 deaths. For context, on polls where a flag survived, our consensus moved 7% of the time and the book 3%, so on those polls, too, the consensus moved more than twice as often as the book (a comparison added afterwards, not a test).

Method

  • Source: our own archive of odds polls (from 2026-10-08), for games starting 2026-10-15 to 2026-11-07. Polls run every few minutes to an hour depending on time to kickoff. No new data was collected for this study.
  • Moneyline only. Spreads and totals were dropped because of the scanner bug described above; that is a deviation from the pre-registration.
  • 342 flags that appeared on the first poll of their game, book and market were excluded, because the flag may have started before polling did.
  • Flags still alive at the last poll before kickoff (41) or that hit a polling gap over two hours (9) were kept as censored, not dropped.
  • Survival was estimated with Kaplan–Meier on each bound of the lifetime interval, as pre-registered.
  • No filter on consensus quality: 136 flags had a consensus of one book, 124 of two, 262 of three and 206 of four.

Limitations

  • One month, two sportsbooks, one market, and the October–November sport mix.
  • Only 31 flags were raised within two hours of kickoff, so H2 had little power to find a difference.
  • Poll resolution: nothing here is finer than "by the next poll".
  • Bounds, not an estimate. Running Kaplan–Meier on each bound brackets the answer; an interval-censored estimator would give a single estimate instead of bounds, though gaps this wide may still leave the median uncertain.
  • The consensus is our own blend. "Consensus moved" means our reference price moved, not that the market as a whole did.
  • Partly not new: an earlier internal check had already measured whether a flag survives to the next poll on overlapping games. Here 56% of flags with a next poll survived to it, against about 60% in that check, which covered all three markets and used slightly different rules. The full survival curve and H2 are new.
  • Over half the games (245 of 454) had their kickoff time shift during polling, usually by a few minutes, so a few flags would change time-to-kickoff group under the final kickoff time.

Pre-registration

We wrote the hypotheses, the metric and the decision rules down first. Git shows the file committed before the flag definitions and before the results. It can't show it came before the first run: the run script was committed together with the results, and the first run's output wasn't kept. The 60-minute line in H1 was set knowing that the earlier internal check put the answer near it. The file's SHA-256 is 5c12ce4efd66aae2bd3bcda4870bd41766d5416205900959e012f31b764c3224. The commit is in a private repository, so for now you have to take its date on trust.

Eleven deviations and interpretation notes were logged. The largest is the one at the top of this page: the pre-registration covers spreads and totals, and we dropped them. Two others could have shifted the estimates (games polled before the archive began, and an uncapped gap before a flag); we re-ran the analysis without them and no verdict changed. A third, that a side whose first flag is excluded gets no later flag, could also matter and was not re-run the other way. Two safeguards in the pre-registration did not work as intended: the buffer meant to keep out games polled before the archive began, and the cadence guard on H2 described above. The technical write-up below lists all eleven, with the sensitivity checks behind them.

Data

Aggregates only: no game ids, teams or prices. Times are in minutes; survival values and shares are fractions from 0 to 1. File names match the technical write-up, whose output folder this is. Free to reuse under CC BY 4.0 with a link back to this page.

Cite this

Hayes, P. (2026). How Fast Do +EV Flags Disappear at Sportsbooks? (+EV Bets Research, Study #1). https://plusevbets.com/research/how-fast-edges-die

Changelog

  • November 10, 2026: first published, on moneyline flags only. Before publication we dropped spreads and totals after finding the scanner bug described above.

Related