Reading Client Analytics
Body measurements, training load, goals, performance, and how to record on a client's behalf.
trainer guide/analytics
What this is for: Use the Analytics dashboard to spot adherence trends and overtraining risk.
What you can see
/analytics is the trainer-side analytics dashboard. The header has:
- Export CSV (all tiers) — raw measurement export.
- Export Excel (Enterprise only).
- Generate Report → ReportModal (PDF). See Generating PDF Reports.
- Record New Measurement — only enabled when you've selected a specific client.
- Click Analytics in the sidebar to see how your roster is doing.
- Select a client in the Client Roster to scope every tab to that client.
- Open the Goals tab to see each active goal and how far along it is.
- Open Charts & Trends to see weight and body measurements over time.
Below the header are the tabs:
- Overview
- Performance
- Training Load
- Goals
- Charts & Trends
- History
Tier gate
Analytics is Pro+ only. Starter trainers see a AnalyticsLockedView with an upgrade CTA.
Trainer flow
When no client is selected, the Overview tab shows the TrainerAnalyticsDashboard — roster aggregates (total workouts this month, average adherence, etc.).
When you select a client (top-of-page selector), all tabs re-scope to that client's data:
Overview
- Recent measurement summary
- Active goals progress
- Recent workout adherence
Performance
- Workout volume over time
- PR list (lifts that hit a new max)
- Adherence % per program
Training Load
- ACWR (Acute:Chronic Workload Ratio) — orange when > 1.5 (overtraining risk).
- Weekly load chart with rolling averages.
- A green band shows the "sweet spot" (0.8 - 1.3).
Goals
- List of active goals with progress %.
- Add Goal modal lets you (or the client) create a new goal.
- Use this to set 6-week or 12-week targets.
Charts & Trends
- Weight, body-fat %, muscle mass over time.
- Toggle which measurement to show.
History
- Full table of every measurement with edit/delete (trainer-edited measurements are flagged).
Recording a measurement on behalf of a client
- Select the client in the top selector.
- Click Record New Measurement in the header.
- MeasurementTracker modal opens with fields: weight, body fat %, muscle mass, chest, waist, hips, neck, shoulders, biceps L/R, thighs L/R, calves L/R, notes, measurement date.
- Fill in what you measured (you can leave fields blank — the chart skips nulls).
- Save. The entry is recorded under the client's ID.
Why this matters: until 2026-04-20, this was buggy and saved measurements under the trainer's ID instead. Now it correctly attributes to the selected client.
ACWR (Acute:Chronic Workload Ratio)
- Acute = 7-day rolling load.
- Chronic = 28-day rolling load.
- ACWR = Acute / Chronic.
- Green band: 0.8 - 1.3 (sustainable training).
- Yellow: 1.3 - 1.5 (caution).
- Red: > 1.5 (overtraining risk — consider a deload).
The Training Load tab visualizes this with the rolling-average chart.
Common pitfalls
Where to find this
- Page:
/analytics. - Components:
MeasurementTracker,ReportModal,TrainerAnalyticsDashboard,GoalsTab,ACWRChart. - APIs:
POST /api/analytics/measurements(now acceptsclientIdfor trainers),GET /api/analytics/training-load,GET /api/analytics/goals.
Was this article helpful?
