{"success":true,"projections_updated_at":"2026-08-10T18:49:39.799235+00:00","projections_age_minutes":59,"dixon_coles":{"version":"3.1","recipe_hash":"3651510ccfd5","trained_at":"2026-08-10T04:00:00.578755+00:00","n_matches":380,"half_life_days":182,"home_adv":0.3,"season_start_year":2026,"season_match_counts":{}},"xpts":{"live_engine":"xpts_v1","v2_distribution_bands":false,"v2_shadow_artifact":true},"refresh_interval_minutes":10,"next_scheduled_refresh":null,"maintenance_window_uk":"04:00-07:00","methodology":[{"key":"xpts","title":"Expected points (xPts)","summary":"For every player-fixture we estimate the points they'll score, built up from the chance of each scoring event — goals, assists, clean sheets, bonus, cards, saves and defensive contributions — weighted by how likely each is. The live Floor and Ceiling are calibrated scenario bands around that estimate."},{"key":"simulation","title":"Monte Carlo validation","summary":"Our next-generation model runs 10,000 possible outcomes alongside the live projections, varying minutes and every major FPL scoring event. We compare its accuracy and calibration with the live model before its 10th- and 90th-percentile Floor and Ceiling ranges replace the current bands."},{"key":"xmins","title":"Expected minutes (xMins)","summary":"Points mean nothing if a player doesn't play. xMins blends start probability, rotation and injury risk into the minutes we expect — a nailed starter sits near 90, a rotation risk lands lower. It updates continuously from injury news and press conferences before each deadline."},{"key":"fixtures","title":"Fixture difficulty (Dixon-Coles)","summary":"Our fixture ratings come from a Dixon-Coles model that learns each team's attacking and defensive strength from recent results and xG, then converts the expected scoreline into a 1–5 difficulty — split into attacking and defensive difficulty because a fixture can be easy for one and hard for the other."}],"timestamp":"2026-08-10T19:48:50.693408+00:00"}