Michael Martyn
Garmin · per run

STREETS OVER SCREENS.

Every run recorded on my Garmin, summarised by mileage, pace and consistency

I logged 1133 runs between Dec 2017 and Oct 2026. A Forerunner recorded each one, with distance in miles and pace in min/mile

As of 24 Oct 2026 Fresh

Lifetime miles 5617 1133 runs recorded
Avg pace 8:27 min/mile lifetime
Longest run 16.3 miles · 5.0 mi avg
Peak VO₂ max 61 estimated, ml·kg⁻¹·min⁻¹
The hardware behind the data

Four Watches, 62 Firmware Updates

One of these watches logged every mile above. Each bar runs from the first activity on a watch to the day the next watch replaced it. Each tick marks a firmware update

2018 2019 2020 2021 2022 2023 2024 2025 2026
VĂ­voactive 3 Where it started
Dec 2017 Dec 2019 19 updates · v2.70 → v7.20
VĂ­voactive 4 Large The everyday watch
Dec 2019 Jun 2021 14 updates · v3.50 → v5.80
Forerunner 945 LTE The current running watch
Jun 2021 Now 18 updates · v2.03 → v17.40
Apple Watch Series 8 The Apple year
Sep 2022 Sep 2023 11 updates · v9.0 → v9.6.1

Trends Over Time

Yearly volume and recent monthly consistency, totalled from every individual Garmin run

Yearly mileage

2018 513 mi Top shoe Nike Air Zoom Pegasus 35
2019 646 mi Top shoe Nike Air Zoom Pegasus 35
2020 665 mi Top shoe Skechers GOrun MaxRoad 3 Ultra
2021 527 mi Top shoe Nike zoomx invincible run flyknit
2022 466 mi Top shoe Nike Invincible Run blu
2023 388 mi Top shoe ASICS nv blst 3 (red)
2024 722 mi Top shoe ASICS Novablast 3 (white and blue)
2025 1036 mi Top shoe ASICS SB2 blk
2026* 646 mi Top shoe Nike VP

* 2026 is a partial year, still in progress

Best year
2025 · 1036 mi
Best month
May 2025 · 124.5 mi
Last 12 months
828 mi

Recent monthly volume

Oct 2026 so far
2.2 mi
Sep 2026
80.4 mi
Aug 2026
76.8 mi
Jul 2026
70.0 mi
Jun 2026
44.6 mi
May 2026
44.2 mi

Updated through 24 Oct 2026

Every Day, Every Year

Each square is one day, with Monday on the top row. The colour gets stronger as the miles go up. Tap or hover on a square to see the date and the distance

Miles per day

2026 646 mi 111 runs
2025 1036 mi 165 runs
2024 722 mi 138 runs
2023 388 mi 90 runs
2022 466 mi 101 runs
2021 527 mi 112 runs
2020 665 mi 147 runs
2019 646 mi 116 runs
2018 513 mi 149 runs

Tap a square to see its date and miles

Showing Up

Each ring shows the share of weeks in a year with at least one run. A week goes from Monday to Sunday. For this year, the ring counts only the weeks to date

Weeks with a run, by year

87%
2018
87%
2019
96%
2020
79%
2021
87%
2022
77%
2023
96%
2024
96%
2025
91%
2026

Tiles Claimed

Squares on the Capture the Tile board that my runs claimed each month, for the last 24 months. A square counts each time one of my runs takes it

Play the board

Tiles claimed by month

Jan '25 Apr '25 Jul '25 Oct '25 Jan '26 Apr '26 Jul '26 Oct '26
Oct 2026
0 tiles
from 0 of 1 runs
Sep 2026
220 tiles
from 10 of 12 runs
Aug 2026
313 tiles
from 11 of 11 runs
Jul 2026
275 tiles
from 14 of 16 runs
Jun 2026
171 tiles
from 9 of 10 runs
May 2026
124 tiles
from 5 of 10 runs

Training Load Balance

My training load for the last 7 days, compared with my average week over 28 days. This is the acute:chronic ratio that sports scientists use to monitor injury risk. A ratio of about 0.8 to 1.3 is the safe range. Overuse injuries tend to cluster above 1.5

0.63 Detraining

load is going down, with room to build

38 acute · 7-day load 60 chronic · avg week

As of 24 Oct 2026

If I Raced Tomorrow

I take my fastest run of 3 miles or more from the last 8 weeks. The Riegel formula scales its time to each race distance, T2 = T1 × (D2 / D1)1.06. The formula assumes that I train for the distance, so the longer the race, the more optimistic the time

5 km
21:07
6:48 per mile
10 km
44:02
7:05 per mile
Half marathon
1:37:09
7:25 per mile
Marathon
3:22:33
7:44 per mile

