Skip to content
Sunset Beach, NC
Get Support

How the app judges things

Every judgement Sunset Beach makes is a sum of named, signed contributions that the app prints back verbatim, so you can always see why. Four activities (Swimming, Surfing, Beach walk & shelling, Sunset watching) each start at 50 and add or subtract points for rip risk, water temperature, surf, wind, rain, sun and air quality; the headline is weighted toward the best of them. The sunset and sunrise outlook is judged on the layered cloud profile at that hour, not total cloud cover. Rip and swim verdicts come straight from the NWS surf zone forecast’s rip level. Rocket-launch visibility is a geometry-and-lighting model built on the Worker. Almanac windows score this occurrence against a typical one of its kind. All of the weights are, in the code’s own words, opinionated guesses tuned against nothing but judgement about this beach.

Activity scores (“What it’s good for”)

Section titled “Activity scores (“What it’s good for”)”

Each activity starts at 50 and its contributions are added, then clamped to 0–100. Ratings: great ≥ 75, good ≥ 55, fair ≥ 35, otherwise poor.

ActivityWhat adds or subtracts pointsCeiling
SwimmingRip level None +15 / Low +5 / Moderate −25 / High −50 · water ≥ 78°F +20, ≥ 72 +12, ≥ 65 −5, colder −25 · surf midpoint ≤ 2 ft +12, ≤ 4 ft −5, higher −20 · ≥ 50% rain −12 · burn time ≤ 20 min −8 · air quality (see below)10 after dark — bath-warm water is still true at 2 AM, so darkness caps the score rather than merely deducting
Surfingsurf 3–6 ft +25, ≥ 2 ft +8, smaller −25 · swell period ≥ 10 s +20, ≥ 7 s +8, shorter −10 · wind < 5 mph +15, offshore +18, onshore > 12 mph −20, otherwise −5 · steepness printed at 010 after dark
Beach walk & shellingtide ≤ 1 ft +25, ≤ 2.5 +12, ≤ 4 −5, higher −20 · falling tide +8 · wind > 20 mph −20, > 14 −8, else +8 · rain ≥ 60% −25, ≤ 15% +8 · air 65–88°F +10, > 95 or < 45 −15 · feels-like ≥ 8° hotter −8 · air qualitynone — after dark is a −10 (“the walk is fine, the shelling needs a torch”), because a low-tide walk at 11 PM is a real reason to go out
Sunset watching(sunset model score − 50) × 0.6, with the high-cloud and low-cloud percentages printed at 0 · ≥ 50% rain −15 · wind < 12 mph +5 · falls back to total cloud (25–70% +15, else −5) if the layered profile is missing10 once tonight’s sunset has passed

Air quality applies to swimming and walking: US AQI ≤ 50 +5, ≤ 100 −3, ≤ 150 −15, worse −30. Wind and its direction come from buoy 41024 first and the NWS grid second; the shore normal is taken as 190°, so wind from about 10° is offshore. “Dark” means the sun is below −6° (past civil twilight).

Two warnings ride along with the swimming score and are shown even when the headline is positive: at rip level 3, “High rip current risk — NWS advises staying out of the water.”; at level 2, “Moderate rip current risk — swim near a lifeguard and know how to escape a rip.” (There are no lifeguards at Sunset Beach; the string is the app’s.) A burn time of 20 minutes or less adds “Strong sun: unprotected skin starts to burn in roughly N minutes.”

The overall score is 0.6 × the best activity + 0.4 × the mean of all four — a flat day is still a great walking day, and that is the answer the question wants. If any NWS alert is active the headline is Active alert: <event>; otherwise ≥ 75 → “Go. Best for …”, ≥ 55 → “Worth the trip — good for …”, ≥ 35 → “Mixed. … is the pick if you go.”, else “Not a great day for the beach.”

Judged on the Open-Meteo cloud profile at the sunset (or sunrise) hour — never on total cloud cover, because “99% cloud” that is all high cirrus is close to ideal while 60% low stratus kills it. The score starts at 35:

FactorPoints
The canvas — high cloud × 0.8 + mid cloud × 0.4< 10 → +5 “clear sky — clean, but not colourful” · < 25 → +18 · 25–75 → +35 “broken high cloud to catch colour” · ≤ 90 → +18 “heavy upper deck” · higher → +8 “solid high overcast”
The blocker — low cloud≤ 15% → +20 “clear western horizon” · ≤ 40 → +5 · ≤ 70 → −15 “low cloud likely to block the sun” · higher → −30 “socked in at low level”
Visibility≥ 9 mi +5 · < 4 mi −10 “hazy”

