MuscleMap

The Science

Training Stat
Methodologies

MuscleMap uses several advanced, scientifically-backed formulas and models to track a lifter's performance, fatigue, and progression. Below is a detailed breakdown of the exact methodologies used across the codebase.

1

1 Rep Max (1RM) Estimation

MuscleMap estimates your 1 Rep Max dynamically as you log sets to gauge your absolute strength without requiring dangerous 1RM tests.

Formula

It uses the Epley Formula: Estimated 1RM = Weight * (1 + Reps/30)

Bodyweight Factoring

For bodyweight exercises, the system intelligently adds a percentage of your logged body weight to the external load:

  • Pull-ups / Chin-ups: 100% Bodyweight
  • Dips: 95% Bodyweight
  • Squats: 75% Bodyweight
  • Push-ups: 65% Bodyweight
2

INOL (Intensity Number of Lifts)

INOL is tracked for every logged set (excluding warm-ups) to measure the neurological and muscular toll of the volume relative to your max strength.

Intensity Calculation

Intensity = (Weight / 1RM) * 100 (capped at 99% to ensure mathematical stability).

INOL Formula

INOL = Reps / (100 - Intensity)

Purpose

By tracking INOL over time, users can identify whether their training is progressively overloading, stagnating, or pushing into territory that risks CNS fatigue, accumulated junk volume, and diminishing returns. INOL is a reliable early warning system for both undertraining and overtraining.

Here is how to read the INOL graph:

3

Acute:Chronic Workload Ratio (ACWR)

To monitor training volume over time and prevent overtraining (or under-training), MuscleMap tracks your Volume Load (Tonnage) using an Exponentially Weighted Moving Average (EWMA).

Volume Load (Daily Load)

Calculated as Weight * Reps across all working sets in a day.

Acute Load (7 Days)

Represents the short-term fatigue or recent workload.

Chronic Load (28 Days)

Represents long-term fitness or historical capacity.

Ratio & Interpretation

ACWR = Acute Load / Chronic Load

A ratio spiking too high indicates a sharp increase in volume (injury risk), while a ratio dropping too low indicates detraining.

EWMA Formula

(Lambda * TodayLoad) + ((1 - Lambda) * YesterdayAvg)

Lambda (Acute) = 2 / (7 + 1)

Lambda (Chronic) = 2 / (28 + 1)

4

Muscle Fatigue & Recovery Modeling

MuscleMap powers its 3D interactive heatmap by maintaining real-time fatigue values (from 0.0 to 1.0) for every individual muscle group.

Activation Profiles

Every exercise has an activation profile (e.g., Bench Press gives 1.0 to Chest, 0.7 to Front Delts, 0.6 to Triceps). The app sums these values for all completed sets in a workout.

Intensity Clamping

A single workout's total fatigue applied to a muscle is clamped at 1.0 (100% fatigue). This prevents edge cases where 10 sets of an exercise result in an unrealistic 1000% fatigue.

Linear Decay Model

Fatigue dissipates over the muscle's specific recovery window (usually 4 days default).

Decay Factor = 1.0 - (Hours Since Workout / (Recovery Days * 24))

The recorded fatigue is multiplied by this decay factor constantly to give the live, current-hour fatigue percentage shown on the 3D model.

5

Double Progression Automation

For users who select the "Double Progression" mode, the app automates the progressive overload logic when pre-filling sets for a new workout based on history.

Logic

It looks at a user-defined Rep Ceiling (e.g., 10 reps) and Load Increment (e.g., 5 lbs).

Execution

If you hit the rep ceiling in your last workout, the app automatically increases your target weight for today by the increment, and drops your target reps down to the floor (ceiling - 2).

If you didn't hit the ceiling, it simply challenges you to do Previous Reps + 1 at the same weight.