Edgehalla

NHL Betting Test

Our research found a handful of NHL betting rules that might beat the market. This page tests them with real prices: every bet the rules flag, 1 unit flat at the best price we logged, graded after the game. Next to it is the same bet at its "take it at" price, the worst price the model still calls worth taking, so you can see how the test looks at a book that offers less. Losing days stay on the page. For each test's verdict and the range luck alone could produce, see the live tests scoreboard.

So far: 24–106, −46.16u at our price (−35.5% per bet), −49.82u at the take-it-at prices.

The record

Team bets (moneyline, puck line)

Record
14–19
Profit at our price
−6.71u (−20.3%)
Profit at take-it-at
−7.42u (−22.5%)
Model chance / hit rate
56% / 42%

Anytime goal long shots

Record
10–87 (1 void/push)
Profit at our price
−39.45u (−40.7%)
Profit at take-it-at
−42.40u (−43.7%)
Model chance / hit rate
21% / 10%

Pre-registered test longshot-1: read once at 300 graded bets (97 so far). It passes only if profit at our price is above zero with the bootstrap 95% lower bound above −5%, and it still holds without DraftKings prices.

Day by day

  • Oct 2024 bets−20.42uRunning total −46.16u
  • Oct 1910 bets+7.23uRunning total −25.75u
  • Oct 187 bets+0.98uRunning total −32.98u
  • Oct 1731 bets−16.49uRunning total −33.96u
  • Oct 163 bets−3.00uRunning total −17.46u
  • Oct 1520 bets−16.00uRunning total −14.46u
  • Oct 141 bet−1.00uRunning total +1.54u
  • Oct 1331 bets+2.43uRunning total +2.54u
  • Oct 122 bets+2.10uRunning total +0.10u
  • Oct 112 bets−2.00uRunning total −2.00u

Team bets

