Session Optimizer — ranked for right now, tuned by you
Factor checklist — where each spot wins & loses
Dial It In — your profile & constraints
▾
Tide — Jacksonville Beach (NOAA 8720291)
The Week — best call each day
Next 48 h — surf & wind at selected spot
The Coast — scores up & down NEFL
Marine Life Watch — at the selected spot
Receipts — it learns you, and it keeps score
How this is scored
Every allowed spot × daylight hour gets a 0–100 score from live model data, then gets personalized. Wave quality blends size fit (yours + the spot's), swell period (board-adjusted), wind angle vs. each beach's facing, tide stage vs. each spot's preferred window, and weather — including CAPE (thunderstorm fuel), so a spot gets marked down when storm energy is building even before rain shows in the forecast. A rip-current proxy (wave energy + onshore wind + inlet proximity) applies a safety discount — stronger for beginners. Your sliders then weight quality vs. crowd vs. convenience, and your logged session ratings nudge spots the model over- or under-calls for you.
Honest caveats: crowd is a heuristic (time, day, popularity, quality) — no one counts lineups. Rip risk is a simplified proxy, not the official NWS surf-zone forecast — always check posted flags. The Marine Life Watch indexes are seasonal/condition heuristics (bait migration, feeding hours, inlets, water temp, onshore drift) — there is no live shark or jellyfish feed, they never affect the surf score, and the lifeguard's purple flag is the only real-time source. Sandbars are living things; the spot notes are local knowledge, not sonar. Cross-check the modeled swell against NDBC buoy 41112 and check FWC red tide status before a beach day. This is a planning tool, not a professional forecast — the ocean gets the final vote.