About
The goal of this project is to allow for skiers and riders to have a reliable metric with which to compare trails between mountains. Often, a black diamond trail at one ski area is very different from another black diamond trail at a different ski area, especially across geographic regions. This standardized rating scale aims to fix this.
Pitch (in degrees) | Difficulty | Color on Map |
0°-18° | Beginner | Green |
18°-27° | Intermediate | Blue |
27°-36° | Advanced | Black |
36°-47° | Expert | Red |
47°+ | Extreme Terrain | Yellow |
Attribute | Pitch Modifier |
Gladed | +5.5° |
Ungroomed / Moguls | +2.5° |
Normal Weather | Between +0° and + 6° |
How It Works
The data for each map comes from OpenStreetMaps and the USGS. I used the publicly available map data on OpenStreetMaps and elevation data from the USGS in order to create a 3D representation of each resort, then calculated the steepest sections of trail and used tags from OpenStreetMaps to determine things like whether a trail is gladed to create a difficulty rating.
On each map, the degree label on each trail is for the steepest 30 meters. The colors are determined by the same 30 meters plus a set of modifiers based of if the trail is gladed, if the trail is groomed, how much snow and rain the resort recieves, and how often the mountain experiences a freeze thaw cycle.
The colors for each trail are determined based on the table on this page. The table was created by performing a statistical analysis of all the trails in the US to maximize the number of trails that are rated the same as their official rating from the resort, then spot checked by numerous individuals with first hand experience of a selection of resorts.
One of the limitations of this approach is my maps can only be as accurate as the data on OpenStreetMaps. Not all tags are correct, and not all trails are present, or placed accurately. If you find tagging or routing errors, please either contact me and let me know what is incorrect, or correct the issues directly on OpenStreetMaps. More information about correcting errors can be found in the Q & A section below.
Mountain Rankings
There are two types of mountain comparisons: how hard the hardest trails are and how easy the easiest area is. This is created using a weighted average of the top 30 hardest and easiest trails in order to create a metric that describes how expert and beginner friendly an area is, and how it stacks up to other mountains.
20% of the rating is composed from the top 30 trails, and 80% is from the top 5. The color a resort receives shows how the hardest (or easiest) trails are rated, and the actual score can be used for comparisons within the same difficulty color.
Q & A
Why only US resorts?
Unfortunately, not very many countries have precise enough elevation maps available to the public. In order to get accurate results, I need 10m resolution or better. I hope to expand to other countries as better data becomes available.
What about X factor that changes a trail’s difficulty?
A large portion of variance between different trails is explained with the steepness of the trail and whether the trail is gladed, but not all of it. I have many ideas about other factors to consider, but the hardest part for many of them is getting the data. The next step in improving the model is factoring in weather patterns and snowfall.
What should you do if you find a mistake?
Given that the primary source for data is OpenStreetMaps, where individual users come together to crowdsource the map, trail quality can vary between resorts. The flip side to that is that anyone can improve the maps. If you know a resort well and are familiar with contributing to OpenStreetMaps (or want to learn), it would be extremely helpful to have local knowledge to fix problems on a resort’s map. Once OpenStreetMaps is updated, let me know and I’ll refresh the map here. If you find a problem that is beyond what you are willing to fix there (or is a problem with my model/website), let me know and I’ll do my best to resolve it.
Join the Steepseeker Discord Server and let me know about any issues you encounter in the issues channel.
X feature is missing!
Reach out, I want to improve the site over time as I get feedback, and I need to know how the site can be better.
Join the Steepseeker Discord to tell me about what you want to see added in the feature-requests channel.
Where did everything come from?
The trail data is from OpenStreetMaps, the elevation data is from the USGS’s NED10 dataset, and the website and maps are my creation.
Why did I make this?
I’ve always wanted a way to compare trails that was less subjective, and this grew out of a small project I started to see if that was possible. So far I have hundreds of hours invested in coding, model development, and website design. This is an ongoing project that I work on because I’m passionate about skiing, and want to make it easier for people like myself to nerd out about statistics.
Who am I?
I’m an avid skier; I grew up skiing and look forward to every powder day. On a good day skiing, I’ll likely be found in some tight steep trees enjoying each turn. I also majored in data science, and used that combined background to put this website and statistical model together.
How can you help?
This project takes a fair bit of time to create and maintain, and hosting a website is far from free. If you have experience with editing OpenStreetMaps, it would be extremely helpful to help by maintaining your local areas. When new trails get added to a resort, someone needs to add them to OSM, and I likely won’t know that there is a new trail. Also, not every resort has all the trails added, and many are missing tags. For example, I’d love to have more resorts with proper tagging for moguls so I can add them to the model.
If you have made it this far, you will likely enjoy the Steepseeker Discord. Join other like minded skier and snowboarders and chat about the slopes. I also will post updates and announcements on there first.
If this project has been of value to you, please consider donating here or with the QR code below to help support the time and resources that keep this website running.
Changelog
v1.05 Nov 18 2024
Back in September as part of my yearly refresh of all resort data and maps, I started cataloging more information about each lift, including how many people per chair, ride time, whether it has a bubble or heat and those sorts of things. While that information has been available since then, this is the first update to do more than just show this information on the interactive maps. Now, there is a whole new page for lift rankings! Expect more to follow, as it is still pretty bare bones.
Behind the scenes, quite a bit has happened. In my September update I reworked my backend tools to make updating resorts and fixing errors much easier, and with this update I made some significant changes to the database to allow for easier debugging of issues as well as laying the groundwork for some future features. Unfortunately, this lead to some annoying issues when deploying to the production server leading to an hour of downtime while I troubleshooted file permission issues. Also included in the update are some small bug fixes. Expect more to follow, a good chunk of this update was backend work that won't payoff until later features come!
v1.04 Sep 25 2024
Yearly refresh time! All resorts have fresh data and maps. Significant changes made to my backend tools to vastly improve the efficiency of updating resorts and fixing data errors. The interactive maps now have more to say about each lift! Things like how many people per chair and whether there is a bubble or heat on the chair are now displayed in the popups, and this information will get rolled into more features in a later update.
v1.03 Mar 09 2024
Mainly small improvements and some back end bug fixes. Improved performance of interactive maps, especially for larger resorts. Added a handful of new resorts, bringing the total to 327. One of those is especially noteworthy (Whistler Blackcomb) as it marks a trial into whether I can get sufficiently accurate results from Canadian elevation data. If everything checks out, I will look to add more Canadian resorts in the near future, with a goal of similar levels of coverage as the US by next season.
v1.02 Feb 22 2024
Couple big changes this release, mainly to the interactive maps. New stuff includes:
- Added user location button to explore page & interactive maps
- Added map rotation button to interactive maps and now interactive maps are rotated to match the static maps by default
- Added basic labels to all trails and lifts on the interactive maps without having to click on the line
- Unified button appearance throughout website
- Added another ski area bringing total to 322
- Improved trail placement accuracy on OSM for a number of resorts. This resulted in a few changes to the rankings
v1.01 Feb 02 2024
Small tweaks to UI/UX. Added the Discord server to the about page.
v1.0 Jan 25 2024
At some point, I need to consider this project “done” even though I have many plans for upcoming features. This seems as good a point as any to consider the end of the first major revision. New in this release are:
- Improved mobile menus
- Added 40 ski resorts bringing the total to 321
- Refreshed all existing ski area maps (live as of late December)
- Added interactive maps (accessible as of early December)
- Added explore page (accessible as of early December)
- Small UI/UX improvements
- Bug fixes
Expect more changes in the coming months, I have many ideas that I plan on implementing. If there is something you want to see, let me know! I’m much more likely to implement something that I know other people want. Going forward, expect this changelog to reflect changes and improvements as I make them.