How LazySurfer Works

Last updated 2026-04-20
Answer: LazySurfer works in five steps: you log surf sessions with a 1–10 rating, it auto-pulls NOAA NDBC buoy, NWS wind, and tide data for that spot and time, two on-device ML models (K-Nearest Neighbors and Multivariate Linear Regression) learn your preferences from the ratings, and then push alerts fire when the 7-day forecast matches your best sessions.

LazySurfer combines real NOAA buoy data with an on-device machine learning model trained on your logged surf sessions. The model learns which wave, wind, and tide conditions correspond to sessions you rated highly, then predicts your rating for any current or forecast reading at your favorite spots. When the forecast matches, you get an alert.

1Log a surf session

After a surf, tap Add Session, pick the spot, and rate the session from 1 to 10. LazySurfer automatically pulls the NOAA buoy reading, wind data, and tide data for that spot and time. You can edit sessions up to 45 days in the past.

2LazySurfer fetches real buoy data

LazySurfer pulls wave height, period, direction, wind speed, wind direction, and tide height directly from NOAA NDBC buoys and NWS wind stations — for example, NDBC station 46232 at Point Loma for San Diego spots, or NDBC station 46042 in Monterey Bay for central California. These are the same raw sources professional forecasters use, not resold commercial forecasts.

3Similarity Score compares current to past

For any current or forecast reading, LazySurfer computes a 0 to 10 Similarity Score against each logged session. It compares wave height, period, direction, wind speed, wind direction, tide height, and tide direction. A 10/10 means the reading is within tight tolerances of a session you rated highly.

“Such a clever approach! You simply tag your favorite sessions and LazySurfer analyzes all the data (wind, tide, swell, etc) to alert you when similar conditions are coming!” — Christopher Robbins, Google Play Store review

4On-device ML predicts your rating

Two machine learning models run on your device — K-Nearest Neighbors and Multivariate Linear Regression — trained on your logged sessions. They predict the rating you'd give a spot under the current or forecast conditions. Pro users also get an optional cloud model that complements the local predictions.

5Alerts when conditions match

When the 7-day forecast shows conditions that match a session you rated highly, LazySurfer sends a push notification. The more sessions you log, the better the model gets at predicting when your favorite spots will fire.

Why this approach works

Real buoy data, not resold forecasts

Most surf apps show you a forecast derived from weather models, smoothed out, aggregated, and branded. LazySurfer pulls directly from the NOAA National Data Buoy Center network — the same buoy readings the National Weather Service uses. For East Coast and West Coast US, Hawaii, Gulf, and a growing portion of global coastlines, this means readings are within minutes of real conditions. The 16-day GFS-based forecast is applied on top for future windows.

Personalization beats general ratings

A session that's 3/10 for a longboarder on 6-foot surf can be 9/10 for a shortboarder chasing barrels. General surf ratings ignore this. By training on your rated sessions, LazySurfer's model learns your preferences — board, style, crowd tolerance, wind sensitivity — without asking you to specify them. It learns from what you actually liked.

Why two ML models

KNN (K-Nearest Neighbors) looks at your most similar past sessions and predicts based on how you rated those. MLR (Multivariate Linear Regression) fits a mathematical curve through all your sessions so it can extrapolate to conditions you haven't logged yet. LazySurfer combines both — KNN handles the "this is almost exactly like last Tuesday" case; MLR handles the "slightly bigger swell than you've seen" case.

Why offline-first matters

You're already at the beach. Your ML model, your session history, and your logging form all work without a network. LazySurfer only needs the internet to fetch fresh buoy data and sync Pro cloud backups. This isn't a gimmick — it means logging a session is a 5-second action, not a loading-spinner ordeal.