Training Volume Calculator

Add your sets and see total tonnage, hard-set count, and per-exercise breakdowns. The math is the same lifters use to track progressive overload across weeks and months.

WeightRepsExerciseMuscle
Total tonnage
7,815 lb
Σ (weight × reps)
Hard sets
6
≥ 5 reps
Total sets
6
Avg load
200.38 lb
per rep
By exercise
LabelTonnageSetsHard sets
bench4,440 lb33
squat3,375 lb33
By muscle group
LabelTonnageSetsHard sets
chest4,440 lb33
legs3,375 lb33
How volume is calculated

Tonnage is a raw load metric. Hard-set count, popularised by Brad Schoenfeld and Eric Helms, is a closer predictor of hypertrophic stimulus and is the better number to drive weekly programming.

Tonnage
Σ (weight × reps) across every set
Hard set
reps ≥ 5 AND (no 1RM given OR weight ≥ 65% of 1RM)
Average load
tonnage ÷ total reps

Programming with volume

  • Track week-over-week, not session-by-session — volume oscillates day to day.
  • Use hard sets per muscle as your primary lever. Aim for 10–20 hard sets per major muscle per week as a starting range.
  • Pair tonnage with a 1RM estimate to keep intensity honest.
  • Log every set automatically with the ProLoad app instead of typing them in here.

Use this as an API

Build with the Proload API

POST a list of sets, receive tonnage, hard-set count, and per-exercise/per-muscle breakdowns. 1,000 requests/day free.

POST https://api.proload.online/v1/volume

Frequently asked questions

What counts as a "hard set"?

Schoenfeld and Helms popularised a working definition: a set within ~5 reps of failure performed at a meaningful intensity. We default to ≥ 5 reps and ≥ 65% of 1RM (when you supply a 1RM). Tweak the thresholds if your programming uses different rules.

Is tonnage the best way to measure volume?

No — but it is the simplest, and tracking it over weeks is a useful signal of progressive overload. Hard-set count is generally a better predictor of hypertrophy. Use both.

Can I import a real training week from my app?

The ProLoad app exports CSV and JSON; paste set-level data here, or call the volume API directly from your own scripts.

Does this work for bodyweight or unilateral work?

Yes — enter 0 lb/kg for bodyweight movements; the rep volume still aggregates correctly. For unilateral work, log per-side sets separately.