Every NHL team bet in the test, newest first
DateBetRuleModelPriceTake it atResultUnitsAt take-it-at
Oct 20VAN +1.5CAR@VANPuck line: our margin model disagrees by 3+ points53%+105 Hard Rock Bet-110Lost−1.00u−1.00u
Oct 20CBJ MLTOR@CBJMoneyline: fade the tired team (back-to-back, fresh goalie)--150 BetOnline.ag, LowVig.ag-Lost−1.00u−1.00u
Oct 20COL MLCOL@NJDMoneyline: fast team vs slow team52%+102 Courtside-108Lost−1.00u−1.00u
Oct 20MTL MLSJS@MTLMoneyline: fade the tired team (back-to-back, fresh goalie)--214 ReBet, MyBookie.ag-Lost−1.00u−1.00u
Oct 20NJD MLCOL@NJDMoneyline: fade the tired team (back-to-back, fresh goalie)--109 Bally Bet, BetRivers-Won+0.92u+0.92u
Oct 20NYI MLANA@NYIMoneyline: fade the tired team (back-to-back, fresh goalie)--150 BetOnline.ag, LowVig.ag-Won+0.67u+0.67u
Oct 19ANA MLANA@NYRMoneyline: fast team vs slow team47%+125 Bovada, Hard Rock Bet+113Lost−1.00u−1.00u
Oct 19COL MLCOL@PHIMoneyline: fast team vs slow team71%-230 ReBet, theScore Bet-247Lost−1.00u−1.00u
Oct 19PHI +1.5COL@PHIPuck line: our margin model disagrees by 3+ points57%-120 BetMGM-134Won+0.83u+0.75u
Oct 18CGY +1.5CAR@CGYPuck line: our margin model disagrees by 3+ points59%-130 theScore Bet-144Won+0.77u+0.69u
Oct 18CGY +1.5CAR@CGYPuck line: favourite on a back-to-back, underdog rested59%-130 theScore Bet-144Won+0.77u+0.69u
Oct 18CGY MLCAR@CGYMoneyline: fade the tired team (back-to-back, fresh goalie)-+187 BetOnline.ag, LowVig.ag-Won+1.87u+1.87u
Oct 18MIN MLCBJ@MINMoneyline: fade the tired team (back-to-back, fresh goalie)--175 BetUS-Won+0.57u+0.57u
Oct 17VGK MLPIT@VGKMoneyline: fade the tired team (back-to-back, fresh goalie)--198 BetAnything-Won+0.51u+0.51u
Oct 17LAK MLBOS@LAKMoneyline: fade the tired team (back-to-back, fresh goalie)--130 BetAnything-Lost−1.00u−1.00u
Oct 17CHI +1.5DAL@CHIPuck line: our margin model disagrees by 3+ points59%-135 BetMGM-146Lost−1.00u−1.00u
Oct 17SEA MLSEA@FLAMoneyline: fast team vs slow team40%+175 BetRivers, Bally Bet+153Lost−1.00u−1.00u
Oct 17VAN +1.5VAN@TBLPuck line: our margin model disagrees by 3+ points47%+136 DraftKings+113Lost−1.00u−1.00u
Oct 16ANA MLBOS@ANAMoneyline: fast team vs slow team51%+101 Caesars-102Lost−1.00u−1.00u
Oct 15CGY +1.5CGY@VGKPuck line: our margin model disagrees by 3+ points51%+106 betPARX, BetRivers-103Lost−1.00u−1.00u
Oct 15SEA +1.5SEA@TBLPuck line: our margin model disagrees by 3+ points54%+100 Hard Rock Bet-116Won+1.00u+0.86u
Oct 15VAN +1.5VAN@FLAPuck line: our margin model disagrees by 3+ points52%+100 BetMGM, Hard Rock Bet-110Won+1.00u+0.91u
Oct 14COL MLDAL@COLMoneyline: fast team vs slow team58%-130 LowVig.ag, BetOnline.ag-139Lost−1.00u−1.00u
Oct 13ANA MLCGY@ANAMoneyline: fast team vs slow team65%-165 theScore Bet-186Lost−1.00u−1.00u
Oct 13NSH +1.5VGK@NSHPuck line: favourite on a back-to-back, underdog rested70%-235 BetRivers, betPARX-229Lost−1.00u−1.00u
Oct 13COL MLCOL@DALMoneyline: fast team vs slow team55%-113 Courtside, BetRivers-120Won+0.88u+0.83u
Oct 13PIT MLPIT@CHIMoneyline: fast team vs slow team62%-150 FanDuel, BetRivers-160Lost−1.00u−1.00u
Oct 13OTT MLSTL@OTTMoneyline: fast team vs slow team53%-111 LowVig.ag, BetOnline.ag-114Lost−1.00u−1.00u
Oct 13STL +1.5STL@OTTPuck line: favourite on a back-to-back, underdog rested71%-250 BetMGM-244Won+0.40u+0.40u
Oct 12OTT MLOTT@NJDMoneyline: fast team vs slow team48%+112 FanDuel+110Won+1.12u+1.10u
Oct 12BUF MLFLA@BUFMoneyline: fast team vs slow team55%-102 FanDuel-123Won+0.98u+0.81u
Oct 11PHI +1.5CAR@PHIPuck line: our margin model disagrees by 3+ points60%-138 LowVig.ag-150Lost−1.00u−1.00u
Oct 11VAN +1.5VAN@NYRPuck line: our margin model disagrees by 3+ points54%-105 Hard Rock Bet-116Lost−1.00u−1.00u

Anytime goal long shots

Where the chances come from: the anytime goal scorer track record grades every anytime goal chance we publish. The test's verdict and range are on its live tests card.

