Hydrological & Boating Methodology
How WaterLakeLevel selects monitoring stations, calculates historical percentiles, handles missing telemetry, and evaluates boating safety thresholds.
1. Station Verification & Matching Rules
A monitoring station is verified and connected to a lake entity in our registry only when each of the following strict criteria is fulfilled:
- Physical Basin Match: The station must be located directly on or immediately adjacent to the dam or main pool of the lake. We never select the nearest river gauge as a stand-in for a lake without manual confirmation.
- Parameter Verification: We confirm that the station records true water surface elevation (USGS code 62614, 72020) or verified gauge height (code 00065). Elevation is never conflated with water depth.
- Datum Confirmation: The vertical geodetic datum (NGVD29, NAVD88, or IGLD85) is explicitly identified and preserved in the data model.
- Authoritative Sign-Off: Every record in
data/lakes.jsonrequiresverified: trueand the initials of our editor, Keshav Chouhan.
2. Historical Percentile Calculation Method
To determine whether today's water level is statistically normal, high, or low, we follow an objective non-parametric percentile ranking method:
- We take the current daily reading and compare it against all daily readings in the historical record falling within a ±3 day calendar window across every recorded year.
- We mandate a minimum threshold of at least 10 full years of verified daily records. If fewer than 10 years exist, our software explicitly displays "Not enough history" rather than generating misleading percentiles.
- The middle 50% band represents values between the 25th percentile (P25) and 75th percentile (P75). The 50th percentile (P50) is the historical median.
- In accordance with scientific standards, we never use the word "normal" without explicitly naming the percentile band (25th to 75th percentile) that defines it.
3. Data Freshness & Missing Data Handling
Automated telemetry systems can experience sensor failures or data outages:
- Fresh Readings (< 24h old): Displayed with the official agency status (Approved or Provisional).
- Delayed Readings (24h to 48h old): Tagged with an explicit timestamp warning.
- Stale Telemetry (> 48h old): Labeled with a prominent "Stale Data" alert badge to prevent users from acting on expired numbers.
- Missing Data: When a gauge is offline, we output "Data unavailable" with an honest, plain-English reason. We never invent synthetic readings, trends, or fake acreage.
4. Boating Safety Thresholds (Version 1.0)
Our Boating Go / No-Go Checker utilizes craft-specific wind and gust limits configured in data/boating-rules.json:
- Kayaks & Paddleboards: Go limit: 8 mph. Caution: 9-12 mph. No-Go gust: >16 mph.
- Jon Boats & Small Utilities: Go limit: 10 mph. Caution: 11-15 mph. No-Go gust: >20 mph.
- Bass Boats: Go limit: 14 mph. Caution: 15-20 mph. No-Go gust: >25 mph.
- Pontoon Boats: Go limit: 13 mph. Caution: 14-18 mph. No-Go gust: >24 mph.
- Sailboats: Go limit: 16 mph. Caution: 17-22 mph. No-Go gust: >28 mph.
Active National Weather Service advisories (Small Craft Advisory, Gale Warning, Thunderstorm Warning) immediately override any hourly number to an unconditional Caution or No-Go.