Why Scrabble Scoring?
The rationale, origins, and philosophy behind scoring NHL players by their name’s Scrabble value.
The Concept
NHL Scrabble is a deliberately whimsical project that applies Scrabble letter values to NHL player names to create alternative standings. It’s a fun, arbitrary metric that has absolutely no correlation with actual hockey performance.
Origin Story
The idea emerged from a simple observation: some NHL players have names with high-value Scrabble letters (Q, Z, X, K), while others have very common letters. What if we ranked teams by the Scrabble value of their players’ names instead of wins and losses?
Players like:
Alexander Ovechkin - Features high-value letters (V, C, H, K)
Zdeno Chara - Starts with Z (10 points!)
Pavel Zacha - Another Z player
You can verify these scores programmatically:
>>> from nhl_scrabble.scoring import ScrabbleScorer
>>> scorer = ScrabbleScorer()
>>> scorer.calculate_score("Alexander Ovechkin")
37
>>> scorer.calculate_score("Zdeno Chara")
25
>>> scorer.calculate_score("Pavel Zacha")
29
Versus players with lower scores:
Connor McDavid - All common letters
Leon Draisaitl - No high-value letters
Nathan MacKinnon - Common letters throughout
>>> scorer.calculate_score("Connor McDavid")
24
>>> scorer.calculate_score("Leon Draisaitl")
14
>>> scorer.calculate_score("Nathan MacKinnon")
26
Notice how high-value letters (Z, V, K) dramatically increase the score!
Scrabble Letter Values Reference:
For the official Scrabble tile point values and letter distributions, see:
Scrabble Letter Values (Wikipedia) - Official tile point values
Scrabble Letter Distributions (Wikipedia) - Comprehensive distribution information
Why This Is Interesting
1. Pure Absurdity
The metric is completely arbitrary and meaningless for actual hockey evaluation. That’s the point! It’s refreshing to have a stat that makes no claims about player quality.
Example: A fourth-line player with a Z in their name can “out-score” a superstar with common letters. This is hockey analysis through a funhouse mirror.
2. Name Diversity
NHL rosters reflect hockey’s international nature:
European names: Often have interesting letter combinations (Ž, K, V)
Russian names: Tend to have strong consonants (K, V, Z)
Finnish names: Unique letter patterns
North American names: Generally more common letters
The Scrabble score becomes a proxy for name diversity across the league.
3. Data Science Learning
Despite being silly, this project demonstrates serious concepts:
API Integration: Real-world API consumption (NHL API)
Data Processing: Aggregation, sorting, ranking
Report Generation: Multiple output formats
Testing: Comprehensive test coverage
Type Safety: Full type annotations
Professional Practices: CI/CD, code quality, documentation
It’s a low-stakes way to learn production-quality Python development.
4. Conversation Starter
The project is memorable and fun to explain:
“I built a tool that ranks NHL teams by the Scrabble value of their players’ names.”
This leads to interesting discussions about:
Name origins and linguistics
Data analysis approaches
The arbitrariness of sports statistics
Software architecture
What It Demonstrates
Clean Architecture
The project shows how to structure a real application:
CLI → Processors → API Client → External Service
↓ ↓ ↓
Reports ← Models ← Scoring
Each component has a single responsibility and clear interfaces.
Testing Strategy
Shows comprehensive testing:
Unit tests: Individual component testing
Integration tests: End-to-end workflows
Mocking: External API simulation
Coverage: >80% code coverage
Modern Python Practices
Demonstrates current best practices:
Type hints throughout
Pydantic data validation
Click CLI framework
UV for fast dependency management
Tox for multi-Python testing
Pre-commit hooks (55 hooks!)
Documentation as Code
Four-quadrant documentation (Diátaxis):
Tutorials for learning
How-to guides for tasks
Reference for looking up
Explanations for understanding
Real-World Applications (Seriously!)
While the metric is silly, the techniques apply to real scenarios:
1. Name Analysis
Organizations actually need to:
Detect name duplication
Analyze name patterns
Validate name formats
Handle internationalization
This project shows how to work with diverse names programmatically.
2. API Integration Patterns
The NHL API client demonstrates:
Retry logic with exponential backoff
Rate limiting
Caching strategies
Error handling
Timeout management
These patterns apply to any API integration.
3. Report Generation
The report system shows:
Multiple output formats (text, JSON)
Data aggregation and ranking
Template-based generation
Extensible plugin architecture
Useful for any reporting system.
4. Data Pipeline Design
The processor architecture demonstrates:
Data fetching
Transformation
Aggregation
Analysis
Presentation
A classic ETL (Extract-Transform-Load) pipeline.
Philosophy
Embrace the Absurd
Not everything needs to be serious. Sometimes the best projects are the ones that make people smile while teaching real skills.
Perfect Practice Project
Low stakes mean:
Experiment freely: Try new tools (UV, Pydantic, tox-uv)
Refactor boldly: No production users to break
Over-engineer safely: Practice advanced patterns
Document thoroughly: Examples for others
Teaching Tool
The project serves as:
Portfolio piece: Demonstrates professional development
Learning resource: Shows real-world patterns
Code example: Reference implementation
Discussion starter: Engaging way to explain concepts
Alternatives Considered
Why Not Other Metrics?
Letter count:
Less interesting (direct correlation with name length)
No weighting makes names feel same-y
Alphabetical position (A=1, B=2, Z=26):
Less recognizable than Scrabble
No cultural reference point
Cryptographic hash:
Completely arbitrary
No human interpretability
Scrabble wins because:
Everyone knows the letter values
Values are interesting (Q and Z worth more)
Cultural touchstone (the board game)
Provides talking point
Why NHL and Not Other Sports?
NHL advantages:
Good public API
International players (name diversity)
Manageable dataset (~750 players)
Active roster changes (keeps it fresh)
Could work with:
NBA (smaller rosters, less diversity)
Premier League (good name diversity)
MLB (huge rosters, slow to process)
NHL hits the sweet spot of interesting names and manageable data.
Future Directions
Historical Analysis
Track scores over seasons:
How do team scores change with roster moves?
Which trades improved Scrabble standings?
Historical “Scrabble dynasty” teams
Advanced Metrics
Deeper analysis:
Scrabble per cap hit: Value per salary dollar
Scrabble above replacement: Compare to average player
Position analysis: Do forwards score higher than defensemen?
Web Interface
Interactive exploration:
Sortable tables
Filter by division/conference
Player search
Historical charts
Scrabble Playoffs
Simulate playoffs using Scrabble scores:
Head-to-head matchups
Best-of-7 series
“Scrabble Cup” winner
Conclusion
NHL Scrabble is intentionally absurd, but that doesn’t make it useless. It demonstrates professional development practices in a fun, low-stakes environment. It’s a conversation starter, a learning tool, and proof that software development can be both rigorous and whimsical.
The best part? It makes people smile while showcasing serious skills.