Score Model — Visualization

How RunBot decides when
you should run

Every weather hour is scored from 0 to 100. Four factors deduct points: temperature drift from the run-type's ideal, wind, precipitation probability, and weather codes. This page makes the math legible.

01 / TEMPERATURE

Asymmetric sweet-spot curves

Each run type has a feelsIdeal (where it runs best) and asymmetric feelsMin/feelsMax band edges. A small dead-zone (20% of the side range) yields zero penalty around the ideal. Outside it, penalty climbs to 12 at the band edge, then continues steeper outside the band — no discontinuity at the boundary.

tolerance = sideRange × 0.2 · overshoot = (distance − tolerance) ÷ (sideRange − tolerance) · penalty = overshoot × 12
02 / WIND

Two-regime linear ramp

No penalty below 8 kph. Soft regime adds 1 point per kph above 8. Above 25 kph, a harsh regime takes over starting from where the soft regime ended (17 points) at 1.5 per kph — making a 30 kph gust meaningfully worse than a 24 kph one.

8–25 kph: (wind − 8) × 1.0 · >25 kph: 17 + (wind − 25) × 1.5
03 / PRECIPITATION

Probability-weighted penalty

Forecasts of 15% or less contribute nothing. From 15% to 40%, the penalty grows at 0.8 per percentage point. Above 40%, the harsher regime continues from 20 (where the soft regime ended) at the same slope — gentle continuation rather than a cliff.

15–40%: (precip − 15) × 0.8 · >40%: 20 + (precip − 40) × 0.8
04 / WEATHER CODES

Discrete category penalties

WMO weather codes from Open-Meteo map to category penalties independent of precip probability. This catches situations where probability is low but the forecast still says drizzle or fog. Thunderstorm essentially disqualifies an hour (penalty 100).

05 / SCENARIO

Try a window

Pick a run type and dial conditions to see how the score is built up from the four factors. The deductions match the live scoring in Find Optimal Running Window exactly.

10.0 °C
8 kph
5 %
100
Out of 100
Excellent window