Skip to content
varun.rout

Jump to

Search pages, projects and repos

Playground

Demos a reviewer can poke at.

These read from committed project outputs and a Supabase-backed sample of real shots. No demo renders an invented number: every value traces to a committed result or a real model output.

xG shot-map explorer

Real shots on an attacking-half pitch, coloured by value. Toggle between my CxG and StatsBomb's own xG, or a diff mode so over- and under-valued shots pop. Filter by team, match or pressure; the panel recomputes mean value and Brier calibration live.

Larger, brighter dot = higher CxG White ring = goal

440 shots

59 goals in this selection

Mean CxG0.1420
Mean StatsBomb xG0.1538

Brier score on this selection (lower is better calibrated)

CxG0.0776
StatsBomb xG0.0792

Actual goal rate 0.134. Both are shot-quality estimates; the point is that CxG sits next to StatsBomb's own number on the same shots, not in isolation.

Data provenance. A 440-shot sample from the CxG diagnostic model (opponent-adjusted-metrics), benchmarked against StatsBomb xG on the same shots. Open StatsBomb data, served from Supabase. Full set lives in the repo.

Model scorecard

Every model across the portfolio, one card each. Filter by domain. The benchmark is the point: each card sits its value beside the incumbent, and a metric with nothing to beat is greyed.

Opponent-Adjusted Football Metrics

Live

CxG diagnostic (sklearn logistic/Ridge/GBM)

Contextual expected goals

0.8092ROC AUC
This model0.8092
StatsBomb xG0.81957

Behind the benchmark.

Open332 tests

Opponent-Adjusted Football Metrics

Live

CxG diagnostic

Calibration

0.07325Brier

No incumbent to beat

Open

Opponent-Adjusted Football Metrics

Live

CxA baseline

Contextual expected assists

0.85831ROC AUC

No incumbent to beat

Open

Opponent-Adjusted Football Metrics

Live

CxA diagnostic v1 (sklearn GradientBoostingClassifier, sigmoid-calibrated)

Contextual expected assists

0.86625ROC AUC
This model0.86625
Own CxA baseline0.85831

Ahead of the benchmark.

Open

Opponent-Adjusted Football Metrics

Live

CxA diagnostic v1

Precision among the model’s most confident actions

+0.586036%Precision @ top 1%
This model+0.586036%
Own CxA baseline+0.462708%

Ahead of the benchmark.

Open

Contextual Football Metrics

Live

Contextual GLM

Contextual expected goals

0.8131ROC AUC (heldout)
This model0.8131
Logistic baseline0.7982

Ahead of the benchmark.

Open560 tests

Contextual Football Metrics

Live

Contextual GLM

Cross-validation

0.80835-fold CV AUC

No incumbent to beat

Open

Frame2Threat

Live

XGBoost + GRU ensemble

Possession-danger prediction

0.965ROC AUC (test)

No incumbent to beat

Open69 tests

Frame2Threat

Live

PossessionGRU

Possession-danger prediction

0.9524ROC AUC

No incumbent to beat

Open

Frame2Threat

Live

XGBoost (event+360)

Pass-level line-breaking

0.882ROC AUC

No incumbent to beat

Open

Football Market Intelligence

Live

Market LR (Pinnacle, thr 0.05)

Betting-market flat-stake backtest

+6.72%ROI % (best config)

vs Break-even

Real80 tests

Retail Growth Intelligence

Live

Two-stage X-learner (LightGBM stage 2)

Uplift / campaign targeting

0.0444Overall ATE

No incumbent to beat

Synthetic7 tests

Retail Growth Intelligence

Live

Two-stage X-learner

Uplift / campaign targeting

0.0754Top-decile uplift
This model0.0754
Overall ATE0.0444

Ahead of the benchmark.

Synthetic

Retail Growth Intelligence

Live

Two-stage X-learner

Uplift ranking quality

0.406Spearman rank corr.

No incumbent to beat

Synthetic

Multi-Horizon Demand Forecasting

Professional

Demand forecaster

Quarterly SKU demand (~7,000 SKUs)

+37%Accuracy improvement %

vs Previous approach

Real

Residual-Load Forecasting

Professional

Residual-load framework

Forward price-curve accuracy (far seasons)

+15%Improvement %

vs Previous methodology

Real

Residual-Load Forecasting

Professional

Residual-load framework

Christmas-period demand RMSE

+18%RMSE reduction %

vs Pre-fix

Real

Network-Charge Forecasting

Professional

DUoS/TNUoS forecasting engine

Network-charge forecast accuracy

+23%Improvement %

vs Prior internal approach

Real

Attendance Forecasting

Professional

GridSearchCV Random Forest

Cardio attendance forecast (out-of-sample)

11.2MAE
This model11.2
Pre-tuning MAE23.8

Ahead of the benchmark (lower is better).

Real

Attendance Forecasting

Professional

GridSearchCV Random Forest

Holistic attendance forecast (out-of-sample)

13.4MAE
This model13.4
Pre-tuning MAE26.5

Ahead of the benchmark (lower is better).

Real

Every value traces to a committed result. A card with no incumbent is greyed: a metric with nothing to beat is not a win. MAE is lower-better and reported as a count, not a percentage.

Data provenance. Hand-typed from committed results (content/metrics.ts). Football and retail are open or synthetic data; energy and consulting are professional results.

Forecast error visualiser

Before/after accuracy across three roles. E.ON and Manor Park are professional results; UoB is the MSc capstone. Aggregate deltas only, no invented time series.

Residual RMSE improved ~0.3 to 0.5 GWh/h; Christmas fix ~0.35 GWh/h. Correlation ~0.84.

Data provenance. Aggregate figures from MASTER_PROFILE.md, generated into data/forecast.json. E.ON and Manor Park report accuracy improvement; UoB reports out-of-sample MAE, which is a count and lower-better.

Uplift decile explorer

The Qini curve and per-decile uplift from the retail X-learner. Slide to target the top K% of customers and watch the captured incremental response recompute.

+0.0444

Overall ATE

response-rate lift

+0.0754

Top decile

~1.7x the average

744.8

Qini area

vs random targeting

0.406

Spearman rank

predicted vs observed

Observed uplift by decile

Percentage-point lift in response rate, treatment vs control, within each predicted decile.

Loading chart…

Qini curve

Cumulative incremental responders captured (pink) against random targeting (cyan).

Loading chart…
4,104 of 20,519 customers

31.1%

of total incremental response captured

236

incremental responders (model units)

1.55x

the random-targeting baseline

Observed uplift and cumulative captured responders per predicted decile
DecileCustomersObserved uplift (pp)Cumulative captured responders
12,0527.54126
22,0526.36236
32,0524.83318
42,0521.47344
52,0522.30384
62,0515.66481
72,0525.32574
82,0525.40667
92,0523.03717
102,0522.64760

Synthetic retail data; demonstrates method, not a measured commercial outcome. The Qini series is derived from committed per-decile counts; headline figures are read straight from the committed model-comparison output.

Data provenance. Per-decile rows from retail-intelligence/outputs/phase_uplift_v2_decile_summary.csv and headline figures from phase_uplift_v2_model_comparison.csv, generated into data/uplift-deciles.json. Synthetic retail data; demonstrates method, not a measured commercial outcome.