All projects
Live

TrainingLoad

Evidence-based training load monitoring for endurance athletes

Built in 1 week
Next.jsTypeScriptSports ScienceRechartsData Viz

ACWR, monotony, strain

40+ exercise presets

5-factor readiness

Zero backend

01The Problem

Overtraining is the silent killer of athletic performance. Most athletes either ignore load management entirely or use gut feel. The Acute:Chronic Workload Ratio (ACWR) is a validated sports science metric for injury risk — but no consumer tool made it accessible.

02The Approach

Built a self-contained client-side app that calculates ACWR, monotony, strain, and a daily readiness score from user-entered training data. All data lives in localStorage — no account needed, no data leaves the browser.

03Architecture Decisions

ACWR calculation engine

Acute load = 7-day training load sum. Chronic load = 28-day rolling average. The ratio determines injury risk zones: <0.8 (undertraining), 0.8–1.3 (sweet spot), >1.5 (danger zone). Color-coded gauge shows where the athlete sits.

Multi-factor readiness score

Daily readiness is computed from 5 subjective markers: sleep quality, muscle soreness, stress level, energy, and mood. Each is weighted and combined into a 0–100 score with trend analysis.

40+ exercise presets

Pre-loaded with exercises across lifting, cardio, team sport, and recovery categories. Each preset includes typical HR zone distribution and load calculation multipliers.

04Key Insight

Monotony (the consistency of training load) matters as much as total load. High monotony + high load = strain, and strain is strongly correlated with illness and injury. Adding the monotony calculation turned a simple ACWR tracker into a genuine training health monitor.

05Why It Matters

Demonstrates the ability to translate academic sports science literature directly into working software. The ACWR model is from peer-reviewed research — this project shows I can read a paper and build the tool.