e0a1c033cf79a5d83f0e0cbed00a3d47b26d37fa
tickClocks iterates every [data-seconds][data-received-at] element. Rendering the PP indicator with those attrs during an intermission made the clock bleed seconds even though play is paused and the penalty isn't running. Drop the ticking attrs when game['Intermission'] is true — render a plain static "PP MM:SS" that resumes ticking on the next live payload. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
NHL Scoreboard Web App
A web application that displays live NHL game scores, team statistics, and game states in real-time. Retrieves data from the NHL API and surfaces the most interesting games first using a hype scoring algorithm.
Features
- Live NHL game scores, shots on goal, and game state
- Power play indicators with live countdown clock
- Smooth period and intermission countdown clocks
- Hype Meter — ranks games by how exciting they are right now, factoring in:
- Period, time remaining, and score differential
- Late-game urgency and comeback bonuses
- Power play situations
- Game importance — boosts standings-relevant matchups late in the season, with extra weight for division and conference rivals fighting for playoff spots
Hype Scoring
Games are sorted by a priority score combining in-game excitement and contextual importance:
| Factor | Description |
|---|---|
| Period & time | Later period and deeper into it = higher base score |
| Score differential | Close games rank higher; blowouts are penalized |
| Late urgency | Bonus for ties and 1-goal games in the final 12 minutes |
| Comeback | One-time spike when the trailing team scores to pull within 2 |
| Power play | Bonus for an active man advantage, scaling with game situation |
| Game importance | Season-progress × playoff-bubble proximity × rivalry multiplier (max +150 pts) |
Game importance ramps up sharply after ~game 55 of 82, peaks for teams fighting for the last wildcard spot, and applies a 1.4× bonus for division games and 1.2× for conference games.
Technologies Used
- Python / Flask — backend and API polling
- SQLite — standings cache (refreshed every 10 minutes)
- HTML / CSS / JavaScript — frontend with auto-refresh every 10 seconds
Installation
-
Clone the repository:
git clone https://github.com/your-username/nhl-scoreboard.git -
Install dependencies:
pip install -r requirements.txt -
Run the application:
python run.py -
Open
http://localhost:2897in your browser.
Credits
Data provided by the NHL via their public API.
License
Description
Languages
Python
71.2%
CSS
11.9%
JavaScript
8.5%
HTML
7.3%
Jinja
0.9%
Other
0.2%