{{ summaryTitle }}
{{ summaryValue }}

{{ summaryLine }}

Sets {{ resultsReady ? formatNumber(computation.values.total_sets, 1) : '—' }} Reps {{ resultsReady ? formatNumber(computation.values.total_reps, 0) : '—' }} Leading group {{ resultsReady ? leadingGroupLabel : '—' }}

{{ primaryCopyAnnouncement }}

Workout log and volume assumptions
Paste a single workout log or load one local CSV, TSV, or TXT file up to 256 KB.
{{ sourceStatusLine }}
Choose the unit used by the load column; results and exports follow the same display unit.
Changing this unit converts the displayed quantity; it does not reinterpret the same digits.
Use the group table as a planning comparison, not an individualized prescription.
Accepted range: 1 to 14 repeats of this session each week.
sessions/week
Use values such as bw, bw*0.64, bw+10, or assisted 20 to make assumptions explicit.
Use 0 when missing duration data should not contribute to the density estimate.
sec/set
Rows without RPE use 7; entered RPE values outside 1 to 10 are reported and bounded.
RPE
The neutral default keeps exact values before normal display precision is applied.
Source order is neutral; alternate views only reorder supporting artifacts.
{{ briefExportStatus }}
Session brief
{{ row.label }}{{ row.display }}
Calculation method:
Source loads and body weight are normalized to kilograms before row volume is calculated.
row volume = sets × reps × (external load + bodyweight-equivalent load)
Review before comparing sessions:
  • {{ message }}
Group comparison
  • {{ row.group }}: {{ row.status }} · {{ formatNumber(row.weeklyHardSets, 1) }} weekly hard sets. {{ row.note }}

Bodyweight factors and focus ranges are planning heuristics. Compare similar sessions with consistent technique, units, RPE practice, and bodyweight assumptions.

{{ chartExportStatus }}

The chart renderer is unavailable. The same values remain available in the exercise ledger.

Exercise-level workout volume ledger
MovementGroupSetsReps/setLoad/repVolumeShareRPELoad basisCopy
{{ row.movement }}{{ row.group }}{{ formatNumber(row.sets, 1) }}{{ formatNumber(row.reps, 1) }}{{ formatLoadKg(row.equivalentLoadKg) }}{{ formatVolumeKg(row.volumeKg) }}{{ formatNumber(row.sharePercent, 1) }}%{{ formatNumber(row.rpe, 1) }}{{ row.loadBasis }}
{{ exerciseExportStatus }}

Two workouts can contain the same number of sets and still place very different demands on the body. Six repetitions with a heavy barbell, fifteen push-ups, and a timed plank do not become comparable until the repetitions, resistance, and work time are recorded consistently.

Volume-load, often called tonnage, is the sum of repetitions multiplied by the resistance assigned to each repetition. It is useful for comparing similar resistance-training sessions, following how one exercise contributes to a workout, and spotting large changes in workload. It is not a direct measurement of muscle growth, fatigue, calories, or recovery.

Volume-load
Sets multiplied by repetitions and equivalent load, then added across the session. The result retains the load unit, such as kilograms.
Hard set
A set whose rating of perceived exertion (RPE) meets a chosen cutoff. It is a planning label, not a physiological measurement.
Density
Volume-load divided by recorded work time in minutes. Rest periods are excluded unless they are included in the supplied seconds-per-set values.

Bodyweight movements need an explicit resistance assumption. A pull-up may reasonably use full body weight, while only part of body weight is supported during a push-up or inverted row. Added weight and assistance change that estimate again. Comparisons become misleading when one session counts bodyweight resistance and another records those rows as zero load.

Weekly set counts answer a different question from tonnage. Repeating one session can project how many sets for each muscle group meet an RPE cutoff, but a projected range cannot account for exercise selection, technique, proximity to failure, training age, injury history, sleep, or recovery. Keep the same units, bodyweight assumptions, RPE practice, and timing method when comparing sessions.

Workout volume is an informational training log, not an individualized exercise prescription or medical assessment. Pain, unusual symptoms, or decisions about training around an injury should be discussed with an appropriately qualified professional.

How to Use This Tool:

Use one row per movement and make the load basis explicit before comparing sessions.

  1. Paste Workout rows with movement, group, sets, reps, load, load mode, seconds per set, and RPE. CSV, TSV, pipe-delimited, and the older five-column row shape are accepted.
  2. Choose the Workout load unit and enter Body weight. Write bodyweight loads as values such as bw, bw*0.64, bw+10, or assisted 20 when the default movement estimate is not appropriate.
  3. Select the Training focus, Weekly frequency, and Hard-set threshold. These settings change only the projected group comparison; they do not change session tonnage.
  4. Set Default seconds per set for rows without a duration. Use 0 when missing duration should contribute no time and treat the resulting zero density as unavailable rather than as exceptional performance.
  5. Read Session brief first, then check warnings and compare the movement and group rows. Fix rejected rows or unintended bodyweight assumptions before using the totals.

Interpreting Results:

Session tonnage is most useful against a previous session built from comparable exercises and recording rules. A higher number can come from more sets, more repetitions, more load, or a changed bodyweight factor; it does not by itself mean the session was better.

  • Density rises when the same volume is completed in less recorded work time. It does not include unrecorded rest and should not be compared across different timing methods.
  • Bodyweight share and external share explain where the counted resistance came from. Review the load basis when either share looks unexpected.
  • Below range, In range, and Above range compare projected hard sets with the selected planning range. They are not personalized targets.
  • No hard-set signal means no row in that group reached the chosen RPE threshold, not that the group received no training.

Technical Details:

Volume-load assigns one equivalent resistance to every repetition in a row. External load is converted to kilograms before calculation. Bodyweight load is added only when the row or selected handling mode identifies a bodyweight movement.

Formula Core:

For row i, sets and repetitions per set determine total repetitions. Equivalent load combines counted external resistance with the bodyweight contribution.

Vi = si×ri×Li Vsession = i=1nVi D = VsessionTseconds/60

s is sets, r is repetitions per set, L is equivalent load in kilograms, V is volume-load in kilograms, and D is density in kilograms per minute. Density is 0 when total recorded work time is 0.

A row with 4 sets of 6 repetitions at 95 kg contributes 2,280 kg. If the session records 600 seconds of work and totals 9,500 kg, density is 950 kg per minute. Full precision is retained in kilograms; the selected display rounding changes presentation only.

Bodyweight Rule Core:

An explicit factor or percentage takes precedence over the movement-name estimate. Added weight increases equivalent load, while assistance reduces the bodyweight contribution but never below zero.

Default bodyweight factors used for recognized movements
Movement family Bodyweight factor Examples
Push-up0.64Push-up, press-up
Full bodyweight1.00Pull-up, chin-up, dip, muscle-up
Inverted row0.45Inverted or Australian row
Single-leg0.65Split squat, lunge, step-up, pistol squat
Squat0.88Squat, air squat, wall sit
Bridge0.42Bridge, hip thrust, glute bridge
Core0.30Plank, hollow hold, dead bug, sit-up, crunch

These factors are planning heuristics. Marked bodyweight rows uses explicit bodyweight tokens or modes. Likely zero-load bodyweight rows may also apply a recognized movement factor to an empty or zero load. External load only disables bodyweight estimates.

Hard-Set Rule Core:

A row contributes all its sets when its RPE is greater than or equal to the selected threshold; otherwise it contributes zero hard sets. Missing RPE defaults to 7. Values outside 1 to 10 are reported and bounded to that range.

Hg=f ig siI(RPEih)

H is projected weekly hard sets for group g, f is weekly frequency, h is the RPE threshold, and I contributes 1 when the condition is true and 0 otherwise.

Planning ranges for projected weekly hard sets
Training focusLower boundUpper bound
Strength612
Hypertrophy1020
Conditioning circuit824
Maintenance410

Both endpoints count as In range. An explicit group name is preserved; otherwise common movement names are mapped to a group and unmatched rows use General. A run accepts up to 500 valid rows and 256 KB of text.

Accuracy and Privacy Notes:

Workout text and files are processed in the browser. No workout log is sent to a server by this calculation.

  • Pounds are converted with 1 lb = 0.45359237 kg. Changing the display unit converts the same physical quantity rather than reinterpreting the entered digits.
  • Sets must be greater than 0 and no more than 100 per row; repetitions must be greater than 0 and no more than 1,000.
  • Bodyweight factors, muscle-group inference, and weekly focus ranges are explicit heuristics. Override them when they do not represent the movement or training plan.
  • Keep personally identifying notes out of workout rows before sharing copied or downloaded results.

Worked Examples:

Assisted pull-ups recorded consistently

For an 80 kg athlete, assisted 20 assigns 60 kg to each pull-up repetition when the workout load unit is kilograms. Four sets of six contribute 1,440 kg. Recording the same exercise as zero external load under External load only contributes no tonnage, which is why the load basis must stay consistent between sessions.

References: