PaceWeather logo

PaceWeather

Know the conditions. Perform your best.

Weather-adjusted insights for your Strava runs.

Strava + weather-adjusted pacing

Dashboard intro

See the pace the weather allowed.

Compare your real Strava effort against the conditions, then see what the same run may have looked like in better weather.

Strava login Past activity history Ideal conditions pace Flexible Strava summaries

Quick Snapshot

Your recent pace and weather story

Condition mix

Waiting for synced history

Recent weather-ready runs

A cleaner read on your latest enriched efforts

Standout runs

Best, toughest, steepest, and costliest days

History Insights

Patterns across your past runs

Personal Insights

How you perform in different conditions

Athlete Profile

Your current weather and terrain profile

Condition Buckets

How different weather groups stack up

Athlete Baseline

What your own history says about you

Weather Trends

Grade and cost trends across your history

Grade distribution

How often you land in each weather tier

Monthly averages

Weather grade and weather cost by month

Rolling acclimation

Recent 30-day adaptation versus the prior 30 days

Tolerance trend

How your heat and humidity profile is changing

Backfill Queue

Weather enrichment progress

Queue Status

Waiting for sync

Next Up

Pending imported runs

Latest Report

No batch run yet

Recent Activities

Choose a run to analyze

Waiting for sync

Activity Report

Select an activity

Not posted

Pace Comparison

Perfect Weather Pace --
Perfect Pace --

Choose an activity to see the main limiter.

Distance --
Actual Pace --
Elevation Gain --
Weather Grade
--
Weather Score
--
Estimated Time Lost
--

