The problem
Big Sky Trail Alliance maintains 340 miles of trails across the Gallatin and Madison ranges — everything from groomed Nordic loops to Class 4 scramble routes above 10,000 feet. Their volunteer network of 180 patrollers submits condition reports year-round: deadfall, erosion gullies, washed-out bridges, missing signage, wildlife closures.
Until TrailMind, those reports came in as emails with phone photos attached and a free-text description that ranged from “big tree down near the creek” to a six-paragraph essay. The trail coordinator was spending 15 hours a week triaging the inbox — manually geocoding locations from vague descriptions, categorizing hazard types, deduplicating reports from overlapping patrols, and entering work orders into a shared Google Sheet.
Priority decisions were gut calls. A downed bridge on a lightly used connector trail might sit for weeks while a cosmetic deadfall on the popular Hyalite Creek trail got cleared immediately because more people reported it. There was no way to weigh severity against traffic volume, no spatial view of where hazards were clustering, and no closed-loop tracking from report to resolution.
The Alliance’s board wanted full trail network coverage and data-driven maintenance prioritization before the 2026 summer season. Their budget was tight — they needed a tool built for them, not a six-figure enterprise platform adapted to them.
What we did
Week one we mapped the reporting workflow end-to-end with Connie’s team and built the data model. Every trail segment got a PostGIS linestring with attributes: trail name, difficulty class, average weekly traffic (from their Trailmaster counter data), and maintenance history. We designed the report schema around what volunteers actually know in the field: a photo, a GPS pin from their phone, and a one-sentence description.
Week two we built the ingestion pipeline. Volunteers submit reports through a mobile-optimized web form — no app install required. The photo and GPS coordinates hit a serverless function on Vercel that calls Claude Vision with a structured prompt: classify the hazard type (deadfall, erosion, washout, structural damage, signage, wildlife), estimate severity on a three-point scale, extract any visible details (tree diameter, water depth, trail obstruction percentage), and flag whether the trail is passable or impassable. Claude returns structured JSON that populates the work order automatically.
Week three was the prioritization engine. Each work order gets a composite score: hazard severity × trail traffic volume × days-since-reported × seasonal weight (a washed-out bridge matters more in June than November). The coordinator dashboard shows a ranked queue with map pins color-coded by priority. Duplicate detection uses PostGIS proximity queries — if two reports land within 50 meters on the same trail segment and Claude classifies them as the same hazard type, the system merges them and links both reporters.
Week four we built the resolution workflow. Crew leaders claim work orders, log completion with a photo, and the system notifies the original reporter that the hazard is resolved. We added a seasonal planning view that shows historical hazard density by trail segment so the Alliance can pre-position crews and schedule preventive maintenance before problem areas recur.
Week five was testing with live volunteer reports, training the coordinator team, and hardening the deployment. We ran 60 real reports through the pipeline end-to-end, tuned Claude’s classification prompt against edge cases (is that a fallen tree or a deliberately placed log bridge?), and shipped documentation.
Results
In the first month of operation, TrailMind processed 147 volunteer reports. Hazard triage time dropped from an average of 25 minutes per report to under 6 minutes — a 4× improvement. The coordinator went from 15 hours a week on triage to 4. Duplicate reports fell 60%: volunteers still submit overlapping reports, but the system merges them automatically and the coordinator never sees the noise.
Full trail network coverage is now a reality. Every maintained trail segment has a live hazard status. The priority queue surfaced three erosion clusters on the Bridger Ridge connector that had been reported individually but never recognized as a systemic drainage problem — the Alliance rerouted 200 meters of trail before the damage compounded.
The board approved expanding TrailMind to two partner organizations for the 2027 season. Total build cost was $36k against a projected annual savings of $22k in coordinator labor alone, not counting the avoided trail damage from faster response.
