The actual pipeline, the actual thresholds — nothing here is aspirational
Every spot gets a single number from 1.0 to 5.0, recomputed on a schedule every 15 minutes and stored, not computed while you wait. That is deliberate: the card you tap and the forecast page you land on read the same stored number, so they cannot disagree with each other, and the forecast page tells you how old that number is. Scores snap to half-point steps (3.0, 3.5, 4.0…) and are clamped to the 1–5 range. One question is being answered: how favorable are conditions for paddling right now?
Example card — production styling.
| Score | Verdict | Meaning | |
|---|---|---|---|
| 4.0 and up | Worth it | Conditions are favorable for most paddlers. | |
| 3.0 – 3.5 | Careful | Mixed conditions. Check the details before heading out. | |
| Below 3.0 | Hard pass | Conditions are poor. Postpone if possible. |
Scores are shown in half-point steps — deliberately. The model computes to finer precision internally (kept for evaluation), but a paddling decision doesn't hinge on a 3.6 versus a 3.7, and every surface uses the same three verdict colours so the label always matches the number you see:
The exact colour stops the forecast pages use.
The score is a starting point, not a green light. A “Worth it” score does not mean conditions are safe for every paddler in every craft. Always apply your own judgment.
Forecast pages score every daylight hour (6 AM to 8 PM) for the next three days and blend them into one band per day, so you can pick your launch hour instead of just your day. This is not a mock-up — the component below is the forecast page’s heatmap, rendering a live 3-day outlook. Tap a bar to open an hour:
Fetching a live 3-day forecast…
Rendered by the production Heatmap component.
Weather comes from WeatherAPI.com — three feeds fetched in parallel for every score: current conditions, a 3-day hourly forecast with government weather alerts, and marine data (wave height, swell, water temperature) where the location has coverage.
Where a value is missing it is estimated conservatively or omitted — never silently defaulted to a flattering number.
Waves, swell and water temperature on inland water. Marine feeds are built for the sea. Asked about a landlocked point, our provider does not return an error — it returns a plausible-looking marine record anyway. We verified this: a query for Antero Reservoir, an alpine Colorado reservoir at roughly 8,900 feet, came back with 1.4 m waves, a 5.2-second swell, and 28.8 °C water. So we do not use marine data on lakes and rivers at all, and wave and swell rules simply do not fire there.
Water temperature comes from a real sensor wherever one exists. We curate a small number of spots on purpose, so each one is matched by hand to a USGS monitoring site that actually reports water temperature on that body of water — proximity alone is not enough, because the nearest sensor is often a creek that is not the lake you are paddling. Where a reviewed sensor exists you get its reading, marked measured, with the gauge named. Where none exists — and for many recreational lakes none does — we estimate, and mark it est. so you always know which one you are looking at. That estimate uses a real 30-day mean air temperature, not today's weather, because a lake stores heat over weeks: judging an August lake by a cool night's air is how you end up telling someone to wear a drysuit on water that is actually 70 °F. We also do not warn about “cool water” in the 16–18 °C range at all — that is ordinary, comfortable paddling water, and crying wolf there only teaches people to ignore the warning that matters. River flow and stage are likewise real, named-gauge USGS readings.
Each score passes through six stages, in this order:
direct-hgb-mono-v2-2026-09-18) trained on paddler ratings paired with the weather at the time of each paddle produces the base score. It is evaluated in our own server process, not called over the network. Out-of-fold error is 0.60 MAE (95% CI 0.51–0.70) on 187 rated paddles across 93 lakes, cross-validated grouped by lake so no lake appears in both sides of a fold. Seven features are monotonically constrained, so more wind, bigger gusts, higher waves, more rain can only ever lower the score.If the model service is unreachable, a rule-based fallback produces the score from the same inputs — starting at 3.0, rewarding calm wind (+0.8 under 5 mph) and comfortable temperatures (+0.3 for 18–30°C), and subtracting for strong wind (−1.2 over 20 mph), active warnings (−0.8), high UV and poor visibility. Fallback scores are marked with lower confidence.
After calibration, safety rules subtract points the model is never allowed to argue back. Most are small nudges for gusts, waves, heat, UV, visibility and rain — but a few are worth calling out, because they can sink an otherwise perfect day on their own:
Kaayko scores daylight hours only, and we do not condone paddling after dark. Once the sun is down at a spot, the page stops showing a verdict entirely and shows you the next daylight window instead. This is deliberate: the score is built from wind, water, and weather, and none of those inputs capture what actually makes night paddling dangerous — you cannot read the water, you cannot be seen by motorized craft, self-rescue is far harder, and a capsize that would be a nuisance at noon becomes a serious emergency in the dark.
Night paddling is also regulated. Many jurisdictions require navigation lighting after sunset, and a number of parks and reservoirs prohibit being on the water at night at all. Those rules are local, they change, and it is your responsibility to know them for the water you are on. A daytime score never implies that the same water is acceptable at night.
Wind that’s a workout in a kayak can be unmanageable on a stand-up paddleboard or a pedal boat. Pick your craft in Settings and every score adjusts through a fixed, documented rules layer — it is not part of the machine-learned model, so it can be audited line by line. The hard-shell kayak is the baseline (the training ratings were made from a kayak perspective); no craft ever scores higher than the baseline in wind, only lower.
| Craft | Wind asks effort | Wind gets demanding | Above handling range |
|---|---|---|---|
| Kayak (baseline) | — | — | — |
| Rowboat | 12 mph | 18 mph | 22 mph |
| Canoe | 10 mph | 16 mph | 20 mph |
| Inflatable kayak | 10 mph | 15 mph | 18 mph |
| SUP | 9 mph | 14 mph | 18 mph |
| Pedal boat | 8 mph | 12 mph | 16 mph |
Deductions run from a quarter point up to 1.5 points, with extra weight for chop on wave-sensitive hulls and for big gust spreads on craft that catch wind (SUP, pedal, inflatable). The thresholds follow published paddling-safety guidance: beginner SUP instruction places the comfortable ceiling near 8–10 knots of wind, beginner kayaking near 10 knots with ~25 mph as the widely cited danger line (aligning with NWS small-craft-advisory territory), and canoes’ higher freeboard makes them notably more wind-bound than kayaks. When your craft lowered a score, the forecast page says so, in plain words.
Forecast pages add short preparation tips — how much water to carry (computed from the NWS heat-index formula for the conditions on screen), wind technique for your craft, cold-water dressing, sun exposure. Every tip is computed from the live data shown on that page; if the data isn’t there, the tip isn’t either.
The same rule governs spot facts. Water type (lake or river) is recorded per spot. Cell coverage notes appear only for spots we’ve graded against FCC Broadband Data Collection coverage maps (per-carrier, ~100 m hexagons around the launch). “Know before you go” notes are written by us for spots we’ve paddled. Nothing on these pages is inferred, scraped, or guessed — a missing row means we don’t have verified data yet.
This loop is in beta — ratings are being collected and validated now, and per-lake offsets are applied conservatively while the sample grows.
The model’s labels came from people, and its corrections do too. When paddlers rate a real session, that rating flows back into the system:
Anti-abuse, concretely: one rating per device fingerprint per spot per day, with a two-hour window to revise your own submission, plus IP-based daily rate limits. The fingerprint exists to stop ballot-stuffing, not to identify you — no account, no name, no email.
Wear a life jacket. Every time, every body of water, regardless of what the score says. A PFD (personal flotation device) is the single most effective thing you can do to stay safe on the water.
The score is a decision aid, not a guarantee. Things we cannot measure or predict:
The Paddle Score supplements your judgment — it does not replace it. When in doubt, don't go out.
By using Kaayko Paddling Out, you acknowledge and agree to the following: