diff --git a/data/data-refresh-report.json b/data/data-refresh-report.json index 5cfebd2..cdb659a 100644 --- a/data/data-refresh-report.json +++ b/data/data-refresh-report.json @@ -1,17 +1,37 @@ { "schemaVersion": 1, "status": "validated", - "generatedAt": "2026-09-02T20:54:08.712403+00:00", + "generatedAt": "2026-09-14T15:10:15.478953+00:00", "cadence": "weekly", - "nextReviewAfter": "2026-09-07T08:31:00+00:00", + "nextReviewAfter": "2026-09-21T15:10:15.478953+00:00", "season": 2025, - "modelVersion": "scouting-neighbors-valuation-ridge-auto-33681984060", + "modelVersion": "scouting-neighbors-valuation-ridge-auto-34860303805", "source": { "name": "dcaribou/transfermarkt-datasets", "license": "CC0-1.0", "latestMatchDate": "2026-05-24", - "files": [], - "rawRows": {} + "files": [ + { + "name": "players.csv.gz", + "bytes": 4389958, + "sha256": "d22e407981d5b51a79bf8ff59835729f3526f7dc3495a6d8ed2f852ed2e86403" + }, + { + "name": "games.csv.gz", + "bytes": 4995595, + "sha256": "142561989017d379bcf9e72bad0b87e0996bae0e7b710ebb3def9255f464c741" + }, + { + "name": "appearances.csv.gz", + "bytes": 45253638, + "sha256": "e096c2b158fc3d52c4550526c4d4850dd62f31007652f4bcae112eadb1646802" + } + ], + "rawRows": { + "players.csv.gz": 50149, + "games.csv.gz": 88958, + "appearances.csv.gz": 1894350 + } }, "counts": { "previousPlayers": 414, @@ -28,12 +48,46 @@ "largestValueChanges": [] }, "gates": [ - { "name": "Source contracts", "passed": true, "detail": "All compressed source tables exposed the required columns." }, - { "name": "Record coverage", "passed": true, "detail": "414 eligible players are represented." }, - { "name": "League coverage", "passed": true, "detail": "20 Premier League clubs are represented." }, - { "name": "Identity uniqueness", "passed": true, "detail": "Every serving record has a unique player identifier." }, - { "name": "Domain validity", "passed": true, "detail": "Positions, ages, values, and performance totals passed serving constraints." }, - { "name": "History coverage", "passed": true, "detail": "Player history artifacts cover the serving population." } + { + "name": "Source contracts", + "passed": true, + "detail": "All compressed source tables opened and exposed the required columns." + }, + { + "name": "Record coverage", + "passed": true, + "detail": "414 eligible players vs 414 in production." + }, + { + "name": "League coverage", + "passed": true, + "detail": "20 Premier League clubs represented." + }, + { + "name": "Identity uniqueness", + "passed": true, + "detail": "Every serving record has a unique player identifier." + }, + { + "name": "Domain validity", + "passed": true, + "detail": "Positions, ages, values, and performance totals stay inside serving constraints." + }, + { + "name": "Season monotonicity", + "passed": true, + "detail": "Candidate season 2025 does not move backward from 2025." + }, + { + "name": "History coverage", + "passed": true, + "detail": "414 of 414 players have validated history artifacts." + }, + { + "name": "Change-rate guardrail", + "passed": true, + "detail": "Unexpected mass removals block the refresh before review." + } ], "releasePolicy": "A validated snapshot opens a pull request. Production changes only after review, merge, CI, and deployment." } diff --git a/data/model-report.json b/data/model-report.json index 533f4ff..2d0aa7a 100644 --- a/data/model-report.json +++ b/data/model-report.json @@ -1,11 +1,11 @@ { "schemaVersion": 1, - "generatedAt": "2026-09-02T20:54:16.704943+00:00", - "productionVersion": "valuation-ridge-auto-33681984060", - "candidateVersion": "valuation-ridge-auto-33681984060", + "generatedAt": "2026-09-14T15:10:15.575608+00:00", + "productionVersion": "valuation-ridge-auto-34860303805", + "candidateVersion": "valuation-ridge-auto-34860303805", "decision": "promoted", "promotionMode": "threshold-gated pull request", - "rollbackVersion": "valuation-ridge-2025-v1", + "rollbackVersion": "valuation-ridge-auto-33681984060", "gates": [ { "name": "Artifact contract", @@ -81,6 +81,14 @@ } }, "history": [ + { + "version": "valuation-ridge-auto-34860303805", + "evaluatedAt": "2026-09-14T15:10:15.575608+00:00", + "decision": "promoted", + "r2": 0.6135, + "maeEur": 9905783, + "records": 414 + }, { "version": "valuation-ridge-auto-33681984060", "evaluatedAt": "2026-09-02T20:54:16.704943+00:00", diff --git a/data/player-histories.json b/data/player-histories.json index ad1562e..6abc837 100644 --- a/data/player-histories.json +++ b/data/player-histories.json @@ -1,7 +1,7 @@ { - "version": "player-history-valuation-ridge-auto-33681984060", - "created_at": "2026-09-03T22:56:59.070391+00:00", - "model_version": "valuation-ridge-auto-33681984060", + "version": "player-history-valuation-ridge-auto-34860303805", + "created_at": "2026-09-14T15:10:07.566920+00:00", + "model_version": "valuation-ridge-auto-34860303805", "seasons": [ 2022, 2023, diff --git a/data/scouting-index.json b/data/scouting-index.json index ac9e91d..054535b 100644 --- a/data/scouting-index.json +++ b/data/scouting-index.json @@ -1,6 +1,6 @@ { - "version": "scouting-neighbors-valuation-ridge-auto-33681984060", - "created_at": "2026-09-03T22:56:54.600919+00:00", + "version": "scouting-neighbors-valuation-ridge-auto-34860303805", + "created_at": "2026-09-14T15:09:58.779860+00:00", "season": 2025, "features": [ "age", diff --git a/data/valuation-model.json b/data/valuation-model.json index 43fb87b..4968bc4 100644 --- a/data/valuation-model.json +++ b/data/valuation-model.json @@ -1,6 +1,6 @@ { - "version": "valuation-ridge-auto-33681984060", - "trained_at": "2026-09-03T22:56:54.600919+00:00", + "version": "valuation-ridge-auto-34860303805", + "trained_at": "2026-09-14T15:09:58.779860+00:00", "competition": "GB1", "season": 2025, "currency": "EUR", @@ -63,7 +63,7 @@ -0.0064745976, -0.0508329225 ], - "uncertainty_ratio": 0.7663414323779077, + "uncertainty_ratio": 0.7663414323779015, "prediction_interval": { "method": "seeded_bootstrap_percentile_80", "seed": 2026, @@ -1490,7 +1490,7 @@ 0.154523722, 0.0296755778, -0.0080758716, - -0.005631021, + -0.0056310211, -0.0247230791 ], [ @@ -1906,7 +1906,7 @@ 0.01520728, 23.93368815 ], - "intercept": 15.97753452898596, + "intercept": 15.977534528985965, "coefficients": [ -0.8347365273, 0.374781695, @@ -1917,7 +1917,7 @@ -0.0196086651, 0.1624544353 ], - "uncertainty_ratio": 0.8434524037162356, + "uncertainty_ratio": 0.8434524037162309, "prediction_interval": { "method": "seeded_bootstrap_percentile_80", "seed": 2026, @@ -2884,7 +2884,7 @@ 0.0076249877, 0.2237585338 ], - "uncertainty_ratio": 0.7834515173269044, + "uncertainty_ratio": 0.7834515173269045, "prediction_interval": { "method": "seeded_bootstrap_percentile_80", "seed": 2026, @@ -3129,7 +3129,7 @@ -0.0763255232, 0.4264065726, 0.0970642905, - 0.0704464888, + 0.0704464887, 0.1420361345 ], [ @@ -3840,7 +3840,7 @@ 0.08627979, 30.67332565 ], - "intercept": 16.96510053080461, + "intercept": 16.965100530804612, "coefficients": [ -0.7568904246, -0.2416815636, @@ -3851,7 +3851,7 @@ 0.0193818797, 0.0299709059 ], - "uncertainty_ratio": 0.7880115544015456, + "uncertainty_ratio": 0.7880115544015462, "prediction_interval": { "method": "seeded_bootstrap_percentile_80", "seed": 2026, @@ -4807,7 +4807,7 @@ 0.1161586, 24.76482795 ], - "intercept": 16.96143254947794, + "intercept": 16.961432549477944, "coefficients": [ -0.5362718119, -0.1290514552, @@ -4818,7 +4818,7 @@ 0.1557534435, 0.0855702941 ], - "uncertainty_ratio": 0.5810402170352499, + "uncertainty_ratio": 0.5810402170352514, "prediction_interval": { "method": "seeded_bootstrap_percentile_80", "seed": 2026,