MatchWiz

NHL Lineup Optimizer

Cap-legal FanDuel Classic lineups off our nightly projections. Stack a team, lock or fade anyone, and export straight to FanDuel.

One book at a time: DraftKings NHL lineup optimizer · FanDuel NHL lineup optimizer

DraftKingsFanDuelFanDuel · goals 12, assists 8, shots 1.6, blocks 1.6, no bonuses · $55,000 cap · max 4 per team
4 games · 157 projected · 7 of 164 without one
1-click:
$0 / $55,0000.0 pts
0/9 filled$55,000 left
  • C+ tap a player to add
  • C+ tap a player to add
  • W+ tap a player to add
  • W+ tap a player to add
  • D+ tap a player to add
  • D+ tap a player to add
  • UTIL+ tap a player to add
  • UTIL+ tap a player to add
  • G+ tap a player to add
4 games· filter the pool to one game, or stack a team
7:30 PM@
7:30 PM@
10:00 PM@
10:00 PM@
Numbers are each side’s projected goals · tap a game to build only from it · tap a team to stack it
★ My pooltap ★ to pool a player (or filter, then “Add all shown”) — lineups build only from your pool · locks them into every lineup
Player
Macklin CelebriniC · SJS vs LAK$7,50019.12.54
Artemi PanarinW · LAK vs SJS$7,00016.12.29
Tage ThompsonC · BUF vs OTT$8,10015.61.92
Anton ForsbergG · LAK vs SJS · 7% to start · backup$7,10015.02.11
Matthew TkachukW · FLA vs CHI$7,30014.92.04
Brady TkachukW · FLA vs CHI$7,10014.72.07
Philipp GrubauerG · SEA vs CGY · 7% to start · backup$7,80014.61.87
Jacob MarkstromG · FLA vs CHI · 93% to start$8,00014.51.81
Akira SchmidG · FLA vs CHI · 7% to start · backup$8,00014.41.81
Colten EllisG · BUF vs OTT · 93% to start$7,70014.41.87
Adrian KempeW · LAK vs SJS$6,00014.32.39
Darcy KuemperG · LAK vs SJS · 93% to start$7,10014.32.01
Connor BedardC · CHI vs FLA$6,80014.22.09
Joey DaccordG · SEA vs CGY · 93% to start$7,80014.21.82
Ukko-Pekka LuukkonenG · BUF vs OTT · 7% to start · backup$7,70013.91.81
Rasmus DahlinD · BUF vs OTT$5,50013.62.48
Arsenii SergeevG · CGY vs SEA · 7% to start · backup$7,30013.51.85
Alex NedeljkovicG · SJS vs LAK · 7% to start · backup$7,40013.51.83
Spencer KnightG · CHI vs FLA · 93% to start$6,90013.51.96
Sam ReinhartW · FLA vs CHI$6,60013.52.04
Jonas JohanssonG · OTT vs BUF · 7% to start · backup$7,50013.21.75
Samuel ErssonG · OTT vs BUF · 93% to start$7,50012.91.72
Dustin WolfG · CGY vs SEA · 93% to start$7,30012.91.76
Yaroslav AskarovG · SJS vs LAK · 93% to start$7,40012.81.74
Zach BensonW · BUF vs OTT$6,50012.81.96
Jake SandersonD · OTT vs BUF$4,80012.72.65
Drake BathersonW · OTT vs BUF$7,20012.71.76
Seth JonesD · FLA vs CHI$6,30012.41.97
Alex LaferriereW · LAK vs SJS$5,80012.42.14
Carter VerhaegheW · FLA vs CHI$6,10012.32.01
Jack QuinnW · BUF vs OTT$6,90012.21.77
Arvid SoderblomG · CHI vs FLA · 7% to start · backup$6,90012.01.74
Will SmithW · SJS vs LAK$5,90011.82.00
Brandon MontourD · SEA vs CGY$5,60011.72.09
Shane PintoC · OTT vs BUF$6,00011.31.88
Joel FarabeeW · CGY vs SEA$6,70011.31.68
Vince DunnD · SEA vs CGY$5,20011.12.14
Thomas ChabotD · OTT vs BUF$4,70011.12.35
Dylan CozensC · OTT vs BUF$5,40011.02.04
Jordan EberleW · SEA vs CGY$5,60010.91.94
Mattias SamuelssonD · BUF vs OTT$5,10010.72.10
Sam BennettC · FLA vs CHI$5,70010.71.88
Matt CoronatoW · CGY vs SEA$6,20010.51.70
Quinton ByfieldC · LAK vs SJS$5,00010.52.10
Bobby McMannW · SEA vs CGY$4,80010.42.17
Brandt ClarkeD · LAK vs SJS$5,40010.41.93
Anton LundellC · FLA vs CHI$4,80010.32.14
Noah OstlundC · BUF vs OTT$5,80010.31.77
Matvei GridinW · CGY vs SEA$5,70010.21.79
Jacob TroubaD · SJS vs LAK$5,30010.21.92
Mackie SamoskevichW · SEA vs CGY$5,1009.81.93
Martin ChromiakW · LAK vs SJS$3,0009.83.28
Matty BeniersC · SEA vs CGY$4,7009.72.07
Owen PowerD · BUF vs OTT$5,0009.71.95
Mikael BacklundC · CGY vs SEA$4,6009.72.11
Anton FrondellC · CHI vs FLA$5,5009.51.73
Trevor MooreW · LAK vs SJS$4,5009.52.12
Claude GirouxW · OTT vs BUF$4,5009.22.05
Chandler StephensonC · SEA vs CGY$4,9008.91.82
Frank NazarC · CHI vs FLA$4,3008.82.06
Tyler ToffoliW · SJS vs LAK$5,5008.71.58
Kaapo KakkoW · SEA vs CGY$4,3008.72.02
Ivar StenbergW · SJS vs LAK$4,8008.71.80
Morgan FrostC · CGY vs SEA$5,6008.61.54
Kiefer SherwoodW · SJS vs LAK$5,0008.51.71
Ridly GreigW · OTT vs BUF$4,2008.52.03
Jason ZuckerW · BUF vs OTT$4,6008.41.84
Darnell NurseD · SJS vs LAK$4,1008.42.06
Tyler BertuzziW · CHI vs FLA$4,3008.41.96
Josh DoanW · BUF vs OTT$4,1008.42.04
Olen ZellwegerD · BUF vs OTT$4,9008.31.70
Erik HaulaC · LAK vs SJS$5,3008.31.57
Lars EllerC · FLA vs CHI$4,2008.31.98
Eetu LuostarinenW · FLA vs CHI$4,1008.32.02
Mason MarchmentW · SJS vs LAK$4,7008.21.75
Frederick GaudreauC · SEA vs CGY$5,2008.21.58
Fabian ZetterlundW · OTT vs BUF$4,9008.21.67
Simon NemecD · CGY vs SEA$4,1008.21.99
Berkly CattonW · SEA vs CGY$4,5008.21.81
Roman KantserovW · CHI vs FLA$4,9008.11.64
Josh NorrisW · BUF vs OTT$4,4008.01.81
Stephen HallidayC · OTT vs BUF$4,1007.71.88
Collin GrafW · SJS vs LAK$4,2007.61.82
Corey PerryW · LAK vs SJS$3,9007.61.95
Adam LarssonD · SEA vs CGY$3,6007.62.11
Ryan StromeC · CGY vs SEA$5,1007.61.48
Ryker EvansD · SEA vs CGY$4,4007.51.72
Scott LaughtonC · LAK vs SJS$4,4007.51.72
Aaron EkbladD · FLA vs CHI$4,3007.51.74
Joel ArmiaW · LAK vs SJS$4,7007.51.59
Aydar SunievW · CGY vs SEA$5,2007.41.43
Michael MisaC · SJS vs LAK$4,0007.41.85
Jordan SpenceD · OTT vs BUF$3,9007.41.89
Drew DoughtyD · LAK vs SJS$4,6007.41.60
Yegor SharangovichW · CGY vs SEA$4,4007.31.65
Michael AmadioW · OTT vs BUF$4,4007.21.64
Artem ZubD · OTT vs BUF$4,0007.21.80
Martin PospisilC · CGY vs SEA$4,5007.21.60
Ryan McLeodC · BUF vs OTT$3,7007.11.92
Matthew WoodC · SEA vs CGY$3,6007.01.95
Ben MeyersW · SEA vs CGY$3,5006.91.98
Gustav ForslingD · FLA vs CHI$3,6006.91.93
Ryan WintertonW · SEA vs CGY$3,6006.91.91
Peyton KrebsW · BUF vs OTT$4,2006.91.63
Jonathan CastagnaC · CGY vs SEA$3,9006.81.75
Sandis VilmanisW · FLA vs CHI$4,0006.71.67
Joel EdmundsonD · LAK vs SJS$4,0006.51.64
Artyom LevshunovD · CHI vs FLA$3,8006.51.72
Erik GustafssonD · LAK vs SJS$3,7006.41.72
Teuvo TeravainenW · CHI vs FLA$4,0006.41.59
Adam KlapkaW · CGY vs SEA$4,6006.31.38
Alex VlasicD · CHI vs FLA$3,9006.31.62
Zach WhitecloudD · CGY vs SEA$3,5006.21.77
Michael KesselringD · SJS vs LAK$3,6006.21.72
Zayne ParekhD · CGY vs SEA$4,3006.21.44
Dmitry OrlovD · SJS vs LAK$4,4006.21.40
Ian ColeD · CHI vs FLA$3,4006.11.80
Jacob MiddletonD · CGY vs SEA$3,8006.11.61
Filip BystedtC · SJS vs LAK$3,2006.01.86
Andre LeeW · LAK vs SJS$3,7005.81.58
Sam DickinsonD · SJS vs LAK$3,7005.81.57
Niko MikkolaD · FLA vs CHI$3,9005.81.48
Ty DellandreaC · SJS vs LAK$3,4005.71.69
Mikey AndersonD · LAK vs SJS$4,2005.61.33
Ryan GreeneC · CHI vs FLA$3,8005.61.47
Ryan DonatoW · CHI vs FLA$4,3005.51.28
Adam GaudetteW · SJS vs LAK$3,1005.51.78
Kevin BahlD · CGY vs SEA$3,5005.51.57
Oliver MooreW · CHI vs FLA$4,1005.51.33
Wyatt KaiserD · CHI vs FLA$4,2005.41.30
Sam RinzelD · CHI vs FLA$3,7005.41.46
Nolan AllanD · SJS vs LAK$3,5005.41.53
Jani NymanW · SEA vs CGY$3,2005.31.67
Yan KuznetsovD · CGY vs SEA$3,4005.31.57
Beck MalenstynW · BUF vs OTT$3,8005.21.37
Cole SchwindtW · FLA vs CHI$3,1005.11.65
Brian DumoulinD · LAK vs SJS$3,8005.11.33
Joshua MahuraD · SEA vs CGY$3,3005.01.51
Jordan GreenwayW · CHI vs FLA$3,7004.81.31
Louis CrevierD · BUF vs OTT$3,7004.81.29
Cale FleuryD · SEA vs CGY$3,1004.81.54
Tyson KozakC · BUF vs OTT$3,3004.71.42
Cole SmithW · CHI vs FLA$3,8004.41.16
Barclay GoodrowW · SJS vs LAK$3,6004.41.23
Maxim TsyplakovW · CGY vs SEA$3,3004.41.32
Ethan Del MastroD · CHI vs FLA$3,2004.41.36
Zack OstapchukC · SJS vs LAK$3,5004.31.21
Nikolas MatinpaloD · OTT vs BUF$3,5004.31.21
Zach MetsaD · BUF vs OTT$3,4004.21.24
Nick CousinsW · OTT vs BUF$3,6004.21.17
William StromgrenW · CGY vs SEA$3,4004.21.24
Samuel HeleniusC · LAK vs SJS$3,3004.11.25
Garnet HathawayW · FLA vs CHI$3,3003.91.19
Sam CarrickC · BUF vs OTT$3,1003.81.23
Dmitry KulikovD · FLA vs CHI$3,3003.71.11
Bokondji ImamaW · FLA vs CHI$3,1003.61.18
Hayden HodgsonW · OTT vs BUF$3,1003.10.99

