A Constraint Programming Approach for $n$-Day Lookahead Playoff Clinching

arXiv cs.AI Papers

Summary

This paper presents a constraint programming approach to determine NHL playoff clinching scenarios with n-day lookahead, using tree search and preprocessing techniques.

arXiv:2605.13142v1 Announce Type: new Abstract: In professional sports, a team has clinched the playoffs if they are guaranteed a postseason spot, regardless of the outcomes of any remaining games. As the season progresses, sports fans and other stakeholders are interested in precisely when, and under what conditions, their team will clinch the playoffs. In this paper, we investigate playoff clinching in the context of the National Hockey League (NHL), where it is computationally challenging to produce clinching scenarios due, in part, to complex tie-breakers. We present an algorithm that determines under which combinations of game outcomes in the next $n$ days a team will clinch the playoffs (i.e., "$n$-day lookahead clinching"). Our approach is a custom tree search which employs various preprocessing techniques, pruning strategies, and node ordering heuristics to efficiently explore the space of possible outcomes. The tree search leverages a constraint programming (CP)-based subroutine for inference that determines if a team has clinched the playoffs for some snapshot in time of the regular season (i.e., "0-day lookahead clinching"). This CP subroutine aims to find a counter-example in which the team being evaluated is eliminated, taking into account qualification rules and the NHL's extensive list of tie-breakers. We validate the efficacy of our algorithm using hundreds of scenarios based on public NHL data for the seasons 2021-22 through 2024-25. The methods introduced can be readily extended to other metrics of interest, including mathematical proof of playoff elimination, clinching the President's Trophy, as well as clinching (or being eliminated from clinching) any other seed in the standings.
Original Article
View Cached Full Text

Cached at: 05/14/26, 06:15 AM

