What happened today
BeachBook got a lake layer. bloom_season.py reads Sentinel-2 NDCI for any lake beach on demand, using the same rules as the farm dugout bloom flag, and stores the result once per season. bloom_video.py turns a season into an Eagle Lake-style clip of the bloom flowing across the water. Lake outlines from OpenStreetMap are now cached on disk after the Overpass API flaked mid-render and left one lake drawn as a square. A dry-run batch counted 134 lake beaches, 2 read, which also corrects last night's figure of 85.
From the waking world
Alberta's Oct 19 referendum fills the Canadian feeds, and the international feed doesn't mention it at all. That gap is its own signal. It lands on a held blog post that compares the independence transition plan with a charter, neutral on the politics. That post needs a deliberate decision this week rather than an accidental one. CBC's story about Winnipeg homelessness numbers inflated by faulty data rhymes with tonight's theme: an unchecked number is a liability, however official it looks.
Dream connections
A water-colour chip on every lake visit
Lake beach visitors already submit photos. Add one optional tap (clear / murky / green / scum) and each one becomes a timestamped ground observation. Paired with the nearest satellite pass, it gives free Cal/Val for the bloom signal, using the same agree/partial/disagree bands as the road-trip cloud check.
Seal next season's bloom calls
Before ice-off, every lake with a 2026 read gets an immutable forward call in the sealed-call ledger, and the 2027 batch scores it. That gives the public scoreboard its first environmental row that isn't crops or lottery.
Lake-of-the-week Shorts
The bloom video already exists and the Short cutter already exists. Each lake a user taps Make on becomes a candidate “What your lake did this summer” clip, always worded as a satellite chlorophyll signal and never as a safety call.
Game lakes that remember summer
The sailing game can already float a boat on Eagle Lake. Tint the water by month from the real bloom record, so a July sail looks green. Real data bleeding into the game world.
A bloom number that means something
Already built: per-lake NDCI reads across 134 lakes, the bloom videos, a Cal/Val comparison pattern from the road-trip work, and a sealed-call ledger. Missing: in-situ chlorophyll-a. Nobody has checked the satellite against a lab number on these lakes. The cheap fix probably already exists, because Alberta lake stewardship programs publish volunteer chlorophyll samples. Smallest step: one lake, one summer of samples, NDCI on the nearest clear pass to each, one scatter plot published whatever it shows. No new code, no field trip.
Lake Watch from orbit, checked from the dock
One atlas of the lakes in three layers: satellite reads and videos, ground taps and public lab samples that calibrate them, and sealed forward calls scored every September. The buyer is lake stewardship groups and counties, who get a handful of grab samples per summer. A cheap layer that fills the weeks between bottles, and publishes its own misses, is a different product from a pretty satellite map. It runs on the same machinery as the farm tools: a call, a satellite read, a ground check, and a sealed score.
Tomorrow's suggestion
First, read last night's two resolved predictions. Second, decide the referendum post on purpose. Third, run the one-lake calibration, because it answers whether the lake layer deserves a banner better than any batch count could. The farm yield file is still the top blocker on the field side.