How Scoring Works

Your SummitScore is a number from 1 to 100 that reflects how well you performed on a hike relative to its difficulty. This page is the complete reference for every formula and calculation the app uses.

1. Your Summit Score (0-100)

Your SummitScore is a single number that captures the full picture of a hike: how demanding the trail was, how fast you moved, how efficiently your body worked, and how well you held up from start to finish.

The score is built from four weighted components, each scored 0-100 independently, then combined:

Effective Demandx 35%
+
Executionx 30%
+
Efficiencyx 20%
+
Resiliencex 15%

The final score is always clamped between 1 and 100, rounded to one decimal place.

What does a high score mean? It means you tackled a demanding hike, moved efficiently, kept your heart rate under control, and maintained your pace from start to finish. A high score is harder to get on an easy trail -- the algorithm rewards you more for performing well on challenging terrain.

2. The Four Components

Effective Demand 35% of score

This measures how hard the hike itself was -- not how you performed, but what the trail demanded from anyone who did it. A steep 14er in a snowstorm scores higher here than a flat nature trail on a sunny day.

How the base demand is calculated

The base demand is a blend of GPS-measured difficulty and AI-estimated difficulty. The blend depends on whether GPS stream data is available:

With GPS streams (most Strava imports)60% GPS + 40% AI
Without GPS streams (manual hikes)100% AI
// With GPS data:
baseDemand = (gpsDemand x 0.60) + (aiDemand x 0.40)

// Without GPS data:
baseDemand = aiDemand

After calculating the base demand, the conditions modifier is applied (see Section 4). This can boost the demand by up to 15% if weather or trail conditions made the hike harder.

effectiveDemand = baseDemand x conditionsModifier
// Result clamped to 1-100
Example: A Strava hike with GPS demand of 65 and AI difficulty of 58, on a wet trail in 22 degree weather.
Base demand = (65 x 0.60) + (58 x 0.40) = 39 + 23.2 = 62.2
Conditions modifier = 1.0 + 0.015 (cold) + 0.04 (wet) = 1.055
Effective Demand = 62.2 x 1.055 = 65.6
Execution 30% of score

This measures how much ground you covered per hour, accounting for both horizontal distance and elevation gain. It rewards faster, more productive movement.

The formula

Elevation gain is converted into equivalent distance: every 500 feet of climbing counts as 1 extra mile of output. Then your output per hour determines the score.

output = miles + (elevationGainFeet / 500)
outputRate = output / movingTimeHours
executionScore = outputRate x 25
// Result clamped to 1-100

What typical scores look like

Slow pace (1.5 output/hr) -- heavy terrain, many breaks38
Average pace (2.5 output/hr) -- typical day hiker63
Fast pace (3.5 output/hr) -- fit, experienced hiker88
Trail runner (4.0 output/hr)100
Example: 8 miles, 2,000 ft gain, 4 hours moving time
Output = 8 + (2,000 / 500) = 12
Output rate = 12 / 4 = 3.0
Execution = 3.0 x 25 = 75

If moving time is zero or missing, Execution defaults to 50.

Efficiency 20% of score

This measures how much output you got for the effort your body put in. If two hikers cover the same ground at the same speed, but one does it at 140 bpm and the other at 170 bpm, the first hiker was more efficient and scores higher.

The formula

Your raw Execution score is divided by the percentage of your max heart rate that you used. A lower heart rate for the same output means better efficiency.

maxHR = 220 - age // or 190 if age not set
hrPercent = avgHeartRate / maxHR // floored at 0.40
efficiencyScore = (executionRaw / hrPercent) x 0.75
// Result clamped to 1-100

Note: The formula uses the raw Execution score before the performance ceiling is applied. The HR percentage has a floor of 0.40 to prevent extreme values from very low heart rates.

What typical scores look like

High output, low HR (very fit) -- 85 execution at 65% max HR98
Normal output, moderate HR -- 65 execution at 75% max HR65
Hard trail, high HR -- 48 execution at 78% max HR46
Low output, high HR (struggling) -- 40 execution at 85% max HR35
Example: Age 30, avg HR 148, raw execution score 75
Max HR = 220 - 30 = 190
HR % = 148 / 190 = 0.779
Efficiency = (75 / 0.779) x 0.75 = 72.2

If no heart rate data is available (no HR monitor connected), Efficiency defaults to 60 -- a neutral score. Heart rate values below 60 bpm are treated as invalid and also default to 60.

Resilience 15% of score

