STREETS OVER SCREENS.
Lifetime mileage, pace, and consistency — every run from my Garmin.
1110 runs logged between Dec 2017 and Aug 2026 — each one recorded on a Forerunner, distance in miles, pace in min/mile.
Four Watches, 62 Firmware Updates
Every mile above was logged by one of these. Each bar runs from a watch's first activity to the day the next one took over; each tick marks a firmware update.
Trends Over Time
Yearly volume and recent monthly consistency, totaled from every individual Garmin run.
Yearly mileage
* 2026 is still in progress — a partial year.
Recent monthly volume
Updated through Aug 2, 2026
Training Load Balance
My last 7 days of training load against my 28-day average week — the acute:chronic ratio sports scientists watch for injury risk. Roughly 0.8–1.3 is the sweet spot; spikes past 1.5 are where overuse injuries cluster.
load matches recent fitness
As of Aug 2, 2026
The Air I Run In
My Forerunner's temperature reads a 260.6°F (127°C) "no sensor" value on 79% of runs, so I backfilled the real conditions — air, feels-like, humidity, wind, rain — from the Open-Meteo archive at each run's exact place and hour. 1103 runs, true weather.
Median pace by feels-like temperature
Bar length is how many runs fell in each band; the figure is median min/mile. Cool marine air dominates — the fastest band is partly spring fitness and daylight, not temperature alone.
Every Hill Counts
Pace tracks the climbing harder than the weather ever does. Grouped by feet of ascent per mile — flat seawall to steep trail. Lifetime I've climbed 241.2k feet, about 8.3× Everest from the sea.
Median pace by climb per mile
Steepest single run climbed 322 ft per mile. Bar length is how many runs fell in each band.
When I Run
Every start time converted to its own local clock, so a run in Bali and one in San Francisco both read as the hour I actually laced up. I'm an evening runner — evening is the busiest slot, and 84% of runs start in daylight.
Runs by time of day
178 runs started after dark. Bar length is run count; the figure is median min/mile.
The Engine, Measured
VO₂max is the watch's estimate of aerobic horsepower — how much oxygen I can burn at the redline. Since 2023 it's climbed from 56.3 to 59.8, up 3.5 points, peaking at 61. The flip side: on flat runs my heart now does the same miles at fewer beats. Real fitness, not a fluke.
Average VO₂max by year
Only the current watch logs VO₂max, so the trend starts at 2023. Bars are scaled to make the year-to-year gains legible, not from zero.
How Hard I Train
Every run carries a Training Effect score — how much it taxed my aerobic system. The 80/20 rule says keep four runs in five easy. I do the opposite: 71% of my runs land at tempo or harder, only 29% truly easy. Effective, but it leaves little room to recover.
Runs by training-effect band
Median run scores 3.4 of 5. Bar length is the share of runs in each band over 668 scored runs.
The Cadence Lever
Quicken my step rate and the pace follows. Sort every run into quarters by cadence and the median pace slides from 10:10/mi at my slowest turnover (148 spm) to 7:12/mi at my fastest (167 spm) — a clean r = -0.77. Pool all the years together and it hides (stride length wanders season to season), but inside any single year, faster feet mean faster miles, every time.
Median pace by cadence quartile
Over 1081 clean runs (walk-mixed and GPS-mangled paces dropped). Bars scale with speed, so the fastest quartile runs longest.
Shoe Rotation
Lifetime mileage per pair, matched to each run from my Strava gear log.
Miles per pair
The Dead Ends
Not every hunch survived the data. These are the trends I went looking for and didn't find — kept here because a chart that admits what isn't there is more honest than one that pretends everything correlates.
Sleep didn't make me faster
I expected rest to show up in my pace. It just doesn't — the correlation between hours slept and how fast I run is about zero, before I control for anything. Body battery, stress, and resting HR were flat against pace too. Recovery matters; it isn't in the split.
Weather, mostly a non-story
San Francisco's marine air is so even that temperature, humidity, and rain hardly bend my pace. The strongest tie was humidity at just -0.15. Hills matter far more than the sky.
Breathing rate — too little data
Respiration tracked effort as expected, but only 22 runs recorded it. Not enough to trust, so it stays on the bench.