Reference run on 20 Sep 2026. 11.0 mi in 1:20:59, at 7:20 per mile

What Made The Fast Races

A race is a run at 5k, 10k or half marathon distance under 6:00, 6:20 or 7:29 per mile, with no similar effort at that distance in the six weeks either side. Training efforts repeat within weeks. Races do not. I checked the list by hand and corrected two. That gives 10 races. The Riegel formula puts each one on a 10k scale, so a 5k and a half marathon sit on one axis. Then I look at the training in the 12 months before each race, with the final 16 weeks as the build

Race pace over the years

5:30 6:00 6:30 7:00 7:30 2018 2020 2022 2024 2026 5k, 16 Mar 2019, 18:02 at 5:36 5k, 12 Apr 2020, 18:23 at 5:50 10k, 22 Apr 2018, 36:37 at 5:59 10k, 14 Apr 2019, 38:33 at 6:19 10k, 6 Feb 2022, 39:57 at 6:24 10k, 1 Feb 2026, 36:49 at 5:54 Half, 29 Jul 2018, 1:22:46 at 6:19 Half, 28 Jul 2019, 1:28:45 at 6:44 Half, 19 Sep 2021, 1:33:59 at 7:04 Half, 1 Mar 2026, 1:21:22 at 6:11

Minutes per mile. Lower is faster

Miles per week, final 16 weeks

36:00 37:00 38:00 39:00 40:00 41:00 42:00 0 10 20 30 5k Mar 2019, 15.4, 10k equivalent 36:15 10k Feb 2026, 23.2, 10k equivalent 36:40 Half Mar 2026, 21.6, 10k equivalent 36:47 10k Apr 2018, 5.4, 10k equivalent 37:10 Half Jul 2018, 18.6, 10k equivalent 37:29 5k Apr 2020, 15.5, 10k equivalent 37:46 10k Apr 2019, 18.4, 10k equivalent 39:17 10k Feb 2022, 12.6, 10k equivalent 39:48 Half Jul 2019, 11.9, 10k equivalent 40:02 Half Sep 2021, 18.9, 10k equivalent 41:57

Rank correlation -0.22. Lower on the chart is faster

Share of miles under 7:00, final 16 weeks

36:00 37:00 38:00 39:00 40:00 41:00 42:00 0% 20% 40% 60% 80% 5k Mar 2019, 16%, 10k equivalent 36:15 10k Feb 2026, 24%, 10k equivalent 36:40 Half Mar 2026, 18%, 10k equivalent 36:47 10k Apr 2018, 48%, 10k equivalent 37:10 Half Jul 2018, 61%, 10k equivalent 37:29 5k Apr 2020, 0%, 10k equivalent 37:46 10k Apr 2019, 14%, 10k equivalent 39:17 10k Feb 2022, 0%, 10k equivalent 39:48 Half Jul 2019, 11%, 10k equivalent 40:02 Half Sep 2021, 0%, 10k equivalent 41:57

Rank correlation -0.67. Lower on the chart is faster

Fastest 5 against slowest 5

Training, medianFastest 5Slowest 5
Miles per week, final 16 weeks1916
Fast miles share, final 16 weeks24%0%
Runs of 10+ miles, final 16 weeks63
Miles in the year before701597
Fast miles share, whole year44%10%
Feet climbed per mile, months 4 to 12 out4344
Miles per week, final 3 weeks1815

The 10 races, fastest first

RaceTimePace10k equivYear milesMi/wk final 16Fast miles final 1610+ mi runs final 16
5k, 16 Mar 2019 18:02 5:36 36:15 701 15.4 16% 3
10k, 1 Feb 2026 36:49 5:54 36:40 1080 23.2 24% 14
Half, 1 Mar 2026 1:21:22 6:11 36:47 1059 21.6 18% 12
10k, 22 Apr 2018 36:37 5:59 37:10 94 5.4 48% 1
Half, 29 Jul 2018 1:22:46 6:19 37:29 377 18.6 61% 6
5k, 12 Apr 2020 18:23 5:50 37:46 593 15.5 0% 5
10k, 14 Apr 2019 38:33 6:19 39:17 726 18.4 14% 3
10k, 6 Feb 2022 39:57 6:24 39:48 597 12.6 0% 1
Half, 28 Jul 2019 1:28:45 6:44 40:02 615 11.9 11% 2
Half, 19 Sep 2021 1:33:59 7:04 41:57 557 18.9 0% 5

The fastest 5 ran 24% of their final 16 weeks under 7:00 per mile. The slowest 5 ran 0%. Weekly mileage in that build was 19 against 16. Fast miles are miles run under 7:00 per mile. Run days are counted rather than runs, because 2018 track sessions logged each rep as its own activity. The 10k Apr 2018 race has only 18 weeks of data before it. The Half Jul 2018 race has only 32 weeks of data before it. 10 races is a small sample, so read this as a pattern and not a proof

