List building in competitive 40K is part art, part science. While gut feeling and local meta knowledge matter, tournament data gives you a statistical edge most players ignore.
Gathering the data
Sites like Stat Check and 40kstats aggregate tournament results. The key metrics to track:
- Win rate by faction — overall faction strength in the current meta
- Internal win rate by unit — which datasheets actually contribute to wins
- Points efficiency — damage output or objective scoring per point invested
Building for objectives, not kills
The most common mistake in competitive list building is optimizing for damage output. 10th edition rewards board control and objective scoring heavily. A useful heuristic:
Every unit should either hold an objective, score a secondary, or remove a unit that does one of those things.
If a unit doesn’t fit one of those roles, cut it — no matter how fun it is to play.
The core framework
A balanced competitive list typically follows this structure:
| Role | Points allocation | Examples |
|---|---|---|
| Objective holders | 30-40% | Battleline, durable infantry |
| Score enablers | 20-30% | Fast units, deep strikers |
| Removal | 25-35% | Anti-tank, anti-infantry |
| Force multipliers | 5-15% | Characters, buffs |
Iterating with data
After each game, track:
- Which units survived to turn 5?
- Which units scored the most VP?
- Which units underperformed their points cost?
After 10+ games, patterns emerge. The “cool” unit you always bring might consistently contribute 0 VP while eating 200 points. The boring battleline squad might secretly be your MVP.
Tools I use
- BattleScribe / New Recruit — list building and validation
- Tabletop Battles app — game logging and stats
- Python + pandas — custom analysis of my own game data
I might write a follow-up post on the Python analysis pipeline — pulling data from the Tabletop Battles API and generating matchup heatmaps.
