Range Whisperer

A local coaching dashboard for Garmin R10 range sessions.

Upload one CSV, clean the messy export automatically, and read the session through carry control, gapping, dispersion, and practical next-step coaching notes.

Built for local use
Removes Garmin's units row before analysis
Uses Club Type first when Club Name is blank
Flags carry outliers without deleting rows
Generates grounded coaching insights from the uploaded data
Garmin R10 CSV Upload
Drop a session export and let the numbers turn into a coaching story.

Range Whisperer reads the local CSV in the browser, removes Garmin's units row, cleans messy values, flags carry outliers, and builds charts, gapping, and practice-ready insights.

Local only. No upload, no cloud, no account.
What You Get

From raw launch monitor rows to a practice plan

This benchmark build is designed to feel like a premium solo coaching tool rather than a generic spreadsheet viewer.

Reliable parsing

Units rows, blank club names, partial rows, and malformed numbers are handled without crashing the session.

Explainable outliers

Carry outliers are detected within each club using an IQR rule and can be included or excluded on demand.

Golf-aware club order

Clubs are sorted by session carry first, with a known golf order as fallback.

Actionable insights

The app turns variability, overlap, bias, and session drift into practical next steps without pretending to diagnose your swing.

Expected CSV Shape

Optimized for Garmin R10 range exports

The parser expects the Garmin export pattern shown in your sample and safely falls back when values are blank or malformed.

First data row can be a units row like [mph], [deg], and [yds]. It is removed before any stats are computed.
Canonical club label uses Club Type, then falls back to Club Name, then Unknown Club.
Rows with no usable shot metrics are skipped quietly instead of poisoning the analysis.