This measures how well you held up over the course of the hike. Did you slow down significantly in the second half? Did your heart rate spike even though the terrain got easier? Resilience catches that.

How it works

Your hike is split into four equal segments (quartiles) by distance. For each segment, SummitScore calculates the average pace (seconds per meter), average heart rate, and average grade. Then it compares the first quarter to the last quarter, adjusting for terrain changes.

The score starts at 80 ("good") and adjusts from there based on three checks:

A. Pace fade (Q1 vs Q4)

If you slowed down at the end, the algorithm checks whether the terrain explains it. For every 1% increase in average grade from Q1 to Q4, an 8% pace slowdown is expected and not penalized. Only unexplained fade counts.

paceFade = (Q4pace - Q1pace) / Q1pace
expectedFade = (Q4grade - Q1grade) x 0.08
unexplainedFade = paceFade - expectedFade
Unexplained slowing down-40 points per 100% fade
Unexplained speeding up (negative fade)+15 points per 100% speedup
Example: You slowed 25% from Q1 to Q4, but the grade increased 1% (expecting 8% slowdown).
Unexplained fade = 0.25 - 0.08 = 0.17 (17%)
Penalty = 0.17 x 40 = -6.8 points

B. Heart rate drift (Q1 vs Q4)

Same concept. If your heart rate climbed, the algorithm checks if steeper terrain explains it. A 5% HR increase is expected per 1% grade increase. Only unexplained drift is penalized.

hrDrift = (Q4hr - Q1hr) / Q1hr
expectedHrChange = (Q4grade - Q1grade) x 0.05
unexplainedDrift = hrDrift - expectedHrChange
Unexplained HR drift-30 points per 100% drift

Only positive unexplained drift is penalized. If your HR dropped or the terrain fully explains the increase, there is no penalty. Requires valid HR data (above 60 bpm) in both Q1 and Q4.

C. Pacing consistency (all four quarters)

The coefficient of variation (CV) measures how consistent your pace was across all four quarters. CV is the standard deviation divided by the mean -- a lower number means steadier pacing.

CV = stdDev(Q1, Q2, Q3, Q4 paces) / mean(Q1, Q2, Q3, Q4 paces)
CV at or below 0.15no penalty
CV above 0.15-30 per unit above 0.15
Example: CV = 0.25 (fairly variable pacing).
Penalty = (0.25 - 0.15) x 30 = -3 points

Requires at least 3 valid quartile paces for the CV check, and at least 20 data points overall. If no GPS stream data is available, Resilience defaults to 70.

3. Performance Ceiling

Your Execution and Efficiency scores are capped based on how hard the trail was. This prevents easy hikes from yielding unrealistically high scores -- you can't earn a 95 Execution on a flat 2-mile loop, no matter how fast you walk it.

performanceCeiling = min(100, effectiveDemand + 25)
execution = min(executionRaw, performanceCeiling)
efficiency = min(efficiencyRaw, performanceCeiling)

How the cap plays out

Easy trail (demand 25)Execution/Efficiency capped at 50
Moderate trail (demand 45)Capped at 70
Hard trail (demand 65)Capped at 90
Very hard trail (demand 75+)Capped at 100 (no limit)

Resilience is not subject to the performance ceiling. The ceiling only applies to Execution and Efficiency.

4. Conditions Modifier

The conditions modifier is a multiplier applied to the base demand score. It starts at 1.0 (no adjustment) and increases when weather or trail conditions made the hike harder. The maximum is 1.15 (+15% boost).

Multiple conditions stack together, but the total is capped at 1.15. All weather data comes from Open-Meteo, matched to the hours you were actually on the trail.

Temperature

Only extreme temperatures trigger a modifier. Normal hiking weather (25-95 degrees F) has no effect.

// Cold (below 25 degrees F):
modifier += (25 - temp) / 200

// Hot (above 95 degrees F):
modifier += (temp - 95) / 200
25 degrees F (threshold)+0.0%
10 degrees F+7.5%
-5 degrees F+15%
95 degrees F (threshold)+0.0%
110 degrees F+7.5%
125 degrees F+15%

Precipitation

Only significant precipitation counts. Trace amounts (under 0.1 inches) are ignored.

// Only when precipitation > 0.1 inches:
modifier += min((precip - 0.1) x 0.04, 0.10)
0.1 inches or less (trace)+0.0%
0.5 inches+1.6%
1.0 inches+3.6%
2.6+ inches (cap)+10.0%

