SURPhDx
Surf Angler Decision Support

Best spots right now & the data behind them.

All 30 panhandle spots, scored for Pompano against current conditions. Top 3 outlined in amber. Tap any pin for spot details; source health and methodology below.

Florida Panhandle · St. Marks → Camp Helen

● Pompano · live · today · as of 17:53 EDT

  • Top 3
  • Go
  • Go (lean)
  • Marginal
  • Skip
  • No score

Data Sources & Health

12 of 16 feeds fresh · last sweep 17:52 EDT
  • Satellite SST (NOAA CoastWatch blended 5 km; OISST fallback)sst:satellite · sst · fetched 23h agostaledata 16d
  • NOAA OISST Daily SST Gridoisst:gulf · oisstpending
  • NOAA Sargassum Inundation Risksir:panhandle · sirpending
  • NWS Mobile Gridded Forecastnws:MOB · nwspending
  • Astronomical (SunCalc)compute:astronomical · compute · fetched 1m agofreshdata 1m
  • FWC saltwater regulations (manual review)fwc:regulations · fwc · fetched 4d agofreshdata 4d
  • NDBC Apalachicola C-MAN (APCF1)ndbc:APCF1 · ndbc · fetched 18m agofreshdata 1h 6m
  • NDBC Orange Beach Buoy (42012)ndbc:42012 · ndbc · fetched 18m agofreshdata 2h 4m
  • NDBC Panama City C-MAN (PCBF1)ndbc:PCBF1 · ndbc · fetched 18m agofreshdata 1h 6m
  • NERR Dry Bar Water Qualitynerr:apadbwq · nerr · fetched 1m agofreshdata 1h 39m
  • NERR East Bay Water Qualitynerr:apaebwq · nerr · fetched 2m agofreshdata 1h 54m
  • NOAA Tides Apalachicola (8728690)coops:8728690 · coops · fetched 24m agofreshdata 30m
  • NOAA Tides Panama City (8729108)coops:8729108 · coops · fetched 23m agofreshdata 30m
  • NOAA Tides PCB (8729210)coops:8729210 · coops · fetched 23m agofreshdata 36m
  • NWS Tallahassee Gridded Forecastnws:TAE · nws · fetched 38m agofreshdata 38m
  • USGS Apalachicola River Dischargeusgs:02358000 · usgs · fetched 23m agofreshdata 39m

“data” is the age of the newest upstream observation; a source is stale once it passes its own freshness window. Full audit →

How the score is built

Every 15 minutes compute_scores scores each spot for each species in three layers: raw measurements are normalised with their source labels intact, derived state (tide phase, swash energy, migration phase) is computed by cross-referencing live data with species priors, and a composite is mapped to a grade.

Seven components, each scored 0–1 and combined by species-specific weights (barometric trend carries 0.10 for all three species; the other weights were rebalanced to sum to 1):

  1. 1Water temperature — buoy WTMP if fresh, else satellite SST ≤ 4 days old; ramps linearly from the species' minimum to its optimum and back down to its maximum, 0 outside
  2. 2Swash energy — tide rate and gated wave height, each worth up to 0.5 of an index; scored 1.0 inside the species' band and 1 − distance outside it
  3. 3Water quality — turbidity (species curve — pompano's 5–30 NTU sweet spot), dissolved oxygen and salinity from the NERR stations, averaged, less a wrack penalty
  4. 4Time of day — by feeding pattern: diurnal species score daylight 1.0, civil twilight 0.7, night 0.3; crepuscular species peak within 90 min of sunrise and sunset
  5. 5Seasonal window — the current migration phase's seasonal value (pompano fall run 0.90); resident species follow a monthly abundance curve
  6. 6River pulse — Apalachicola discharge, last 7 days against the prior three weeks; weight 0 for pompano and whiting
  7. 7Barometric trend — NDBC 3-hour pressure change; a steady fall scores 1.0, the −1.5…+1.5 hPa daily atmospheric tide 0.9–1.0, a post-frontal rise of +5 hPa 0.3

Renormalisation.A component with no fresh data drops out: its weight goes to 0 and the remaining weights are rescaled to sum to 1, so the score is an average over the inputs we actually have. The share of declared weight that had real data behind it is published as the row's score_confidence.

Suitability floor. The composite is multiplied by 0.5 + 0.5 × suitability / 100 for the spot/species pair. Prime habitat (95) is a near no-op; wrong habitat (redfish on the SGI Gulf side, 35) caps the day at roughly two-thirds, so a 75-rated spot can still reach B+ on a great day.

Wave gating. Wave height counts only as far as the sea is running onto the beach. Each spot carries the bearing its shore faces; a sea from within 60° of it counts in full, beyond 110° not at all, linear in between. With no buoy wave direction, the wind direction stands in only when it is blowing 10 mph or more onto a short-period sea, and an offshore wind of 10 mph or more halves what is left. The raw height is kept for display; the gated height feeds swash energy.

Grades. Score ≥ 80 is GO, 70–79 GO (lean), 60–69 MARGINAL, below 60 SKIP. Letters follow the usual 3-point ladder (A+ ≥ 97 … D− ≥ 60, F below).

Sources · files/10-formulas.md §4–6 + 17 Oct addendum · docs/RELAUNCH-ASSESSMENT-2026-10-17.md “Model inputs” · supabase/functions/_shared/scoring.ts

Research grounding

Species priors and behavioural rules trace to peer-reviewed work:

  • Modde & Ross 1981, 1983 — surf-zone seasonality and trophic relationships, northern Gulf
  • Wheeler, Stark & Heard 2002 — pompano juvenile feeding, NE Gulf (58% coquina diet)
  • Ross & Lancaster 2002 — 1,569 pompano and 488 whiting tagged, NC; site fidelity 21–27 days (pompano), up to 21 days (whiting)
  • McMichael & Ross 1987 — kingfish dawn/dusk crepuscular peak, Horn Island MS
  • Ellers 1995 — Donax swash-riding mechanism (drives the prey-availability rule)
  • Manning et al. 2002 — pompano turbidity feeding threshold (5–30 NTU sweet spot)
  • Schrandt & Powers 2015 — pompano group feeding facilitation
  • Anderson & Comyns 2012 — kingfish open-surf habitat dominance
  • Iverson & Berry 1969 — pompano spring-run thermal trigger 62–65 °F

Phase calendars, thermal triggers and prey tables live in files/research/*.yaml and are seeded into species_migration_phases, species_prey and species_behavior, citations attached.