Alt NHL Standings — What If Regulation Wins Were Worth More?
A one-day TDD project built with Claude Code to recalculate NHL standings with custom point values. Motivated by watching the Blue Jackets get punished by the three-point game.
Something that has stuck in my craw since the NHL moved to it 20 seasons ago is the NHL’s loser point. It’s bothered me that games magically had gotten worth 3 points but only when the teams went to overtime.
Every time a game goes to overtime, two points are guaranteed to go to the losing team. A team that loses in regulation gets nothing. A team that loses in OT gets one point. The incentive structure pushes games to overtime, and teams that are hovering around the playoff line can pad their standing just by surviving sixty minutes.
Given I had access to Claude Code, I decided to execute on an idea sitting around for a while: what would the standings look like if you weighted outcomes differently? Regulation wins worth 3, OT wins worth 2, SO wins worth 1, losses worth 0. Or any combination you want. Just to see.
Building It
On March 18 I had two weeks of Claude Code subscription left and decided to actually build the thing. Vanilla TypeScript, Vite, live data from the NHL’s public API. The whole project was built TDD — every commit in the history is either red: (failing test written) or green: (passing). I used BDD scenarios for the UI behavior and unit tests for the calculation logic.
Starting from a failing BDD scenario and working outward is how I like to approach these things. It forces the interface to exist before the implementation, and it means Claude Code has a specific, verifiable target to hit rather than just generating plausible-looking code. When the model is working in a test-first loop, the output quality goes up noticeably. Failures are specific. The feedback cycle is tight.
By end of day March 18, all nine BDD scenarios were passing and the standings were calculating correctly. March 19 I shipped it and immediately noted it looked terrible on mobile. Fixed the layout that same morning — the three-column desktop design needed a higher breakpoint than I had set.
What It Does
The app pulls live standings from the NHL API and lets you configure points per outcome:
- Regulation win: 0–4 points
- OT win: 0–4 points
- SO win: 0–4 points
- OT loss: 0–4 points
- SO loss: 0–4 points
- Regulation loss: 0–4 points
Hit Calculate and the standings recalculate and re-sort in place. Teams are grouped by conference, division, and wild card with the playoff cutoff line shown.
The defaults are the current NHL system (2-1-1-1-0-0). Switch regulation wins to 3 and watch the standings shift.
For what it’s worth: three-point regulation wins are bad for #CBJ. The math is not kind.
Try It
Source is at github.com/mcornell/alt-nhl-standings.