Borg Scale Calculator
Calculate perceived exertion using the Borg RPE or modified CR10 scale.
Intensity
Somewhat hard
Estimated % Max Heart Rate
~91%
Rating
13
Full Scale Reference
| Rating | Intensity | HR Estimate |
|---|---|---|
| 6 | No exertion | ~60% |
| 7 | Extremely light | ~65% |
| 8 | Extremely light | ~70% |
| 9 | Very light | ~75% |
| 10 | Very light | ~80% |
| 11 | Light | ~85% |
| 12 | Light | ~88% |
| 13 | Somewhat hard | ~91% |
| 14 | Somewhat hard | ~93% |
| 15 | Hard | ~95% |
| 16 | Hard | ~96% |
| 17 | Very hard | ~97% |
| 18 | Very hard | ~98% |
| 19 | Extremely hard | ~99% |
| 20 | Maximum effort | ~100% |
About this tool
The Borg Scale Calculator helps you quantify your perception of physical effort during exercise or physical activity. Based on research from Gunnar Borg, this tool converts subjective feelings of exertion into a standardized numerical scale, making it easier to track workout intensity and communicate effort levels with trainers or medical professionals.
To use the calculator, simply select your perceived exertion level using either the standard 6–20 Borg RPE scale or the modified 0–10 CR10 scale. As you move the slider or input a value, the tool displays equivalent descriptions (from very light to maximum effort), helping you understand exactly what each number represents during your training session or rehabilitation.
The Borg Scale is invaluable for athletes monitoring training zones, patients in cardiac or respiratory rehabilitation, and anyone using perceived exertion to guide workout intensity without relying solely on heart rate monitors. Remember that perception of effort is personal and can vary based on fitness level, environmental factors, and fatigue—use it alongside other metrics like heart rate or power output for the most accurate training guidance.
Frequently Asked Questions
Code Implementation
# Borg RPE Scale calculator
BORG_ORIGINAL = {
6: ("No exertion", 60), 7: ("Extremely light", 65), 8: ("Extremely light", 70),
9: ("Very light", 75), 10: ("Very light", 80), 11: ("Light", 85),
12: ("Light", 88), 13: ("Somewhat hard", 91), 14: ("Somewhat hard", 93),
15: ("Hard", 95), 16: ("Hard", 96), 17: ("Very hard", 97),
18: ("Very hard", 98), 19: ("Extremely hard", 99), 20: ("Maximum effort", 100)
}
BORG_CR10 = {
0: ("Nothing at all", 50), 1: ("Very weak", 60), 2: ("Weak", 65),
3: ("Moderate", 70), 4: ("Somewhat strong", 77), 5: ("Strong", 84),
6: ("Strong", 89), 7: ("Very strong", 93), 8: ("Very strong", 96),
9: ("Very strong", 98), 10: ("Maximum effort", 100)
}
def get_borg_info(rating: int, scale: str = "original") -> dict:
"""Get Borg scale information for a given rating"""
table = BORG_ORIGINAL if scale == "original" else BORG_CR10
if rating not in table:
raise ValueError(f"Rating {rating} not valid for {scale} scale")
intensity, hr_pct = table[rating]
return {
"rating": rating,
"scale": scale,
"intensity": intensity,
"hr_percentage": hr_pct,
"estimated_hr": f"~{hr_pct}% max HR"
}
# Monitor heart rate during exercise
def is_moderate_intensity(rating: int, scale: str = "original") -> bool:
"""Check if rating falls in moderate intensity zone"""
if scale == "original":
return 11 <= rating <= 14
return 3 <= rating <= 5
# Usage
info = get_borg_info(13, "original")
print(f"Rating 13: {info['intensity']}, {info['estimated_hr']}")
print(f"Is moderate? {is_moderate_intensity(13)}") # True
Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.