# Oraca Career Forecaster — Evaluation Predictions Ledger

Companion data release for: *Forecasting Football Careers: A Foundation Model for
Player Trajectories, with Transparent Backtests and a Pre-Registered Forward
Evaluation* (Oraca Research, 2026). Paper: oraca.ai/research

This deposit contains **model outputs and realized-outcome labels only** — every
prediction underlying every results table in the paper, so that the headline
numbers (precision@k, AUC, lift, calibration) can be recomputed independently.
It contains no third-party input data.

## Files

### career_2021_predictions.csv (3,418 rows)
Every under-24 player the forecaster scored at the 2021-06-30 cutoff (paper §7.1).

| column | meaning |
|---|---|
| player_id | stable player UUID (Oraca identifier) |
| name | player name |
| position_at_cutoff | position group at the cutoff (CB/FB/DM/CM/CAM/W/ST/GK/UNK) |
| age_at_cutoff | age in years at 2021-06-30 |
| p_top5_raw | model probability of reaching the top 5% of position by season 2025/26 |
| p_top5_calibrated | the same, isotonic-calibrated (calibrator fit on the 2017 cohort) |
| model_rank | rank by p_top5_raw (1 = highest) |
| realized_pct_2025 | realized within-position percentile at season 2025/26 (empty = no qualifying season: <600 rated minutes) |
| realized_top5_2025 | outcome label: realized_pct_2025 ≥ 0.95 (players without a qualifying season are labeled False) |

Checks: 199 True labels (base rate 5.82%); top-50 by model_rank contains 37 True.

### career_2017_vintage_predictions.csv (3,406 rows)
Same schema (no calibrated column), for the independently trained 2017-cutoff
vintage scored against season-2020 outcomes (paper §7.1). 162 True labels.

### risers_asof_screen.csv (49,523 rows)
The undervaluation screen's nine-anchor as-of evaluation (paper §7.2), one row
per cohort player-season (anchors 2016–2024). This file is released in redacted
form: it identifies players by stable UUID only and contains the screen's
selection flag rather than the continuous signal, which is proprietary. The
published results (per-anchor and pooled lifts, base rates) are fully
recomputable from the columns below.

| column | meaning |
|---|---|
| anchor_season | season T at which the signal was computed as-of |
| player_id | stable player UUID (Oraca identifier) |
| pos | position group (GK excluded by cohort rule) |
| age | age at anchor (cohort: < 26) |
| tier | league tier at anchor |
| flagged_top5 | True = in the top 5% by the undervaluation signal (the screen's selection) |
| moveup_tier | 1 = in a better league tier at season T+1 (primary outcome) |
| moveup_transfer | 1 = changed clubs to a stronger club by T+1 (secondary outcome) |

Checks: 2,477 flagged rows; flagged move-up (tier) 444 vs ≈228 expected at base rates (pooled lift 1.95×).

### coverage_by_league.csv (34 rows)
Per-competition coverage of the underlying corpus (paper Appendix B): first
covered season, first season with detailed statistics, appearance and player counts.

## License & citation

Model outputs © Oraca, released under CC-BY-4.0. Player names and identities are
factual public information about professional athletes; realized-outcome columns
are coarse labels derived for evaluation. Cite as: Oraca Research (2026),
"Forecasting Football Careers: A Foundation Model for Player Trajectories, with
Transparent Backtests and a Pre-Registered Forward Evaluation", Zenodo.
DOI: 10.5281/zenodo.20652481 (this version) / 10.5281/zenodo.20652480 (all versions).
