Data-driven race predictions, fatigue modeling, TRIMP, custom metrics, and more.
Mileage EMAs & rate of change
Race time predictor
TRIMP & fatigue model
CTL/ATL/TSB fitness
Custom metric formulas
Peregrine
—
Overview
Your dashboard
Unit
Window
Total Distance
—mi
— runs
Total Time
—
hours on feet
Est. VO2 Max
—ml/kg/min
Based on best effort
Customize Dashboard
Current panels — drag to reorder
Add a panel
Add a custom metric panel
Mileage & EMAs
Weekly totals with exponential moving averages
Unit
Window
Raw display
EMA Periods (weeks)
Weekly Mileage + EMA Curves
Scroll to zoom, drag to pan
scroll zoom · drag pan
Rate of Change
Week-over-week mileage delta with smoothing
Unit
Window
Mode
Smoothing EMA (weeks)
Mileage Rate of Change
Positive = building, negative = deload
scroll zoom
Acute:Chronic Workload Ratio (ACWR)
4-week acute vs 12-week chronic — injury risk indicator
■ 0.8–1.3 optimal ■ 1.3–1.5 caution ■ >1.5 high risk
Pace Analysis
Speed, pace trends, and efficiency
Unit
Window
EMA Smoothing (weeks)
Average Pace per Run
Lower = faster. Scroll to zoom.
Pace vs Distance
Do longer runs affect pace?
Pace Distribution
Histogram of run paces
Heart Rate
Cardiovascular load and aerobic efficiency
Window
EMA Smoothing (weeks)
Average Heart Rate per Run
Downward trend = improving aerobic base
scroll zoom
HR vs Pace (Efficiency)
Lower-left = most efficient
HR Zone Distribution
Based on % HRmax
Age
VO2 Max Estimates
Daniels VDOT formula — per-run, HR-adjusted when available
Window
EMA Smoothing (weeks)
VO2max Trend
Color = fitness category
scroll zoom
VO2max by Distance
Longer efforts = more reliable
Fitness Category Gauge
ACSM population norms
—
—
Race Predictor
Ensemble of 4 equivalency models (Daniels, Riegel ×2, Cameron) + Peregrine — all scoped to the lookback window
Unit
Based on
Lookback window
Loading reference effort and running model ensemble…
Predicted Pace by Distance
Box = Q1–Q3 across 5 models, whiskers = min/max, bar = median
Predicted Finish Time by Distance
Box = Q1–Q3 across 5 models, whiskers = min/max, bar = median
Marathon Readiness
Multi-factor scoring based on your recent training
Assessment window
—/100
Fatigue & Training Load
TRIMP, CTL/ATL/TSB fitness model, training velocity
Window
Your Age (for HRmax)
Fitness (CTL)
—
Chronic Training Load
Fatigue (ATL)
—
Acute Training Load
Form (TSB)
—
Training Stress Balance
CTL (42-day EMA of daily TRIMP) = aerobic fitness base ·
ATL (7-day EMA) = current fatigue ·
TSB = CTL − ATL (positive = fresh, negative = fatigued)
Fitness / Fatigue / Form (PMC)
Performance Management Chart — CTL, ATL, TSB over time
Daily TRIMP
Training Impulse = duration × HR intensity factor
Training Velocity
7-day vs 28-day mileage slope (are you building or tapering?)
TRIMP = moving_time_min × (0.64 × e^(1.92 × HRratio)) where HRratio = (HR_avg − HR_rest) / (HR_max − HR_rest). When HR is unavailable, estimated from pace effort.
Training Velocity = slope of a linear regression on the last N days of mileage.
Custom Metrics
Build your own formulas from any Strava field, track them over time with EMAs
Create a Custom Metric
Metric Name
Formula (JavaScript expression — use variable names below)
Unit label
Available variables (per run): distance_mdistance_kmdistance_mimoving_timeelapsed_timepace_sec_kmpace_sec_mihr_avghr_maxcadence_spmelevation_mvo2max_estsuffer_scoreaverage_speedmax_speed Math functions:Math.sqrt(x)Math.log(x)Math.pow(x,n)Math.abs(x)Math.min(a,b)Math.max(a,b) Example formulas: distance_km * hr_avg / moving_time — load density distance_mi / (moving_time / 3600) — mph speed elevation_m / distance_km — grade per km hr_avg / (pace_sec_mi / 60) — cardiac cost per min/mi vo2max_est * distance_mi — aerobic power score