Skip to content
🛠️ToolsShed

Sunscreen Calculator

Calculate how much sunscreen you need based on body area and reapplication schedule.

64.5

Total Area (dm²)

12.90 mL

Per Application

2.58 tsp

Per Application (tsp)

64.5 mL

Daily Total

How It's Calculated

The recommended amount is based on 2 mg of sunscreen per cm² of skin.

Multiply the per-application amount by the number of daily applications to get the total daily amount needed.

About this tool

Sunscreen is one of the most effective defenses against skin damage and cancer risk, yet most people apply far too little to get proper protection. This calculator helps you determine exactly how much sunscreen you need based on your body surface area and desired level of coverage. By using the universal standard of 2 milligrams per square centimeter (the amount used in clinical sunscreen testing), you can confidently protect your skin from harmful UV rays.

To use this tool, enter your height and weight so the calculator can estimate your body surface area using medical formulas. Then select your reapplication frequency—whether you plan to reapply every 2 hours, after swimming, or after exercise. The tool instantly shows you the exact grams of sunscreen needed for full-body coverage and per-reapplication amounts, taking the guesswork out of sun protection.

Understanding your sunscreen needs is crucial because underapplication is the leading reason sun protection fails. This calculator helps you avoid the common mistake of using only a quarter or half of the recommended amount. Whether you're planning a beach day, outdoor hiking, or daily UV protection, knowing the precise quantity needed ensures you're getting the protection that clinical studies prove effective.

Frequently Asked Questions

Code Implementation

# Sunscreen amount calculator based on 2mg/cm² rule

BODY_AREAS = {
    "face_neck":    600,   # cm²
    "chest":        900,
    "back":         900,
    "left_arm":     800,
    "right_arm":    800,
    "left_leg":    1450,
    "right_leg":   1450,
    "left_foot":    175,
    "right_foot":   175,
}

RECOMMENDATION_MG_PER_CM2 = 2.0  # WHO / dermatology standard

def calculate_sunscreen(selected_areas: list[str], reapply_every_hours: float = 2,
                         sun_hours: float = 4) -> dict:
    total_area = sum(BODY_AREAS[a] for a in selected_areas if a in BODY_AREAS)
    per_application_mg = total_area * RECOMMENDATION_MG_PER_CM2
    per_application_ml = per_application_mg / 1000  # convert mg to g ≈ ml

    applications = 1 + int(sun_hours / reapply_every_hours) if reapply_every_hours > 0 else 1
    total_ml = per_application_ml * applications

    return {
        "area_cm2": total_area,
        "per_application_ml": round(per_application_ml, 1),
        "applications": applications,
        "total_ml": round(total_ml, 1),
    }

result = calculate_sunscreen(
    selected_areas=["face_neck", "chest", "left_arm", "right_arm"],
    reapply_every_hours=2,
    sun_hours=6,
)
print(f"Per application: {result['per_application_ml']} ml")
print(f"Applications needed: {result['applications']}")
print(f"Total needed: {result['total_ml']} ml")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.