-
Notifications
You must be signed in to change notification settings - Fork 24
Climb Score
In several places in ActivityLog2, a "Climb Score" is used -- this is a score indicating how hard a climb is. You can see this score in the GPS Segments View, as well as the Lap and Map Views for a session, when Hill Climbs splits are selected. This score is also displayed in the AL2-Climb-Analysis tool.
Climb Score in this program are calculated using the FIETS formula but calculated over each pair of data-points the climb and the scores added together. This produces higher climb scores than simply using the average grade of the entire segment.
Also, these climb scores are converted to Climb Categories (from CAT 5 to CAT 1 and HC) using the following table (same as Runalize):
Category | FIETS Score |
---|---|
HC (Hors Categories) | >= 6.5 |
1st | >= 5.0 |
2nd | >= 3.5 |
3rd | >= 2.0 |
4th | >= 0.5 |
5th | >= 0.25 |
The rest of this document describes how this score is calculated as well as some differences between other programs that calculate a similar score.
One way to determine the difficulty of a climb is to use the FIETS formula to calculate a numeric value for the climb. This formula was developed by the Dutch cycling magazine Fiets. The formula is shown below:
FIETS Score = (H * H / D * 10) + (T - 1000) / 1000
Where:
- H is the height of the climb (in meters), i.e. difference between the top and bottom elevations,
- D is the climb length, or distance (in meters),
- T is the altitude at the top (in meters),
The second term in the formula is only added when it is positive, that is, for climbs whose top is above 1000m.
NOTE In this program, the "(T - 1000)/1000" term of the FIETS formula is not added to the climb segments, so climbs can be joined together.
The FIETS formula can also be expressed in terms of Grade, and some literature shows the formula it as such. Formula variations are shown below. Here Grade is represented as the ratio of height to length of the climb, for example, a grade of 3% is represented as 0.03. Distance is represented in meters.
FIETS Score = Grade * Grade * Distance(m) / 10
Different ways of representing the grade results in slight differences in the scaling factors of the formula. For example, if grade is represented as a percent, and the distance in km, the formula becomes:
FIETS Score = Grade(%) * Grade(%) * Distance(km) / 100
Or, when distance is in meters:
FIETS Score = Grade(%) * Grade(%) * Distance(m) / 100000
The FIETS formula can be used in two ways:
- (A) considering the entire climb and calculating it based on the bottom + top elevations only or
- (B) calculating scores for individual sections and adding them together.
There is a difference between the results of each calculation, usually method B will produce higher scores. For example, consider a climb that has three sections each 1000 meters long:
Section | Length | Grade | Elevation | FIETS Score |
---|---|---|---|---|
1 | 1000m | 3% | 30m | 0.09 |
2 | 1000m | 5% | 50m | 0.25 |
3 | 1000m | 8% | 80m | 0.64 |
Since this is a 3000-meter climb, we can add the FIETS Score of each section, obtaining a total of 0.98. We could also consider the entirety of the climb, 160 meters climbed over a 3000-meter distance, making it a FIETS score of 0.85 and an average grade of 5.33%.
Using Method B, calculating the FIETS score over individual sections, will usually produce a higher score, and, subjectively, it is perhaps easier to climb 160m elevation at a constant 5.33 % grade, then having a variable climb with the last 80m climbed at 8% grade.
Using Method B has some implementation problems: some climb sections will have 0% grade or even descents, and applying the formula without discrimination, will result in a positive climb score even if the section is a descent (since the height is raised to the power of 2). It is unclear how to handle this case in general, but this program will use a score of 0 for each section which is a descent, which is somewhat incorrect (this is done implicitly when two nearby climb scores are added together, without considering the score if the "in-between" section).
Tour de France climbs are categorized using only guidelines and, presumably, the organizers publish the official category of each climb in that race, without using just a numerical formula (see also https://en.wikipedia.org/wiki/Mountains_classification_in_the_Tour_de_France ).
Runalize (see https://runalyze.com/help/article/climb-score ) uses the following scores to categorize climbs:
Category | FIETS Score |
---|---|
HC (Hors Categories) | >= 6.5 |
1st | >= 5.0 |
2nd | >= 3.5 |
3rd | >= 2.0 |
4th | >= 0.5 |
5th | >= 0.25 |
Climbfinder (https://climbfinder.com/en/climb-categories/ ) uses the following scores to categorize climbs.
Category | FIETS Score * 100 |
---|---|
HC (Hors Categories) | >= 1200 |
1st | >= 800 |
2nd | >= 500 |
3rd | >= 300 |
4th | >= 100 |
The Climbfinder formula (https://climbfinder.com/en/difficulty-points/ , see second comment) is shown below, and it is calculated for each 100m section of a climb. Climbfinder will also multiply the score by 1.7 if the climb is on cobbles, but that is not shown here.
FIETS Score for each 100m = Grade(%) * Grade(%) * 0.1
This is simply the FIETS Score expressed in terms of grade and distance, without the division by 100. Note that 0.1 represents 100m when expressed as kilometers:
FIETS Score = Grade(%) * Grade(%) * Distance(km) / 100
Their conversion of climb scores into climb categories is higher than that of Runalize, possibly because their climb scores are higher for the same climb.
MapMyRide probably uses a variant of the FIETS score, as they use the basic ingredients (see https://www.mapmyride.com/routes/climb_information/ ):
All climb scores are based on distance, grade/elevation change, and maximum elevation.
Strava climb information is confusing (see https://support.strava.com/hc/en-us/articles/216917057-Climb-Categorization ):
To decide the category of a climb Strava multiplies the length of the climb (in meters) with the grade of the climb.
This does not make much sense. The grade of the climb is defined as the total ascent of the climb divided by the length of the climb, so if they multiply that value by the length of the climb, they will simply get the height of the climb (plus some constant factor):
STRAVA Climb Score = Length (m) * Grade (%)
= Length (m) * (Ascent (m) / Length (m)) * 100
= Ascent (m) * 100
Note that Grade (%) is defined as (Ascent / Length) * 100
This means that the Strava forumla can be simply stated as "the height of the climb multiplied by 100".
Another explanation is that Strava uses a variation of the FIETS formula, but they over-simplified the explanation in the linked comment, since the FIETS formula does involve multiplication between the length and the grade of a climb, but in a more complicated way.