Skip to content
🛠️ToolsShed

Borg Scale Calculator

Calculate perceived exertion using the Borg RPE or modified CR10 scale.

620

Intensity

Somewhat hard

Estimated % Max Heart Rate

~91%

Rating

13

Full Scale Reference

RatingIntensityHR Estimate
6No exertion~60%
7Extremely light~65%
8Extremely light~70%
9Very light~75%
10Very light~80%
11Light~85%
12Light~88%
13Somewhat hard~91%
14Somewhat hard~93%
15Hard~95%
16Hard~96%
17Very hard~97%
18Very hard~98%
19Extremely hard~99%
20Maximum 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.