Safety & conditions
How DontDieFishing collects conditions, calculates a planning score, and handles warnings and missing data.
DontDieFishing combines current condition inputs into a 0–100 planning score for the launch site and vessel profile you select. The score is a planning aid, not a safety clearance.
Data sources
The conditions aggregator fetches the configured sources in parallel. It records
the resulting snapshot with a fetched_at timestamp; it does not promise a
single refresh cadence for every source.
| Data used | Source | What the aggregator does |
|---|---|---|
| Wind speed and gusts | NWS forecast, with NDBC buoy fallback | Uses the forecast value first, then the buoy value when the forecast field is unavailable. |
| Wave height, wave period, and swell direction | NDBC buoy | Adds buoy observations when a buoy is configured and returns data. |
| Visibility, precipitation probability, air temperature, and lightning risk | NWS forecast | Supplies the forecast weather fields used by the snapshot. |
| Marine warnings | NWS marine alerts | Adds the active warning strings to the snapshot. |
| Tide height and phase | NOAA CO-OPS tide predictions | Selects the next predicted tide event for the snapshot. |
| Water temperature | NOAA CO-OPS, with NDBC buoy fallback | Uses the CO-OPS value first, then buoy water temperature. |
| Tidal current speed | NOAA CO-OPS current predictions | Uses the configured current station and bin when available. |
| UV index | EPA UV | Adds the UV index for the launch coordinates. |
| Sunrise and sunset | Sun-times calculation | Computes times from the launch coordinates, date, and resolved timezone. |
The aggregator currently sets water_quality to null; it is therefore an
unavailable signal rather than a claim about water quality. A buoy, tide
station, or current station that is not configured also produces an unavailable
value.
Safety status
The scorer clamps the final result to 0–100 and maps it to one of three statuses:
| Score | Status | Meaning |
|---|---|---|
| 0–39 | GO | Lower modeled risk from the available inputs. |
| 40–59 | CAUTION | Elevated modeled risk; review the contributing signals and official guidance. |
| 60–100 | NO-GO | High modeled risk, or a hard veto has stopped the score. |
The score is not permission to launch. Conditions can change after a snapshot is collected, and a GO result does not replace official weather, marine-warning, or navigational judgment.
Vessel-specific thresholds and profiles
The selected vessel type supplies default thresholds. Values are wind and gust in knots, waves in feet, visibility in miles, current in knots, and water temperature in °F.
| Vessel type | Wind / gust | Waves | Visibility | Current | Water temperature |
|---|---|---|---|---|---|
| Powerboat | 25 / 35 | 6 | 1 | 4 | 45 |
| Sailboat | 30 / 40 | 8 | 1 | 4 | 45 |
| Kayak | 15 / 20 | 2 | 0.5 | 2 | 55 |
| Paddleboard | 15 / 20 | 2 | 0.5 | 2 | 55 |
The scorer does not read a vessel-specific lightning threshold. High lightning risk is a hard veto for every vessel; lower lightning levels remain weighted signals.
You can override threshold values for a vessel with custom thresholds. The selected scoring profile—cautious, moderate, or experienced—changes the relative weights of the signals. The canonical scoring guide lists those weights and the normalization rules.
Hard vetoes
Veto checks run before weighted scoring. Any of these conditions returns a hard NO-GO:
- An active marine warning contains small craft advisory, hurricane, tropical storm, gale warning, or storm warning (including the hurricane watch/warning phrases).
- Lightning risk is high.
- Wind speed, gusts, waves, or tidal current are more than 1.5 times the selected vessel threshold.
- Visibility is less than half the selected visibility threshold.
- Water temperature is below 75% of the selected water-temperature threshold.
A veto returns a score of 100, status NO-GO, vetoed: true, and a reason.
The veto is returned before signal rows are built, so a vetoed result has no
weighted signal breakdown.
Signal breakdown
When no hard veto fires, the score can show these signal rows:
- Wind / gusts
- Waves / swell
- Marine warnings
- Visibility
- Tidal current
- Lightning
- Precipitation
- Water quality
- UV index
- Water temperature
- Optional travel time
The scorer reports each row's raw value, normalized risk, adjusted weight, contribution, and whether the value is available. Tide height and phase, sunrise/sunset, air temperature, wave period, and swell direction can be presented in the conditions view but are not weighted signal rows in the shared scorer.
Marine-warning callout
Any active string warning is shown in the NWS marine-warning callout. The callout says that the warning was reported in the displayed conditions update and may have changed. A marine warning does not automatically veto every score: only the warning phrases listed in the hard-veto rules do. Check current official NWS guidance before departure.
Freshness and unknown values
The web conditions endpoint reuses a cached snapshot only when it is less than 30 minutes old. Without a fresh snapshot it calls the aggregator. If that aggregate-level fetch fails, the endpoint returns an error instead of a score from an unknown fetch.
Individual source fetchers degrade independently: the alerts fetcher returns an
empty alert list, while the forecast fetcher returns lightning_risk: "none"
and null values for forecast measurements it could not obtain. The aggregator
passes those fallback values to the scorer without an error marker.
This behavior is fail-open, not fail-closed. An empty alert list cannot
trigger an alert veto, and fallback lightning maps to zero modeled risk.
Unknown alerts or lightning can therefore contribute to a GO result. Other
missing numeric signals are represented as unavailable; their normalized value
is 0 and their adjusted weight is 0, with the base weight redistributed among
available signals. A fetched_at timestamp does not prove every source was
successfully fetched, and returned signal rows currently have is_stale: false.
Treat a missing, unverified, or degraded input as unknown: verify current conditions directly with authoritative NWS and NDBC sources before launch, and make the launch decision with current conditions and your own judgment. Do not read an absent or degraded score as authorization to launch.
DontDieFishing provides planning guidance only. Marine warnings may have changed since the conditions update. Check official NWS guidance and other authoritative information before departure; remain responsible for the launch decision.