Wind

Only strong winds matter. Anything under 20 mph has no effect.

// Only when wind > 20 mph:
modifier += (wind - 20) / 200
20 mph (threshold)+0.0%
35 mph+7.5%
50 mph+15%

Severe weather codes

Specific weather conditions detected during the hike add a fixed bonus:

Foggy+2%
Snow+4%
Heavy rain+5%
Snow showers+5%
Thunderstorm+8%
Heavy snow+8%
Thunderstorm with hail+12%

The most severe weather code during the hike window is used. Clear sky, partly cloudy, overcast, drizzle, rain, and rain showers have no modifier.

Trail surface

Selected when logging the hike (from the questionnaire):

Dry / normal / well-maintained+0%
Wet or muddy+4%
Overgrown / unmaintained+5%
Snow or ice+8%

Pack weight

Pack weight uses continuous scaling when you enter a specific weight in pounds. A typical daypack (10 lbs or less) has no effect. Above 10 lbs, each additional pound adds 0.2% to the modifier, up to a cap of +10%.

// When packWeightLbs > 10:
modifier += min((packWeightLbs - 10) x 0.002, 0.10)
10 lbs or under (daypack baseline)+0%
15 lbs+1%
20 lbs+2%
30 lbs+4%
40 lbs+6%
50 lbs+8%
60+ lbs (cap)+10%

For older hikes that used the category picker instead of exact weight, the legacy values apply: "20-35 lbs" = +4%, "35+ lbs" = +8%.

Remember: All conditions stack, but the total modifier is capped at 1.15 (+15%). Even the worst combination of conditions cannot boost demand more than 15%.

5. Trail Difficulty Rating

Every trail gets a difficulty score from 1 to 100. This represents the trail itself -- it stays the same no matter who hikes it or when. It feeds into the AI portion of Effective Demand.

How it works

SummitScore searches the web for trail information (using Brave Search for up to 20 results from AllTrails, hiking forums, and topographic sources), then sends everything to Claude AI. Claude evaluates six factors and assigns a single difficulty number, calibrated against a set of real anchor trails.

Scoring factors

Distance -- total round-trip mileskey factor
Elevation gain -- total uphill feetkey factor
Terrain -- paved < dirt < rocky < Class 2 < Class 3 < Class 4major factor
Exposure -- none < ledges < sustained cliffs < life-threatening fallsmajor factor
Altitude -- no effect under 8,000 ft; significant above 13,000 ftmoderate factor
Navigation -- well-marked < occasionally unclear < route-findingminor factor

Anchor trails (calibration reference)

The AI is given these real trails as fixed reference points so scores stay consistent:

ScoreTrailStats
8Easy paved nature loop1-2 mi, flat
20Typical "easy" AllTrails trail3-4 mi, 400-600 ft gain
35Typical "moderate" AllTrails trail5-7 mi, 800-1,200 ft gain
45Blood Mountain, GA6.1 mi, 1,700 ft gain
52Brasstown Bald via Jack's Gap, GA6-7 mi, 1,800 ft gain, steep switchbacks
62Mount LeConte via Alum Cave, TN11 mi, 2,800 ft gain
72Half Dome with cables, CA16 mi, 4,800 ft gain, cable ladder
80Mount Whitney Main Trail, CA22 mi, 6,100 ft gain, 14,505 ft altitude
88Longs Peak Keyhole Route, CO15 mi, 5,100 ft gain, Class 3, 14,259 ft
95Capitol Peak, CO17 mi, 5,200 ft gain, Class 4 knife-edge, 14,130 ft

Partial hikes

If you only hiked part of a trail (your Strava distance is shorter than the full trail), the AI scores the portion you actually hiked using your actual distance and elevation, but still references the trail's terrain, exposure, and altitude from web search data.

6. GPS Demand Calculation

When GPS stream data is available, SummitScore calculates its own difficulty rating from the raw data. This uses square-root scaling so that gains diminish -- going from 2 to 10 miles matters more than going from 30 to 38 miles.

The four components

// 1. Distance (square-root scaled)
distComponent = sqrt(miles) x 8.0

// 2. Elevation (square-root scaled)
elevComponent = sqrt(elevationGainFeet) x 0.8

// 3. Steep grade bonus (% of segments steeper than 15%)
steepBonus = steepPercent x 0.3

// 4. Altitude bonus (only above 8,000 ft)
altBonus = (maxAltitudeFt - 8000) / 500

