Windsplit · Replay

Upload a session and see what wind, hills, heat and sun cost km by km, and what the pace is equivalent to in still air on flat ground. The same model as Windsplit, but backwards: the weather is fetched for the time and place you actually ran.

Choose a file to start.

Upload your session

Connect with Strava Pull the session straight from your Strava account. The login lives only in this browser; we store nothing. Disconnect any time.

or upload a file

Drop the file here, or tap to chooseGPX, TCX or FIT from Strava, Garmin Connect, Coros, Polar, Suunto or straight from the watch. Max 25 MB.
StravaStrava login above, or export the file yourself: Open the activity on strava.com → "…" → Export GPX (or Export Original for FIT).
Garmin ConnectOpen the activity → the gear icon top right → Export to GPX or Export Original (FIT).
Coros / Polar / SuuntoExport GPX, TCX or FIT from the app or the website.

Everything happens in your browser. The file is not uploaded anywhere and is not stored. The only thing sent out is three rounded positions and the date, to Open-Meteo, to fetch the weather. Want to share the report? Download it as an HTML file at the bottom.

How it is calculated

The session is split into 100 m segments with heading, gradient, speed and time from the file. Moving time is time where you ran faster than 0.5 m/s, and pauses over 30 seconds are subtracted. Elevation is smoothed over about 100 m before gradient is calculated.

Weather: Open-Meteo gives hourly values for wind (10 m), gusts, direction, temperature, humidity, cloud cover and shortwave radiation at three points along the route (start, furthest away, midway between), from the forecast model (last three months) or the ERA5 archive (older sessions). The values are interpolated in time to when you passed and in space between the three points.

Wind: cost = K × [(v + w)² − v²] s/km with K = 0.28 (Davies 1980), where v is your speed on the segment and w is the headwind at runner height (10 m wind × 0.6). Tailwind is credited at 60 %. Drafting subtracts a share of the cost (50/70/90 %) on headwind segments only.

Temperature: effective temperature = air + radiation/150 + 0.6 °C per m/s less airflow than in still air (tailwind feels warmer, headwind cooler). 5–15 °C is free, 15–22 °C costs 1.2 s/km per degree, 22–28 °C 2.0 s/km per degree, below 5 °C 0.15 s/km per degree, humidity counts above 18 °C. The slope is calibrated against Chicago 2026 and Ely & Cheuvront 2007 / El Helou 2012. Heat sensitivity multiplies the cost by 0.7 or 1.4, and weight scales it by (weight/70)^0.3.

Climb: the Minetti cost curve per segment, so downhill gives a negative cost; the curve is scaled to 65 % uphill and 40 % downhill, calibrated against heart-rate-based models, Daniels and real race splits. Adjusted pace per km = actual pace minus the sum of the three costs; it is the pace you would have held in still air, flat, 12 °C with the same effort. HR drift is heart rate/speed in the second half vs the first, a rough indicator of heat and fatigue.

Caveats: 10 m wind from a 2–10 km model says little about shelter behind houses and trees, and the watch's elevation can wander in wind and rain. The numbers are an estimate of what the conditions cost, not a definitive answer.