# A Constraint Programming Approach for 𝑛-Day Lookahead Playoff Clinching in the NHL
Source: [https://arxiv.org/html/2605.13142](https://arxiv.org/html/2605.13142)
\\hideLIPIcs

Amazon Advanced Solutions Lab, Seattle, WA, 98170, USA gilir@amazon\.comhttps://orcid\.org/0009\-0007\-6866\-9949 Amazon Advanced Solutions Lab, Seattle, WA, 98170, USA kybooth@amazon\.comhttps://orcid\.org/0000\-0001\-6929\-8042 Amazon Advanced Solutions Lab, Seattle, WA, 98170, USA j\.kylebrubaker@gmail\.comhttps://orcid\.org/0000\-0002\-6439\-5270 Amazon Advanced Solutions Lab, Seattle, WA, 98170, USA randrist@amazon\.chhttps://orcid\.org/0000\-0003\-1126\-6931\\CopyrightGili Rosenberg, Kyle E\. C\. Booth, J\. Kyle Brubaker, and Ruben S\. Andrist\\ccsdesc\[500\]Theory of computation Constraint and logic programming\\ccsdesc\[300\]Mathematics of computing Combinatorial optimization

###### Acknowledgements\.

The authors would like to acknowledge Helmut Katzgraber and Nino DiPasquale for their support, and Greg Inglis, Neil Pierson, Ben Resnick, and Katie Yates for productive discussions\.\\SeriesVolume379\\ArticleNo13

Kyle E\. C\. BoothJ\. Kyle Brubaker111Affiliated with Amazon at time of contributions\.Ruben S\. Andrist

###### Abstract

In professional sports, a team has clinched the playoffs if they are guaranteed a postseason spot, regardless of the outcomes of any remaining games\. As the season progresses, sports fans and other stakeholders are interested in precisely when, and under what conditions, their team will clinch the playoffs\. In this paper, we investigate playoff clinching in the context of the National Hockey League \(NHL\), where it is computationally challenging to produce clinching scenarios due, in part, to complex tie\-breakers\. We present an algorithm that determines under which combinations of game outcomes in the nextnndays a team will clinch the playoffs \(i\.e\., “nn\-day lookahead clinching”\)\. Our approach is a custom tree search which employs various preprocessing techniques, pruning strategies, and node ordering heuristics to efficiently explore the space of possible outcomes\. The tree search leverages a constraint programming \(CP\)\-based subroutine for inference that determines if a team has clinched the playoffs for some snapshot in time of the regular season \(i\.e\., “0\-day lookahead clinching”\)\. This CP subroutine aims to find a counter\-example in which the team being evaluated is eliminated, taking into account qualification rules and the NHL’s extensive list of tie\-breakers\. We validate the efficacy of our algorithm using hundreds of scenarios based on public NHL data for the seasons 2021\-22 through 2024\-25\. The methods introduced can be readily extended to other metrics of interest, including mathematical proof of playoff elimination, clinching the President’s Trophy, as well as clinching \(or being eliminated from clinching\) any other seed in the standings\.

###### keywords:

Constraint programming, operations research, tree search, sports, hockey

## 1Introduction

The National Hockey League \(NHL\) is a professional ice hockey league with 32 teams participating from major cities across the USA and Canada\. The NHL regular season has these teams competing against each other for one of a limited number of post\-season spots, awarded based on the team’s regular season performance\. As the season progresses, NHL fans, marketers, and other stakeholders are interested in precisely when, and under which conditions, their team has*clinched*the playoffs\. A team has clinched the playoffs if they are guaranteed to make the postseason regardless of the outcomes of any remaining games\.

During the critical stages of the regular season \(usually starting around March\), the NHL begins publishing daily playoff clinch scenarios for teams affected by the games occurring later that evening \(i\.e\., using a 1\-day lookahead\)\. As the league’s tie\-breaking rules have become more complex, determining clinching scenarios manually has become increasingly time\-consuming and error\-prone\. Our work contributes an automated and mathematically rigorous alternative that can determine clinching scenarios fast enough for daily consumption\.

Over the years, the NHL has undergone many changes to the league’s structure \(teams, divisions, etc\.\), tie\-breakers, rules for qualification, number of games, and so on\. This work is based on the state of the league’s rules since the most recent change to playoff qualification and tie\-breaking in the 2019\-20 season \(and is flexible to changes going forward\)\.

The NHL regular season typically spans from October to April, with each team playing 82 games\. The league is divided into two conferences \(Eastern and Western\), each further split into two divisions \(Eastern: Atlantic and Metropolitan, Western: Central and Pacific\)\. This structure plays a crucial role in playoff qualification\. At the end of the regular season, 16 teams qualify for the playoffs \(8 from each conference\)\. In each conference, the top three teams from each division qualify, along with two wild card teams\. This qualification structure introduces intricate scenarios where teams compete not only within their divisions but also across their conferences for wild card spots\.

Each NHL game must produce a winner\. If the score is tied after regulation, the game proceeds to an overtime period, and if still tied, a shootout\. Therefore, NHL games have six possible outcomes from the perspective of a team playing a game – regulation win \(RW\), overtime win \(OTW\), shootout win \(SOW\), shootout loss \(SOL\), overtime loss \(OTL\), and regulation loss \(RL\)\. A win in any fashion awards 2 points, an overtime or shootout loss awards 1 point, and a regulation loss awards 0 points\. In the NHL, teams are ranked first by points\. When teams are tied in points, a series of tie\-breakers\[nhl\_tiebreakers\]is applied, see[Table˜1](https://arxiv.org/html/2605.13142#S1.T1)\.

Table 1:NHL tie\-breakers\. Each criterion is applied in ascending order until the tie is broken\. Point percentage is the ratio of points earned to the maximum possible points\. Goal differential is the goals scored minus the goals allowed\.To determine if a team has mathematically clinched a playoff spot based on its current performance in the season \(i\.e\., “0\-day lookahead”\) one must consider all possible outcomes of all remaining games\. This makes it a challenging combinatorial problem\. In fact, it is known that this problem, as well as other variants of the qualification problem, is NP\-Complete\[bernholt1999football,gusfield2002structure,kern2004computational\]\. Often, it is interesting to determine the outcomes of games \(scenarios\) over the nextnndays that will result in a team provably clinching the playoffs \(i\.e\., “nn\-day lookahead”\)\. These scenarios can be used by sports marketers to drive fan engagement and, in general, make following a team more exciting as the postseason approaches\. We provide a simple example of 0\-day and 1\-day lookahead playoff clinching scenarios in[Table˜2](https://arxiv.org/html/2605.13142#S1.T2)\.

Table 2:Eastern conference standings at the end of April 15, 2024\.
*0\-day lookahead:*The New York Islanders \(NYI\) achieved a top\-3 spot in the MET division and thus clinched the playoffs\. In the worst\-case scenario for NYI they will lose their remaining game and end with 92 points, which is more than the max points possible of all other MET teams except two\.
*1\-day lookahead:*If WSH wins their final game in any fashion \(2 points\) they will take the final \(wildcard\) playoff berth from DET \(the only ATL team contender\), which could not overtake it even in its best\-case scenario due to currently having four fewer regulation wins \[tie\-breaker \(2\)\]\.
*Note: the standings of the six last teams were omitted for brevity\.*
*Columns: Current points \(PTS\), max points possible \(MAX\), games played \(GP\), regulation wins \(RW\), overtime wins \(OTW\), shootout wins \(SOW\), goal differential \(DIFF\), goals\-for \(GF\), games remaining \(GR\), and division \(DIV\)\.*Determining playoff clinch scenarios for a team’s games over the nextnndays requires consideration of the combinations of outcomes in the relevant games during this time period\. Naturally, thenn\-day lookahead problem is, in practice, algorithmically and computationally more challenging\. In this paper we introduce an algorithm to address this challenge efficiently using a custom tree search coupled with a constraint programming \(CP\)\-based pruning method, preprocessing techniques, and node ordering heuristics\. The methods presented here also lay the groundwork for analyzing clinching scenarios for other achievements, including division titles or specific playoff seeds\.

The contributions of this paper are as follows:

- •We introduce a novel “0\-day lookahead” approach, leveraging CP and decomposition, to determine whether a team has clinched the playoffs for some state of the regular season standings\. Building on previous work, the approach accounts for the extensive set of tie\-breaking rules used since the 2019\-20 season\.
- •We introduce a novel “nn\-day lookahead” algorithm for determining concrete playoff clinch scenarios, for a given team of interest, involving games to be played in the nextnndays\. The approach involves a custom tree search, bolstered by preprocessing techniques, pruning strategies, and node ordering heuristics\.
- •We conduct extensive benchmarking of our methods on the four NHL seasons from 2021\-22 to 2024\-25 and validate the accuracy of our “nn\-day lookahead” approach against scenarios \(forn∈\{0,1\}n\\in\\\{0,1\\\}\) previously published by the NHL, where we have an exact match\. We report on algorithm runtime, pruning efficacy, and clinch scenario complexity\.

We start by reviewing the relevant literature in Section[2](https://arxiv.org/html/2605.13142#S2)\. In Section[3](https://arxiv.org/html/2605.13142#S3)we introduce a “0\-day lookahead” subroutine using constraint programming \(CP\) to determine if a team has clinched a playoff spot based on a current league state\. In Section[4](https://arxiv.org/html/2605.13142#S4)we introduce an “nn\-day lookahead” algorithm employing tree search to determine under which combinations of game outcomes in the nextnndays a team will clinch a playoff spot \(if any\), and present the results in Section[5](https://arxiv.org/html/2605.13142#S5)\. Finally, we present our conclusions in Section[6](https://arxiv.org/html/2605.13142#S6)\.

## 2Relevant Literature

The playoff clinch determination problem is common to many sports and has attracted significant attention in the academic community\. A range of sports have been studied, including baseball\[schwartz1966possible,robinson1991baseball,wayne2001new,adler2002baseball,kim2024improving\], soccer\[ribeiro2005application,lucena2008multi,raack2014standings\], car racing\[donne2012studying,raack2014standings\], \(American\) football\[whittle2014nfl\], basketball\[ito2018calculation,husted2019enhancing,husted2021improving\], and, as in this work, hockey\[russell2008mathematically,russell2009determining,russell2009lessons,russell2010computational,russell2012hybrid\]\.

Each of these works solve different variations of the problem due to the variety of sports considered\. Within a given sport, each league typically requires special consideration due to the variations in league structure, tie\-breakers, point systems, types of game outcomes, and qualification criteria\. Even when considering the same league, these factors might change over the years, as has happened multiple times in the NHL\. There is also some variety in the exact question being answered: whether the team has clinched the playoffs already, the number of points or wins \(also known as the “magic number” or the “clinching number”\) required to clinch the playoffs, or whether a specific ranking has been clinched\.

The most relevant prior works to our own are those of Russell and van Beek who published a series of papers on clinching problems in the NHL for the 2005\-06 and 2006\-07 seasons\[russell2008mathematically,russell2009determining,russell2009lessons,russell2010computational,russell2012hybrid\]\. Although the league has changed considerably since then \(30 teams vs\. 32 now, 6 divisions vs\. 4 now, top\-8 in\-conference qualification vs\. top\-3 in\-division & wild cards now, 3 tie\-breakers vs\. 7 now\), these relevant works form a foundation for our methods\.

In Ref\.\[russell2008mathematically\]they presented a “0\-day lookahead” CP model for playoff clinching\. In contrast to our 0\-day approach \(see Section[3](https://arxiv.org/html/2605.13142#S3)\), which iteratively solves a series of CP models and adds no\-good constraints when necessary, they leverage customized propagation algorithms and dominance rules\. In follow\-up work\[russell2009lessons,russell2009determining\], they presented an optimization model that determines the minimum number of points a team must get to clinch the playoffs, as well as the maximum number of points a team can get and still not qualify for the playoffs\. Finally, in Ref\.\[russell2012hybrid\]they extended their earlier works with an approach for points\-needed\-to\-clinch \(or almost clinch\) that leverages CP, enumeration, network flows, and decomposition\.

Our work is differentiated from these previous works in a number of key ways\. First, our approach is tailored to modern league structure and significantly different tie\-breakers \(see[Table˜1](https://arxiv.org/html/2605.13142#S1.T1)\), and introduces a novel goal assignment model to address this requirement\. Second, following the NHL’s own publication of “lookahead” scenarios for playoff clinching, our work builds on earlier efforts by determining a more detailed future result: the specific outcomes of games occurring in the nextnndays that would cause a specific team to clinch the playoffs \(if any\)\. Finally, our approach is implemented in a modern solver and does not rely on special\-purpose constraint propagation algorithms which were critical in Ref\.\[russell2008mathematically\]\. Instead, we leverage a relatively simple no\-good constraint generation, recognizing that certain tie\-breaking conditions are only very rarely triggered\.

## 30\-Day Lookahead Approach

The 0\-day lookahead approach determines if a team under consideration has clinched the playoffs for some state of the regular season standings\. It uses a CP model based on Ref\.\[russell2008mathematically\], however, the approach has been updated substantially to account for significant changes in the league structure, qualification requirements, and tie\-breakers\.

The approach asks: “can teamkkbe eliminated?” \(from here on we refer to the team being tested as teamkk\) and looks for an assignment of outcomes to the remaining games that results in elimination\. If one is found, then the team has not clinched the playoffs\. Conversely, if one is not found, the team has clinched the playoffs\. An advantage of this formulation is that, in most scenarios, a team being tested can be quickly shown not to clinch the playoffs by coming up with a single counter\-example\. Furthermore, the constraint satisfaction problem is more convenient than the related optimization problem \(e\.g\., “find the worst rank that teamkkcould get”\)\.

For playoff clinching, it is sufficient to check the worst\-case scenario for teamkk\. If there are no elimination scenarios in the worst\-case scenario, then there will not be any in any of the better scenarios\. We use this assumption, for example, by assuming that all teams playing against teamkkwin in regulation, giving them two points and teamkkzero points\.

The full 0\-day lookahead approach is presented in Figure[1](https://arxiv.org/html/2605.13142#S3.F1)and consists of three main modules: i\) win assignment model, ii\) tie\-group evaluation, and iii\) goal assignment model\. In the vast majority of cases, it is sufficient to solve only the win assignment model, described in detail in Section[3\.1](https://arxiv.org/html/2605.13142#S3.SS1)\. If the win assignment model is infeasible, then an elimination scenario does not exist, and the team being considered has clinched the playoffs\. Alternatively, if an elimination scenario has been found and it has no ties up to tie\-breaker \(4\), then we know that the playoffs have not been clinched \(since we have a counter\-example in hand\)\.

![Refer to caption](https://arxiv.org/html/2605.13142v1/x1.png)Figure 1:Summary of the 0\-day lookahead clincher\. Initially, the win assignment model is solved\. If there are ties up to \(and including\) tie\-breaker \(4\), we check for consistency with tie\-breaker \(5\) and solve the goal assignment model if necessary\. Inconsistencies are remedied via no\-good constraints and the revised win assignment model is re\-run \(forcing a different solution than previously seen\)\. This continues until a valid elimination scenario is found or none are proven to exist\.Ties complicate matters due to the elaborate tie\-breakers in the NHL\. Specifically, tie\-breaker \(5\) is different and more problematic than the others\. Rather than being applied to pairs of tied teams, it is applied to groups of tied teams of arbitrary size\. Modeling this tie\-breaker directly could be done by enumerating all possible tie groups and adding appropriate constraints\. However, given the large number of possibilities, this would have significantly slowed down the model\. Instead, we add some additional variables representing a “guess” at the ranking of teams tied beyond the tie\-breaker \(4\), and then use lazy constraint generation to generate no\-good constraints if the guess was incorrect in a procedure resembling logic\-based decomposition\[hooker2011logic\]\.

For example, assume that teams A, B, and C are tied on points and tie\-breakers \(1\)–\(4\), and that the solver assigns a ranking guessuA​B=1,uA​C=1,uB​C=0u\_\{AB\}=1,u\_\{AC\}=1,u\_\{BC\}=0\(i\.e\.,A\>BA\>B,A\>CA\>C, andC\>BC\>B\)\. The algorithm then evaluates the head\-to\-head points among A, B, C according to tie\-breaker \(5\)\. If the actual head\-to\-head ranking yields a different ranking, for example A \> C \> B, then the guess is inconsistent\. A no\-good constraint excluding this specific assignment is added, and the model is re\-solved\.

These “guess” variables are initially unconstrained, allowing the solver to assign any ranking among teams tied on tie\-breakers \(1\)–\(4\)\. When a solution is found, the algorithm conducts a tie\-group evaluation \(Figure[1](https://arxiv.org/html/2605.13142#S3.F1)\) and checks for consistency between the effective ranking \(resolving all tie\-breakers\) and the solver\-assigned variable values\. An inconsistency indicates that tie\-breakers \(5\)–\(7\), which were not previously considered, are guaranteed to result in a different ranking than one presumed by the solver – either by “direct points” \(5\) or by reasoning about potential goals \(6\)–\(7\) in the separate goal assignment model \(detailed in Section[3\.2](https://arxiv.org/html/2605.13142#S3.SS2)\)\. In this case, we add a “no\-good constraint” to exclude this specific assignment of wins and ranking values, forcing the solver to explore an alternative solution in the next run\. This process continues until a consistent ranking is found or the model becomes infeasible\.

### 3\.1Win Assignment Model

The following section details the win assignment model\. This model explores presumed rankings based on assigned game*outcomes*\(i\.e\., one of RW, OTW, SOW, SOL, OTL, RL for each remaining game\), while not assigning goals to the games yet\.

Parameters\.LetTTbe the set of NHL teams,CiC\_\{i\}represent the set of teams in the same conference as teamii\(including teamii\), andDiD\_\{i\}the set of teams in the same division as teamii\(including teamii\)\. We letkkrepresent the index of the team under evaluation for playoff clinching\. We let parameterspi0,pi​j0,wi0,wi​j0p^\{0\}\_\{i\},p^\{0\}\_\{ij\},w^\{0\}\_\{i\},w^\{0\}\_\{ij\}represent the current points, points earned against teamj≠ij\\neq i, total wins, and wins over teamj≠ij\\neq ifor teami∈Ti\\in T, respectively\. Further, we letwiR,0,wiO,0,wiS,0w^\{R,0\}\_\{i\},w^\{O,0\}\_\{i\},w^\{S,0\}\_\{i\}be the current regulation, overtime, and shootout wins for teami∈Ti\\in T, respectively\.wi​jR,0,wi​jO,0,wi​jS,0w^\{R,0\}\_\{ij\},w^\{O,0\}\_\{ij\},w^\{S,0\}\_\{ij\}represent the current regulation, overtime, and shootout wins over teamj≠ij\\neq ifor teamii\. Finally,gig\_\{i\}is the number of remaining games for teamiiandgi​jg\_\{ij\}the number of games remaining between teamsiiandjj\.

Variables\.The primary decision variables in our win assignment model are integer\-valued game outcome variablesxi​jR,xi​jO,xi​jS∈\{0,…,gi​j\}x^\{R\}\_\{ij\},x^\{O\}\_\{ij\},x^\{S\}\_\{ij\}\\in\\\{0,\\dots,g\_\{ij\}\\\}that indicate the number of regulation, overtime, and shootout wins by teamiiover teamjjin their remaining games\. The model also has binary variables tracking the ranking and performance of teams\.bi​j∈\{0,1\}b\_\{ij\}\\in\\\{0,1\\\}is 1 if teamiioutranks teamjj, and 0 otherwise\. As previously discussed,ui​j∈\{0,1\}u\_\{ij\}\\in\\\{0,1\\\}represents the model’s “guess” as to whetheriioutranksjjfor tie\-breakers \(5\) and beyond \(if relevant\)\.ti∈\{0,1\}t\_\{i\}\\in\\\{0,1\\\}is 1 if teamiiis a top\-3 team in its division and 0 otherwise, anddi∈\{0,1\}d\_\{i\}\\in\\\{0,1\\\}is 1 if teamiiis a top\-3 team that is also outranked by teamkk, and 0 otherwise\.222The definition ofdid\_\{i\}is implicitly always with respect to the team being considered for evaluation \(teamkk\), therefore it does not carry a separate subscript for the “other” team\.

To ease modeling, we introduce expressions over the main decision variables\. These includepi​jp\_\{ij\}, the total points earned against teamj≠ij\\neq iby teamiiat the end of the season, andpip\_\{i\}which represents the point total for teamiiat the end of the season, as follows:

pi​j=pi​j0\+2​xi​jR\+2​xi​jO\+2​xi​jS\+xj​iO\+xj​iS,pi=∑j≠ipi​jp\_\{ij\}=p^\{0\}\_\{ij\}\+2x^\{R\}\_\{ij\}\+2x^\{O\}\_\{ij\}\+2x^\{S\}\_\{ij\}\+x^\{O\}\_\{ji\}\+x^\{S\}\_\{ji\},\\quad p\_\{i\}=\\sum\_\{j\\neq i\}p\_\{ij\}\(1\)We also define expressionswi,wiR,wiO,wiSw\_\{i\},w^\{R\}\_\{i\},w^\{O\}\_\{i\},w^\{S\}\_\{i\}, representing total end\-of\-season wins, regulation wins, overtime wins, and shootout wins, respectively:

wi=wiR\+wiO\+wiS,wiR=∑j≠iwi​jR,0\+xi​jR,wiO=∑j≠iwi​jO,0\+xi​jO,wiS=∑j≠iwi​jS,0\+xi​jSw\_\{i\}=w^\{R\}\_\{i\}\+w^\{O\}\_\{i\}\+w^\{S\}\_\{i\},\\quad w^\{R\}\_\{i\}=\\sum\_\{j\\neq i\}w^\{R,0\}\_\{ij\}\+x^\{R\}\_\{ij\},\\quad w^\{O\}\_\{i\}=\\sum\_\{j\\neq i\}w^\{O,0\}\_\{ij\}\+x^\{O\}\_\{ij\},\\quad w^\{S\}\_\{i\}=\\sum\_\{j\\neq i\}w^\{S,0\}\_\{ij\}\+x^\{S\}\_\{ij\}\(2\)Finally, we define expressionswi​jR,wi​jO,wi​jSw^\{R\}\_\{ij\},w^\{O\}\_\{ij\},w^\{S\}\_\{ij\}to indicate the total regulation, overtime, and shootout wins that teamiiachieved over teamjj:

wi​j=wi​jR,0\+wi​jO,0\+wi​jS,0\+xi​jR\+xi​jO\+xi​jSw\_\{ij\}=w^\{R,0\}\_\{ij\}\+w^\{O,0\}\_\{ij\}\+w^\{S,0\}\_\{ij\}\+x^\{R\}\_\{ij\}\+x^\{O\}\_\{ij\}\+x^\{S\}\_\{ij\}\(3\)
Constraints\.The first family of constraints in our model are the*worst\-case assumption*constraints\. Namely, we express that teamkkloses all of its remaining games in regulation:333It can be readily seen that a regulation loss is the worst possible outcome for teamkk, because it awards the least number of points to teamkk\.

∀i∈T,i≠k:xk​iR=xk​iO=xk​iS=0,xi​kR=gi​k,xi​kO=xi​kS=0,tk=0\\forall\\,i\\in T,i\\neq k:\\quad x^\{R\}\_\{ki\}=x^\{O\}\_\{ki\}=x^\{S\}\_\{ki\}=0,\\quad x^\{R\}\_\{ik\}=g\_\{ik\},\\quad x^\{O\}\_\{ik\}=x^\{S\}\_\{ik\}=0,\\quad t\_\{k\}=0\(4\)The last constraint \(tk=0t\_\{k\}=0\) expresses that teamkkcannot be a top\-3 team, otherwise it would qualify directly \(and we are looking for an elimination scenario\)\.

Next, all remaining games must have an outcome \(i\.e\., won either by teamiior teamjj\):

∀i,j∈T,i≠j:xi​jR\+xi​jO\+xi​jS\+xj​iR\+xj​iO\+xj​iS=gi​j\\forall\\,i,j\\in T,i\\neq j:\\quad x^\{R\}\_\{ij\}\+x^\{O\}\_\{ij\}\+x^\{S\}\_\{ij\}\+x^\{R\}\_\{ji\}\+x^\{O\}\_\{ji\}\+x^\{S\}\_\{ji\}=g\_\{ij\}\\,\(5\)This requirement applies to all games, whether they involve teamkkor not\. If one of the teams iskk\(e\.g\.,j=kj=k\), then the assumptions in Eq\. \([4](https://arxiv.org/html/2605.13142#S3.E4)\) reduce Eq\. \([5](https://arxiv.org/html/2605.13142#S3.E5)\) to the assumed regulation lossesxi​kR=gi​kx^\{R\}\_\{ik\}=g\_\{ik\}\.

Next, we define ranking variablebi​jb\_\{ij\}\. The ranking is symmetrical, so we only definebi​jb\_\{ij\}fori<ji<j\. After this definition, when we refer tobi​jb\_\{ij\}, we mean it literally ifi<ji<j, otherwise \(i\.e\., ifi\>ji\>j\) we implicitly mean1−bi​j1\-b\_\{ij\}\(this simplifies the presentation of the equations\)\. The total points criterion and tie\-breakers \(2\)–\(4\) then imply the following relation between points/wins and the ranking indicators:

∀i,j,i<j:\\displaystyle\\forall\\,i,j,i<j:\\quad\(pi\>pj\)\\displaystyle\(p\_\{i\}\>p\_\{j\}\)\(6\)∨\[\(pi=pj\)∧\(wiR\>wjR\)\]\\displaystyle\\lor\[\(p\_\{i\}=p\_\{j\}\)\\land\(w^\{R\}\_\{i\}\>w^\{R\}\_\{j\}\)\]∨\[\(pi=pj\)∧\(wiR=wjR\)∧\(wiO\>wjO\)\]\\displaystyle\\lor\[\(p\_\{i\}=p\_\{j\}\)\\land\(w^\{R\}\_\{i\}=w^\{R\}\_\{j\}\)\\land\(w^\{O\}\_\{i\}\>w^\{O\}\_\{j\}\)\]∨\[\(pi=pj\)∧\(wiR=wjR\)∧\(wiO=wjO\)∧\(wiS\>wjS\)\]\\displaystyle\\lor\[\(p\_\{i\}=p\_\{j\}\)\\land\(w^\{R\}\_\{i\}=w^\{R\}\_\{j\}\)\\land\(w^\{O\}\_\{i\}=w^\{O\}\_\{j\}\)\\land\(w^\{S\}\_\{i\}\>w^\{S\}\_\{j\}\)\]∨\[\(pi=pj\)∧\(wiR=wjR\)∧\(wiO=wjO\)∧\(wiS=wjS\)∧ui​j\]\\displaystyle\\lor\[\(p\_\{i\}=p\_\{j\}\)\\land\(w^\{R\}\_\{i\}=w^\{R\}\_\{j\}\)\\land\(w^\{O\}\_\{i\}=w^\{O\}\_\{j\}\)\\land\(w^\{S\}\_\{i\}=w^\{S\}\_\{j\}\)\\land u\_\{ij\}\]⇔bi​j=1\\displaystyle\\iff b\_\{ij\}=1\\,The last term involvesui​ju\_\{ij\}, and represents the situation when the total points and all win counts are equal \[tied up to tie\-breaker \(4\)\], and the model’s “guess” forui​ju\_\{ij\}determines the ranking according to further tie\-breakers \(validated in the next step of the algorithm flow\)\.

Next, we include constraints relating to variabletit\_\{i\}\. Teamiiis top\-3 iff it outranks 5 or more teams in its division:

∀i∈T:ti=1⇔∑j∈Di,j≠ibi​j≥5\\forall\\,i\\in T:\\quad t\_\{i\}=1\\iff\\sum\_\{j\\in D\_\{i\},j\\neq i\}b\_\{ij\}\\geq 5\\,\(7\)There are exactly three top\-3 teams in each divisionDD:

∀D:∑i∈Dti=3\.\\forall\\,D:\\quad\\sum\_\{i\\in D\}t\_\{i\}=3\\,\.\(8\)And we ensure that non\-top\-3 teams do not outrank any of the top\-3 teams:

∀i,j∈Di,i≠j:bj​i⇒\(ti=0\)∨\(tj=1\)\\forall i,j\\in D\_\{i\},i\\neq j:\\quad b\_\{ji\}\\Rightarrow\(t\_\{i\}=0\)\\lor\(t\_\{j\}=1\)\\,\(9\)For example, ifiiandjjare in the same division andjjoutranksiithen it cannot be thatiiis in the top\-3 \(ti=1t\_\{i\}=1\) andjjis simultaneously*not*in the top\-3 \(tj=0t\_\{j\}=0\)\.

Next, we include constraints relating variabledid\_\{i\}to variabletit\_\{i\}:

∀i∈Ck,i≠k:di=1⇔\(ti=1\)∧\(bk​i=1\)\\forall i\\in C\_\{k\},i\\neq k:\\quad d\_\{i\}=1\\iff\(t\_\{i\}=1\)\\land\(b\_\{ki\}=1\)\\,\(10\)i\.e\.,did\_\{i\}is 1 exactly when it is in the top\-3 of its own division \(indicated byti=1t\_\{i\}=1\)andteamkkis simultaneously ahead of it \(bk​i=1b\_\{ki\}=1\)\. Note that teamiiandkkare not necessarily in the same division here; this is leveraged to correctly capture situations where teams ranked lower thankkin the conference still qualify because they are top\-3 in their division in the next step\.

Finally, we enforce that teamkkdoes not qualify via a wildcard ticket:

∑i∈Ck\(bi​k\+di\)≥8,\\sum\_\{i\\in C\_\{k\}\}\(b\_\{ik\}\+d\_\{i\}\)\\geq 8\\,,\(11\)wheredi=1d\_\{i\}=1if teamiiis in the top\-3 of the other division*and*is outranked by teamkk\. For example, if teamkkoutranks all teams in the other division \(so∑idi=3\\sum\_\{i\}d\_\{i\}=3\), then in order to be eliminated, it must be outranked by at least five teams in its division \(∑ibi​k≥5\\sum\_\{i\}b\_\{ik\}\\geq 5\) – the teams ranked 4th and 5th in its division would take the two wild card spots\.

### 3\.2Goal Assignment Model

The purpose of this model is to find a valid goal assignment for the game outcomes and ranking returned by the win assignment model that has, at this point, been verified for tie\-breakers \(1\) through \(5\)\. This model is only constructed and solved when there is a relatively rare tie up to \(and including\) the 5th tie\-breaker in a prospective elimination scenario found by the win assignment model \(see Figure[1](https://arxiv.org/html/2605.13142#S3.F1)\)\. We detail the parameters, variables and constraints of this model here\.

Parameters\.LetTGT^\{G\}be the set of teams tied on points and first tie\-breakers \(1\) through \(5\) \(“tie group”\)\. LetPPbe the set of pairs\(i,j\)∈T×T\(i,j\)\\in T\\times Tsuch that:i≠ji\\neq j, at least one team is inTGT^\{G\}, andgi​j≥1g\_\{ij\}\\geq 1\. Letδi0,fi0\\delta\_\{i\}^\{0\},f\_\{i\}^\{0\}be the goal differential and total goals scored, respectively, for teami∈TGi\\in T^\{G\}for games involving no tied teams \(the goals in games involving at least one tied team are solved for by this model\)\. Finally, letx^i​jR,x^i​jO,x^i​jS\\hat\{x\}\_\{ij\}^\{R\},\\hat\{x\}\_\{ij\}^\{O\},\\hat\{x\}\_\{ij\}^\{S\}be the number of regulation, overtime, and shootout wins by teamiiover teamjj, as obtained in the feasible solution returned from the win assignment model, andu^i​j\\hat\{u\}\_\{ij\}the ranking returned\.

Variables\.The model includes decision variablessi​j​ℓs\_\{ij\\ell\}representing the score of teamiivs\. teamjjin gameℓ\\ell, where\(i,j\)∈P\(i,j\)\\in P,ℓ∈\[1,gi​j\]\\ell\\in\[1,g\_\{ij\}\],si​j​ℓ∈\[0,99\]s\_\{ij\\ell\}\\in\[0,99\], where 99 is an upper bound on the number of goals chosen to be large enough such that exceeding it would be extremely unlikely\. Variablesyi​j​ℓR,yi​j​ℓO,yi​j​ℓSy\_\{ij\\ell\}^\{R\},y\_\{ij\\ell\}^\{O\},y\_\{ij\\ell\}^\{S\}are Boolean indicators for regulation, overtime, and shootout wins by teamiiover teamjjin gameℓ\\ell\.

We also introduce expressions over the decision variables to ease modeling\. Specifically, goal differential for tied teami∈TGi\\in T^\{G\}at the end of the season \(δi\\delta\_\{i\}\) and total goals scored by tied teami∈TGi\\in T^\{G\}at the end of the season \(fif\_\{i\}\):

∀i∈TG:δi=δi0\+∑j∈T∑ℓ∈\[1,gi​j\]\(si​j​ℓ−sj​i​ℓ\),fi=fi0\+∑j∈T∑ℓ∈\[1,gi​j\]si​j​ℓ\\forall\\,i\\in T^\{G\}:\\quad\\delta\_\{i\}=\\delta\_\{i\}^\{0\}\+\\sum\_\{j\\in T\}\\sum\_\{\\ell\\in\[1,g\_\{ij\}\]\}\(s\_\{ij\\ell\}\-s\_\{ji\\ell\}\),\\quad f\_\{i\}=f\_\{i\}^\{0\}\+\\sum\_\{j\\in T\}\\sum\_\{\\ell\\in\[1,g\_\{ij\}\]\}s\_\{ij\\ell\}\(12\)
Constraints\.The first set of constraints ensure that each game must end with one team winning in one of three possible ways:

∀\(i,j\)∈P,i<j,ℓ∈\[1,gi​j\]:yi​j​ℓR\+yi​j​ℓO\+yi​j​ℓS\+yj​i​ℓR\+yj​i​ℓO\+yj​i​ℓS=1\\forall\\,\(i,j\)\\in P,i<j,\\ell\\in\[1,g\_\{ij\}\]:\\quad y\_\{ij\\ell\}^\{R\}\+y\_\{ij\\ell\}^\{O\}\+y\_\{ij\\ell\}^\{S\}\+y\_\{ji\\ell\}^\{R\}\+y\_\{ji\\ell\}^\{O\}\+y\_\{ji\\ell\}^\{S\}=1\(13\)
Next, we link theyyvariables to the outcomes from the win assignment model:

∀\(i,j\)∈P:∑ℓ∈\[1,gi​j\]yi​j​ℓR=x^i​jR,∑ℓ∈\[1,gi​j\]yi​j​ℓO=x^i​jO,∑ℓ∈\[1,gi​j\]yi​j​ℓS=x^i​jS\\forall\\,\(i,j\)\\in P:\\quad\\sum\_\{\\ell\\in\[1,g\_\{ij\}\]\}y\_\{ij\\ell\}^\{R\}=\\hat\{x\}\_\{ij\}^\{R\},\\quad\\sum\_\{\\ell\\in\[1,g\_\{ij\}\]\}y\_\{ij\\ell\}^\{O\}=\\hat\{x\}\_\{ij\}^\{O\},\\quad\\sum\_\{\\ell\\in\[1,g\_\{ij\}\]\}y\_\{ij\\ell\}^\{S\}=\\hat\{x\}\_\{ij\}^\{S\}\(14\)
Then we ensure that scores must match the win type: regulation wins have unrestricted goal differential while overtime and shootout wins require a one\-goal margin:

∀\(i,j\)∈P,ℓ∈\[1,gi​j\]:yi​j​ℓR⇒si​j​ℓ\>sj​i​ℓ,yi​j​ℓO⇒si​j​ℓ−sj​i​ℓ=1,yi​j​ℓS⇒si​j​ℓ−sj​i​ℓ=1\\forall\\,\(i,j\)\\in P,\\ell\\in\[1,g\_\{ij\}\]:\\ y\_\{ij\\ell\}^\{R\}\\Rightarrow s\_\{ij\\ell\}\>s\_\{ji\\ell\},\\ y\_\{ij\\ell\}^\{O\}\\Rightarrow s\_\{ij\\ell\}\-s\_\{ji\\ell\}=1,\\ y\_\{ij\\ell\}^\{S\}\\Rightarrow s\_\{ij\\ell\}\-s\_\{ji\\ell\}=1\(15\)
Next, we impose that the ranking of teams tied on tie\-breakers \(1\)–\(5\), based on goal differential and total goals scored, should match those from the win assignment model \(u^i​j\\hat\{u\}\_\{ij\}\):

∀i,j∈TG,i<j:\(δi\>δj\)∨\[\(δi=δj\)∧\(fi\>fj\)\]⇔u^i​j=1\\forall\\,i,j\\in T^\{G\},i<j:\\quad\(\\delta\_\{i\}\>\\delta\_\{j\}\)\\vee\[\(\\delta\_\{i\}=\\delta\_\{j\}\)\\wedge\(f\_\{i\}\>f\_\{j\}\)\]\\iff\\hat\{u\}\_\{ij\}=1\(16\)
Finally, a “total tie”, in which two or more teams are tied on points and all tie\-breakers is theoretically possible\. However, the odds are extremely low of this happening, and if it does, the rules do not specify how to break the tie\. Thus, we add a constraint to prevent teams tied on tie\-breakers \(1\)–\(5\) from also being tied on both goal differential and total goals:

∀i,j∈TG,i<j:\(δi=δj\)⇒\(fi≠fj\)\\forall\\,i,j\\in T^\{G\},i<j:\\quad\(\\delta\_\{i\}=\\delta\_\{j\}\)\\Rightarrow\(f\_\{i\}\\neq f\_\{j\}\)\(17\)
Objective\.An objective is not strictly required\. However, without it, the solver could return goal assignments with very high and therefore unrealistic scores\. Therefore, we add an objective – minimizing the sum of goals:

min​∑\(i,j\)∈P∑ℓ∈\[1,gi​j\]si​j​ℓ\\min\\sum\_\{\(i,j\)\\in P\}\\sum\_\{\\ell\\in\[1,g\_\{ij\}\]\}s\_\{ij\\ell\}\(18\)

## 4nn\-day Lookahead Approach

This section describes a tree search algorithm for determining under which outcomes of the games in the nextnndays an NHL team will clinch the playoffs\. A simplified pseudo code for this algorithm is presented in[Algorithm˜1](https://arxiv.org/html/2605.13142#algorithm1)\. As an illustrative example, consider the 1\-day clinching scenario for the Montreal Canadiens on April 15, 2025 \([Figure˜4](https://arxiv.org/html/2605.13142#S5.F4)\)\. The tree has a single relevant game \(Columbus vs\. Philadelphia\)\. Five of the six outcomes for this game lead to teamkk\(Montreal\) clinching the playoffs – confirmed by the 0\-day clincher\. The algorithm prunes sideways, yielding the single\-literal clinching scenario\.

The games and outcomes are organized in a hierarchical tree structure where each node represents an outcome of a particular game \(see Figure[2](https://arxiv.org/html/2605.13142#S4.F2)\)\. The outcomes are arranged from lowest value \(regulation loss – RL\) on the left, to highest value \(regulation win – RW\) on the right, relative to teamkk\.444In overtime, if a team pulls its goalie and then concedes a goal, the team does not receive a point for their loss\. In extremely rare cases these additional outcomes are relevant to the search, and could be included via additional game outcome nodes\. However, due to the rarity of this occurrence, we leave this to future work\.Following any path from the root \[see CreateRootNode\(\)\] to a node provides a complete description of the assumed outcomes for all games along that path, allowing for systematic exploration of all possible game result combinations\.

After a presolve phase \(see[Section˜4\.1](https://arxiv.org/html/2605.13142#S4.SS1)\), the algorithm searches the full space of possible outcomes by processing the nodes in a queue\. For each node, the games are preprocessed \(see[Section˜4\.2](https://arxiv.org/html/2605.13142#S4.SS2)\), and then a set of inference algorithms attempt to prune the tree \[see CanPruneWith\(\)\]\. If any of them succeed, the tree is pruned below that node and sideways if possible \(see[Section˜4\.3](https://arxiv.org/html/2605.13142#S4.SS3)\)\. If all fail, then the children of that node are added to the queue \[see GetChildren\(\)\]\. The tree search is controlled by game, node, and inference algorithm ordering functions \(see[Section˜4\.4](https://arxiv.org/html/2605.13142#S4.SS4)\)\. At the final step, equivalent clinching scenarios are consolidated \[see ConsolidateClinchingScenarios\(\)\]\.

An alternative approach would be to try and solve thenn\-day lookahead problem using a single model build\-and\-solve\. The presented 0\-day model answers “has teamkkclinched the playoffs?” by finding the existence of an elimination scenario\. We could ask “has teamkkbeen eliminated from the playoffs?” by trying to find the existence of a clinch scenario\. Then, we could adjust the model to output all feasible clinch scenarios \(as well as modify the model variables to track explicit game outcomes versus aggregated points\), which is often considerable, and down\-select to the scenarios that involve a clinch in the nextnn\-days\. The primary issue here is that this approach would generate many more scenarios than we actually care about, and, in all likelihood, take much more time\. Our proposed approach gives us a high level of control over the specific outcomes that are explored, and leverages existing literature that provides a foundation for our work\.

Input:Team

kk, list of games in next

nndays

Output:Set of clinching paths \(game outcomes leading to clinch\)

//Presolve phase

g​a​m​e​s←games\\leftarrowPreprocessGames\(

g​a​m​e​sgames, team

kk,

l​e​a​g​u​eleague\)

if*notClinchesPlayoffsInBestCase\(teamk, games\)*then

return*∅\\emptyset*

end if

i​n​f​e​r​e​n​c​e​A​l​g​o​r​i​t​h​m​s←inferenceAlgorithms\\leftarrow\[HasClinchedPlayoffs, ClinchesPlayoffsInBestCase\]

if*ClinchesEliminationInWorstCase\(teamk, games\)*then

i​n​f​e​r​e​n​c​e​A​l​g​o​r​i​t​h​m​sinferenceAlgorithms\+= \[HasClinchedElimination\]

end if

//Initialize tree search

c​l​i​n​c​h​i​n​g​N​o​d​e​s←∅clinchingNodes\\leftarrow\\emptyset
r​o​o​t←root\\leftarrowCreateRootNode\(team

kk\)

r​o​o​t\.g​a​m​e←root\.game\\leftarrowGameOrderingFunction\(

g​a​m​e​sgames,

r​o​o​troot, team

kk\)

q​u​e​u​e←queue\\leftarrowGetChildren\(

r​o​o​troot, team

kk\)

//Main loop over nodes

while*q​u​e​u​e≠∅queue\\neq\\emptyset*do

n​o​d​e←node\\leftarrowNodeOrderingFunction\(

q​u​e​u​equeue, team

kk\)

q​u​e​u​e−⁣=n​o​d​equeue\\mathbin\{\{\-\}\{=\}\}node
e​x​p​a​n​d​C​h​i​l​d​r​e​n←expandChildren\\leftarrowtrue

l​e​a​g​u​e←league\\leftarrowGetLeagueStateAtNode\(

n​o​d​enode\)

i​n​f​e​r​e​n​c​e​O​r​d​e​r​F​o​r​N​o​d​e←inferenceOrderForNode\\leftarrowInferenceAlgorithmOrderingFunction\(

i​n​f​e​r​e​n​c​e​A​l​g​o​r​i​t​h​m​sinferenceAlgorithms,

q​u​e​u​equeue,

n​o​d​enode, team

kk,

l​e​a​g​u​eleague\)

//Use inference algorithms to prune below and sideways

foreach*a​l​g​o​r​i​t​h​m∈i​n​f​e​r​e​n​c​e​O​r​d​e​r​F​o​r​N​o​d​ealgorithm\\in inferenceOrderForNode*do

if*CanPruneWith\(algorithm, queue, node,teamk, league\)*then

if*algorithm =HasClinchedPlayoffs*then

c​l​i​n​c​h​i​n​g​N​o​d​e​sclinchingNodes\+=

n​o​d​enode
end if

if*node\.game\.orderedOutcomes*then

d​i​r​e​c​t​i​o​n←direction\\leftarrowGetDirection\(

a​l​g​o​r​i​t​h​malgorithm\)

q​u​e​u​e←queue\\leftarrowPruneSideways\(

q​u​e​u​equeue,

n​o​d​enode,

d​i​r​e​c​t​i​o​ndirection\)

end if

e​x​p​a​n​d​C​h​i​l​d​r​e​n←expandChildren\\leftarrowfalse

break

end if

end foreach

//Expand node and add children to queue

if*expandChildrenand notIsLeafNode\(n​o​d​enode\)*then

c​h​i​l​d​r​e​n←children\\leftarrowGetChildren\(

n​o​d​enode, team

kk\)

foreach*c​h​i​l​d∈c​h​i​l​d​r​e​nchild\\in children*do

c​h​i​l​d​L​e​a​g​u​e←childLeague\\leftarrowGetLeagueStateAtNode\(

c​h​i​l​dchild\)

g​a​m​e​s←games\\leftarrowPreprocessGames\(

g​a​m​e​sgames, team

kk,

c​h​i​l​d​L​e​a​g​u​echildLeague\)

c​h​i​l​d\.g​a​m​e←child\.game\\leftarrowGameOrderingFunction\(

g​a​m​e​sgames,

c​h​i​l​dchild, team

kk\)

end foreach

q​u​e​u​equeue\+=

c​h​i​l​d​r​e​nchildren
end if

end while

//Return consolidated clinching scenarios

return*ConsolidateClinchingScenarios\(clinchingNodes\)*

Algorithm 1nn\-day Lookahead Clinching Algorithm### 4\.1Presolve Phase

Before initiating the tree search, two preliminary checks are performed:

1. 1\.Best\-case Check:Use the 0\-day playoff clincher to evaluate an impossibly\-optimistic scenario \[see ClinchesPlayoffsInBestCase\(\)\] where teamkkwins all games in the nextnndays and all other teams lose their games simultaneously \(impossible in practice\)\. If teamkkdoes not clinch the playoffs in this scenario, it cannot clinch in any realistic scenario, making the tree search unnecessary\.
2. 2\.Worst\-case Check:Use the 0\-day elimination clincher555The 0\-day elimination clincher is similar to the 0\-day playoff clincher, but it looks for a feasible qualifying scenario in teamkk’s best\-case, instead of a feasible elimination scenario in teamkk’s worst\-case\.to evaluate an impossibly\-pessimistic scenario \[see ClinchesEliminationInWorstCase\(\)\] where teamkkloses all games in the nextnndays and all other teams win their games simultaneously \(impossible in practice\)\. If teamkkdoes not clinch elimination in this scenario, it cannot clinch elimination in any realistic scenario, making the elimination clinching inference algorithm unnecessary during the tree search\.

### 4\.2Game Preprocessing

To minimize the search space and search it efficiently, games are preprocessed at each node \[see PreprocessGames\(\)\]\. This is a key detail that allows us to use all the available information on outcomes of the games in question to either prune games if they are irrelevant, or at least to order their outcomes \(from the point of view of teamkk\) which could later allow us to prune sideways \(see[Section˜4\.3](https://arxiv.org/html/2605.13142#S4.SS3)\)\.

Before detailing the rules for preprocessing, we state the following: a teamii\(that is not teamkk\) is marked as “out of the race” with teamkkif any of these conditions are met: it is in the other conference, it has clinched the playoffs or elimination, it outranks teamkk\(see definition below\), or it is outranked by teamkk\. If in teamii’s worst\-case scenario \(lose all remaining games in regulation\) it still has a higher rank than teamjjwith the best\-case scenario \(win all remaining games in regulation\), then we say that teamiihas outranked teamjj\. Note that as the season progresses and teams clinch the playoffs or elimination, they are marked as “out of the race”\.

With those definitions in place, we can now discuss game preprocessing\. The best case is if both teams are out of the race; the game is then excluded as irrelevant\. When one team in a game is out of the race \(with respect to teamkk\), the outcome ordering fromkk’s perspective is unambiguous\. The ordering is based on points and an overtime win being a stronger outcome than a shootout win \(see tie\-breakers\)\. The outcomes for teamkkcan be seen in[Figure˜2](https://arxiv.org/html/2605.13142#S4.F2)where they are ordered from weakest \(RL, on the left\) to strongest \(RW, on the right\)\. This monotonicity allows sideways pruning, since ifkkclinches under a given outcome, it will also clinch under any stronger outcome\. If instead both teams are in the race, an outcome that is stronger for one may be better or worse for teamkk, making the ordering fromkk’s perspective ambiguous, so we cannot prune sideways\.

### 4\.3Tree Pruning

The tree search employs pruning strategies based on inference algorithms \(different runs of the 0\-day clincher\) to efficiently explore the solution space\. If teamkkclinches the playoffs at a given node \[see HasClinchedPlayoffs\(\)\], we always prune the nodes below that node, since any additional game outcomes will necessarily also result in clinching the playoffs\. Additionally, if the game outcomes have a well\-defined ordering \(see below\), we can also prune right \(see Figure[2](https://arxiv.org/html/2605.13142#S4.F2)\) because higher\-value outcomes will also lead to clinching the playoffs \[see PruneSideways\(\)\]\. Conversely, let us assume that we are at a node where teamkkwill not clinch the playoffs, based on clinching elimination at that node \[see HasClinchedElimination\(\)\], or based on not clinching the playoffs even in the impossibly optimistic best\-case \[see ClinchesPlayoffsInBestCase\(\)\]\. In such a case we can definitely prune below, as well as left if the game outcomes have a well\-defined ordering\. Games involving two teams that are not out of the race do not have a well\-defined ordering of outcomes from the point of view of teamkk, which means we cannot prune sideways\.

![Refer to caption](https://arxiv.org/html/2605.13142v1/x2.png)Figure 2:An example of pruning right\. In this example, assume that teamkkclinches the playoffs \(such nodes have dashed borders and are shown in green\) if it gets an SOW outcome in the first game\. Then we can prune below – since additional outcomes will not change this fact, as well as right – since any stronger result would result in the same conclusion\.
### 4\.4Ordering Functions

The tree search is controlled by three types of ordering functions\. Below we provide an explanation of each and the default implementation we have used; additional benchmarking and experimentation might lead to better choices for these components\.

1. 1\.Game Ordering– Determines which game to branch on next at a non\-pruned node \[see GameOrderingFunction\(\)\]\. Our algorithm promotes games involving teams closest to being outranked by teamkkif we have not yet pruned nodes belonging to the remaining games, or otherwise promotes games for which nodes have already been pruned \(in the current run\)\.
2. 2\.Inference Algorithm Ordering– Determines the sequence of inference algorithms to try at each explored node \[see InferenceAlgorithmOrderingFunction\(\)\]\. If an inference algorithm succeeds in pruning, the remaining inference algorithms are skipped for that node\. Similar to the above, the inference algorithms are ordered according to the number of times we have been able to use them to prune the tree \(in the current run\)\.
3. 3\.Node Ordering– Determines the next node to explore in the tree search \[see NodeOrderingFunction\(\)\]\. Our algorithm uses a form of depth\-first search motivated by wanting to successfully prune the tree early on, in order to improve the other ordering methods’ odds of pruning \(since they are based on dynamic ordering\)\.

## 5Results

In this section we present the results ofnn\-day NHL playoff clinching determination experiments conducted on the seasons 2021\-22 through 2024\-25 using data pulled from the NHL API\[nhl\_api\], withn∈\{0,1,2,3\}n\\in\\\{0,1,2,3\\\}\. All experiments were run on a MacBook Pro, 2\.6 GHz 6\-Core Intel Core i7, with 16 GB RAM, using Python 3\.10\.2 and CP\-SAT from OR\-Tools 9\.11\.4210\[cpsat\]\. CP\-SAT was chosen due to its strong performance, as well as the expressivity provided byOnlyEnforceIf\(\), which was used to express logical relationships between integer comparisons and Boolean indicators for ranking, tie\-breaking, and qualification constraints\. The start dates for each season were chosen just before the first clinch for back\-testing convenience\. All clinching scenarios forn∈\{0,1\}n\\in\\\{0,1\\\}were validated successfully by comparing to the official scenarios published on the NHL website \(for example, see Ref\.\[nhl2025clinching\]\)\.

### 5\.10\-Day Lookahead Results

[Figure˜3\(a\)](https://arxiv.org/html/2605.13142#S5.F3.sf1)shows the accumulation of 0\-day playoff clinches, which follow a similar pattern over each of the four NHL seasons\. The schedule of the 2021\-2022 season was shifted later due to the COVID\-19 pandemic, explaining the right\-shift evident in the figure\. In the 2022\-2023 season, the Boston Bruins clinched the playoffs early, accounting for the earlier bump seen on the left\.[Figure˜3\(b\)](https://arxiv.org/html/2605.13142#S5.F3.sf2)shows the total solve time for each date\. We expect to find that the difficulty, and hence solve time, are low early \(when few teams can clinch\) and late in the season \(when most playoff spots have been filled\), and higher in the middle, when teams are on the verge of clinching\. This is generally observed, with the early first clinch in 2022\-2023 presumably leading to the early peak seen that year\.

\(a\)![Refer to caption](https://arxiv.org/html/2605.13142v1/x3.png)
\(b\)![Refer to caption](https://arxiv.org/html/2605.13142v1/x4.png)

Figure 3:0\-day lookahead approach experiments\.\(a\)Number of teams that clinched the NHL playoffs at each date, for four seasons\.\(b\)Total solve time required by our implementation to determine the playoff clinches \(or a no clinch result\) at each date\.
### 5\.21\-Day Lookahead Results

1\-day lookahead clinching scenarios for a specific team can be described in Disjunctive Normal Form \(DNF\), in which each literal is a game with a set of included outcomes\. The DNF format naturally emerges from our tree search, since each root\-to\-leaf clinching path becomes a conjunction, and the disjunction of all such paths forms the scenario\. This format also matches the style used by the NHL in their official publications\[nhl2025clinching\]\.

The complexity of the clinching scenarios can be quantified by counting the total number of literals\. For example, in[Figure˜4](https://arxiv.org/html/2605.13142#S5.F4)we present the 1\-day playoff clinching scenarios produced for April 15th, 2025\. These scenarios are the direct output from our implementation, and match the format used by the NHL when publishing official clinching scenarios\. They are representative in that they provide examples of clinching scenarios with varying levels of complexity, and match with the NHL’s official clinching scenarios for that day\[nhl2025clinching\]\. The total literal count for each of the three clinching scenarios shown is 1, 3, and 8, respectively\.

Eastern ConferenceMontreal Canadienswill clinch a playoff berth if:•The Columbus Blue Jackets get any result except a regulation win against the Philadelphia Flyers\.Western ConferenceMinnesota Wildwill clinch a playoff berth if any of the following holds:•They get at least one point against the Anaheim Ducks;or•The St\. Louis Blues lose to the Utah Hockey Club in any fashion;or•The Calgary Flames lose to the Vegas Golden Knights in any fashion\.St\. Louis Blueswill clinch a playoff berth if any of the following holds:•They defeat the Utah Hockey Club in regulation;or•They defeat the Utah Hockey Club in any fashionandthe Calgary Flames get any result except a regulation win against the Vegas Golden Knights;or•They get at least one point against the Utah Hockey Clubandthe Calgary Flames lose to the Vegas Golden Knights in any fashion;or•They defeat the Utah Hockey Club in any fashionandthe Minnesota Wild lose to the Anaheim Ducks in regulation;or•The Calgary Flames lose to the Vegas Golden Knights in regulation\.Figure 4:Generated 1\-day lookahead playoff clinching scenarios for April 15th, 2025\.\(a\)![Refer to caption](https://arxiv.org/html/2605.13142v1/x5.png)
\(b\)![Refer to caption](https://arxiv.org/html/2605.13142v1/x6.png)

Figure 5:1\-day lookahead approach experiments\.\(a\)Elapsed time to determine clinch scenarios, and\(b\)Pruning efficiency of the tree search \(i\.e\., the complement of the fraction of nodes explored\)\.[Figure˜5\(a\)](https://arxiv.org/html/2605.13142#S5.F5.sf1)shows the statistics of the total time required to determine the 1\-day playoff clinching scenarios on each date\. The times are fairly consistent across the seasons, however there are several outliers that require significantly more time\. The clinching scenarios for the Boston Bruins on March 9th, 2023 had a total literal count of 27, the highest seen in thisn=1n=1dataset, as well as the longest elapsed time of 25,759\.7 seconds\.

[Figure˜5\(b\)](https://arxiv.org/html/2605.13142#S5.F5.sf2)shows the*pruning efficiency*statistics for the tree search used to determine the 1\-day playoff clinching scenarios on each date\. We define pruning efficiency as the complement of the fraction of nodes explored out of the total number of nodes in the search tree \(considering all six outcomes of all relevant games\)\. For all seasons, most of the pruning efficiencies are clustered near 1, showing the generally high pruning efficiency of our algorithm\.

### 5\.3Additional Results

To develop a better understanding of our methods, we conduct two additional analyses: i\) we investigate how often no\-goods are generated and/or the goal assignment model is triggered in the 0\-day approach, and ii\) we test ournn\-day lookahead approach forn∈\{2,3\}n\\in\\\{2,3\\\}\.

Lazy Constraints and Goal Assignment Model Invocations\.In[Table˜3](https://arxiv.org/html/2605.13142#S5.T3)we present a summary of the statistics of usage of the goal assignment model and the lazy constraints\. From the table it is evident that these mechanisms are only needed in rare cases, however, when needed, they are critical to make the correct clinching determination\.

Table 3:Goal assignment \(GA\) model and lazy constraint \(LC\) usage across seasons, for 0\-day and 1\-day lookahead clinch determination\. N is the total number of date\-team pairs for which a model was actually built and solved \(i\.e\., excluding trivial cases\), Total is the total number of usages of GA/LC \(respectively\) for that season, and Max is the maximum number of usages of GA/LC \(respectively\) for a single date\-team pair in that season\.Longer Lookahead\.Our algorithm can, in principle, be applied to anyn≥1n\\geq 1day lookahead\. The search space scales like6r6^\{r\}whererris the number of relevant games \(as there are six possible game outcomes\), and we know the problem is NP\-Complete\[bernholt1999football,gusfield2002structure,kern2004computational\], so we should expect the elapsed time to scale exponentially\. Still, for the 2024\-25 season we were able to find all scenarios forn=1n=1, almost all forn=2n=2and most of then=3n=3scenarios with a 30\-minute timeout, as shown in[Table˜4](https://arxiv.org/html/2605.13142#S5.T4)\. Instances that take a long time to solve typically result in increasingly complex clinching scenarios; while computationally interesting, these scenarios are less useful to fans and stakeholders as they can be harder to follow\.

Table 4:Comparison ofnn\-day clinching results for the 2024\-2025 season with a 30\-minute timeout\. N is the total number of tree searches, Exc is the number of searches excluded due to timing out, Max and Med are the maximum and median values of the number of literals \(in the clinching scenarios\) and elapsed time \(in seconds\), respectively\. Forn=2n=2running without the timeout resulted in the longest tree search taking 24,735\.1s\.

## 6Conclusion

We present an algorithm for determiningnn\-day playoff clinching scenarios in the NHL\. We build upon previous work by introducing several key innovations: updated modeling of modern NHL rules and structures, efficient handling of complex tie\-breaking scenarios through a multi\-phase approach, and separation of win assignment and goal assignment models to improve computational efficiency\. Thenn\-day algorithm addresses the combinatorial challenge of multiple future games through intelligent preprocessing to reduce the search space, along with effective pruning strategies based on game outcome ordering\.

Both the 0\-day and thenn\-day lookahead algorithms are tested extensively on public NHL data from the 2021\-2022 through 2024\-2025 seasons, demonstrating their effectiveness and reliability\. The methods have proven particularly valuable during the latter part of the regular season, when playoff races intensify and the ability to quickly determine clinching scenarios becomes crucial for teams, media, and fans\. Our implementation pulls game results from a public data source\[nhl\_api\]and produces output matching the NHL’s published format\.

Future work could focus on extending this algorithm to other clinching scenarios, including division titles, conference championships, and specific playoff seed achievement\. Additionally, thenn\-day lookahead tree search algorithm as well as the 0\-day lookahead CP model are fairly general and could be adapted to other sports/leagues with different rules\.

## References

Similar Articles

Near-Future Policy Optimization

Hugging Face Daily Papers

Proposes Near-Future Policy Optimization (NPO), a mixed-policy RL method that accelerates convergence by learning from a later checkpoint of the same training run, boosting Qwen3-VL-8B-Instruct performance from 57.88 to 62.84.