From 9a2f60b4616bb661b9c9db832ae78b2602e0c71c Mon Sep 17 00:00:00 2001 From: touchline-model-bot Date: Mon, 5 Oct 2026 17:17:34 +0000 Subject: [PATCH] Propose governed model refresh --- data/data-refresh-report.json | 76 ++++++++++++++++++++++++++++++----- data/model-report.json | 16 ++++++-- data/player-histories.json | 6 +-- data/scouting-index.json | 4 +- data/valuation-model.json | 26 ++++++------ 5 files changed, 95 insertions(+), 33 deletions(-) diff --git a/data/data-refresh-report.json b/data/data-refresh-report.json index 5cfebd2..cf978a4 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-10-05T17:17:33.072542+00:00", "cadence": "weekly", - "nextReviewAfter": "2026-09-07T08:31:00+00:00", + "nextReviewAfter": "2026-10-12T17:17:33.072542+00:00", "season": 2025, - "modelVersion": "scouting-neighbors-valuation-ridge-auto-33681984060", + "modelVersion": "scouting-neighbors-valuation-ridge-auto-37347241920", "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..5e8cab7 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-10-05T17:17:33.172820+00:00", + "productionVersion": "valuation-ridge-auto-37347241920", + "candidateVersion": "valuation-ridge-auto-37347241920", "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-37347241920", + "evaluatedAt": "2026-10-05T17:17:33.172820+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..61191dd 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-37347241920", + "created_at": "2026-10-05T17:17:26.923998+00:00", + "model_version": "valuation-ridge-auto-37347241920", "seasons": [ 2022, 2023, diff --git a/data/scouting-index.json b/data/scouting-index.json index ac9e91d..970c25d 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-37347241920", + "created_at": "2026-10-05T17:17:19.983725+00:00", "season": 2025, "features": [ "age", diff --git a/data/valuation-model.json b/data/valuation-model.json index 43fb87b..67c502c 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-37347241920", + "trained_at": "2026-10-05T17:17:19.983725+00:00", "competition": "GB1", "season": 2025, "currency": "EUR", @@ -48,7 +48,7 @@ 0.48402525, 0.27371001 ], - "intercept": 16.749341455829143, + "intercept": 16.749341455829146, "coefficients": [ -0.7567766542, -0.1398750925, @@ -63,7 +63,7 @@ -0.0064745976, -0.0508329225 ], - "uncertainty_ratio": 0.7663414323779077, + "uncertainty_ratio": 0.7663414323778952, "prediction_interval": { "method": "seeded_bootstrap_percentile_80", "seed": 2026, @@ -662,7 +662,7 @@ 0.179810147, -0.0050626798, 0.1802009449, - 0.0352546733, + 0.0352546734, -0.0062956122, -0.0131654997, -0.0233181108 @@ -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.8434524037162298, "prediction_interval": { "method": "seeded_bootstrap_percentile_80", "seed": 2026, @@ -2873,7 +2873,7 @@ 0.06855588, 23.29490735 ], - "intercept": 16.672211193133727, + "intercept": 16.67221119313373, "coefficients": [ -0.8298829263, -0.0256986868, @@ -2884,7 +2884,7 @@ 0.0076249877, 0.2237585338 ], - "uncertainty_ratio": 0.7834515173269044, + "uncertainty_ratio": 0.7834515173268994, "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 ], [ @@ -3851,7 +3851,7 @@ 0.0193818797, 0.0299709059 ], - "uncertainty_ratio": 0.7880115544015456, + "uncertainty_ratio": 0.7880115544015455, "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,