← Back to lakes

About Lake Check

What this is

Some of BC's most popular day-use lakes — Sasamat Lake (White Pine Beach), Hayward Lake, Stave Lake — have no reservation system: it's first-come, first-served, and the parking lot simply closes once it's full. Lake Check estimates how likely a lot is to fill on a given day, and lets people who are already there report the current status for everyone else.

How the fill-risk score works

Each lake's score (0–100, shown as Low / Moderate / High / Extreme) is a heuristic combining six signals — no historical attendance data or live lot sensors are involved, since none exist publicly for these lakes:

  • Day of week — weekends carry the largest weight, Fridays a moderate bump, weekdays the lowest baseline. BC statutory holidays (Victoria Day, Canada Day, BC Day, and so on) count at weekend-level demand regardless of which weekday they land on.
  • Temperature — warmer weather pushes the score up (more people heading to the water), colder weather pulls it down.
  • Cloud cover — clearer skies push the score up, overcast conditions pull it down.
  • Lot size — smaller lots (like Stave and Hayward) push the score up relative to a larger lot (like Sasamat) under identical weather, since a small lot fills under conditions that barely dent a big one.
  • Rain — actively raining pulls the score down, on top of whatever cloud cover alone would suggest, since a cloudy-but-dry day and a rainy day shouldn't score the same.
  • Time of day — the score ramps up gradually for the first stretch after a lake opens (from its posted gate time, or 6am for Hayward and Stave, which have no formal gate), reaching full weight by mid-morning — so checking right at opening doesn't overstate risk before anyone's actually arrived.

Weather comes from OpenWeatherMap, refreshed roughly every 3 minutes. This stays a live-conditions check, not a forecast — it always scores right now, not some future visit time. All six signals are combined into a single score and mapped to a risk level; the full logic is a small, pure, unit-tested function — see src/lib/fillRisk.ts in the source if you want the exact numbers.

Sasamat Lake (Belcarra Regional Park) has posted vehicle gate hours. Outside them, Lake Check shows a gate status instead of a score — "how full is it" doesn't really apply when the lot isn't accessible yet.

Rain forecast widget

Each lake page also shows a near-term rain forecast — a 24-hour precipitation chart plus a live radar reading — sourced separately from Environment Canada's public MSC GeoMet forecast and radar data, not OpenWeatherMap. It's a forward-looking supplement for planning ahead, and is deliberately kept separate from the fill-risk score above, which only ever reflects live conditions right now rather than what rain is forecast to arrive later — so the two can occasionally disagree, and that's expected rather than a bug.

Crowdsourced reports

Anyone can report a lot as Full, Spots available, or Unsure. Reports are anonymous, rate-limited to prevent spam, and shown alongside the prediction so you can weigh a recent human report against the model's estimate.

The score is a heuristic estimate, not a guarantee — conditions on the ground can differ from what the weather and calendar alone would suggest. Lake coordinates and lot capacity in the app are best-effort estimates too.