gpsDemand = distComponent + elevComponent + steepBonus + altBonus
// Result clamped to 1-100

Distance component examples

4 milessqrt(4) x 8 = 16
10 milessqrt(10) x 8 = 25
20 milessqrt(20) x 8 = 36

Elevation component examples

1,000 ft gainsqrt(1000) x 0.8 = 25
3,000 ft gainsqrt(3000) x 0.8 = 44
5,000 ft gainsqrt(5000) x 0.8 = 57

Steep grade bonus examples

10% of trail segments steeper than 15% grade10 x 0.3 = +3 pts
20% of trail segments steeper than 15% grade20 x 0.3 = +6 pts
40% of trail segments steeper than 15% grade40 x 0.3 = +12 pts

Altitude bonus examples

Below 8,000 ftNo bonus
10,000 ft (e.g., typical CO trailhead)(10000 - 8000) / 500 = +4 pts
12,000 ft(12000 - 8000) / 500 = +8 pts
14,000 ft (fourteener)(14000 - 8000) / 500 = +12 pts
Full example: 10 miles, 3,000 ft gain, 20% steep sections, max altitude 12,000 ft
Distance: sqrt(10) x 8 = 25.3
Elevation: sqrt(3000) x 0.8 = 43.8
Steep: 20 x 0.3 = 6.0
Altitude: (12000 - 8000) / 500 = 8.0
GPS Demand = 25.3 + 43.8 + 6.0 + 8.0 = 83.1

"Steep" is defined as any GPS segment with a grade above 15% (in either direction -- both steep uphills and downhills count). Altitude is read from the GPS elevation stream and converted from meters to feet.

7. Score Predictions

On the Predict tab, you can get a predicted SummitScore for any trail before you hike it. Predictions are generated by AI (Claude) based on your personal hike history and the trail's difficulty.

What the prediction considers

The AI receives the following about you:

Total number of hikes loggedcontext
Average score, min/max score rangecontext
Average score by difficulty tier (easy/moderate/hard/very hard)context
Past prediction accuracy (if any predictions have been resolved)context
Trail difficulty score and AI summarytrail info
Pack weight (if specified)trail info

Difficulty tiers for history analysis

EasyDifficulty 0-30
ModerateDifficulty 31-55
HardDifficulty 56-75
Very HardDifficulty 76+

Confidence levels

The maximum confidence the prediction can have is capped by how many hikes you have logged:

No hikes loggedmax 30% confidence
1-3 hikesmax 50% confidence
4-9 hikesmax 70% confidence
10+ hikesmax 85% confidence

Confidence is also adjusted downward if the target trail's difficulty is very different from what you've hiked before, or if a heavy pack adds unusual load. The predicted score is always between 1 and 100.

8. Weather Data

Weather conditions are fetched automatically from Open-Meteo for every hike. Weather affects your score through the conditions modifier (see Section 4) and is also displayed on your hike detail page for context.

Location resolution

The system uses the most precise location available, in this order:

1. GPS coordinates from Strava (latitude/longitude)most precise
2. Geocoding from the location namefallback

Time window matching

SummitScore tries to get weather for the exact hours you were on the trail. If that fails, it uses a series of fallbacks:

1. Exact hike hours (from Strava start time + duration)preferred
2. Daytime hours (8am-6pm)fallback
3. Midday hours (11am-2pm)last resort
4. Manual hikes without a start timedefaults to 10am-1pm

Data source and fallbacks

The system tries the archive API first (best for hikes more than a week old). If that returns no data, it falls back to the forecast API (covers the last 7 days plus future forecasts).

What is collected

MeasurementAggregation
TemperatureAverage across hike hours
Feels-like temperatureAverage
HumidityAverage
Dew pointAverage
Cloud coverAverage
PrecipitationSum (total during hike)
SnowfallSum (converted from cm to inches)
Wind speedMaximum (peak gust matters most)
Wind gustsMaximum
Sunshine durationSum (converted from seconds to minutes)
Weather conditionMost severe WMO code during hike
UV indexMaximum (peak exposure)
Air Quality Index (AQI)Average
PM2.5 particulatesAverage

WMO weather codes

Open-Meteo returns numeric weather codes. SummitScore converts them to readable conditions:

Code(s)Condition
0Clear sky
1Mainly clear
2Partly cloudy
3Overcast
45, 48Foggy
51, 53, 55Drizzle
61, 63Rain
65Heavy rain
71, 73Snow
75, 77Heavy snow
80, 81, 82Rain showers
85, 86Snow showers
95Thunderstorm
96, 99Thunderstorm with hail