The Air I Run In

On 80% of runs, my Forerunner records 260.6°F (127°C), which is its "no sensor" value. So I filled in the real conditions (air, feels-like, humidity, wind and rain) from the Open-Meteo archive. I used the exact place and hour of each run. That gives the true weather for 1128 runs

Typical feels-like
55°F
13°C
Typical humidity
76%
Coldest · warmest
22° / 105°F
-6° / 41°C
Runs in the rain
58

Median pace by feels-like temperature

Under 45°F< 7°C 8:18155 runs
45 to 55°F7 to 13°C 8:19414 runs
55 to 65°F13 to 18°Cfastest 8:05429 runs
65 to 75°F18 to 24°C 8:05100 runs
75°F+24°C+ 8:3130 runs

Bar length shows how many runs fell in each band. The figure is the median pace in min/mile. Most runs are in cool marine air. The fastest band may partly reflect spring fitness and daylight, not temperature alone

50°F / 10°C typical dew point AQI 41 median air over 580 runs · 9 smoky 60% of point-to-point runs into a headwind

Every Hill Counts

Pace follows the climb more closely than it follows the weather. I group runs by feet of ascent per mile, from the flat seawall to steep trail. In total I have climbed 245.9k feet, about 8.5× the height of Everest from sea level

Median pace by climb per mile

Flat<25 ft/mifastest 7:54283 runs
Rolling25 to 60 8:09628 runs
Hilly60 to 120 8:49136 runs
Steep120+ 10:2551 runs

The steepest run climbed 322 ft per mile. Bar length shows how many runs fell in each band

Feet climbed through the year

10k 20k 30k 40k Jan Apr Jul Oct Dec Everest 29,032 ft 2018, 22.9k ft 2019, 37.8k ft 2020, 31.5k ft 2021, 22.3k ft 2022, 19.7k ft 2023, 17.3k ft 2024, 34.3k ft 2025, 38.3k ft 2026, 21.7k ft

Each line starts at zero on 1 January and climbs with every run. The mountain on the right is Everest from sea level, drawn to the same scale. 2025 was the biggest year at 38.3k feet

When I Run

I convert every start time to its local clock. So a run in Bali and a run in San Francisco both show the hour that I actually started. My busiest slot is evening. 84% of runs start in daylight

Runs by time of day

Dawn5 to 9 AMfastest 7:5470 runs
Morning9 AM to 12 PM 8:15202 runs
Midday12 to 4 PM 8:58120 runs
Evening4 to 8 PM 8:05639 runs
Night8 PM+ 8:3891 runs

Dawn is the quickest slot because every race starts between 5 and 9 AM. 178 runs started after dark. Bar length shows the run count. The figure is the median pace in min/mile

The Engine, Measured

VO₂max is the estimate from my watch of my aerobic capacity, that is, how much oxygen I can use at maximum effort. Since 2023 it has climbed from 56.3 to 59.9, up 3.6 points, with a peak of 61. Also, on flat runs my heart now covers the same miles with fewer beats. This is consistent with a real gain in fitness, not chance

Average VO₂max by year

2023 56.353 runs
2024 56.2121 runs
2025 58.2139 runs
2026peak 59.988 runs

Only the current watch logs VO₂max, so the trend starts at 2023. The bars do not start from zero, so that the gains from year to year are easy to see

How Hard I Train

Every run has a Training Effect score. It measures how much load the run put on my aerobic system. The 80/20 rule says that four runs in five should be easy. I do the opposite. 72% of my runs are at tempo or harder, and only 29% are truly easy. It is effective, but it leaves little time to recover

Runs by training-effect band

Easyrecovery 5%33 runs
Aerobic basesteady 24%166 runs
Tempocomfortably hardmost 52%356 runs
Hardthreshold+ 20%136 runs

The median run scores 3.4 of 5. Bar length shows the share of runs in each band, over 691 scored runs

The Cadence Lever

When my step rate goes up, my pace gets faster. I sort every run into quarters by cadence. The median pace goes from 10:08/mi at my slowest cadence (148 spm) to 7:12/mi at my fastest (167 spm). The correlation is r = -0.77. If I pool all the years together, the pattern disappears, because stride length changes from season to season. But inside each single year, a faster cadence goes with a faster pace every time

Median pace by cadence quartile

122 to 154 spmavg 148 10:08276 runs
154 to 158 spmavg 157 8:28276 runs
158 to 162 spmavg 160 7:57276 runs
162 to 188 spmavg 167fastest 7:12276 runs