Weather Cost Breakdown

    Conditions

      Weather Timeline

      Comparisons

      Compare this run against similar efforts

      Admin

      Users, subscriptions, and processing readiness

      Users

      All PaceWeather accounts

      Webhook Queue

      Recent Strava event intake

      Strava Summary

      Choose what gets posted

      Strava Connection

      Connect your account

      Connect Strava to import activities and post PaceWeather summaries back to your description.

      Preview

      
                          
      0 lines 0 chars

      Posting Status

      Not posted

      This activity has not been updated from PaceWeather yet.

      Product Goal

      Keep the public Strava description concise when you want, while preserving a deeper weather report inside PaceWeather.

      FAQ

      How PaceWeather calculates each stat

      PaceWeather is meant to be transparent, not mysterious. These metrics are heuristic estimates built from historical weather, terrain context, and simple weighting rules. They are useful for comparing runs and understanding what the day likely cost you, but they are not lab-grade physiology measurements.

      What does timeline stress mean?

      The timeline stress bar is a 0-100 snapshot of how taxing the weather was at that moment. It rises when temperature, dew point, wind, and solar load rise.

      Current formula:

      stress =
      max(0, tempF - 52) * 1.4 +
      max(0, dewPointF - 50) * 2.1 +
      max(0, windMph - 6) * 1.3 +
      solarWm2 / 35
      
      Then clamp to 0-100.

      Dew point has the biggest effect because humid air makes it harder to cool yourself through sweat evaporation.

      How is Weather Grade calculated?

      Weather Grade is a 0-100 composite score showing how favorable the conditions were for endurance performance.

      Weather Grade =
      Temperature score * 30% +
      Dew point score * 35% +
      Wind score * 15% +
      Solar score * 10% +
      Rain score * 10%

      Higher is better. Cool, dry, calm conditions tend to grade highest.

      How is Weather Score calculated?

      Weather Score is a simplified 1-10 label derived from Weather Grade.

      Weather Score = round(Weather Grade / 10)
      Clamp to 1-10

      That score then maps to labels like Perfect, Good, Challenging, or Extreme.

      PaceWeather also pairs each score with a face emoji so the effort reads at a glance, from 😁 in ideal weather down to 😡 in the most punishing conditions.

      This emoji scale is about overall feel. It reflects the 1-10 Weather Score, not the exact number of seconds lost.

      How is Weather Cost calculated?

      Weather Cost estimates seconds per mile lost due to environmental conditions.

      Heat cost = max(0, tempF - 60) * 0.35
      Humidity cost = max(0, dewPointF - 45) * 1.2
      Wind cost = max(0, windMph - 8) * 0.45
      Rain cost = max(0, rainMm - 0.2) * 2.5
      Solar cost = max(0, solarWm2 - 250) / 60
      
      Weather Cost = sum of the above

      Right now this is a rules-based estimate, not a personalized athlete model.

      Weather Cost uses a separate severity emoji scale from Weather Score because it represents pace loss, not overall feel: 🟒 0-5, 🟑 6-15, 🟠 16-30, πŸ”΄ 31-45, and πŸ₯΅ 46+ seconds per mile.

      How are Heat Tolerance and Humidity Tolerance calculated?

      These are early personalized scores built from your own weather-ready history. They are not lab measurements. They simply ask: β€œHow far does your actual pace drift away from your own weather-normalized baseline when conditions turn hot or humid?”

      baseline pace =
      average Perfect Weather Pace from cool/dry runs
      
      If there are not enough cool/dry runs:
      baseline pace =
      average Perfect Weather Pace from all weather-ready runs
      
      tolerance drag =
      average actual pace in hot or humid runs - baseline pace
      
      tolerance score =
      100 - (tolerance drag * 1.3)
      
      Then clamp to 0-100.

      Higher is better. A higher score means your hot or humid runs stay closer to your own weather-normalized baseline. A lower score means your pace fades farther from that baseline in those conditions.

      This is intentionally simple and transparent. It is a first-pass athlete profile, not a finished physiology model.

      The monthly tolerance trend table uses the same score month by month. That makes it useful for spotting direction over time, but it should still be read as a rough training-history signal, not a formal acclimation study.

      The rolling acclimation cards go one step further. They compare the most recent 30-day window in your synced history against the 30 days before that. If the recent window scores higher, PaceWeather marks that as improving acclimation. If it drops, the app flags that your recent heat or humidity readiness may be cooling off.

      How is Terrain Effect calculated?

      Terrain Effect is a separate estimate of how much climbing likely slowed the run. It is not weather. It is meant to show the elevation side of the effort when you want that context in the summary.

      If GAP is available, PaceWeather uses the difference between actual pace and GAP as the terrain effect.

      If GAP exists:
      Terrain Effect = max(0, actual pace - GAP)

      If GAP is not available, PaceWeather falls back to a simple elevation-gain estimate based on feet climbed per mile.

      If GAP is missing:
      gainPerMile = elevationGainFeet / distanceMiles
      Terrain Effect = max(0, gainPerMile - 50) * 0.18

      This fallback is a heuristic, so it should be treated as a directional estimate rather than an exact terrain model.

      What is the difference between Perfect Weather Pace and Perfect Pace?

      PaceWeather now supports two pace views so you can decide whether elevation should be part of the normalization.

      Perfect Weather Pace removes weather impact only. It starts from your actual pace and subtracts Weather Cost.

      Perfect Weather Pace =
      actual pace - Weather Cost

      Perfect Pace removes weather impact and also accounts for terrain by using GAP when available, or by subtracting the estimated Terrain Effect when GAP is missing.

      Perfect Pace =
      GAP - Weather Cost
      
      If GAP is missing:
      Perfect Pace =
      actual pace - Terrain Effect - Weather Cost

      If you want a cleaner answer to β€œwhat would this have looked like in better weather on the same route?”, choose Perfect Weather Pace. If you want a pace that also smooths out elevation impact, choose Perfect Pace.

      PaceWeather marks these pace metrics with 🎯 to show they are target or normalized pace values rather than raw activity pace.

      What is Estimated Time Lost?

      Estimated Time Lost turns per-mile weather cost into total run time.

      Estimated Time Lost =
      distanceMiles * weatherCostSecondsPerMile
      What is the Primary Limiter?

      Primary Limiter is whichever Weather Cost component contributed the most pace loss on that run: heat, humidity, wind, rain, or solar load.

      What do Temp, Hum, Dew Pt, Solar, and Clouds mean?

      Temp: Air temperature near the route.

      Hum: Relative humidity.

      Dew Pt: Dew point temperature, a better proxy for muggy air.

      Solar: Solar radiation in watts per square meter, which acts like sun load.

      Clouds: Cloud cover percentage.

      How does the weather timeline work?

      The timeline samples the run every 30 minutes using archived hourly weather. Between each hour, PaceWeather interpolates the values so half-hour points behave more naturally.

      Timeline coverage uses the longest trustworthy activity duration available: elapsed time first, then stream duration, then moving time.

      Where does the weather data come from?

      PaceWeather currently pulls historical weather from the Open-Meteo Archive API.

      We use Strava to provide the activity start time, timezone, and route coordinates. Then we request archived hourly weather for that location and date range.

      Source: Open-Meteo archive-api.open-meteo.com
      
      Requested hourly fields:
      - temperature_2m
      - relative_humidity_2m
      - dew_point_2m
      - precipitation
      - cloud_cover
      - wind_speed_10m
      - shortwave_radiation

      For the timeline, PaceWeather samples across the activity window and interpolates between hourly weather points so half-hour entries feel smoother than a simple hour-by-hour snap.

      This means the weather is route-area historical weather, not a body-worn sensor or exact microclimate reading at every step.