Clubs

Everything about your bag lives in one section, under Clubs in the top navigation. A club needs at least 10 shots before it counts as "profiled" in aggregate stats, but it still appears in the table before then.

The four tabs

A sub-navigation bar sits under the Clubs heading on every screen in this section:

TabWhat it answers
All clubsWhat does each club do? The table of carries, spreads and speeds.
GappingDoes my bag cover every yardage once? The distribution chart and findings.
CompareDid that swing or gear change actually help? Two sets of shots side by side.
SetupBag maintenance: add and remove clubs, tune typical carries, label unknown clubs.

Club Compare used to be its own top-level nav item. It moved in here because it is a tool about your clubs rather than a separate part of the app. The old /compare address still works and redirects to /clubs/compare, as does /clubs/bag to /clubs/setup.

All clubs (/clubs)

Header

Shows how many clubs are profiled (have ≥10 shots) and total shots across all clubs. A "Modify bag" button jumps to the Setup tab.

Banners

Two conditional banners may appear above the main content:

  • Unlabeled shots: shots where GSPro reported an unknown club name. Shows how many clubs and shots are affected and links to the label tool.
  • Bag mismatch: appears after a portal sync if GSCaddie detected that the clubs in your portal bag differ from what the tray has been seeing. Dismissable per sync.

Summary strip

Five numbers: profiled club count, total shots, longest club (name + carry in yards), average carry gap (mean of the gaps between adjacent clubs), and gap alert count.

Filter bar

Chips: All / Driver / Woods / Hybrids / Irons / Wedges / Putter. Each chip shows the count of clubs in that category. Filtering does not affect the summary strip or gap alerts line.

Clubs table

Per club: name, shot count, mean carry (yards), carry sigma (standard deviation), avg ball speed, club head speed (when portal-synced, otherwise blank), launch angle, a small sparkline of the last 10 carries, the gap to the next club in the bag (blank for putters), and a gap alert indicator. Clicking a row opens the Club Detail page for that club.

Gapping (/clubs/gapping)

The chart

A distribution bar per club, all on one shared carry axis, ordered by loft (driver at the top). For each club:

  • The solid block is the middle half of your carries (25th to 75th percentile).
  • The thin line runs from your short 10% to your long 10%. Percentile whiskers are used rather than your single shortest and longest shot, so one topped ball doesn't stretch the club across the chart.
  • The bright tick is your median carry.

The axis always starts at zero, so bar widths are comparable between clubs: a wider bar genuinely means a less predictable club.

Partial shots are excluded. Wedges get used both for full swings and for greenside pitches, and a single bar covering both describes neither. Any shot below 55% of that club's own long-shot distance is treated as a partial and left out, which is why a wedge row often reads something like "15 full · 43 partial". Non-wedges are unaffected apart from the occasional topped shot.

A club needs 8 full-swing carries before it gets a bar. Until your bag reaches that, the older gap alerts line shows instead (a text list of adjacent pairs whose carries differ by more than 25% of the longer club, with a 3-shot floor).

Hovering any bar opens a card with that club's median, middle half, short-10-to-long-10 range, total spread, and how many partial shots were excluded.

Findings

Below the chart, the specific things the shapes are telling you, as cards. All findings are shown, never collapsed. They are ordered by what each one actually costs you:

  1. Inverted (red): a club further down the bag carries further than the one above it. Usually a mislabeled club or a genuine distance problem, so it leads.
  2. Gap (amber): 18 yards or more between two adjacent medians. The card names the yardage nothing in your bag covers. This ranks above overlap because a yardage you cannot cover costs shots, whereas two clubs overlapping is only redundancy. Gaps beyond 45 yards are not reported, because that means the clubs in between simply aren't profiled yet.
  3. Overlap (blue): the middle halves of two adjacent clubs share ground, so you can't reliably predict which goes further. The card names the exact yardage band both clubs cover. Tightest pair first.
  4. Tight (grey): 7 yards or less between two adjacent clubs, meaning they're doing one job.

Cross-reference: gap math is explained in data-derived-metrics.

Compare (/clubs/compare)