How the NHL DFS lineup optimizer works

Nine players, $55,000. The solver is exact. It checks every cap-legal combination, so the lineup it hands back is the highest-projecting one on the slate, not a greedy guess. It also enforces the two rules people forget: no more than four players from one team, the goalie included, and no skater facing your own goalie. Ask for several lineups and each one stacks a different club, best offenses first. That's where real variety comes from. Re-rolling the same solve just gets you the same lineup.

The projections come from the same per-60 rates behind our NHL player prop boards. We take each skater's shots, goals, assists and blocks, adjusted for the opponent and the game's projected score, and simulate his night 4,000 times. FanDuel pays no bonuses, so a skater's number is the plain sum of his goals, assists, shots and blocks — no thresholds to price. The simulation still runs, because the floor and ceiling beside each projection are percentiles and need a distribution. Goalies are simulated as one game: shots faced, saves, goals against and the result, so a shutout is always a win.

How good is it? In a walk-forward test over the first 60 nights of the 2025-26 season, our skater projections missed by 4.49 DraftKings points on average. A player's season-to-date average missed by 4.52. That's a real edge and a small one, and we're still tuning it. Hockey is noisy: one bounce is 8.5 points. Treat the numbers as a sharper starting point, not a promise.

Goalies

The goalie is the biggest single call on an NHL slate, and the starter isn't confirmed until the morning skate. Every goalie in the pool carries a start chance. Until a club confirms, only its most likely starter is eligible. We reprice every hour in the four hours before puck drop, and a confirmed starter goes to 100%.

