Loading contract data...
Select a player to view contract comparables
| Player | Pos | Age | Predicted AAV | Actual AAV | Predicted % | Actual % | Error | Term | Team | Signed |
|---|
Model
Comparables are generated by a K-Nearest Neighbors model that finds the 5 most statistically similar players from the prior 3 free-agent classes. Four separate models are run — UFA Forwards, UFA Defensemen, RFA Forwards, RFA Defensemen — to normalize within peer groups.
UFA models emphasize age and career-to-date production, with platform-year stats (L3 averages) factored in at a lower weight. RFA models focus purely on career-to-date metrics since platform years are less predictive for restricted free agents.
Edge cases to be aware of: superstar-level players, players in their mid-30s, and RFAs with very few career games may produce unconventional comparables.
Cap Hit % Estimate
Estimates use inverse-distance weighting (IDW) rather than fixed weights. Each comp's influence is proportional to 1/distance — so a comp that is twice as close gets twice the weight. This means near-identical comps properly dominate the estimate while distant comps contribute minimally.
The ±1σ confidence interval uses the weighted standard deviation of the comps' cap hit percentages. A tight interval (e.g. ±0.5%) means the comps agree closely — the estimate is reliable. A wide interval (e.g. ±3%) means the comps varied significantly — treat the estimate with more caution.
Estimated AAV is calculated as Cap Hit % × current salary cap ceiling. The AAV range reflects the confidence interval translated to dollars.
Backtest Accuracy
Each model is backtested using leave-one-season-out validation: every historical FA class is held out, predicted using only prior years, and the error is measured against actual signings. The MAE (mean absolute error) shown in the header tells you how far off the model typically is in percentage points of cap hit.
Term Sensitivity
The contract-length slider re-prices the estimate for different deal lengths, since AAV isn't independent of term. RFAs tend to see their cap hit % rise on longer deals — the team is buying out more years of a still-developing player at a discount, so it pays a bit more per year for that cost certainty. UFAs tend to see the opposite: a longer term functions as a security blanket for the player, who will often take a slightly lower AAV in exchange for it. These tendencies are fitted from recent signings within each player's pay tier (low / mid / high cap hit %) wherever there's enough data to support a reliable trend; otherwise a conservative estimate is used as a fallback.
Tracking Signings
The Pending / Signed filter shows who's still on the open market versus who has already signed this offseason, with the Signed view listing every player in that FA-status/position group along with how their actual deal compared to the model's prediction. Entry-level contracts (the standard rookie deal every drafted player signs before reaching free agency) are intentionally excluded from this tracker — they're capped by league rules at a flat rate regardless of talent, so they aren't representative open-market signings and would only add noise to the comparison.
Players who haven't appeared in an NHL game in recent seasons won't show up in the tool even if they're technically eligible for free agency — the model needs actual NHL stats to generate meaningful comparable estimates, so players with no recent league activity are excluded rather than shown with unreliable projections.
Data Sources
Stats and biographical data from the NHL's public API (nhle.com). Contract data from PuckPedia.com. Data refreshed daily via GitHub Actions.
Future Cap Projections
Future-season cap hit percentages use projected cap ceilings to show how a player's AAV will decrease as a percentage of the cap over time.