The problem with regular weather apps

Most weather apps give you raw numbers — 68°F, 12 mph wind, 30% chance of rain — and leave you to interpret them. That works fine if you're deciding whether to bring an umbrella. It doesn't work well for cycling, where a 15 mph headwind on a flat road is a completely different experience than a calm 15 mph tailwind, and where a 40°F morning with no wind is perfectly rideable in the right kit.

Velowindow translates weather data into a single 0–100 ride score that reflects how conditions actually feel on a bike — not just what the thermometer says.

What the score means

The score runs from 0 to 100. Higher is better. Here's what each range means in plain language:

85–100
Excellent
Near-perfect conditions. Most riders actively choose to go out.
70–84
Good
Strong go. Minor imperfections but nothing that should stop you.
55–69
Decent
Probably worth it. Some conditions are suboptimal — check what's limiting it.
40–54
Marginal
Hesitation zone. Experienced riders may go; many will wait for better.
25–39
Poor
Most riders skip. Only the committed or training-specific rider heads out.
0–24
Bad / No-Go
Conditions are genuinely uncomfortable or unsafe. Skip it.

What goes into the score

Each of these factors is scored individually on a 0–100 scale, then weighted and combined. The model uses nonlinear curves — meaning conditions near key thresholds matter more than the same change in comfortable ranges. Wind at 18 mph isn't just "a bit worse" than 10 mph; it's disproportionately harder because aerodynamic drag scales as the cube of wind speed.

🌡️
Apparent temperature (feels-like)
Uses the feels-like temperature, not just air temp — so wind chill in winter and heat index in summer are already baked in. Sweet spot is 55–72°F. Heat penalizes faster than cold because forward motion creates cooling airflow that offsets cold but amplifies heat stress.
💨
Wind speed (sustained)
Sustained wind is the #1 behavioral deal-breaker for most cyclists. The score drops sharply past 14 mph — that's where ride cancellation rates rise significantly. Above 25 mph sustained, it's a safety-level hard override.
💨
Wind gusts
Scored relative to sustained wind, not independently. A 25 mph gust on an already-windy 20 mph day is manageable. The same gust on a 5 mph day is alarming — sudden surges require active bike control and are psychologically harder than equivalent steady wind. Soft caps fire when gusts are bad enough to make a high overall score misleading.
🌧️
Precipitation (probability + intensity)
Both probability and intensity matter. A 60% chance of drizzle is very different from a 40% chance of heavy rain. Light drizzle gets a modest penalty; moderate rain or heavier triggers steep penalties or hard overrides. Thunderstorms (WMO code 95+) cap the score at 8 regardless of everything else.
💧
Humidity via dew point
Dew point is a better measure than relative humidity for exercise. It directly measures how well sweat can evaporate — your body's primary cooling mechanism. Below 55°F dew point, no penalty. Above 65°F it starts scoring poorly. Above 70°F with high temperatures it's oppressive for any sustained effort.
🌲
Recent rainfall (MTB and gravel only)
For off-road riders, how much it rained in the last 24 hours matters as much as today's forecast. Wet trails are slick, technically harder, and riding them when saturated causes real trail damage. This factor is heavily weighted for MTB and moderately weighted for gravel.
😷
Air quality (AQI)
Only affects the score above AQI 100. On most days in most places, this has zero effect. When air quality is genuinely poor — wildfire smoke, industrial events — the score is capped to prevent calling conditions excellent when the air is harmful to breathe hard in.

Personalized for your ride type

The same weather conditions affect different types of riding very differently. Velowindow weights factors according to what actually matters for each ride type.

Road
Road cycling
Wind is weighted most heavily. Headwinds and crosswinds dominate the road riding experience — aerodynamic drag is the primary enemy on open roads.
Gravel
Gravel riding
Balanced score that considers both weather conditions and trail surface dryness. Recent rainfall matters because gravel routes often include dirt sections.
MTB
Mountain biking
Recent rainfall is weighted highest. Wet trails are dangerous, technically harder, and riding them when saturated damages the trail surface for everyone.
Commute
Commuting
Precipitation is weighted most heavily. Getting to work dry is the primary concern — rain probability and intensity dominate the commuter experience.

The best riding window

A day score alone can mislead. A day that's rainy in the morning and clear in the afternoon should score differently than a day that's uniformly great — but a simple average treats them the same.

Velowindow finds the best consecutive 3-hour riding window between 5am and 8pm and surfaces it directly: "Peak window: 9am–12pm." The day's overall score is also biased toward typical riding hours — morning and late afternoon hours are weighted more heavily than midday or overnight.

The 7-day outlook fades after day 4 with a "low confidence" label, honestly reflecting that long-range forecasts carry increasing uncertainty. A Saturday score of 89 six days out is a reason for cautious optimism, not a firm commitment to a century ride.

Data sources

Open-Meteo — all weather forecast data including temperature, wind, precipitation, dew point, and weather codes. Free, open-source, global coverage. Forecasts update hourly.

Open-Meteo Air Quality API — AQI data derived from the Copernicus Atmosphere Monitoring Service (CAMS) European air quality forecast.

Nominatim / OpenStreetMap — reverse geocoding (converting GPS coordinates to place names). Location names are displayed in standard format: City, ST for US locations; City, Country for international.

Leaflet and CARTO — the map display.

No account is required. No personal data is collected or stored on any server. Your location preference and ride type are saved locally in your browser only.

Ready to ride smarter?

Check today's score for your location — it takes about two seconds.

Open Velowindow →