9. Heart Rate & Max HR

Heart rate data is used by two scoring components: Efficiency (average HR during the hike) and Resilience (HR drift from Q1 to Q4).

Estimated max heart rate

The standard formula is used:

maxHR = 220 - age
If your age is set in your profile220 minus your age
If your age is not set (or under 10)Default: 190

HR percentage in Efficiency

Your average heart rate is expressed as a percentage of your max HR. This percentage has a floor of 0.40 (40%) to prevent calculation issues with unusually low heart rates. Heart rate readings below 60 bpm are treated as invalid sensor data and cause Efficiency to default to 60.

Heart rate in Resilience

Resilience uses the per-segment average heart rate from the GPS stream (not the overall average). Only segments with HR values above 60 bpm are included. If either Q1 or Q4 lacks valid HR data, the HR drift check is skipped entirely (no penalty, no bonus).

10. Achievements

Achievements are milestones you earn as you hike. Each category has four tiers: Bronze, Silver, Gold, and Platinum. Once earned, achievements are permanent.

Achievements are checked and awarded automatically every time you log a new hike.

Hikes Logged

TierTitleRequirement
BronzeFirst Steps1 hike
SilverTrail Regular10 hikes
GoldTrail Veteran50 hikes
PlatinumTrail Legend200 hikes

Total Miles

TierTitleRequirement
BronzeGetting Started10 miles
SilverDistance Hiker100 miles
GoldLong Hauler500 miles
PlatinumUltra Trekker1,000 miles

Total Elevation

TierTitleRequirement
BronzeHill Climber5,000 ft
SilverMountain Goat50,000 ft
GoldPeak Bagger250,000 ft
PlatinumEverest Conqueror1,000,000 ft

Summit Score (best single hike)

TierTitleRequirement
BronzeSolid OutingScore 50+
SilverStrong SummitScore 70+
GoldElite HikerScore 85+
PlatinumPerfect SummitScore 95+

Single Day Miles (best single hike)

TierTitleRequirement
BronzeDay Tripper5 miles
SilverLong Day Out15 miles
GoldMarathon Hiker25 miles
PlatinumUltra Distance35 miles

Single Day Elevation (best single hike)

TierTitleRequirement
BronzeUphill Battle1,000 ft
SilverRidge Runner3,000 ft
GoldSummit Seeker5,000 ft
PlatinumVertical King8,000 ft

Streak (consecutive weeks with at least one hike)

TierTitleRequirement
BronzeGetting Regular2 weeks
SilverHabit Forming8 weeks
GoldHalf-Year Streak26 weeks
PlatinumYear-Round Hiker52 weeks

Weeks are counted Monday through Sunday. Consecutive means no gap of more than 7 days between week starts that contain hikes.

Consistency (most hikes in any single calendar month)

TierTitleRequirement
BronzeWeekend Warrior4 hikes/month
SilverDedicated Hiker8 hikes/month
GoldTrail Addict15 hikes/month
PlatinumEvery Day Hiker25 hikes/month

11. Score Labels

Here is what the label next to your score means:

90-100Elite
80-89Outstanding
70-79Strong
60-69Solid
50-59Average
40-49Below Average
Below 40Tough Day

12. What Doesn't Affect Your Score

Some data is collected and displayed but does not influence your score:

Oura readiness/sleep scores -- shown on your hike page for personal context onlyno effect
Perceived exertion -- your self-reported effort levelno effect
Navigation difficulty -- used in older versions, now informational onlyno effect
Physical state -- how you felt before/after, informational onlyno effect
Weather impact (self-reported) -- replaced by automatic weather datano effect
Finish feel -- how you felt at the end, informational onlyno effect
Humidity, dew point, cloud cover -- displayed but not part of conditions modifierno effect
UV index, AQI, PM2.5 -- displayed but not part of conditions modifierno effect
Why? The V2 scoring model focuses on objective, measurable data: what the trail demanded, what your body produced, and how consistently you performed. Subjective self-reports and biometric context (like sleep quality) are valuable for your own tracking but are kept separate from the score to ensure fairness and consistency.
An unhandled error has occurred. Reload

Publishing updates…

The page will automatically refresh when ready.

Publishing updates…

Retrying in s — will refresh automatically.

Taking longer than usual…

The update is still in progress. Return to this tab to retry, or reload manually.

Session paused

Could not resume session