NHL DFS optimizer — FAQ

What is the best free NHL lineup optimizer for FanDuel?

MatchWiz's NHL lineup optimizer is free and runs on our own projections, scored under FanDuel's rules rather than DraftKings' — shots, goals, assists and blocks for every skater, and saves, goals against and win chance for every goalie, simulated game by game. It builds cap-legal FanDuel lineups with team stacks, player locks and excludes, exposure limits across multiple lineups and a salary floor, then exports to FanDuel's upload CSV.

How does the FanDuel NHL roster work?

Nine players under a $55,000 cap: two centers, two wingers, two defensemen, two UTIL and one goalie. UTIL takes any skater, so you can run four centers or four defensemen if the slate wants it — one more flex seat than DraftKings gives you. The hard rule is the club cap: no more than four of your nine from one team, goalie included. Nine seats at four per club means every FanDuel lineup spans at least three teams whether you plan it or not.

How does FanDuel score NHL, and how is it different from DraftKings?

Skaters get 12 per goal, 8 per assist, 1.6 per shot on goal and 1.6 per blocked shot. Goalies get 12 for a win, 0.8 per save, −4 per goal against and 8 for a shutout. The big structural difference: FanDuel pays no bonuses. No hat trick, no 5-shot, no 3-block, no 3-point, and nothing for losing in overtime. So a FanDuel projection is exactly the sum of its parts, while a DraftKings one carries four bonus probabilities on top.

