Big Bend canoe trip planner

How likely is a runnable week, Colorado Canyon through Santa Elena Canyon? It's a statistical model trained on 90 years of daily flow at IBWC 08375000, Rio Grande at Johnson Ranch (just below the USGS Castolon gauge, which it tracks closely). Recent years count most. Everything runs in your browser. The method, assumptions and validation are below, and there's a full-context file if you want to build on it.

Model: chance a trip starting that day stays in range every day Typical odds for that date (weighted base rate) What actually happened (strip below chart)

Upstream right now

The model's forecast rests on baseflow at Johnson Ranch. Everything here was tested as an extra model input and didn't improve validated skill (see "How the design was chosen" below). Upstream flow is still the first place a change shows up, and the climate readings are useful context, so they're shown for your own judgment.

Where the data comes from

Every source behind this page, on a map and in a table. Click a table row to find it on the map, or a marker for details and a link to the live source. Model input means the default forecast uses it. Context means it's shown for judgment only: it was tested as a model input and didn't improve validated skill.

The basin outline is an approximation drawn for the rainfall index, and the trip route is straight segments between access points, not the river's actual path.

Which weeks are usually good, and is it changing?

The lines show the share of years in which a trip starting that day stayed in range the whole way (current trip length and range): for the whole record, and for the last 20 years. The grid shows every year since 1936 (newest at top): each column is a start date, and each cell is colored by what that trip would have met.

Last 20 years All years since 1936 Ideal (300–1,000 every day) Inside your range every day Too low on some day Too high on some day No data

Chance of at least one runnable start date in each month

If you can move your dates anywhere inside the month, how often did at least one start date work?

How well does the model do?

Every candidate model was scored on 2008–2025 by forecasting each year without it. There are two schemes:

The score is the Brier skill score against a common benchmark: the plain 1993-onward base rate for that date and lead. 0 means no better than that benchmark, 1 would be perfect, and negative means worse. Forecasts are issued every 10 days across the year, and "fall" means issued Aug–Nov. These numbers come from scripts/validate.mjs, which runs the same model.js this page uses, for 7-day trips. The highlighted row is the model in use.

Calibration of the model in use (): when it says X%, how often did the trip work?

How the model works

1. What counts as a runnable trip

A trip starting on day t is runnable if the daily mean discharge stays between your min and max on every day from t to t+L−1, where L is the trip length (default 7). One day outside the range fails the trip. A single flash flood or one day below the minimum is enough. Daily means can hide a short spike within a day.

The thresholds come from Southwest Paddler's guides for Colorado Canyon and Santa Elena Canyon. Both give minimum 200 cfs, optimum 300–1,000, maximum 1,200.

2. Which gauge, and why it's still an assumption

The guides don't name a gauge. v1 of this planner used USGS 08374550 near Castolon, which has a continuous record only since 2007. v2 uses IBWC 08375000 at Johnson Ranch, a few miles downstream, which has a complete daily record since April 1936.

Over 6,998 overlapping days the two agree closely. The median Johnson Ranch/Castolon ratio is 1.00 for flows of 50–3,000 cfs (10th–90th percentile 0.65–1.33), and they agree on whether a 7-day window is runnable 95.5% of the time. The flow chart tab still shows Castolon.

Evidence the thresholds fit this stretch of river: during the Nov 12–18, 2016 trip, Castolon read 286 → 209 cfs and the paddler felt close to the minimum by the last day. Presidio, upstream, read only 180 → 141 over the same days. That's one trip, so weak evidence, but it points to the Castolon/Johnson Ranch reach.

Caveats. Johnson Ranch and Castolon are below the Terlingua Creek confluence, so a storm on Terlingua Creek shows up here but not in Colorado Canyon. Gains and losses between Presidio and Castolon (Alamito Creek, springs, seepage, diversions) aren't modeled. For the upstream Colorado Canyon section, Presidio (IBWC 08374200) is physically closer. Both are shown under "Upstream right now".

3. Data

4. The model

For each lead time k (days from the as-of date to the trip start), a separate weighted logistic regression is fit:

P(runnable) = 1 / (1 + e−(β₀ + β₁z + β₂z²)),  x = log₁₀( min daily mean over the 7 days ending on the as-of date ),  z = standardized x

5. How the design was chosen (including what didn't work)

Nineteen candidate specs were compared (the full table is above). They vary three things: which inputs (baseflow; plus Presidio 3-day mean flow; La Boquilla storage; El Niño; Conchos basin rainfall; 365-day mean flow), which years (2007+, 1936+, 1950+, 1982+, 1993+), and recency half-life (none, 25, 12, 8 or 5 years). Every added input gets a baseline trained on the same years, so the comparison is fair. The rule was set in advance: the score is mean forward-chained Brier skill for leads of 3–60 days, 200–1,200 cfs, issued Aug–Nov, and a challenger has to beat the current default by more than 0.02 to replace it.

6. Known weaknesses

7. How to read it

Build on this

CONTEXT.md is a complete technical handoff for this project. It covers the architecture, every data source and its quirks (including how to pull from the IBWC portal), the model's exact spec, all the validation results, the gauge assumption and the evidence for it, and a prioritized roadmap. Paste it into your AI tool of choice, or fork the repo and go your own way.

Raw file Read on GitHub Repo

Data: all sources and map · · source code (model.js, planner.html, scripts/validate.mjs)