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.
  1. Click Analytics in the sidebar to see how your roster is doing.
  2. Select a client in the Client Roster to scope every tab to that client.
  3. Open the Goals tab to see each active goal and how far along it is.
  4. 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

  1. Select the client in the top selector.
  2. Click Record New Measurement in the header.
  3. 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.
  4. Fill in what you measured (you can leave fields blank — the chart skips nulls).
  5. 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 accepts clientId for trainers), GET /api/analytics/training-load, GET /api/analytics/goals.
Was this article helpful?