Settings
How to enable weather automation
Turn on the weather engine, pick a mode, and see where per-network recommendations show up on the dashboard and in the field app. Covers prerequisites, close signal, data providers, and the twice-daily cron.
The weather engine is what turns TrailsIQ from a static trail catalog into a live one. It pulls per-network forecasts twice a day, scores each trail against its surface / drainage / primary-use profile, and — depending on the automation mode you pick — either recommends a condition, auto-closes trails on wet days, or does the full open-and-close cycle for you.
If your home screen on the field app says "No weather data" and your Trails recommendations panel is empty, this article walks you from off to on.
What weather automation actually does
Twice a day, TrailsIQ hits the weather engine for each of your networks and pulls three things: rainfall over the last 24 h, rainfall forecast for the next 24 h and next 72 h, and a per-trail wetness score (or soil-moisture score, depending on which signal you pick).
Every trail carries a profile — its surface type (loam, hardpack, rock, boardwalk, ...), its drainage rating (poor, mixed, well-drained), and its primary use (mtb, hiking, nordic, ...) — that maps to a threshold. When the current signal crosses that threshold, the engine produces a recommendation: open, caution, or closed.
What happens next depends on the automation mode you pick:
- Off — the engine doesn't run and no recommendations are produced.
- Recommend only — the engine runs and stores its call, but never touches the trail's actual condition. You see the suggestion; you flip the switch.
- Auto-close only — the engine can flip a trail from Open to Caution or Closed, but never re-opens it. Reopening is a manual call.
- Auto open + close — the engine owns the full open / caution / closed cycle. A drying trail gets re-opened without a manager touching it.
Under the hood these are weather_mode values off, recommend_only, auto_close_only, auto_open_close.
Prerequisites — trail attributes the engine needs
The engine won't produce useful recommendations for trails whose profile it can't read. Every trail needs:
- Primary use — mtb, hiking, nordic, alpine, etc. Sets the difficulty icon set AND selects which threshold table applies.
- Surface type — loam / hardpack / rock / boardwalk / gravel / mixed. Feeds directly into the wet-day threshold.
- Drainage rating — poor / mixed / well-drained. A poor-drainage loam trail closes at a much lower rainfall than a well-drained rock one.
Missing values default to loam / poor / mixed — the pessimistic fallback. The engine will still run, but the threshold it uses is a guess, and the recommendation won't match your ground truth as tightly as it could.
Set these on each trail from Trails → [trail name] → Edit. See the How to create a trail article for the full field walkthrough. If you have dozens of trails to update, the fastest path is a bulk-import via Trails → Import — the CSV format accepts all three columns.
Turn it on — Settings → Weather automation
Owner or manager only. Open Settings from the sidebar, then pick Weather automation from the left-hand section rail (grouped under Field tools). The section header reads Weather automation with a blurb: "TrailsIQ pulls Open-Meteo forecasts and ERA5 soil moisture twice a day, scores each trail against a surface × drainage × use threshold, and (depending on the mode below) updates the trail's condition automatically. The check runs at 07:00 and 19:00 in your organization's timezone."
Four blocks to configure:
- Mode — the four radio cards described above (Off / Recommend only / Auto-close only / Auto open + close).
- Close signal — Wetness (rain-based, default) or Soil (satellite-derived soil moisture).
- Weather data source — provider selects for trail-conditions and daily reports.
- Threshold overrides — the per surface × drainage × use cell table. Default thresholds live in code; type a number to override for a specific combination. Leave blank to use the default.
Hit Save weather settings at the bottom. The first check kicks off on the next 07:00 / 19:00 cron tick — see the Timing section below for how to force one earlier.
Which mode to pick
-
New to weather automation? Start on Recommend only for a week or two. The engine will produce its calls, they'll appear on the field-app Trails panel and on the dashboard's Trail Conditions page, and you can compare the algo's take against what you'd have done manually. Nothing gets auto-flipped, so a bad threshold can't accidentally close a dry network.
-
You trust it on wet days, not on dry ones? Move to Auto-close only. The engine will flip trails to Caution or Closed on high-rain days, but reopening is manual — you decide when the network is ready. Great for orgs that have had bad experiences with algorithms declaring things dry that weren't.
-
You want the full loop? Pick Auto open + close. The engine owns the open / caution / closed cycle. Managers can still override any auto-flip and the manual override sticks until the next check produces a different recommendation. Best fit for orgs with well-tuned thresholds and a lot of trails to babysit.
-
Not ready yet? Leave it at Off. The Trails chip on the field-app home still opens the trail-status page (you can flip conditions manually there); the Weather recommendations side panel just doesn't populate.
Close signal — wetness vs soil
Two ways to decide when a trail is too wet to ride:
-
Wetness (rain-based) — the default. Runs off rainfall totals + a decay curve for each trail's surface / drainage profile. Provider-independent (works with any weather source), calibrated on trail-day observations.
-
Soil moisture — pulls per-trail soil-moisture percentage from a global reanalysis grid (ERA5 on Open-Meteo, or NWS local model on GFS). More directly ties to what's under your wheels, but the grid is coarse (~9 km cells) and needs a source that publishes soil-moisture — so it's tied to your weather-data provider.
TrailsIQ ships with Wetness as the default because it's provider-independent — you can swap the trail-conditions provider without recalibrating your thresholds. Soil is a fine choice when your operation is on wetness-insensitive surfaces (rock, hardpack) where a rain-based signal over-reacts.
If you're not sure, keep the default. You can flip between them at any time — the engine re-scores against the current signal on its next check.
Data source
Two provider selects: one for Trail conditions (the automation engine), one for Daily reports / history (the numbers that show up on the daily-report weather card and in report history).
- NWS local — the National Weather Service's own forecast API. US only, about 2.5 km resolution, and the sharpest picture available inside the country. This is what a US organization gets unless you say otherwise.
- NOAA GFS — the National Weather Service's global model. Worldwide, about 13 km resolution. This is what an organization outside the US gets.
- Open-Meteo — global, about 11 km, with soil moisture out of the box. Open-Meteo's free service is licensed for personal and educational use only, so it is not the default for anybody; pick it only if you hold your own license with them.
Both defaults are public data from the US government, free to use commercially, and neither needs an account or a key. You do not have to think about any of this unless you want to — the picker is here because some organizations have a reason to prefer a particular source, not because a choice is required of you. The wetness thresholds stay valid whichever one is in use.
Where recommendations show up
Once the engine has produced a per-network call, it surfaces in two places:
- Field-app home — the Trails chip on the compact weather bar opens the Trail Status page. In the header of that page, next to the × close, a Recs pill appears when the engine has recommendations to share. Tapping it slides in the Weather recommendations panel — per-network cards with the algo call, a one-line reason, and an expandable soil / wetness / rainfall / forecast breakdown.
- Dashboard — the Trail Conditions page shows the same recommendations inline against each network header, with the algo's call in a colored pill and a "Why:" line.
If weather_mode is off, or if the engine has never run for your org (fresh install, no data yet), the Recs pill on the field app doesn't appear and the Trails panel is empty. The Trail Status flow still works — you can flip conditions manually — you just don't get the algo overlay.
Timing — when the check runs
The scheduler fires the weather check twice a day at 07:00 and 19:00 in your organization's timezone (whatever's set in Settings → General → Timezone).
- The 07:00 check is the primary one — it grabs the overnight rain totals and produces the day's recommendation before crews head out.
- The 19:00 check re-scores against the day's actual rainfall and any evening forecast update.
If you turn automation on outside those windows, you won't see recommendations until the next tick — so a threshold change made at lunchtime shows its effect that evening. If you need a run sooner than that to check a setting, ask us and we can trigger one for your organization.
Last check timestamp is shown in the top-right of the Weather automation settings page ("Last check: 2 hours ago") — useful when troubleshooting whether the engine ran at all.
Common gotchas
- "No weather data" on the field-app home means one of two things. Either weather automation is switched off, or the engine has not run yet on a new workspace. Turn the mode on and wait for the next 07:00 / 19:00 tick.
- Recommendations only appear when a network has trails. An empty network has no threshold to score against — the engine skips it. Add at least one trail with primary_use / surface / drainage set.
- Missing surface / drainage falls back to loam / poor. The engine still runs, but the recommendation may be pessimistic. Fill the fields on your busy trails first.
- Auto-flip modes respect manual overrides — but only until the next opposite recommendation. If a manager manually opens a trail after the engine closed it, and the engine's next check also wants it closed, the manual open is preserved. If the next check wants it open, the manual override is dropped in favour of the algo call. This is deliberate — the human's decision is honoured while the situation is unchanged, but the engine wins when reality catches up to the human.
- Threshold overrides are per surface × drainage × use combination. Leaving a cell blank means "use the default from the code table." Setting a value there overrides that one combination without touching the others.
- You do not have to choose a weather source. TrailsIQ picks one for you — the US National Weather Service inside the US, and NOAA's global model elsewhere. Both are public data. The picker is there if you have a reason to prefer another, and the wetness thresholds stay valid whichever is in use.
- The recommendation is per-network, not per-trail. Trails within a network share the network's forecast; per-trail differences come from each trail's own surface / drainage profile against that forecast.
What's next
- If your trails are missing surface / drainage / primary-use, read the How to create a trail article — the fields are on the Edit page.
- Once recommendations are flowing, the How to use the field app article covers where they show up in-field.
- Managers can subscribe to the Weather-driven condition change email so they get notified when the engine flips a trail — see the Email preferences article.