Should I use the same lineup on FanDuel and DraftKings?

No — and not just because the cap differs. FanDuel values a goal at 7.5 shots where DraftKings values it at 5.7, so the two boards rank players differently: snipers gain on FanDuel, volume shooters gain on DraftKings. The rosters aren't interchangeable either. DraftKings wants three wingers and one UTIL; FanDuel wants two wingers and two UTIL, with the goalie in the last column. A lineup built for one lands in the wrong slots on the other — and FanDuel's four-per-club cap can reject a DraftKings stack outright. Build each one on its own tab.

Why does my FanDuel stack stop at four players?

FanDuel caps you at four players from one team, and the goalie counts. So a four-skater stack rules out that team's goalie, and pairing a goalie with his own skaters leaves room for three. The optimizer enforces it while it solves, not afterward — ask for five and it tells you no lineup is legal rather than handing you one FanDuel would reject at upload.

Why won't the optimizer pick the backup goalie?

A goalie's projection is what he scores IF he starts. Before the starters are confirmed, a cheap backup can look like the best value on the slate and still play one night in five. So by default only each club's most likely starter is eligible. Turn off "Likely starting goalies only", or lock the goalie you want, to override it. Once a club confirms its starter, his start chance goes to 100% and the rest drop to zero.

Where do the FanDuel salaries come from?

From a public mirror of FanDuel's players list, refreshed every morning. FanDuel publishes no salary API — its own endpoint turns away an unauthenticated request — but the mirror matches FanDuel's list player for player. If the FanDuel tab reads TBD, tonight's slate isn't priced yet.

Other optimizersMLB lineup optimizer DraftKingsNFL lineup optimizer DraftKings + FanDuelPGA lineup optimizer DraftKingsNBA lineup optimizer DraftKings

Projections and salaries for research. Not betting advice. DraftKings isn't affiliated with MatchWiz.