{"schemaVersion":"poisson-vs-dixon-coles-football-benchmark/1.0.0","releaseDate":"2026-07-15","title":"Independent Poisson versus sequential training-only Dixon-Coles correction on shared goal rates: EPL benchmark","description":"Aggregate-only, ISO-week walk-forward comparison of independent Poisson versus a sequential training-only Dixon-Coles low-score correction on identical fitted goal rates across four evaluation seasons of English Premier League results after one warm-up season. This is not a full joint Dixon-Coles fit.","researchQuestion":"Does a Dixon-Coles rho estimated only from prior completed EPL matches improve held-out exact-score and 1X2 probability scores when both methods share the same ridge-Poisson goal rates?","league":{"code":"E0","country":"England","name":"English Premier League"},"evaluation":{"sourceSeasonCount":5,"sourceMatchCount":1900,"warmUpSeasons":["2021/22"],"warmUpMatchCount":380,"evaluationSeasons":["2022/23","2023/24","2024/25","2025/26"],"evaluationMatchCount":1520,"evaluationWeekCount":143,"temporalCoverageStart":"2022-08-05","temporalCoverageEnd":"2026-05-24"},"walkForward":{"block":"ISO week beginning Monday 00:00 in the source Date/Time clock interpreted deterministically as UTC for grouping.","cutoff":"Every fold trains only on completed rows with timestamp strictly earlier than the Monday starting the test ISO week. No match from the test week enters either the Poisson fit or rho estimate.","trainingWindow":"Expanding from the complete 2021/22 warm-up season through all eligible earlier weeks; no time decay or rolling truncation.","withinWeekTrainingExcluded":true,"initialTrainingMatchCount":380,"finalTrainingMatchCount":1887,"minimumTrainingMatchCount":380,"maximumTrainingMatchCount":1887,"foldCount":143,"minimumTrainingTeamCount":20,"maximumTrainingTeamCount":27,"coldStartRule":"A team absent from all eligible EPL training rows receives zero attack and defence effects, equivalent to the fitted league baseline; future team identities never create fitted parameters.","coldStartMatches":7,"maximumIrlsIterationsObserved":7,"minimumLowScoreRowsForRho":129},"goalRateModel":{"formula":{"home":"log(lambda_home) = intercept + home_advantage + attack_home - defence_away","away":"log(lambda_away) = intercept + attack_away - defence_home"},"fit":"Sparse Newton/IRLS for the ridge-penalized Poisson likelihood, refitted from scratch on each fold's eligible training rows.","teamEffectRidge":1,"interceptAndHomeNumericRidge":1e-8,"ridgeSelection":"Release v1 fixes both penalties and applies them uniformly to every walk-forward fold.","optimizer":{"maximumIterations":50,"parameterTolerance":1e-9,"backtrackingLineSearch":true,"maximumAbsoluteEtaGuard":20},"sharedRates":"Independent Poisson and Dixon-Coles use identical fitted lambdas for every test match. The comparison changes rho only."},"dixonColes":{"tau":{"0-0":"1 - lambda_home * lambda_away * rho","0-1":"1 + lambda_home * rho","1-0":"1 + lambda_away * rho","1-1":"1 - rho","other":"1"},"rhoFit":"One-dimensional concave maximum likelihood on the same fold's eligible training rows after the shared Poisson lambdas are fitted. The score equation is solved by deterministic bisection inside the positivity interval.","jointFit":false,"isolationBoundary":"This sequential fit deliberately does not refit attack, defence, intercept or home advantage for Dixon-Coles; it isolates the low-score correction and is not a full joint Dixon-Coles MLE.","outerBounds":[-0.25,0.25],"positivityFloor":1e-10,"boundaryOptimaAccepted":false,"rhoByWeekSummary":{"n":143,"mean":-0.00116499,"minimum":-0.05351539,"firstQuartile":-0.01491986,"median":-0.00091982,"thirdQuartile":0.0096159,"maximum":0.04580879,"positiveWeeks":67}},"scoring":{"primary":"Mean exact-score log loss in natural-log units: -ln(P(observed home goals, observed away goals)).","secondary":{"oneXTwoBrierClassAverage":"mean(sum((p_HDA - y_HDA)^2) / 3)","oneXTwoLogLossNats":"mean(-ln(p_observed_HDA))","lowScoreCalibration":"For 0-0, 0-1, 1-0 and 1-1 separately, observed frequency minus mean predicted probability over all 1,520 held-out matches."},"probabilityMass":"Adaptive Poisson marginals retain all but at most 1e-13 mass each; the 1X2 matrix must be within 1e-10 of unit mass before normalization.","pairedDifference":"Dixon-Coles score minus independent-Poisson score; negative favours Dixon-Coles."},"headline":{"evaluationMatchCount":1520,"evaluationWeekCount":143,"poissonExactScoreLogLossNats":3.01293166,"dixonColesExactScoreLogLossNats":3.01325927,"exactScoreDifferenceDixonColesMinusPoisson":0.00032761,"exactScoreDifferenceCi95":[-0.00041314,0.00107077],"poissonOneXTwoBrierClassAverage":0.19821609,"dixonColesOneXTwoBrierClassAverage":0.19821578,"brierDifferenceDixonColesMinusPoisson":-3.1e-7,"brierDifferenceCi95":[-0.0001103,0.00010353],"poissonOneXTwoLogLossNats":0.99647056,"dixonColesOneXTwoLogLossNats":0.99663952,"oneXTwoLogLossDifferenceDixonColesMinusPoisson":0.00016896,"oneXTwoLogLossDifferenceCi95":[-0.00052658,0.00083317],"meanTrainingOnlyRho":-0.00116499,"coldStartMatches":7},"pairedUncertainty":{"method":"Deterministic 95% percentile intervals from 5,000 paired ISO-week block-bootstrap resamples. Every sampled block retains both methods' scores for the same held-out matches.","replicates":5000,"blockCount":143,"metrics":{"exactScoreLogLossNats":{"pointDifferenceDixonColesMinusPoisson":0.00032761,"ci95":[-0.00041314,0.00107077]},"oneXTwoBrierClassAverage":{"pointDifferenceDixonColesMinusPoisson":-3.1e-7,"ci95":[-0.0001103,0.00010353]},"oneXTwoLogLossNats":{"pointDifferenceDixonColesMinusPoisson":0.00016896,"ci95":[-0.00052658,0.00083317]}}},"summaries":[{"groupLabel":"2022/23–2025/26 evaluation","groupType":"overall","n":1520,"weekCount":143,"coverageStart":"2022-08-05","coverageEnd":"2026-05-24","coldStartMatches":7,"rho":{"mean":-0.00116499,"minimum":-0.05351539,"maximum":0.04580879},"metrics":{"exactScoreLogLossNats":{"dixonColes":3.01325927,"differenceDixonColesMinusPoisson":0.00032761,"poisson":3.01293166},"oneXTwoBrierClassAverage":{"dixonColes":0.19821578,"differenceDixonColesMinusPoisson":-3.1e-7,"poisson":0.19821609},"oneXTwoLogLossNats":{"dixonColes":0.99663952,"differenceDixonColesMinusPoisson":0.00016896,"poisson":0.99647056}}},{"groupLabel":"2022/23","groupType":"season","n":380,"weekCount":34,"coverageStart":"2022-08-05","coverageEnd":"2023-05-28","coldStartMatches":3,"rho":{"mean":-0.01762991,"minimum":-0.05351539,"maximum":0.02742507},"metrics":{"exactScoreLogLossNats":{"dixonColes":3.05817889,"differenceDixonColesMinusPoisson":0.00123257,"poisson":3.05694632},"oneXTwoBrierClassAverage":{"dixonColes":0.20230066,"differenceDixonColesMinusPoisson":0.00011109,"poisson":0.20218957},"oneXTwoLogLossNats":{"dixonColes":1.018177,"differenceDixonColesMinusPoisson":0.00117369,"poisson":1.0170033}}},{"groupLabel":"2023/24","groupType":"season","n":380,"weekCount":37,"coverageStart":"2023-08-11","coverageEnd":"2024-05-19","coldStartMatches":2,"rho":{"mean":0.02561488,"minimum":0.00583875,"maximum":0.04580879},"metrics":{"exactScoreLogLossNats":{"dixonColes":3.10478723,"differenceDixonColesMinusPoisson":0.0003585,"poisson":3.10442873},"oneXTwoBrierClassAverage":{"dixonColes":0.1819316,"differenceDixonColesMinusPoisson":-0.00005504,"poisson":0.18198664},"oneXTwoLogLossNats":{"dixonColes":0.92583669,"differenceDixonColesMinusPoisson":-0.00030023,"poisson":0.92613692}}},{"groupLabel":"2024/25","groupType":"season","n":380,"weekCount":36,"coverageStart":"2024-08-16","coverageEnd":"2025-05-25","coldStartMatches":1,"rho":{"mean":-0.00251228,"minimum":-0.0148193,"maximum":0.01033649},"metrics":{"exactScoreLogLossNats":{"dixonColes":2.99193457,"differenceDixonColesMinusPoisson":0.00034392,"poisson":2.99159065},"oneXTwoBrierClassAverage":{"dixonColes":0.20018015,"differenceDixonColesMinusPoisson":0.00003014,"poisson":0.20015},"oneXTwoLogLossNats":{"dixonColes":1.00258257,"differenceDixonColesMinusPoisson":0.00018225,"poisson":1.00240033}}},{"groupLabel":"2025/26","groupType":"season","n":380,"weekCount":36,"coverageStart":"2025-08-15","coverageEnd":"2026-05-24","coldStartMatches":1,"rho":{"mean":-0.01179126,"minimum":-0.02679859,"maximum":0.00239429},"metrics":{"exactScoreLogLossNats":{"dixonColes":2.89813637,"differenceDixonColesMinusPoisson":-0.00062455,"poisson":2.89876092},"oneXTwoBrierClassAverage":{"dixonColes":0.2084507,"differenceDixonColesMinusPoisson":-0.00008743,"poisson":0.20853813},"oneXTwoLogLossNats":{"dixonColes":1.03996181,"differenceDixonColesMinusPoisson":-0.00037987,"poisson":1.04034168}}}],"lowScoreCalibration":[{"event":"0-0","goals":{"away":0,"home":0},"model":"poisson","n":1520,"meanPredictedProbability":0.06106451,"observedCount":77,"observedFrequency":0.05065789,"signedGapObservedMinusPredicted":-0.01040661,"absoluteGap":0.01040661},{"event":"0-0","goals":{"away":0,"home":0},"model":"dixon_coles","n":1520,"meanPredictedProbability":0.06120893,"observedCount":77,"observedFrequency":0.05065789,"signedGapObservedMinusPredicted":-0.01055103,"absoluteGap":0.01055103},{"event":"0-1","goals":{"away":1,"home":0},"model":"poisson","n":1520,"meanPredictedProbability":0.076485,"observedCount":101,"observedFrequency":0.06644737,"signedGapObservedMinusPredicted":-0.01003763,"absoluteGap":0.01003763},{"event":"0-1","goals":{"away":1,"home":0},"model":"dixon_coles","n":1520,"meanPredictedProbability":0.07634058,"observedCount":101,"observedFrequency":0.06644737,"signedGapObservedMinusPredicted":-0.00989321,"absoluteGap":0.00989321},{"event":"1-0","goals":{"away":0,"home":1},"model":"poisson","n":1520,"meanPredictedProbability":0.08926866,"observedCount":119,"observedFrequency":0.07828947,"signedGapObservedMinusPredicted":-0.01097919,"absoluteGap":0.01097919},{"event":"1-0","goals":{"away":0,"home":1},"model":"dixon_coles","n":1520,"meanPredictedProbability":0.08912425,"observedCount":119,"observedFrequency":0.07828947,"signedGapObservedMinusPredicted":-0.01083477,"absoluteGap":0.01083477},{"event":"1-1","goals":{"away":1,"home":1},"model":"poisson","n":1520,"meanPredictedProbability":0.10502917,"observedCount":168,"observedFrequency":0.11052632,"signedGapObservedMinusPredicted":0.00549715,"absoluteGap":0.00549715},{"event":"1-1","goals":{"away":1,"home":1},"model":"dixon_coles","n":1520,"meanPredictedProbability":0.10517359,"observedCount":168,"observedFrequency":0.11052632,"signedGapObservedMinusPredicted":0.00535273,"absoluteGap":0.00535273}],"source":{"publisher":"Football-Data.co.uk","landingPage":"https://www.football-data.co.uk/data.php","notes":"https://www.football-data.co.uk/notes.txt","fingerprintReleaseDate":"2026-07-15","inputContract":{"defaultMode":"Download each publisher URL and rebuild only while every response byte matches the frozen release-v1 SHA-256 pin.","offlineMode":"Pass --source-dir or --input-dir with user-held CSV files at each declared localRelativePath; every local file must match the same frozen SHA-256 pin.","changedPublisherBytes":"Fail closed. A changed publisher file cannot overwrite or silently regenerate release v1."},"sourceInputs":[{"season":"2021/22","role":"warm-up","url":"https://www.football-data.co.uk/mmz4281/2122/E0.csv","localRelativePath":"2122/E0.csv","sha256":"335afcbabeb2939fa10ab39ba3e8215072d0b577cb8d0705c1e44c56e934e703","completedMatchRows":380,"fieldsUsed":["Date","Time","HomeTeam","AwayTeam","FTHG","FTAG"]},{"season":"2022/23","role":"evaluation","url":"https://www.football-data.co.uk/mmz4281/2223/E0.csv","localRelativePath":"2223/E0.csv","sha256":"8442792d3b614c94ea3cf381bd2736805889cc1713169035368fff19c3d02380","completedMatchRows":380,"fieldsUsed":["Date","Time","HomeTeam","AwayTeam","FTHG","FTAG"]},{"season":"2023/24","role":"evaluation","url":"https://www.football-data.co.uk/mmz4281/2324/E0.csv","localRelativePath":"2324/E0.csv","sha256":"b2e057b0ed959f198b0f63d2391c01239f3608e6de5db68edab3f88e04d07ff3","completedMatchRows":380,"fieldsUsed":["Date","Time","HomeTeam","AwayTeam","FTHG","FTAG"]},{"season":"2024/25","role":"evaluation","url":"https://www.football-data.co.uk/mmz4281/2425/E0.csv","localRelativePath":"2425/E0.csv","sha256":"d0c8ce4a96d886cf60cf101f570f4a3893844226f91c7bd769eb568c49edbfa4","completedMatchRows":380,"fieldsUsed":["Date","Time","HomeTeam","AwayTeam","FTHG","FTAG"]},{"season":"2025/26","role":"evaluation","url":"https://www.football-data.co.uk/mmz4281/2526/E0.csv","localRelativePath":"2526/E0.csv","sha256":"3e3a8352f9ada6789c508d6ca184424421fed56a30400904a4a327c583407e62","completedMatchRows":380,"fieldsUsed":["Date","Time","HomeTeam","AwayTeam","FTHG","FTAG"]}],"rawRowsRedistributed":false},"rights":{"aggregateLicense":"https://creativecommons.org/licenses/by/4.0/","aggregateRightsScope":"CC BY 4.0 covers only Football Proof AI's original aggregate benchmark outputs and release metadata. It does not license or redistribute Football-Data.co.uk source rows or grant rights in the publisher's source files.","sourceRightsStatus":"unknown/not asserted","checkedAt":"2026-07-15","rawSourceLicenseNotGranted":true,"rawRowsRedistributed":false},"limitations":["This is one league and five seasons. It does not establish that Dixon-Coles is universally better or worse for other competitions, periods, data feeds or fitted goal models.","The comparison isolates a sequential training-only rho correction on shared ridge-Poisson lambdas; it is not a full joint Dixon-Coles maximum-likelihood fit.","Release v1 fixes the ridge penalties, expanding history and absence of time decay and applies them uniformly to every fold.","Promoted or returning teams with no eligible EPL history begin at the fitted league baseline until an earlier training row exists.","This score-based goal-rate model does not estimate shot-level expected goals, represent the production LightGBM candidate or publish match predictions.","Weekly-block bootstrap intervals preserve within-week pairing but do not prove independence, causal improvement or universal statistical significance.","Football-Data.co.uk makes source CSVs publicly downloadable, but source redistribution rights remain unknown/not asserted here. This release grants no raw-source licence and publishes aggregates only.","Predictive score differences do not establish profitability, expected value or betting advice."]}