Mile32 is a native iOS training dashboard for serious runners. Sync your runs from Apple Health, visualise your fitness load, track your recovery, and build towards your A-race — no account, no analytics, your training and health data stay on your device.
Real screenshots from a real training block. Race names and dates are blurred for privacy.
A plan from your starting long run, peak-week target and race date. Phases are assigned automatically. Reschedule at any time — completed weeks are kept.
Plan your distance progression and track it against what you actually ran. The Bulk Plan Editor updates every upcoming week in one screen. Completed runs leave the plan on their own.
Fitness, Fatigue and Form on a 90-day chart. The Fitness tile colours by whether you are building, holding or fading; Form says whether you are ready to race.
Finish times from marathon to 150+ km, using your recent runs, logged results (Riegel), an imported GPX course and race-day conditions. Add a run/walk strategy to model your execution plan.
Draws on fitness, form, HRV trend, long-run consistency and race proximity. Five labels from Base Building to Race Ready, with a per-component breakdown.
Three separate channels: how hard your heart worked, the pounding your legs took, and the braking load of descents. Each measured against your own recent normal — no population thresholds, no risk labels, no blended score.
Flags dips in your resting heart rate and HRV trends, so you can back off before a hard block becomes a problem.
Live queries for resting heart rate, HRV, sleep, active calories, wrist temperature and weight. No export needed.
Log every race, upcoming or completed. The Race Day Card lays out your checkpoint plan with target times, ETAs and cut-offs.
A race-week checklist in four phases — 2 Weeks Out, Race Week, Day Before, Race Morning. Items surface at the right time, with a status on the Overview tab.
Weekly and yearly distance targets, with a monthly view derived from the weekly one. Each shows distance achieved against target.
Full run history, filterable by All, Runs or Walks, with an adjustable minimum distance and a configurable number of results.
Personal bests across 25 distance categories, plus auto-detected milestones in eight: Distance, Vertical, Volume, Training, Endurance, Consistency, Conditions and Progress.
A pre-race kit checklist in collapsible sections. Export it in the app's dark style, ready to screenshot before race morning.
Five Home Screen widgets — Distance, Elevation, a combined Training widget, a Volume Heatmap and your last run's route. Two Lock Screen widgets: Fitness alone, or Fitness, Fatigue and Form together.
Long-press a run to build a card. Three styles, three crops, an optional background photo, and your GPS route traced on top. Share it, or save it to your camera roll.
Import a race's GPX for grade-adjusted checkpoint splits, aid-station markers and a cut-off time-bank — so your plan reflects the course, not just the distance.
Adjusts your predicted finish for race-morning heat or cold, allowing for the heat acclimatisation you have built in training.
Fills in temperature and conditions for past runs, and tracks the range of weather you have actually trained in.
Import your pre-plan Apple Health history, so your fitness baseline stands on more than a few weeks.
Capture how a run felt — gut, legs, low point, and what you took on — so you learn your own patterns before race day rather than during it.
Finish times, bib numbers and medal photos kept alongside each completed race.
Track injection timing against your training load. A niche need, kept out of the way for everyone else.
Five screens: features, your race details, HR zones (with a Tanaka max-HR suggestion from your age), training targets and HealthKit permissions.
No account, no analytics, no servers holding your data. It stays on your device; the only network calls are anonymous weather lookups.
Mile32's Fitness number reads higher than Strava's or TrainingPeaks' for the same training, often by a lot. Different formula, not inflation.
Fitness, Fatigue and Form use the Banister TRIMP model — heart-rate impulse, exponentially weighted. TrainingPeaks' CTL uses TSS, a pace- or power-based scale that reads 1.5–2× lower. Neither is right; they measure different things.
What Mile32 will not do with the number matters more: turn it into a verdict. No safe zone, no injury-risk score, no blend of heart, legs and descent into one traffic light. Those averages come from team-sport cohorts and say little about a training log of one. You get where today sits against your own history, and the reading is yours.
Long-press any run row in the Run History list (Runs tab).
From there you can pick:
For Apple Watch runs the route comes from HealthKit, drawn in green with start and finish markers. Tap Share… for the iOS share sheet, or Save to Photos for full resolution.
Two ways:
Bulk Plan Editor — the ⋯ menu on the Training tab, then Edit Plan…. A scrollable table of upcoming weeks, with target distances and phase labels (Re-entry, Build, Build+, Recovery, Peak, Taper, RACE, Injury) editable inline. Save commits everything at once; Cancel discards. Only future, uncompleted weeks appear.
Per-week — tap any week row in the Plan view.
From Apple Health. Apple Watch activities are already there — open Mile32 and they appear, with distance, pace, heart rate, elevation and GPS route.
Any app that writes running workouts to Apple Health syncs too, Garmin Connect, Strava and Runkeeper among them. Set how far back to import in Settings → Apple Health Sync.
Read-only access to:
All of it is queried on-device and none of it leaves your iPhone. Revoke at any time in Settings → Privacy & Security → Health → Mile32.
The Karvonen heart rate reserve method, which accounts for your resting HR. Set your max and resting HR in Settings → HR Zones. Defaults, all adjustable:
Shown as a bar on Overview and broken down on Training. Changing the boundaries applies retroactively to every synced run.
The three numbers behind the Fitness Load chart:
All three update daily, plotted over 90 days on the Training tab.
Walks and hikes count fully towards Training Load and time on feet, but not towards running distance, pace, zone or personal-best stats — a walk is not a run, whatever its load.
A pace filter catches slow activities HealthKit has not already tagged: slower than 9:00/km is treated as a walk. Mark a session as deliberate run/walk practice and it is exempt, blended pace included.
Excluded activities still appear in your run list. They just do not feed the Fitness Load chart, zone distribution or weekly volume.
Home Screen — long-press an empty area, tap +, search for Mile32. Five are available: Distance and Elevation (small/medium), a combined Training widget and a Volume Heatmap (large), and your last run's route.
Lock Screen — long-press the lock screen, tap Customise, then a widget area. Two are available: Fitness alone, or Fitness, Fatigue and Form together.
Set your weekly targets and long run day in Settings → Training Targets to keep them current.
Partially. The fitness load charts, long run planner, goals, race diary and kit checklist all work without one, and any app that writes running workouts to Apple Health will sync.
The Health tab (resting HR, HRV, sleep, wrist temperature, weight) needs an Apple Watch to have recorded those metrics. Without them each chart shows an empty state prompting you to check your Apple Health permissions.
Settings → Data → Clear All Data permanently deletes every synced run, long run plan and app setting from your device.
Deleting the app removes all local data too. HealthKit data lives independently in Apple Health and is unaffected by either.
Mile32 reads from Apple Health (heart rate, HRV, sleep, active energy, weight, wrist temperature, and GPS routes) to power its training intelligence. This data never leaves your device. You can revoke access at any time in Settings → Privacy & Security → Health → Mile32.
The only network requests Mile32 makes are weather lookups. To show the conditions you ran in, and to forecast your race-day weather, Mile32 sends an approximate location — a run's GPS start point rounded to about 1 km, or your race postcode — to Apple Weather (race-day forecasts and severe-weather alerts near your race), Open-Meteo (historical conditions) and postcodes.io (UK postcode lookup). No name, account, identifier, or health data is ever sent, and no location history is stored remotely.
All stored data is removed when you use Settings → Data → Clear All Data, or when the app is deleted.
Questions? support@mile32.app · Last updated August 2026.
When reporting a bug, it helps to include your iOS version, iPhone model, and a description of what you expected vs what happened. Screenshots are always welcome.
Feature requests are very welcome — Mile32 is actively developed and the roadmap is shaped by runner feedback.