Two sets of range shots side by side, so you can tell whether a swing change or a gear change actually did anything. Pick a club, capture a set, change one thing, capture another, and the dispersion plot and metrics table show both together with your all-time average as a baseline.

Capturing a new set is desktop-app only. Renaming and reviewing past comparisons works anywhere.

Setup (/clubs/setup)

Bag maintenance in one place:

  • Unknown clubs: anything GSPro reported under an internal index instead of a club name. Pick the real club and every past shot is rewritten, with the mapping applied to future shots automatically. This section only appears when something needs labeling — a maintenance task with no work outstanding shouldn't occupy space. The Setup tab shows a count in amber when any are waiting.
  • From your GSPro bag: clubs imported from GSPro's PlayerBag, with an override for any name that came through wrong.
  • Modify bag: add and remove clubs, and set the typical carry distance for each. These are what club attribution falls back on when a shot arrives without a club name.
  • Where the bag comes from: your bag is created with a standard 14-club set the moment GSCaddie knows which GSPro player is you, which is when you pick your player in setup or when your first shot arrives, whichever comes first. Until then this page says there is no player yet. A facility member gets the same standard set when they join.

Labeling used to be its own screen at /clubs/label. That address still works and redirects here.

Club Detail (/clubs/:name)

Header

A breadcrumb back to Clubs, the club label, and step arrows that move to the next and previous club in loft order. The arrows exist so comparing your 6 iron to your 7 iron doesn't mean returning to the list every time; they follow bag order rather than measured distance, so a club that outcarries the one above it doesn't scramble the sequence.

Then: total shot count, rounds the club has appeared in, how many rounds have portal-sync data for this club, avg carry ± sigma, and top ball speed.

Profile strip (Go to profile tiles)

Four summary tiles. For full-swing clubs:

  • Carries: avg carry, range (min to max), and sigma spread.
  • Dominant shape: the most frequent shot shape and what percentage of shots fall there, plus typical lateral offset.
  • Apex: estimated apex in yards (from launch angle and spin, not portal data).
  • Lands: "Soft" (high spin + steep descent) or "Rolls out" (low spin + shallow descent).

For putters:

  • Make rate: percentage of recorded putts that holed out.
  • Avg distance: average putt length in feet, with range.
  • Avg miss: average miss distance in feet from the pin, with a left/right bias note when one side is dominant.
  • Stroke speed: avg ball speed of putts in mph.

Shape tendencies (full swings only)

Two small bar charts:

  • Curve: hook / draw / straight / fade / slice percentages.
  • Start line: pull / on line / push percentages (where the ball starts relative to aim before curving).

Consistency strip (full swings only)

A consistency score derived from carry coefficient of variation, with a qualitative label (rock solid / reliable / inconsistent) and the carry min-max range. Score ≥85 is rock solid, 70-85 is reliable, 50-70 is inconsistent.

Three-column section (full swings only)

Left: Club delivery strip. Only populated when portal-synced rounds exist for this club. Shows trend values for: club speed, attack angle (AoA), club path, face to path, and face to target. Each metric includes the number of synced rounds contributing data.

Center: Dispersion plot. A top-down scatter plot of carry and lateral spread for all shots with this club. A range filter lets you compare a narrower window (last 10 rounds, 30 days, 90 days) against the all-time backdrop. Toggle the all-time backdrop on/off with a checkbox.

Right: Ball metric trends rail. Sparklines for ball-flight metrics across up to 10 rounds: carry, ball speed, launch angle, spin, spin axis, smash factor. Each metric shows its current window average and a delta vs the prior 30 days (or "stable" if the change is negligible).

Cross-reference: metric definitions for carry, spin axis, smash factor, and dispersion are in data-derived-metrics and data-ball-and-launch.

Recent shots table

The 30 most recent shots with this club. Columns: when (relative time + hole context), carry, ball speed, launch angle, spin RPM, spin axis, distance to pin, and shot shape. Sortable by any column. There is an inline club-edit option per row to correct a misattributed shot (changes only affect that shot, not the rest of the round).

Data notes

Explains carry derivation (total distance minus roll on full swings), the all-time vs filtered comparison behavior, and what portal-synced means.

Last reviewed: 2026-09-11