Generate optimised dealer assignments for any week. Download as CSV ready to paste into the rota sheet. The optimiser respects every dealer constraint (capacity, holidays, roadtrip caps) while minimising total travel.
Upcoming events from the Roadshow Tracker that don't yet have dealer assignments. The optimizer pre-populates an efficient rota. Download as CSV to paste into the Google Sheet.
| Date | Day | Area | Region | Dealer 1 | D1 Travel | Dealer 2 | D2 Travel | Dealer 3 | D3 Travel | Total Travel |
|---|
The CP-SAT constraint solver reassigns dealers to minimise total travel across the fleet, while respecting all hard constraints (capacity, holidays, one event per day) and rewarding geographic clustering.
| Current | Optimised | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Date | Area | County | D1 | Hrs | D2 | Hrs | D3 | Hrs | D1 | Hrs | D2 | Hrs | D3 | Hrs |
Dealer-to-event travel lines. Red = current assignment, green = optimised. Toggle to compare.
How your current rota performs against six metrics: fill rate, travel efficiency, fairness, long trips, geographic clustering, and workload balance. The data behind the optimiser.
Week 2026-W18 · w/c 27 Apr: 34 events, 77 dealer assignments, 59.9h total travel.
Each metric is scored 0-100 based on thresholds calibrated to WBV's operations. The overall score is the average of all six.
Total travel hours per dealer across all analysed weeks. Sorted by total travel (highest first).
Every active dealer with their home location, capacity, total events, and travel across the analysed period.
| Name | Initials | Home | Max/Wk | Events | Total Travel | Avg Travel |
|---|---|---|---|---|---|---|
| Herman Hazu | HH | Leeds | 4 | 64 | 126.3h | 2.0h |
| Matt Case | MC | Ellesmere Port | 3 | 66 | 92.2h | 1.4h |
| Chris Kodic | CK | Darlington | 4 | 36 | 86.9h | 2.4h |
| Fred Bickle | FBI | Torquay | 4 | 51 | 79.4h | 1.6h |
| Dan Stone | DS | Leeds | 3 | 47 | 72.9h | 1.6h |
| Colleen Phelan | CP | Bromsgrove | 4 | 66 | 67.0h | 1.0h |
| Neil Church | NC | Bristol | 3 | 52 | 67.0h | 1.3h |
| James Reynolds | JR | Kingswinford | 4 | 63 | 66.7h | 1.1h |
| Sally Brogden | SB | Boston | 3 | 52 | 65.9h | 1.3h |
| Rebecca Sandberg | RS | Lyneham | 3 | 54 | 62.4h | 1.2h |
| Ella Vasey | EV | Newmarket | 3 | 41 | 60.7h | 1.5h |
| Ishy Khan | IK | Aldershot | 4 | 57 | 59.6h | 1.0h |
| Chloe Cropper | CC | Stanningfield | 4 | 52 | 57.5h | 1.1h |
| Christophe Hearn | CH | Reigate | 4 | 51 | 55.9h | 1.1h |
| Laura Wray | LW | Warrington | 4 | 40 | 51.5h | 1.3h |
| Kate Talbot | KT | Waterlooville | 3 | 42 | 48.7h | 1.2h |
| Christopher Christoforou | CCC | Enfield | 4 | 53 | 48.5h | 0.9h |
| Adam Chapman | AH | Hartlepool | 5 | 55 | 46.9h | 0.9h |
| Gary Trainor | GC | Smithy Bridge | 3 | 48 | 42.1h | 0.9h |
| Danielle Lizdek | DL | Stevenage | 4 | 49 | 42.0h | 0.9h |
| Lee Rushworth | LR | Houghton le Spring | 1 | 14 | 39.5h | 2.8h |
| Lauren Gardner | LG | Methwold | 2 | 40 | 36.1h | 0.9h |
| Patricia Negus | PN | Ushaw Moor | 3 | 55 | 35.4h | 0.6h |
| Josh Mousavi | JMO | Wakefield | 4 | 21 | 35.1h | 1.7h |
| Charlotte Cropper | CSC | Oldham | 3 | 35 | 34.0h | 1.0h |
| Harriet Dakin | HD | London | 3 | 26 | 29.7h | 1.1h |
| Edd Thomas | ET | Wootton Bassett | 1 | 23 | 28.2h | 1.2h |
| Amanda Roberts | AR | Bewdley | 3 | 23 | 26.9h | 1.2h |
| Asha Nayak | AN | Bracknell | 3 | 23 | 21.3h | 0.9h |
| Paul Waterhouse | PW | Dereham | 2 | 22 | 17.1h | 0.8h |
| Andrew Wood | AW | Cambridge | 1 | 13 | 16.6h | 1.3h |
| Kieran Moule | KM | Leeds | 1 | 11 | 16.6h | 1.5h |
| Gemma Stanley | GS | Leeds | 2 | 22 | 14.0h | 0.6h |
| Nicola Whittaker | NW | Brixton | 3 | 8 | 11.9h | 1.5h |
| Charlotte Swindell | CS | Blyth | 4 | 23 | 11.5h | 0.5h |
| Francis Bellwood | FB | York | 1 | 8 | 7.8h | 1.0h |
| James Moulds | JM | Stafford | 0 | 4 | 3.2h | 0.8h |
| Oliver Reay | OR | Cheltenham | 1 | 1 | 0.7h | 0.7h |
Every event with dealer assignments and drive times. Colour-coded: green under 1.5h, amber 1.5-3h, red over 3h. Select a week to view.
| Date | Day | Area | County | Region | Dealer 1 | D1 Travel | Dealer 2 | D2 Travel | Dealer 3 | D3 Travel |
|---|
Top 20 longest individual dealer trips across all weeks. These are the assignments with the most room for improvement.
| Dealer | Area | County | Date | Drive Time |
|---|---|---|---|---|
| CK | Launceston | Cornwall | 2026-03-23 | 6.9h |
| CK | Dawlish | Devon | 2026-03-24 | 6.4h |
| CK | Sherborne | Dorset | 2026-03-27 | 6.1h |
| LR | Denmead | Hampshire | 2026-02-11 | 5.8h |
| EV | Bude | Cornwall | 2026-04-07 | 5.8h |
| CK | Ferndown | Dorset | 2026-03-25 | 5.7h |
| CK | Northmoor Green | Somerset | 2026-03-26 | 5.5h |
| HH | Pembroke | Pembrokeshire | 2026-03-11 | 5.5h |
| CK | North Petherton | Somerset | 2026-03-26 | 5.4h |
| HH | Haverfordwest | Pembrokeshire | 2026-04-21 | 5.4h |
| DS | Pembroke | Pembrokeshire | 2026-03-11 | 5.4h |
| EV | Tavistock | Devon | 2026-04-08 | 5.3h |
| CH | Hayle | Cornwall | 2026-04-14 | 5.3h |
| JMO | Haverfordwest | Pembrokeshire | 2026-04-21 | 5.2h |
| LR | Writtle | Essex | 2026-02-03 | 4.9h |
| HH | Carmarthen | Carmarthenshire | 2026-03-10 | 4.8h |
| DS | Ystradgynlais | Powys | 2026-02-03 | 4.7h |
| DS | Carmarthen | Carmarthenshire | 2026-03-10 | 4.7h |
| LR | Ware | Hertfordshire | 2026-02-02 | 4.7h |
| JMO | Chichester | West Sussex | 2026-04-30 | 4.6h |
How the rota score and total travel have changed over time.
Data source: WBV Rota Google Sheet, pulled live via service account. Tabs used: Rota (events + assignments), Dealers (capacity), Drivetime (travel matrix), Holidays (blackout dates).
Drive times: Pre-computed matrix of dealer home location to county (in hours), maintained by WBV ops team. Missing entries estimated via Haversine distance at 50mph with 1.3x road factor.
Scoring: Six metrics scored 0-100 and averaged. Fill rate (seats filled), travel efficiency (mean drive time), fairness (coefficient of variation of per-dealer travel), road trips (count of 3h+ drives), clustering (consecutive-day same-county %), workload balance (CoV of events per dealer).
Optimiser: The Tool tab above runs a Google OR-Tools CP-SAT constraint solver over this data. Produces optimised dealer assignments for every week, before/after comparison against the manually-built rota, and CSV export ready to paste into the rota sheet.
Liam's original question: how does the optimised rota change if every willing dealer is allowed 0, 1, 2, … up to 6 roadtrips per month? More trips should cut driving but cost more nights away. The chart below sweeps that cap and shows the average outcome across willing travellers.
Background on why this tool exists, what goals it optimises for, the data it consumes, and how the algorithm works. The "why" behind the three tabs above.
Every week someone assigns ~40 dealers to ~60 events across England and Wales. Each event needs 2-3 dealers. Each dealer has a home, a weekly cap, holidays, and personal constraints. The assignment needs to minimise travel while keeping it fair.
The priorities in the order Liam ranked them. Goals 1-3 are non-negotiable. 4-10 are optimised as far as possible without breaking the top three.
Everything feeds live from the WBV Google Sheets via a service account. No manual exports.
Google OR-Tools CP-SAT — the constraint solver Google uses internally for scheduling problems at scale.
Built incrementally. Each phase delivers something usable.
What-if scenarios (dealer on holiday, new hire in Birmingham, volume changes) sit with the separate Area Capacity & Scheduling deliverable — that's a capacity question, not a rota question.