Questions

What permissions do you ask for, and why?

Three scopes. activity:read_all so the webhook fires for every activity including private ones, activity:write so the results can be written back into the description, and read for your basic profile and unit preference. If you decline the write scope everything still runs — you just read the results here instead of on Strava.

Will it overwrite what I write in my descriptions?

No. PeakDew's output sits between two markers. Re-running an activity replaces what is between the markers and leaves the rest untouched. Delete the block by hand and it stays deleted until that activity is edited again.

Where does the weather come from?

Open-Meteo, which serves the ERA5 reanalysis for anything older than about three months and a high-resolution model for recent days. It is the record of what the atmosphere did, not a forecast made beforehand, which is what you want when you are asking why a run felt hard.

How is the adjusted pace calculated?

Three parts. Heat and humidity use a curve over the sum of air temperature and dew point in Fahrenheit, the rule of thumb that matches the marathon-performance-versus-heat literature. Wind uses the energy-balance model: the metabolic cost of running is a baseline plus a term proportional to the square of your speed relative to the air, so the calculation solves for the still-air speed that would have cost the same power. Rain adds a small penalty. The headwind part is computed segment by segment along your GPS track, so an out-and-back mostly cancels itself out and a point-to-point into a gale does not.

It is a model, not a measurement. Treat it as a better comparison than raw pace, not as truth.

Why did a summit near my route not count?

Either it is not tagged in OpenStreetMap, your track passed further away than your match radius (40 m by default — you can raise it in Settings), or your track passed well below the summit's recorded height. That last check is what stops a valley path from claiming the peak above it.

If a summit is genuinely missing, the fix is to add it to OpenStreetMap — everyone using peak data gets it, not just you. Cached tiles refresh every 60 days.

My activity has no map. What happens?

Summit matching needs a GPS track and is skipped. If Strava still exposes a start point the weather analysis runs; if you have hidden your activity maps entirely, neither can run. Hidden start/end zones are fine as long as the run leaves the zone.

How do I stop?

Settings → Disconnect, or revoke PeakDew from your Strava apps page. Either way the tokens are deleted and the webhook stops firing for you.