Golf Shot Analyzer for InRange™

Golf Shot Analyzer for InRange™

Golfer hitting ball at Hazendal driving range using Inrange™ Simulator
Hazendal driving range with Inrange™

InRange™ logs everything: ball speed, carry, apex, launch angle, shot curve. Every shot, every session. You walk out of the bay with an Excel file full of numbers you'll never look at.

After two sessions and 340 shots, I decided to actually do something with mine.

The first version baked the shot data into the HTML as a JavaScript array. Fine until you want to add a session, at which point you're rebuilding the file. I knew I'd stop doing it.

SheetJS reads the Excel file directly in the browser. Drag it onto the drop zone, everything rebuilds. Nothing leaves your machine. Adding a new session is just appending rows to the spreadsheet, with no code and no redeploy.

I nearly built an API. Glad I didn't.

What I found out

My mid-irons are more consistent than I thought. The problem is lateral: I'm spraying it, not coming up short. About 12 shots across both sessions look like genuine mishits when you see ball speed drop and the arc go flat. I wouldn't have found those in a spreadsheet.

There's also a cluster of amber dots (predicted shots) sitting 20 metres short of my 7-iron average. I was probably reaching for a 9-iron without thinking about it. The kind of thing you only notice when you can see all the shots at once.

Finding your club distances

Golf club lined-up, for distances. With yellow range balls
The club lineup

If you have inRange sessions, drop your Excel export on the drop zone.

  • Club tabs and session dropdown filter everything together.
  • Click any arc or dot to pin a detail card. Esc to clear.
  • Amber dots are shots where the sensor guessed the club.


Live at https://www.johannesmerwe.com/project/golf-shot-analyzer loads with my data by default. If you have inRange sessions, drop your Excel export on the drop zone.