---
title: "How well the Euroleague projection models track one player"
method: GET
path: "/v1/players/euroleague/{player}/prediction-performance"
tags: ["players"]
---

# How well the Euroleague projection models track one player

`GET /v1/players/euroleague/{player}/prediction-performance`

## Request

- Base URL: `https://api.predixsport.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.predixsport.com/v1/players/euroleague/{player}/prediction-performance`
- Auth: none declared

Per-player reconciliation of our pre-game projections (points, rebounds, assists, threes and PIR) against the realized box score, for games the player STARTED — projections assume the starting five, so a late scratch is excluded rather than counted as a miss. `player` accepts the display name ("Kevin Punter") or its slug ("kevin-punter"). Returns per-stat accuracy (model MAE vs a naive rolling-average baseline, CRPS-based distributional skill), a predictability score (points + rebounds + PIR skill), and the most recent started games with expected vs actual values and the pre-game p10-p90 band. PIR is the Euroleague's own performance index rating and the only projected stat here that can be negative. `source` distinguishes the out-of-sample season replay (2025-26) from live per-matchday reconciliation (from the 2026-27 season). Season keys are the Euroleague codes, e.g. `E2025` for 2025-26.

## Path parameters

- `player` string, required

## Query parameters

- `season` string, nullable: Euroleague season code, e.g. E2025 for 2025-26
- `last` integer: How many recent started games to return

## Headers

- `authorization` string, nullable

## Response `200`

Successful Response

- EuroLeaguePlayerPerformanceResponse
  - `player` string, required: Display name — the join key across the API
  - `player_code` string, nullable: Stable Euroleague player code from the box scores
  - `team` string, nullable: Canonical, sponsor-free club name
  - `team_code` string, nullable: 3-letter club code
  - `position` string, nullable: Role on the club's official squad list: 'Guard', 'Forward' or 'Center'. Null when the squad list does not carry the player. The role is never inferred from the projection.
  - `season` string, required: Euroleague season key, e.g. 'E2025' = 2025-26
  - `season_label` string, required
  - `source` string, required: 'backtest' = completed season replayed with the deployed model on data it never trained on; 'production' = live predictions reconciled after each matchday (from 2026-27).
  - `games_started` integer, required
  - `predictability_score` number, nullable: Mean CRPS skill of points + rebounds + PIR x 100. Higher = more predictable for the models. Assists and threes are reported but excluded from the score.
  - `stats` PlayerStatPerformance[], required: One entry per projected stat: points, rebounds, assists, threes, pir. PIR is the Euroleague performance index rating and is the only stat here whose values can be negative.
    - `stat` string, required
    - `games` integer, required
    - `avg_expected` number, nullable
    - `avg_actual` number, nullable
    - `mae_model` number, nullable
    - `mae_naive` number, nullable: Naive baseline = mean of season average and last-5 average at prediction time
    - `crps_model` number, nullable
    - `crps_naive` number, nullable
    - `skill` number, nullable: 1 - crps_model / crps_naive: distributional improvement over the naive baseline. Positive = the model tracks this player better than a rolling average.
  - `recent_games` PlayerGameLine[], required: Most recent games first; started games only
    - `match_id` string, required: Prediction file_name — join key across the API
    - `date` string, required
    - `opponent` string, required
    - `is_home` boolean, required
    - `stats` object, required: Keys: points, rebounds, assists, threes

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/predixsport/apis/predixsport-api.md) · [All operations](https://skmtc.dev/predixsport/apis/predixsport-api/llms.txt) · [OpenAPI document](https://skmtc.dev/predixsport/apis/predixsport-api/revisions/02014aee733d?raw)
