One-Rep Max
Know Your Strength.
Don’t risk injury maxing out every week. Input your best lift weight and reps to safely estimate your true 1RM. This is essential for properly programming your strength training percentages.
One-Rep Max (1RM) Calculator
Estimate your max lift and training percentages without maxing out.
Most accurate at 1-10 reps. Above 10-12 reps, strength estimates get unreliable.
Disclaimer: This tool is for informational purposes only and is not a substitute for professional medical advice, diagnosis, or treatment.
Estimated One-Rep Max
Average of the Epley and Brzycki formulas.
| % of 1RM | Weight | Typical Use |
|---|
let currentUnit = 'lbs';
const PCT_ROWS = [ [95, '1-2 reps — near-max strength work'], [90, '3-4 reps — heavy strength work'], [85, '5-6 reps — strength/power'], [80, '6-8 reps — strength-hypertrophy'], [75, '8-10 reps — hypertrophy'], [70, '10-12 reps — hypertrophy'], [65, '12-15 reps — endurance/technique'], [60, '15+ reps — warm-up / technique'] ];
function setUnit(unit) { currentUnit = unit; const btns = document.querySelectorAll('.toggle-btn'); btns.forEach(btn => btn.classList.remove('active')); if (unit === 'lbs') { btns[0].classList.add('active'); document.getElementById('weightLabel').innerText = 'Weight Lifted (lbs)'; document.getElementById('weight').placeholder = 'e.g. 185'; } else { btns[1].classList.add('active'); document.getElementById('weightLabel').innerText = 'Weight Lifted (kg)'; document.getElementById('weight').placeholder = 'e.g. 85'; } }
function calculateORM() { let weight = parseFloat(document.getElementById('weight').value); let reps = parseInt(document.getElementById('reps').value);
if (!weight || !reps || reps < 1) { alert('Please enter the weight lifted and reps performed.'); return; } let orm; if (reps === 1) { orm = weight; } else { // Epley formula let epley = weight * (1 + reps / 30); // Brzycki formula let brzycki = weight * (36 / (37 - reps)); orm = (epley + brzycki) / 2; } orm = Math.round(orm); document.getElementById('ormResult').innerText = orm; document.getElementById('ormUnit').innerText = currentUnit; let rowsHtml = ''; PCT_ROWS.forEach(([pct, use]) => { let w = Math.round(orm * pct / 100); rowsHtml += '
'; }); document.getElementById('pctBody').innerHTML = rowsHtml;
document.getElementById('results').style.display = 'block'; }
let currentUnit = 'lbs';
const PCT_ROWS = [ [95, '1-2 reps — near-max strength work'], [90, '3-4 reps — heavy strength work'], [85, '5-6 reps — strength/power'], [80, '6-8 reps — strength-hypertrophy'], [75, '8-10 reps — hypertrophy'], [70, '10-12 reps — hypertrophy'], [65, '12-15 reps — endurance/technique'], [60, '15+ reps — warm-up / technique'] ];
function setUnit(unit) { currentUnit = unit; const btns = document.querySelectorAll('.toggle-btn'); btns.forEach(btn => btn.classList.remove('active')); if (unit === 'lbs') { btns[0].classList.add('active'); document.getElementById('weightLabel').innerText = 'Weight Lifted (lbs)'; document.getElementById('weight').placeholder = 'e.g. 185'; } else { btns[1].classList.add('active'); document.getElementById('weightLabel').innerText = 'Weight Lifted (kg)'; document.getElementById('weight').placeholder = 'e.g. 85'; } }
function calculateORM() { let weight = parseFloat(document.getElementById('weight').value); let reps = parseInt(document.getElementById('reps').value);
if (!weight || !reps || reps < 1) { alert('Please enter the weight lifted and reps performed.'); return; } let orm; if (reps === 1) { orm = weight; } else { // Epley formula let epley = weight * (1 + reps / 30); // Brzycki formula let brzycki = weight * (36 / (37 - reps)); orm = (epley + brzycki) / 2; } orm = Math.round(orm); document.getElementById('ormResult').innerText = orm; document.getElementById('ormUnit').innerText = currentUnit; let rowsHtml = ''; PCT_ROWS.forEach(([pct, use]) => { let w = Math.round(orm * pct / 100); rowsHtml += '
'; }); document.getElementById('pctBody').innerHTML = rowsHtml;
document.getElementById('results').style.display = 'block'; }