Every anytime goal long shot in the test, newest first
DateBetModelPriceTake it atResultUnitsAt take-it-at
Oct 20Ilya MikheyevTBL@VGK19%+525 Fanatics+508Lost−1.00u−1.00u
Oct 20Filip ChytilCAR@VAN22%+460 FanDuel+414Lost−1.00u−1.00u
Oct 20Paul CotterCAR@VAN21%+600 DraftKings+461Lost−1.00u−1.00u
Oct 20Frederick GaudreauDET@SEA18%+600 DraftKings+534Lost−1.00u−1.00u
Oct 20Danila YurovMIN@EDM20%+525 FanDuel+464Lost−1.00u−1.00u
Oct 20Kasperi KapanenMIN@EDM24%+475 DraftKings+400Lost−1.00u−1.00u
Oct 20Pius SuterWPG@STL19%+550 DraftKings+510Lost−1.00u−1.00u
Oct 20Sam SteelBOS@DAL17%+600 BetMGM+592Lost−1.00u−1.00u
Oct 20Aliaksei ProtasLAK@WSH22%+450 BetMGM+433Lost−1.00u−1.00u
Oct 20Anthony ManthaCOL@NJD24%+400 DraftKings+400Lost−1.00u−1.00u
Oct 20Boone JennerLAK@WSH21%+450 BetRivers+440Lost−1.00u−1.00u
Oct 20Connor BrownCOL@NJD23%+440 BetRivers+404Lost−1.00u−1.00u
Oct 20Darren RaddyshTOR@CBJ21%+600 FanDuel+441Lost−1.00u−1.00u
Oct 20Gavin McKennaTOR@CBJ22%+425 BetMGM+423Lost−1.00u−1.00u
Oct 20Jean-Gabriel PageauANA@NYI20%+525 BetRivers+486Lost−1.00u−1.00u
Oct 20Kiefer SherwoodSJS@MTL22%+460 FanDuel+427Lost−1.00u−1.00u
Oct 20Mason MarchmentSJS@MTL24%+410 BetRivers+400Lost−1.00u−1.00u
Oct 20Mathieu OlivierTOR@CBJ22%+460 BetRivers+424Lost−1.00u−1.00u
Oct 19Kailer YamamotoPIT@UTA23%+430 FanDuel+404Won+4.30u+4.04u
Oct 19Nick RobertsonPIT@UTA20%+500 FanDuel+490Lost−1.00u−1.00u
Oct 19Yegor ChinakhovPIT@UTA25%+400 BetRivers+400Won+4.00u+4.00u
Oct 19Collin GrafSJS@TOR19%+525 FanDuel+515Lost−1.00u−1.00u
Oct 19Darren RaddyshSJS@TOR21%+475 BetRivers+437Lost−1.00u−1.00u
Oct 19Kiefer SherwoodSJS@TOR23%+410 BetRivers+400Lost−1.00u−1.00u
Oct 19Mason MarchmentSJS@TOR23%+410 FanDuel+400Won+4.10u+4.00u
Oct 18Aydar SunievCAR@CGY22%+450 DraftKings+430Lost−1.00u−1.00u
Oct 18Eric RobinsonCAR@CGY19%+600 DraftKings+496Lost−1.00u−1.00u
Oct 18Zach WerenskiCBJ@MIN23%+430 BetRivers+400Lost−1.00u−1.00u
Oct 17Ben KindelPIT@VGK23%+400 BetMGM+400Lost−1.00u−1.00u
Oct 17Kailer YamamotoEDM@UTA23%+450 BetMGM+410Lost−1.00u−1.00u
Oct 17Kasperi KapanenEDM@UTA22%+475 BetRivers+430Won+4.75u+4.30u
Oct 17Nick RobertsonPIT@VGK18%+600 DraftKings+530Lost−1.00u−1.00u
Oct 17Fraser MintenBOS@LAK23%+425 BetMGM+400Lost−1.00u−1.00u
Oct 17Joel ArmiaBOS@LAK17%+600 BetRivers+570Lost−1.00u−1.00u
Oct 17Alexander KerfootSTL@NSH21%+475 Fanatics+451Lost−1.00u−1.00u
Oct 17Jonatan BerggrenSTL@NSH18%+550 DraftKings+534Lost−1.00u−1.00u
Oct 17Matthew WoodSTL@NSH23%+400 FanDuel+400Lost−1.00u−1.00u
Oct 17Darren RaddyshNYI@TOR22%+550 FanDuel+422Lost−1.00u−1.00u
Oct 17Emil HeinemanNYI@TOR22%+440 BetRivers+415Lost−1.00u−1.00u
Oct 17Frank NazarDAL@CHI24%+440 FanDuel+400Lost−1.00u−1.00u
Oct 17Igor ChernyshovSJS@DET23%+400 BetMGM+400Lost−1.00u−1.00u
Oct 17Jean-Gabriel PageauNYI@TOR19%+600 FanDuel+506Lost−1.00u−1.00u
Oct 17Kiefer SherwoodSJS@DET24%+475 Fanatics+400Lost−1.00u−1.00u
Oct 17Mathieu OlivierNYR@CBJ22%+480 FanDuel+431Lost−1.00u−1.00u
Oct 17Ridly GreigOTT@PHI17%+600 FanDuel+577Lost−1.00u−1.00u
Oct 17Tye KartyeNYR@CBJ17%+600 Fanatics+570Lost−1.00u−1.00u
Oct 17Filip ChytilVAN@TBL23%+525 Fanatics+400Lost−1.00u−1.00u
Oct 17Jonathan LekkerimäkiVAN@TBL21%+475 DraftKings+444Lost−1.00u−1.00u
Oct 17Marco RossiVAN@TBL22%+500 FanDuel+424Void0.00u0.00u
Oct 17Eric RobinsonCAR@WPG19%+600 DraftKings+507Lost−1.00u−1.00u
Oct 17Aliaksei ProtasNJD@WSH22%+460 FanDuel+428Lost−1.00u−1.00u
Oct 17Anthony ManthaNJD@WSH25%+410 FanDuel+400Lost−1.00u−1.00u
Oct 17Boone JennerNJD@WSH20%+525 Fanatics+463Won+5.25u+4.63u
Oct 17Ivan MiroshnichenkoNJD@WSH18%+600 DraftKings+552Lost−1.00u−1.00u
Oct 16Ben KindelPIT@COL24%+400 BetMGM+400Lost−1.00u−1.00u
Oct 16Nick RobertsonPIT@COL20%+600 FanDuel+479Lost−1.00u−1.00u
Oct 15Aydar SunievCGY@VGK23%+525 BetMGM+404Lost−1.00u−1.00u
Oct 15Kailer YamamotoUTA@EDM23%+500 BetMGM+405Lost−1.00u−1.00u
Oct 15Owen MichaelsUTA@EDM24%+600 BetRivers+400Lost−1.00u−1.00u
Oct 15Adam EdstromSJS@NSH21%+575 BetRivers+452Lost−1.00u−1.00u
Oct 15Alexander KerfootSJS@NSH21%+525 BetMGM+450Lost−1.00u−1.00u
Oct 15Kiefer SherwoodSJS@NSH23%+480 FanDuel+408Lost−1.00u−1.00u
Oct 15Pius SuterSTL@MIN20%+550 DraftKings+488Lost−1.00u−1.00u
Oct 15Anthony DuclairNYI@OTT17%+600 FanDuel+593Lost−1.00u−1.00u
Oct 15Darren RaddyshBUF@TOR22%+510 BetRivers+428Lost−1.00u−1.00u
Oct 15Emil HeinemanNYI@OTT22%+525 FanDuel+417Lost−1.00u−1.00u
Oct 15Gavin McKennaBUF@TOR22%+450 BetMGM+428Lost−1.00u−1.00u
Oct 15Kaapo KakkoSEA@TBL19%+550 FanDuel+508Lost−1.00u−1.00u
Oct 15Linus KarlssonVAN@FLA18%+575 FanDuel+554Lost−1.00u−1.00u
Oct 15Marco RossiVAN@FLA24%+500 BetRivers+400Lost−1.00u−1.00u
Oct 15Noah ÖstlundBUF@TOR23%+425 BetMGM+401Lost−1.00u−1.00u
Oct 15Simon HolmstromNYI@OTT19%+550 FanDuel+515Lost−1.00u−1.00u
Oct 15Tye KartyeNYR@NJD18%+600 BetRivers+555Lost−1.00u−1.00u
Oct 13Casey MittelstadtBOS@SJS19%+600 DraftKings+503Lost−1.00u−1.00u
Oct 13Collin GrafBOS@SJS21%+600 FanDuel+461Lost−1.00u−1.00u
Oct 13Igor ChernyshovBOS@SJS25%+410 Fanatics+400Lost−1.00u−1.00u
Oct 13Kiefer SherwoodBOS@SJS23%+510 BetRivers+400Lost−1.00u−1.00u
Oct 13Alex FormentonEDM@LAK19%+525 BetRivers+508Lost−1.00u−1.00u
Oct 13Darren RaddyshTOR@UTA22%+500 DraftKings+433Lost−1.00u−1.00u
Oct 13Easton CowanTOR@UTA19%+550 DraftKings+504Lost−1.00u−1.00u
Oct 13Jack RoslovicTOR@UTA26%+430 FanDuel+400Won+4.30u+4.00u
Oct 13Kailer YamamotoTOR@UTA21%+450 BetMGM+440Lost−1.00u−1.00u
Oct 13Alexander KerfootVGK@NSH21%+575 BetMGM+451Lost−1.00u−1.00u
Oct 13Jaden SchwartzCOL@DAL20%+500 BetRivers+470Lost−1.00u−1.00u
Oct 13Nick RobertsonPIT@CHI20%+525 Fanatics+490Won+5.25u+4.90u
Oct 13Jean-Gabriel PageauVAN@NYI19%+525 Fanatics+499Lost−1.00u−1.00u
Oct 13Jonathan LekkerimäkiVAN@NYI20%+575 BetMGM+472Lost−1.00u−1.00u
Oct 13Paul CotterVAN@NYI22%+550 BetMGM+423Lost−1.00u−1.00u
Oct 13Ilya MikheyevTBL@NYR18%+550 DraftKings+547Lost−1.00u−1.00u
Oct 13Tye KartyeTBL@NYR18%+550 DraftKings+548Lost−1.00u−1.00u
Oct 13Aliaksei ProtasWSH@CAR22%+550 BetMGM+414Lost−1.00u−1.00u
Oct 13Boone JennerWSH@CAR20%+550 DraftKings+489Won+5.50u+4.89u
Oct 13Eric RobinsonWSH@CAR17%+600 DraftKings+584Won+6.00u+5.84u
Oct 13Jakob ChychrunWSH@CAR27%+510 BetRivers+400Lost−1.00u−1.00u
Oct 13Mark JankowskiWSH@CAR23%+410 BetRivers+400Won+4.10u+4.00u
Oct 13Ryan LeonardWSH@CAR23%+440 FanDuel+403Lost−1.00u−1.00u
Oct 13Noah ÖstlundBUF@MTL23%+450 BetMGM+400Lost−1.00u−1.00u
Oct 13Mathieu OlivierFLA@CBJ24%+550 FanDuel+400Lost−1.00u−1.00u