Ratings: spectacular ≥ 78, promising ≥ 60, average ≥ 40, else flat. The same function scores the sunrise hour with “eastern horizon” in the wording. If the sunset hour is more than two hours outside the forecast the outlook is not scored at all. Burn time is 200 ÷ UV index minutes, never under 5.

The rip level is read from the NWS Surf Zone Forecast’s words for the “Ocean Isle Beach West” sub-zone: None = 0, Low = 1, Moderate = 2, High = 3. That level drives the swimming score above, the “Best days” swim verdict on the planner, and the safety push (a rise to High). The planner’s per-day swim call is: level 3 → poor “stay out of the water”; level 2 → caution; water below 68°F → caution “cold enough to cut a swim short”; otherwise good. Days beyond the sub-zone rows carry the whole-zone forecast and say so; days with no rip forecast at all only get a verdict if the water is below 68°F (caution) or 75°F or warmer (good, “No rip forecast this far out.”).

Only launches from Cape Canaveral / KSC and Wallops Island are modelled. For each, the Worker infers a launch corridor from the target orbit (ISS-class flies northeast with high confidence; GTO east/southeast; 35–50° inclination is ambiguous and both corridors are tried; unknown orbit tries 45°, 90° and 135° at low confidence), propagates a representative ascent for 10 minutes in 10-second steps, and at each step asks three things: how high above Sunset Beach’s horizon the vehicle is, whether its plume is still in sunlight, and how dark your sky is.

  • Below 1° elevation a moment counts for nothing.
  • Lighting dominates: full daylight scores 2; sun just down 25 (8 if the plume is in shadow); the twilight sweet spot (sun −3° to −18°) 55 lit / 22 unlit; full dark 45 / 20 — plus a geometry term that keeps rising with elevation.
  • Range: best moment under 500 km +10, under 800 +6, under 1200 +3.
  • Cloud is a hard gate: ≤ 20% +10, ≤ 50% +5, ≤ 80% −5 “could easily be socked in”, higher −25 “very likely blocked”. More than 7 days out there is no cloud forecast and the note says so.
  • Daylight is a ceiling of 12, whatever the geometry.

Verdicts: ≥ 70 “Excellent. Look …”, ≥ 50 “Good chance …”, ≥ 30 “Marginal …”, else “Unlikely to be seen from here.”, plus “Not visible — stays below the horizon.” and “Daytime launch — not visible from here.” A launch is visible — and eligible for the Next visible launch card, the Live Activity and launch alerts — only when it clears the horizon, is not in daylight, and scores ≥ 30. Every launch carries where and when to look (compass point, elevation, T+ seconds) and a confidence that drops when the corridor is ambiguous or the peak is under 3°.

Each “When to go” window (Shelling, Bird Island & the Kindred Spirit mailbox, Dolphin watch, Ghost crabs, Turtle hatch watch, Right whale watch, Shorebirds, Moonrise over the ocean, Sunrise, Sunset) starts at 50 and scores only what varies between occurrences — the tide height and range for a shelling low, low cloud on the horizon for a moonrise, rain for a hatch watch. Things true of every occurrence (“boils almost always happen after dark”) print at 0 points so the reasoning still shows. Ratings use the same 75/55/35 bands. A window whose contributions are all zero is scored: false and shows its reasoning without a rating. Every window also states certaintydeterministic (tide, sun, moon: knowable years out, so it can be scheduled as a local alert) or forecast (rests on weather and decays with horizon) — and promises, which says exactly what it guarantees: a shelling window scores the conditions that expose shells, never what is lying there.

For example, a Shelling low scores the low-tide height (a minus tide +24, ≤ 0.5 ft +17, ≤ 1.2 +8, ≤ 2 −2, higher −18), the tidal range (≥ 5.5 ft spring +13, ≥ 4.5 +6, neap −8), that day’s surf (≥ 4 ft +14, ≥ 2.5 +6, calmer −6), an early low within 3 hours of dawn +10, and the hour’s weather. The Sunset and Sunrise windows carry the sunset model’s own score, unaltered, so the almanac and the Today card can never disagree.