| Pos | Player | Team | Opp | Price | P(start) | xG | xA | Own% | Pred growth | 80% range | Actual |
|---|
Each row forecasts a player's market-value growth this round (the quantity Aftonbladet publishes after matches). The competition metric is rank-based, so it works on any entrant's point predictions — no percentiles required — and it's robust to the blank/haul lottery that wrecks squared error.
Rank everyone who actually played by predicted growth, then score that order against the true order with NDCG@40 — a top-weighted rank metric that rewards nailing the high-growth players (the ones worth owning) and barely cares about the tail. Computed only on players who featured, so the bench can't contaminate it. Reported against a position-average baseline as a skill score.
Forecasting who starts vs sits is real skill, so it counts — but it can't dominate. Scored as balanced accuracy of play/sit calls (so the ~1,000 benched players can't trivially hand you 99%), and capped at 20% of the total.
Squared error punishes big misses heavily (quadratic) but is dominated by a few unpredictable hauls — it measures luck more than skill. CRPS is a better proper score but needs the full predictive distribution, which most entrants don't produce. Rank-of-growth needs only an ordering, so it's the fair common metric. CRPS and interval calibration (≈80% of outcomes inside p10–p90) are kept as internal checks on this model, not the competition score.