Promoted fill-insTesting (beta)

When a top-six forward is out, does the market price the depth or middle-six forward projected into his spot? Rule nhl-fill-in-1: the over on his points and shots props, 1 unit at the best price, locked about 75 minutes before puck drop. Kept out of the record above until it is read once at 300 graded bets (46 so far). The research behind it is a hint, not proof: who benefits when a top-liner is hurt.

23–23, +3.63u (+7.9% per bet); overs hit 50% vs 43% priced by the market.

Every promoted fill-in bet in the test, newest first
DatePlayerBetProjectedPriceResult
Oct 20Alexandre TexierOver 0.5 pointsL2/PP2 · middle+136under
Oct 20Alexandre TexierOver 1.5 shotsL2/PP2 · middle+100under
Oct 20Kiefer SherwoodOver 0.5 pointsL2 · middle+161over
Oct 20Kiefer SherwoodOver 1.5 shotsL2 · middle-105over
Oct 20Timo MeierOver 0.5 pointsL2/PP2 · middle+102under
Oct 20Timo MeierOver 2.5 shotsL2/PP2 · middle-115over
Oct 20Arseny GritsyukOver 0.5 pointsL1/PP2 · middle+145over
Oct 20Arseny GritsyukOver 2.5 shotsL1/PP2 · middle+130under
Oct 20Dawson MercerOver 0.5 pointsL2/PP2 · middle+152under
Oct 20Dawson MercerOver 1.5 shotsL2/PP2 · middle+112over
Oct 20Ryan LeonardOver 0.5 pointsL2/PP1 · middle+104over
Oct 20Ryan LeonardOver 2.5 shotsL2/PP1 · middle+149under
Oct 20Vasily PodkolzinOver 0.5 pointsL1/PP1 · middle-130over
Oct 20Vasily PodkolzinOver 2.5 shotsL1/PP1 · middle+116under
Oct 20William CarrierOver 0.5 pointsL1 · middle+139under
Oct 20Drew O'ConnorOver 0.5 pointsL2 · middle+240under
Oct 20Logan StankovenOver 0.5 pointsL1 · middle-120over
Oct 20Logan StankovenOver 2.5 shotsL1 · middle+122over
Oct 20Gage GoncalvesOver 0.5 pointsL1/PP2 · middle+152under
Oct 19Sean CouturierOver 0.5 pointsL1 · middle+190under
Oct 19Tyson FoersterOver 0.5 pointsL1/PP1 · middle+117void
Oct 19Tyson FoersterOver 2.5 shotsL1/PP1 · middle+135void
Oct 19Denver BarkeyOver 0.5 pointsL2/PP1 · depth+180over
Oct 18Mark JankowskiOver 0.5 pointsL2/PP2 · middle+165void
Oct 18William CarrierOver 0.5 pointsL1 · middle+120under
Oct 18Logan StankovenOver 0.5 pointsL1/PP2 · middle-105under
Oct 18Logan StankovenOver 2.5 shotsL1/PP2 · middle+122over
Oct 17Timo MeierOver 0.5 pointsL2 · middle+115over
Oct 17Timo MeierOver 2.5 shotsL2 · middle-140over
Oct 17Arseny GritsyukOver 0.5 pointsL1 · middle+160over
Oct 17Arseny GritsyukOver 1.5 shotsL1 · middle-135over
Oct 17Dawson MercerOver 0.5 pointsL2 · middle+188over
Oct 17Dawson MercerOver 1.5 shotsL2 · middle+115under
Oct 17Ryan LeonardOver 0.5 pointsL2/PP1 · middle+115over
Oct 17Ryan LeonardOver 2.5 shotsL2/PP1 · middle+145under
Oct 17Jordan MartinookOver 0.5 pointsL1 · middle+140under
Oct 17Jordan MartinookOver 1.5 shotsL1 · middle-120over
Oct 17Gage GoncalvesOver 0.5 pointsL1/PP2 · middle+125under
Oct 17Gage GoncalvesOver 1.5 shotsL1/PP2 · middle+110over
Oct 17Easton CowanOver 0.5 pointsL2 · middle+126over
Oct 17Easton CowanOver 1.5 shotsL2 · middle-110over
Oct 17Noah ÖstlundOver 0.5 pointsL1/PP1 · middle+100under
Oct 17Noah ÖstlundOver 1.5 shotsL1/PP1 · middle-102under
Oct 17Sean CouturierOver 0.5 pointsL1 · middle+155over
Oct 17Sean CouturierOver 1.5 shotsL1 · middle+130under
Oct 17Denver BarkeyOver 0.5 pointsL2/PP1 · depth+171under
Oct 17Justin HryckowianOver 0.5 pointsL2 · depth+136under
Oct 17Vasily PodkolzinOver 0.5 pointsL1/PP1 · middle-116over
Oct 17Vasily PodkolzinOver 2.5 shotsL1/PP1 · middle+130under

How the test works

  • Team bets are logged the morning of the game at the best price across the US sportsbooks we track. Long shots are locked about 75 minutes before puck drop.
  • A long shot qualifies when our goal model makes the anytime goal at least 15% better than the best price, and that price is between +400 and +600. The rule was frozen before the first live result.
  • "Take it at" is the worst price still worth taking. For team bets it is the price where the model expects to break even; for long shots it is where the edge drops to 15%, and never shorter than +400.
  • The take-it-at column scores each bet at that price, or at the logged price when that was already worse, so it never credits a better price than the market offered.
  • Every bet is 1 unit risked at the logged price: a win at +150 earns +1.50u, a loss costs 1u. Pushes and players who don't play return the stake. Logged bets are never edited or removed.
  • Results are graded several times a day: as each game goes final during the night (until about 04:00 UTC), then at about 04:20–08:20, 10:20 and 12:20 UTC. A finished game waiting for its grade shows "Final, grading".
  • Bets appear when their game starts. The team rules are exploratory: their live record is the only evidence that counts.
  • This is a public test of our models, not betting advice. Most rules that look good in research fail with real money; expect this record to show that too.