WeatherBlend
Multi-model forecast blending for Bonehill Rocks, Dartmoor
Dry-window forecast
Per-station, per-window blender. The label asks "is there a contiguous N-hour dry block somewhere within 09:00–18:00 local time?" — the realistic outdoor-walking window at Bonehill year-round (DST handled per target day). Phase 3b (53-feature LightGBM) ships as champion; Phase 3g (parameter-free MC over Phase 3a hourly P(wet)) ships alongside as challenger and guarantees cross-window monotonicity by construction. Cards show today and the next 4 forecast days.
Bovey Tracey
3-hour dry window
Phase 3b — lean (53 features)
Day-aggregate per-model precip totals, wet-hour counts, run-length stats, EA persistence, climatology, calendar encodings. Production champion.
| Target date (UTC) | +24h | +48h | +72h | Model agreement | MC longest dry run (3g only) | Conformal (90% set) | Best start (UTC, calibrated %) |
|---|---|---|---|---|---|---|---|
| 99% | — | — | 71% | — | confident dry day | 14:00Z (15%) | |
| — | 87% | — | 71% | — | confident dry day | 09:00Z (19%) | |
| — | — | 97% | 57% | — | confident dry day | 08:00Z (14%) |
Phase 3g — Monte Carlo over Phase 3a hourly P(wet) marginals
Parameter-free. For each daytime hour, sample 10,000 Bernoullis using Phase 3a's hourly P(wet); count the fraction of samples whose longest dry run reaches the target window length. No LightGBM, no learned weights — the prediction is purely 3a's per-hour view + the structural rule that longer windows are rarer. Cross-window monotonicity P(N=3) ≥ P(N=4) ≥ P(N=6) holds by construction (single MC pass, three indicators read off the same Bernoulli sequence).
| Target date (UTC) | +24h | +48h | +72h | Model agreement | MC longest dry run (3g only) | Conformal (90% set) | Best start (UTC, calibrated %) |
|---|---|---|---|---|---|---|---|
| 100% | — | — | — | med 9h (80%: 5-9h) | confident dry day | 14:00Z (15%) | |
| — | 99% | — | — | med 7h (80%: 4-9h) | confident dry day | 09:00Z (19%) | |
| — | — | 100% | — | med 9h (80%: 6-9h) | confident dry day | 08:00Z (14%) |
4-hour dry window
Phase 3b — lean (53 features)
Day-aggregate per-model precip totals, wet-hour counts, run-length stats, EA persistence, climatology, calendar encodings. Production champion.
| Target date (UTC) | +24h | +48h | +72h | Model agreement | MC longest dry run (3g only) | Conformal (90% set) | Best start (UTC, calibrated %) |
|---|---|---|---|---|---|---|---|
| 97% | — | — | 71% | — | confident dry day | 13:00Z (17%) | |
| — | 93% | — | 71% | — | confident dry day | 09:00Z (22%) | |
| — | — | 95% | 57% | — | confident dry day | 08:00Z (13%) |
Phase 3g — Monte Carlo over Phase 3a hourly P(wet) marginals
Parameter-free. For each daytime hour, sample 10,000 Bernoullis using Phase 3a's hourly P(wet); count the fraction of samples whose longest dry run reaches the target window length. No LightGBM, no learned weights — the prediction is purely 3a's per-hour view + the structural rule that longer windows are rarer. Cross-window monotonicity P(N=3) ≥ P(N=4) ≥ P(N=6) holds by construction (single MC pass, three indicators read off the same Bernoulli sequence).
| Target date (UTC) | +24h | +48h | +72h | Model agreement | MC longest dry run (3g only) | Conformal (90% set) | Best start (UTC, calibrated %) |
|---|---|---|---|---|---|---|---|
| 99% | — | — | — | med 9h (80%: 5-9h) | confident dry day | 13:00Z (17%) | |
| — | 96% | — | — | med 7h (80%: 4-9h) | confident dry day | 09:00Z (22%) | |
| — | — | 99% | — | med 9h (80%: 6-9h) | confident dry day | 08:00Z (13%) |
6-hour dry window
Phase 3b — lean (53 features)
Day-aggregate per-model precip totals, wet-hour counts, run-length stats, EA persistence, climatology, calendar encodings. Production champion.
| Target date (UTC) | +24h | +48h | +72h | Model agreement | MC longest dry run (3g only) | Conformal (90% set) | Best start (UTC, calibrated %) |
|---|---|---|---|---|---|---|---|
| 90% | — | — | 57% | — | confident dry day | 08:00Z (24%) | |
| — | 66% | — | 14% | — | confident dry day | 08:00Z (25%) | |
| — | — | 98% | 43% | — | confident dry day | 08:00Z (21%) |
Phase 3g — Monte Carlo over Phase 3a hourly P(wet) marginals
Parameter-free. For each daytime hour, sample 10,000 Bernoullis using Phase 3a's hourly P(wet); count the fraction of samples whose longest dry run reaches the target window length. No LightGBM, no learned weights — the prediction is purely 3a's per-hour view + the structural rule that longer windows are rarer. Cross-window monotonicity P(N=3) ≥ P(N=4) ≥ P(N=6) holds by construction (single MC pass, three indicators read off the same Bernoulli sequence).
| Target date (UTC) | +24h | +48h | +72h | Model agreement | MC longest dry run (3g only) | Conformal (90% set) | Best start (UTC, calibrated %) |
|---|---|---|---|---|---|---|---|
| 87% | — | — | — | med 9h (80%: 5-9h) | confident dry day | 08:00Z (24%) | |
| — | 71% | — | — | med 7h (80%: 4-9h) | confident dry day | 08:00Z (25%) | |
| — | — | 91% | — | med 9h (80%: 6-9h) | confident dry day | 08:00Z (21%) |
A dry "hour" requires all four 15-min EA gauge readings to be ≤ 0.1 mm. Search is bounded to 09:00–18:00 local time (Europe/London, DST-aware) — overnight dry stretches don't count, and a dry block that bridges 18:00 into the evening isn't credited. Cross-midnight dry stretches are not credited (UTC-day boundary).