Skip to content

Fitness Tools | Estimating Rep Maximums

Different repetition ranges produce different training adaptations. Broadly:

  • Endurance: 10–15 reps
  • Hypertrophy (muscle growth): 8–12 reps
  • Strength: ≤ 6 reps
  • Power: 1–6 reps

As goals shift over time, lifters need a way to quickly translate a known working weight into the right weight for a new rep target. RM_Estimator does this translation using a validated percentage-of-1RM table.

RM_Estimator takes three positional arguments:

  1. Current weight — the load you’re currently lifting, ending in .0 or .5
  2. Current reps — reps you can complete with that weight
  3. Desired reps — the rep target you want to train for

Say you can lift 175 lbs for 10 reps and want to shift toward strength by training at 6 reps.

>>> from fitness_tools.exercise.rm_estimator import RM_Estimator
>>> new_reps = RM_Estimator(175.0, 10, 6)
>>> new_reps.estimate_weight()
197.5

By this calculation you should be able to lift 197.5 lbs for approximately 6 reps.

estimate_weight() rounds to the nearest 2.5 lbs by default. Pass a different base to change rounding — useful for kilogram plates or gyms with coarser weight increments.

>>> new_reps = RM_Estimator(175.0, 10, 6)
>>> new_reps.estimate_weight(base=5)
200.0

To estimate your one-rep maximum (instead of converting between rep ranges), use a working set of 5 reps or fewer for best accuracy:

>>> one_rm = RM_Estimator(225.0, 3, 1)
>>> one_rm.estimate_weight()
240.0

Percentages of 1RM from this table are accurate to within ±0.5% to 2%, depending on training status.

For the full rep-percentage table see the Rep Max skill reference.