# Running personal records The dashboard and owner's run page now calculate estimated best efforts for 1 km, 2 km, 5 km, 10 km, half marathon (21,097.5 m), and marathon (42,195 m). These are fastest stretches anywhere within a run, rather than lap times or times projected from average pace. All existing running activities participate. Following [Strava's elapsed-time convention](https://support.strava.com/en-us/articles/15401661-how-do-best-efforts-work-for-running-on-strava), stops inside an effort count. The calculation uses full-resolution FIT cumulative distance and timestamps, with linear interpolation at distance boundaries. Missing distance/time, backwards distance, and non-increasing timestamps split the data. Timestamp gaps count as elapsed time; there is no subtraction for auto-pause. No distance or time is inferred from an activity summary when samples are absent. The dashboard lists current records. Runs earn historical PR badges if they established or strictly improved a record on their activity date; equal times do not earn another badge. Import order does not affect the result. Records and badges are recalculated from history, so older imports and removals are reflected. Comparisons currently appear only in the owner's dashboard and activity page. These are estimates from watch data, not verified race records or an exact clone of Strava's proprietary calculation. GPS/distance spikes or sparse recording can affect results. There is currently no manual effort exclusion or correction UI. The initial implementation computes on page requests without a database migration. For large histories, the next step is to persist per-run efforts at import time with an algorithm version, backfill existing runs, and query those small results. Further additions could include second/third-best medals, annual records, manual exclusion of bad recordings, and a selected-effort highlight on the route map.