Innovation Session

Innovation Session: Building A Better Surfing App With Data

Imagine this – its 6:00 AM on a Thrusday and you’re driving half an hour up the coast to surf a wave you never go to during the week. Why? Because your iPhone told you to. That killer session you had last summer, it looks like the swell is lining up to recreate it. So you grab your board and hit the road hoping to turn the stoke up to 11.


The world of surf forecasting & reporting has evolved slowly over the last 50 years. While it has adapted to the world of websites and mobile apps – most are simply new skins on the broadcast weather radio reports surfers have relied on since 1967. They are channels for data. They tell you the swell height, period and direction and something about the wind. Even when they look amazing they are usually showing the same information.

They are not simple and intuitive nor are they predictive. We can do better.


Tonight I’m going to dive into the world of surf forecasting through the lens of a data scientist and explore what a better solution would look like if Surfline, Magic Seaweed or Swellnet approached technology more like Google, Amazon or LinkedIn.

Why We Use Surf Reports

Surf forecasts & reports exist to help surfers make the most of limited resources – time & waves –  in order to maximize the desired outcome – stoke.

Outside of the small percentage of competitive surfers – most  are doing so because they enjoy it. The idea of optimizing for stoke isn’t new to surfers – check out this quora answer about who the best surfer is.

Despite some similarities, every surfer is unique in how they get stoked. Some surfers charge giant waves while others like a gentle roller. No forecast can accurately predict stoke without taking into account the wide range of preferences that exist.

So, an ideal surf forecast would know something about me and make it incredibly simple to transform my limited resources into maximum stoke.

Breaking Down The Factors

Most surf forecasts focus on a few pieces of data about waves & wind. These are incredibly important to surfing, but not the only factors in the equation. In the table below I outline a number of the factors a surfer takes into account when going to surf.surfing-factors

There are a lot of things to keep in mind when picking where, when and what to surf. Some things are controlled by the surfer – what board they ride – but others are up to nature – the swell and wind.

The items in green are what most surf forecasts report on, but that leaves the others for the surfer to decide. Each of these factors interacts with the others as well, resulting in a lot of permutations.

The swell direction dramatically affects which beaches will pick up the waves. Tide changes throughout the day will cause some spots to turn on and off. The time of day will affect the crowds at popular spots. A break choice will impact which board choice will work best.

The Two Paths For Surfers

Because of this complexity – most surfers begin to walk down one of two paths:

  1. The Path Of Complication: These surfers become encyclopedias of surf spot information. You’ll recognize them because they’ll start to say things like “its a 2′ dropping tide and 6′ 10second south swell – Newport will be drained out and besides, it is Saturday, we’ll never find parking, lets wait a few hours and try for a sunset session at Magnolia”. These surfers will eventually grow to love the raw data on and will be able to carry on conversations with oceanographers.
  2. The Path Of Simplicity: These surfers start to run on auto pilot. As a result of information overload, they begin to simplify their process. They pick one or two breaks they tend to stick to. They have a go to surfboard. They surf at about the same time every day. These surfers will have their break dialed, but will miss out on a ton of stoke at other places and on other boards.

How Can We Do Better?

An intelligent surf forecast would make recommendations for me. It would take into account where I have surfed before, cross reference that with a database of historical swell conditions account for the board I used and optimize for stoke.

Much like how Amazon recommends products we might be interested in based on other products we have purchased – an intelligent surf forecast would recommend times and days for me to surf based on past sessions that I gave good ratings to.

Data Gathering

To do this – the app would blend user collected data with buoy data.

From the user we would want to record: date & time, duration, location, surfboard used & a session rating.


 This data would then be combined with swell data we have on record for that break. Because we have the location and time – we can easily do a look-up in our own records to find the tide, swell and wind information for that spot during the time that session took place.


Now, you’ll notice for surfboard I entered ‘Jezebel’ – one of my boards. I am a big believer of the ride everything movement and I think this is a great opportunity to encourage diversity of quiver. Rather than just having the person select a type of surfboard – we can actually have them enter their quiver and then select the board they rode each time. Future recommendations would be able to refer to the board by what the surfer calls their board.


 Imagine being able to look at your quiver like this.


I bet a lot more people would longboard if they saw how stoked they were whenever they took out the log.


This is the intelligent part of the app. Once a data set was populated we would use a bit of simple aggregation to start making recommendations. It would take into account all of the factors and make a prediction about what attributes could combine to create a session with maximum possible stoke.

There are some simple operations like ranking all of the surf spots you’ve been to by the average score you give them.


There are also some more complex lookups. Lets look at a few scenarios a surfer might find themselves in.

Say there is a forecast showing a 5′ SW swell heading in over the weekend and I want to know what the best possible beach & board combination for the weekend is. The app would look at all of the past times when a 5′ SW swell was present. It would group those by location and board combinations, average the ratings and show me the top three. Rincon with my hybrid, Blacks with my thruster or 52nd Street with my booster board. This is awesome.


We could also limit the parameters a bit. Lets say I am in Newport Beach and have two hours, but am not sure where to go surf. The app could get my location from GPS and limit the search to surf spots within a half hour drive. We could also limit the tide to the current tide. We then group like before and make a recommendation.

If I’m feeling longboardy – the app could filter by my sessions where I rode a longboard and show me the best spot to go. If I’m meeting friends at a particular break – the app can limit it to that spot and let me know which board to bring. If I know I want to surf my thruster today at Newport, the app can figure out which tide gives me the types of waves I like best. There are a lot of cool ways to use this data.

We can also get really specific. Imagine an alert that let you know you might be able to recreate that awesome session you favorited from a few years ago by bringing your hybrid to Upper Trestles at 2pm on Saturday. I would pay money for that.

Combining Data

From what we saw above – there is a lot we can do. The one limiting factor is how much data we have. If I surf regularly, the data set will grow, but the more breaks I go to and boards I ride, the more diluted the data becomes and the harder it is to find a match.

For the scenarios above we were exploring using my own data only – this is important because we are optimizing for my stoke and I might like something very different than another surfer. If, however, I’m on a surf trip the above scenarios aren’t going to help me very much. This is when we might want to use anonymous data from similar surfers.

We could build this data set using a network map of surfers with common ratings in similar scenarios. Lets say that I usually rate Blackies very high and the board I ride there is a longbaord. A network map would group me close to other surfers that rated blackies high. Maybe a few of them also like Malibu and a few other Malibu surfers like La Jolla Shores. Our app now knows that Blackies, Malibu and La Jolla Shores are similar based on surfers who have surfed more than one of them and rated them similarly. This opens up a lot of possibilities and expands the data set.


Surf forecast sites have focused on giving surfers data. We don’t want data, we want to go surfing. By taking advantage of mobile technology and some data know-how there is a lot of opportunity to build something amazing. Hopefully one of the current surf forecast companies will take note and start working on something similar, I would be the first one in line to start using it!