Transparent by design
How condition ratings work
Ratings are created by deterministic TypeScript rules, not artificial intelligence. The same inputs always produce the same assessment, and each result includes its contributing factors.
Source adapters
- National Weather Service: point forecasts and active alerts. Forecasts are cached for about 45 minutes; alerts for about 10 minutes.
- USGS Water Data APIs: modern OGC API observations for configured river stations, including gage height, streamflow, timestamps, and trend where enough samples exist. Results are cached for about 15 minutes.
- National Park Service: optional alerts for Congaree National Park when a server-side API key is configured. Results are cached for about 30 minutes.
- NOAA CO-OPS: high and low tide predictions for four reviewed coastal reference stations. Predictions are cached for about 30 minutes and do not describe surf, rip-current, or swimming-water quality.
Every South Carolina state-park guide links directly to its official park page for a manual operational-status check. These links cover park, gate, facility, trail, amenity, capacity, and seasonal notices. They are not a live closure feed: SC Outdoor Check does not scrape the park pages or infer whether a park is open or closed.
Reservoir pages use weather and official managing-utility links but do not claim that a downstream river gauge is a live lake-level reading. Reviewed USGS station support is configured for the Congaree, Broad, Saluda, Wateree, Black, Catawba, Great Pee Dee, Little Pee Dee, Lynches, and Middle Saluda rivers and Cedar Creek. Each station description states the reach it represents because one gauge cannot describe an entire river. The tidal Ashley River remains unconnected until tidal water-level changes can be interpreted separately from non-tidal river trends.
Signals and rating rules
Every assessment separates weather status, activity status, and data confidence. Rules consider severe weather, flood alerts, park closures, extreme heat, wind, precipitation, rising water, stale observations, and category-critical missing data. A pleasant forecast cannot produce a favorable boating, swimming, or hiking rating when the water, advisory, or closure checks required for that activity are missing.
Freshness
- Updated recently: within roughly two hours.
- Updated today: more than two but no more than 24 hours old.
- Stale: older than 24 hours.
- Unavailable: no valid observation time was returned.
Stale critical observations change data confidence to Staleand prevent a favorable activity rating. Timestamps more than five minutes in the future are rejected as unavailable, preventing clock or timezone errors from appearing as future updates.
Missing data and resilience
External responses are validated before display. Malformed or failed responses produce a clear unavailable state instead of a broken page. The caching layer can return a previously valid response for a limited period when a source is temporarily unavailable.
NWS surf/rip-current guidance and SCDES swimming advisories are linked as official manual checks, not called live. Coastal activity ratings explicitly remain limited until those checks are connected or reviewed by the visitor.
Local demonstration mode
Development and automated tests use realistic fixtures by default. They include normal weather, wind, high water, stale data, a park notice, and missing observations. Demonstration data is identified in the interface and must not be mistaken for current field conditions.
Limitations
Conditions can change between observations, and a station may not represent every cove, trail, launch, or river reach. Ratings are planning aids, not safety guarantees. Verify official warnings, closures, releases, access, and regulations before departure.