For the last six months we’ve been monitoring trail status. Every five minutes, around the clock, our scanners check 21 trail systems across the Southeast and fire off SMS and email alerts the moment something changes. That’s the what is happening now product.
This week, we shipped the what is going to happen next product.
The fullsndr prediction engine v0.1 is now live. It uses Google DeepMind’s WeatherNext 2 ensemble weather model to forecast trail closures up to 7 days out, with confidence scoring and rider-actionable ride windows. If you have a Pro account, the headline at the top of every trail card on your dashboard reads something like:
Open until Sunday 8:00 AM, then 42% closure risk for 18h
That is a real prediction the system made today (April 14) for Standing Boy Trails in Columbus, Georgia. The 42% closure risk on Sunday is driven by a weather signal that none of the deterministic forecasts your weather app uses can see.
Why deterministic forecasts miss closures
When you check the Weather Channel app, you see a single number for “chance of rain Sunday.” That number is the output of one weather model run, picking the most likely outcome.
The problem with red Georgia clay (and most natural-surface mountain bike trails) is that it closes on any measurable rain. Not 50% probability rain. Not heavy rain. Any rain. A 0.1-inch overnight shower at 2 AM, undetected by your morning weather check, is enough to lock the gate by 6 AM.
Deterministic forecasts give you the median outcome. For trails, the median doesn’t matter — the tail matters. What’s the chance of any rain at all, even if it’s not the most likely outcome?
That’s where ensembles come in.
What WeatherNext 2 actually is
WeatherNext 2 is Google DeepMind’s machine-learning weather model. Instead of running one simulation, it runs 64 of them per grid cell, each with slightly perturbed initial conditions. The result is a probability distribution at every point on the globe at every forecast hour for 10 days out.
For Standing Boy Trails specifically, our ETL pulls 28 forecast steps per day (six-hour granularity, seven-day horizon). At each step we get:
- The 10th, 50th, 90th percentile precipitation amounts
- The maximum across all 64 ensemble members
- The probability that any member predicts more than 0.5mm of rain
- The probability that any member predicts more than 2.5mm of rain
- Temperature, wind, and ensemble spread for every variable
That’s the raw input for our prediction algorithm.
How the prediction engine works
For every six-hour forecast step, we compute three things:
1. Ensemble exceedance probability. What percentage of the 64 ensemble members predict measurable rain (>0.5mm) in this step? For high-sensitivity surfaces like Standing Boy’s red clay, even a 7.8% exceedance probability is actionable.
2. Tail amplifier. If even one ensemble member predicts a heavy rain event (e.g., 5mm+), we boost the closure probability beyond what raw exceedance suggests. This is the patent-claimable insight: ensemble tails matter more than ensemble medians for surfaces with low closure thresholds. A 92% chance of “no rain” with one outlier predicting a thunderstorm is dangerous in a way the median forecast can’t show.
3. Confidence score. The prediction’s confidence is a product of two factors:
- Horizon decay — predictions further out are less reliable (full confidence at hour 6, dropping to 60% by hour 168)
- Ensemble agreement — when the spread between p10 and p90 is wide, we know less about what will actually happen, so confidence drops
The output of every step is a closure probability with full reasoning trace. Here’s an actual prediction from our log this week for Standing Boy at hour 138 (Sunday 6 PM ET):
closure probability: 42.2%
confidence: 0.67 (horizon) × 0.70 (agreement) = 0.47
reasoning:
P(>0.5mm) = 42.2%, max member = 5.66mm, tail amplifier = 25%,
ensemble spread = 2.95mm, horizon factor = 0.67, agreement = 0.70
This is the kind of prediction the patent describes as “probabilistic ensemble correlation with surface-specific sensitivity weighting.” It’s also the kind of forecast that makes you reschedule your Sunday ride to Saturday morning.
Ride windows, not weather data
The forecast that matters to riders isn’t a wall of probabilities — it’s a yes-or-no answer to “should I drive out tomorrow?”
The prediction engine aggregates contiguous high-confidence/low-risk steps into ride windows:
Open Tuesday 6 AM through Sunday 8 AM (126 hours) Closed Sunday 8 AM through Monday 6 AM (18 hours, peak risk 42%) Open Monday 6 AM onward
That gives you actionable answers. Drive out anytime through Saturday night. Skip Sunday morning. Tuesday’s good again.
The continuous feedback loop
The prediction engine learns from every wrong call. Every prediction is logged with its full ensemble input snapshot. Every closure event observed by our 5-minute scanner becomes ground truth that scores the prediction after the fact.
As of today, we’ve scored 304 elapsed predictions against actual outcomes:
- 96.7% binary accuracy at the 10% alert threshold (recently raised to 100% at the 20% threshold after calibration tuning)
- Brier score: 0.000765 — that’s the standard meteorological forecast verification metric, and 0.0008 is excellent calibration
- 10 false positives at the 10-15% probability range (alerts that didn’t materialize)
- Zero false negatives (no closures missed by predictions ≥ 10%)
The Brier score is what actually matters for a probabilistic system. It measures how well predicted probabilities match observed frequencies. Our 0.0008 means when we say “10% closure risk,” it actually happens about 10% of the time across our scored sample. The model is well-calibrated.
What’s next
The first real test of the prediction engine is coming this Sunday (April 19-20). The engine is forecasting:
- Tannehill State Park: 47% closure risk Sunday (CAMP-SORBA cluster)
- Standing Boy: 42% closure risk Sunday morning
- Birmingham cluster (Red Mountain, Oak Mountain): ~15% closure risk
If those closures materialize, we’ll have the first ground-truth-validated regional prediction in the system’s history. If they don’t, we get calibration data for tuning sensitivity.
Either way, the loop runs again tomorrow at 03:17 UTC when WeatherNext 2 publishes the next initialization, and the cycle continues.
If you want the predictions on your dashboard, upgrade to Pro for $5/month. Free riders still get the real-time alerts when trails actually change status — that part is and always will be free.
The prediction engine is the upgrade for riders who need to know when, not just now.