This uses 1104 clean runs. I removed runs that include walking and runs with bad GPS paces. Bars scale with speed, so the fastest quartile has the longest bar

Shoe Rotation

Lifetime mileage per pair, matched to each run from my Strava gear log

Miles per pair

1 Nike Air Zoom Pegasus 35 633mi 125 runs Daily trainer 260g 28mm stack 10mm drop
2 ASICS Novablast 3 (white and blue) 403mi 74 runs Daily trainer 255g 41.5mm stack 8mm drop
3 ASICS SB2 blk 401mi 60 runs Super trainer 249g 45mm stack 8mm drop
4 ASICS NvB 5 390mi 68 runs Daily trainer 255g 41.5mm stack 8mm drop
5 Skechers GOrun MaxRoad 3 Ultra 349mi 67 runs Max cushion 224g 26mm stack 4mm drop
6 ASICS nv blst 3 (red) 323mi 68 runs Daily trainer 255g 41.5mm stack 8mm drop
7 Nike zoomx invincible run flyknit 278mi 63 runs Max cushion 305g 37mm stack 9mm drop
8 Adidas Prime X 275mi 36 runs Max stack (non-legal) 257g 50mm stack 8.5mm drop
9 Nike Invincible Run blu 244mi 53 runs Max cushion 305g 37mm stack 9mm drop
10 Nike Streak LT 3 223mi 87 runs Racing flat 150g 22mm stack 4mm drop
11 ASICS Novablast 2 222mi 38 runs Daily trainer 275g 30mm stack 8mm drop
12 Nike Pegasus 36 213mi 50 runs Daily trainer 252g 26mm stack 10mm drop
13 Nike VP 202mi 38 runs Daily trainer 306g 46mm stack 10mm drop
14 Adidas EvoSL blk 189mi 34 runs Super trainer 224g 39mm stack 6mm drop
15 HOKA Rincon 175mi 40 runs Lightweight trainer 218g 32mm stack 5mm drop
16 Nike Pegasus Trail 4 119mi 34 runs Trail 272g 36mm stack 9.5mm drop
17 New Balance Supercomp Trainer 113mi 22 runs Super trainer 296g 47mm stack 8mm drop
18 Saucony ES 4 111mi 19 runs Super trainer 233g 36mm stack 8mm drop
19 Adidas Adizero Sub2 103mi 22 runs Racing flat 155g 21mm stack 6mm drop
20 Nike Pegs 37 101mi 27 runs Daily trainer 264g 28mm stack 10mm drop
21 Nike Free RN Flyknit 99mi 20 runs Natural / flexible 184g 24mm stack 8mm drop
22 Adidas PrimeX GRN 70mi 8 runs Max stack (non-legal) 306g 50mm stack 6.5mm drop
23 Nike Vaporfly Flyknit 4% 66mi 12 runs Carbon racer 195g 31mm stack 10mm drop
24 New Balance Fresh Foam More V3 50mi 13 runs Max cushion 306g 38mm stack 4mm drop
25 Nike Pegasus Turbo 2 45mi 7 runs Lightweight trainer 220g 28mm stack 10mm drop
26 Nike Vaporfly Next% 2 39mi 8 runs Carbon racer 195g 40mm stack 8mm drop
27 Reebok Floatride Run Fast Pro 34mi 7 runs Racing flat 100g 20mm stack 3mm drop
28 Nike AF 4 21mi 3 runs
29 Nike AlphaFLY 18mi 3 runs Carbon racer 210g 40mm stack 4mm drop
30 Nike wildhorse 5 17mi 3 runs Trail 289g 28mm stack 10mm drop
31 Nike Streak LT 4 16mi 3 runs Racing flat 180g 22mm stack 4mm drop

The Dead Ends

The data did not support every idea I had. These are the trends that I looked for and did not find. I keep them here because it is more honest to show what the data does not support

Ruled out

Sleep didn't make me faster

I expected rest to show up in my pace. It does not. Before I control for anything, the correlation between hours slept and how fast I run is about zero. Body battery, stress and resting HR also show no link to pace. Recovery matters, but it does not show in my pace

Ruled out

Weather has little effect

The marine air in San Francisco is very even. So temperature, humidity and rain change my pace very little. The strongest link was humidity, at only -0.15. Hills matter much more than the weather

Ruled out

Breathing rate has too little data

Respiration followed effort as expected, but only 22 runs recorded it. That is not enough data to trust, so I do not use it

How The Data Gets Here

One monthly command pulls the exports from the watch and the apps into Postgres. The pages and the API read from there

Animated diagram of the dashboards pipeline, from the Garmin, Strava and Aranet exports to the pages and the API
How the data flows, from the exports to the database, the dashboards and the API