Force-Plate Analysis — 2026-06-20 · 6-iron

Review report

Working on pull hooks · compression · getting stuck · lower-back pain

Top priority

  1. Backswing-first — load the trail side EARLIER (by P2–P3), to the cuboid/midfoot (not heel), mass centered → so it crests and eases before the top.
  2. Set a POSITIVE line of pressure at transition → something to post & rotate from, instead of a late thrust → less stuck, less flip, less back.
  3. Back: get a physical screen (lead-hip IR); don't practice into pain.

Evidence

evidence12
  • 1trail pressure is still 75% at the top (frame 432) and still climbing; it should have crested ~P2–P3 (it was only 54% back at frame 329) and be easing by now. Late load.
  • 2at the top the line of pressure (the yellow line between the feet) is only +1.8° (barely positive — fragile).
evidence23
  • 2through impact (frame 541) the line has collapsed to −25.5°, pointing behind the ball: a thrust, with nothing to post & rotate against.
  • 3through impact the torso stands up and side-bends (the thrust "save") — the exact pattern that loads the lower back. Off-plate: confirm with a screen.
evidence2
  • 2on the Antero-Posterior page the lead foot dives to ≈ −16% at impact (trail +9%): the AP couple fires late and hard — the thrust this priority fixes.

Level 1 — high-level read

ReadFieldWhat we see
goodSequence (order)rotational (Tz) peaks before vertical (Fz); vertical is last & tallest
goodTiming (each force's peak)on the tour clock: lateral peaks ~0.2s before impact (fr ~481), vertical ~0.1s before (fr ~507) — matching Greg Rose's ~0.23s / ~0.1s targets — and vertical is last & tallest. Forces are not late; timing isn't the fault. (Watch: lateral & rotational peak close together, so lateral isn't clearly leading — confirm on per-force frames.)
okayMagnitude (6i)vert ~148%, Tz peak ~66, lateral only ~12% (light — under the 20% driver floor; lower is expected for a 6-iron but it's the soft spot). Sizes aren't the main story
concernPressure (COP)trail load still ~75% and climbing at the top (frame 432) — late; the forward shift does arrive (lead 84–85% by impact) but via a late lunge, not an early load
concernLine of pressurenon-positive at transition: −5° → +1.8° (weak) → −25° through impact — a thrust, not a post
concernVerdict — explains the miss?Yes (pressure). late load → late lunge → negative line = thrust → club trapped (stuck) → hands flip → pull hook; the side-bend "save" loads the lower back
Deeper levels (L2–L4)
ReadFieldWhat we see
concernL2 · Trail-load timinglate — ~75% and still climbing at the top (fr 432); should crest ~P2–P3 and ease
concernL2 · Line of pressurenon-positive at transition → −25° through impact (the thrust)
concernL2 · Trail COP locationsits heel-ish (matches the felt heel/roll), not cuboid/mid-foot
concernL4 · Lower back (off-plate)the stand-up/side-bend "save" loads it → get a physical screen (lead-hip IR); don't drill into pain
concernL3 · AP couple (Fx) — now confirmed (video)at impact the lead foot drives posterior (≈ −16%) while the trail spikes anterior (≈ +9%) — a large, sharp couple firing right at impact (net ≈ −3%), not a smooth early build. The late, violent AP burst = the thrust/save behind getting stuck
concernL3 · Lateral impulse (Fy)total lateral peaks ~+12% just before impact then snaps to ~−10% — a late, abrupt lunge, not a long early shift
okayL3 · Torque (Tz)peaks ~+57 N·m/mass near impact after a transition dip, holds positive through follow — strong but on the late side (peaks ~impact vs the P5–P6 window)
goodL2 · Forward shiftlead foot reaches 84–85% by impact — the shift itself works; the timing/quality doesn't
Trackman conclusion
  • Not captured this session. Prediction from forces: a pull / pull-hook with low-point control issues. Next session: capture the Trackman shot (path/face/start/curve/low-point) to grade this.
  • Club: 6-iron.
  • Ball-flight focus: pull hooks, compression, getting through without getting stuck, lower-back pain "from reacting to the ball."
  • Screenshots: Kinetic-Sequence + pressure captures.
  • Video: session screen-recording → 40 stills (P1–P10 × 4 pages: Kinetic Sequence · Lateral Fy · Antero-Posterior Fx · Vertical Torque Tz). No Vertical Force (Fz / jump) page in this clip.
  • Trackman: not captured this session.

Source: session video → stills extracted at P1–P10 for each graph page.

Kinetic Sequence — P1–P10

frame
frame
frame
frame
frame
frame
frame
frame
frame
frame

Lateral force (Fy) — P1–P10

frame
frame
frame
frame
frame
frame
frame
frame
frame
frame

Antero-posterior (Fx) — P1–P10

frame
frame
frame
frame
frame
frame
frame
frame
frame
frame

Vertical torque (Tz) — P1–P10

frame
frame
frame
frame
frame
frame
frame
frame
frame
frame

Next capture

  • Add the Vertical Force (Fz / jump) page (missing here) for the full 5-page set — it's the speed channel.
  • Matching Trackman shot (path/face/start/curve/low-point) to grade the pull-hook prediction.
  • Tighten P-frame alignment: extract by the graph scrubber position so P-positions match across pages (the even-time-spaced labels here don't line up page-to-page — fine for curve reads, not for per-P comparison).

Since last session

  • Same swing, deeper data. The original read used only the Kinetic-Sequence screenshots; the session video added the per-foot Lateral (Fy), Antero-Posterior (Fx), and Torque (Tz) pages (40 stills). That confirmed the AP couple/thrust that was previously only inferred — L2 → L3 now grounded in data, not a guess. Story is unchanged but stronger: late load → late lunge → late, sharp AP thrust at impact = stuck → flip → pull hook + back load.

Trend across sessions

dateclubfocustrail_load_pctline_at_transitionvert_peak_pcttz_peakball_flight_result
2026-06-206-ironpull-hook/stuck/compression/back75~-2deg(non-positive)14866no-trackman

New concepts emerging in the data

Your growing cause→effect maps (validated from your data, feed back into the cards):

  • line-of-pressure — see correlations/line-of-pressure.md

Force-Plate Analysis Protocol · /fp-analyze

This is the single, canonical method for analyzing a Smart2Move capture. Run it the same way every time — even after a context reset or on a new computer. Invoke with /fp-analyze (the slash command loads this file + your last analysis, runs the steps below, saves the output, and diffs vs last).

Folder map (short paths below are relative to these roots): - Analysis Protocol/ — this file + build_report.py + build_site.py. - Golf Knowledge Repository/ — the knowledge: concepts/ cards, source transcripts, site/, _index.md. - Analysis Sessions/one folder per session, named by ISO date (YYYY-MM-DD/): the dropped photos + that session's .md record + .html report all live together. Plus a catch-all _Cross-Session/ that spans sessions: _tracker.csv, data/, correlations/, journal/, practice/, _template.md. So below, _tracker.csv/data//correlations/ = under _Cross-Session/; concepts/… = Golf Knowledge Repository/concepts/….

Core principle — grounded in the concept cards

Every judgment routes to the concept + Details cards (concepts/**) — our transcript-derived core knowledge (Smart2Move · TPI · Measured Golf · Shauheen, cited, with nuance in each card's Details). The protocol interprets via the cards; it never invents. Each step names its card(s) + the Trackman metric that confirms it.

Knowledge stack (grows over time): 1. Core: concept cards + Details (transcripts). 2. + Observations: the dated session folders (one per session) + correlations/ (your cause→effect map). 3. + Tested outputs: validated worked/hasn't + correlations/<lever>.mdflow back into the cards, overriding textbook matchups with your confirmed truths.

Inputs

Input Required? Notes
Club Required Sets the reference bands — driver ≠ 6-iron ≠ wedge for magnitudes and setup pressure.
Ball-flight issue / focus Required Your miss or what you're trying to improve → drives prioritization.
P1–P10 screenshots Required (L1); more for deeper L1 = combined Kinetic-Sequence + pressure view. L2/L3 need P1–P10 for each sub-force (lateral/rotational/vertical) showing individual feet.
Trackman shot data Optional (the conclusion) Pulled from Trackman Scraper/ exports, matched by date+club, to grade the prediction.
Concept cards Always (AI ref) The interpretation layer.

Capturing a swing — video → frames (5 graph pages × P1–P10 = 50 stills)

The Smart2Move app shows one graph page at a time. A full read wants all 5 force-channel pages, each across the whole swing. Record the swing once per page in a single screen-recording (top pressure panel visible), then extract stills:

# Page (app title) Channel What it shows
1 Kinetic Sequence Ks combined order · timing · magnitude (Fy·Tz·Fz readouts) — the L1 view
2 Lateral Force Fy side-to-side (weight shift), both feet
3 Antero-Posterior Fx toward/away the ball — the AP couple / early-extension channel, both feet
4 Vertical Torque Tz the twist (about the vertical axis), both feet
5 Vertical Force Fz the jump (up/down) — most correlated with speed

I can't read video as motion — only stills. Turn the video into frames with Analysis Protocol/video_to_frames.py (uses bundled ffmpeg; py -m pip install imageio-ffmpeg once): 1. contact overview sheet → find where each page's segment starts/ends. 2. per-page contact sheet → read off the P1–P10 timestamps within each segment. 3. extract --spec (precise) or auto --page LABEL START END (10 evenly spaced) → writes <page>-P01.jpg … P10.jpg into the session's Swing Photos & Videos/frames/.

5 pages × P1–P10 = 50 stills. A page missing from the recording = 10 fewer (e.g. no Fz page → 40).

P-System — P1–P10 (use these positions consistently, every swing)

P Swing position Force-plate event to expect there
P1 Address / setup setup pressure (driver = trail-biased; iron ≈ 50/50); line of pressure ~neutral
P2 Takeaway — shaft parallel to ground (backswing) trail pressure loading toward cuboid/mid-foot
P3 Lead arm parallel to ground (backswing) trail load near max (~75–80%), should be cresting
P4 Top / transition lateral (Fy) peaks; line of pressure going positive; trail load easing
P5 Early downswing — lead arm parallel to ground rotational (Tz) building; pressure shifting to lead
P6 Shaft parallel to ground (downswing), hands ~hip height Tz peak; vertical (Fz) peaking (pre-impact); lead COP ball-of-foot
P7 Impact Fz near/just past peak; line of pressure positive (post, not a thrust)
P8 Shaft parallel to ground (early follow-through) forces unloading; lead-side post holds
P9 Lead arm parallel to ground (follow-through)
P10 Finish weight ~fully lead; balanced, stable post

Standard golf P-positions; the right column ties each to the plate so reads line up run-to-run.

How a run works (cascading — stop when the miss is explained)

  1. Read the last analysis (latest dated session folder) so this run is relative to it.
  2. Ball-flight router → from your miss, jump to the likely suspects/levels first.
  3. Level 1 (high-level) + trend → does it explain the miss? If yes → fix. If not → double-click down.
  4. Continue L2 → L3 → L4 only as needed.
  5. Fix loop: prioritize what to work on + how (→ card fix).
  6. Save: write Analysis Sessions/<date>/<date>-<club>.md, append _tracker.csv, log metrics to data/measurements.csv, and (if a change is observed vs last) append correlations/_observations.csv.
  7. Trackman conclusion (optional): attach the actual shot's ball flight → grade the force prediction.

Ball-flight router — start here

Your miss Check first (level · items) Likely root Cards
Pull / pull-hook + stuck L1 pressure → L2 trail-load timing + line of pressure at transition + AP couple late load → non-positive line → thrust/early-ext line-of-pressure, trail-pressure-load, anterior-posterior-forces
Push / block L2 lead-side post + AP couple; line of pressure stuck/under, lead not posting anterior-posterior-forces, cop-trace, lateral-force
Slice / fade / over-the-top L1 sequence (rotation before lateral?) → L2 line of pressure (negative early) early rotation / negative line kinetic-sequence, line-of-pressure
Hook (non-pull) L2 line of pressure (too positive?) + AP; L3 over-shallow over-shallow / face-to-path closed line-of-pressure, shallowing-methods
Fat / thin (compression) L2 trail-load timing (hang-back?) + COP forward; lead post late/weak shift, low point off trail-pressure-load, cop-trace
Lacking distance L1 magnitude + timing → L3 net impulse low/late vertical, low impulse, late forces vertical-force-peak, impulse, kinetic-sequence
Lower-back pain L4 physical screen FIRST + L2 early-extension pattern thrust/side-bend save; physical limit anterior-posterior-forces + physical screen

The cascade

LEVEL 1 — High-level read + trend

Inputs: P1–P10, combined Kinetic-Sequence + pressure view. - Forces — Order · Timing · Magnitude (combined). - Order = lateral→rotational→vertical, vertical last & tallest? - Timing = does each force peak at the right time in the swing (per the card windows): lateral ~transition (P4), rotational ~lead-arm-45°→lead-arm-parallel (P5), vertical ~lead-arm-parallel→shaft-parallel (P5.5–P6)? Vertical peaking at impact (late) is the classic amateur miss → can't use the ground (and it reads low because it's late). Greg Rose: lateral ~0.23 s / vertical ~0.1 s before impact. - Magnitude = each peak vs the club-adjusted bands? - → kinetic-sequence (timing windows live here), lateral-force, rotational-force, vertical-force-peak. - Pressure — COP path + line of pressure. Trail load early & decreasing before top? Line positive at transition? → cop-trace, line-of-pressure, trail-pressure-load. - Output = a status table with a FIXED row set (same rows every run → trendable). Columns: Read (a good / okay / concern chip) · Field · What we see (the read + card link). The rows are always, in order: Sequence · Timing · Magnitude · Pressure (COP) · Line of pressure, then a Verdict row (does it explain the miss?). Don't invent fields — fold sub-reads (e.g. forward shift / lead post, trail-load timing, cuboid-vs-heel) into Pressure (COP). So good vs. bad is glanceable. Explained? → fix. Else → L2. - Trackman confirm: club speed, smash, path, low-point trends.

LEVEL 2 — Localize (individual forces & pressure, both feet, P1→P10)

Inputs: P1–P10 for each sub-force (lateral/rotational/vertical) showing individual feet, + pressure both feet. - For each force & pressure, split lead vs trail and walk P1→P10: which foot, which force, which phase breaks. - Point of application: trail-load amount + timing (cuboid vs heel), line-of-pressure sign at transition, lead COP ball-of-foot vs heel. - → trail-pressure-load, line-of-pressure, cop-trace, anterior-posterior-forces, the force cards. - Trackman confirm: path, face-to-path, low point, (video) early extension.

LEVEL 3 — Net impulse & duration

Inputs: same per-foot, per-force views (set the impulse time points). - Net impulse per channel (direction + size): AP net (negative = space / positive = thrust), torque net, lateral net. - Duration / area under curve / rate of force development — long-and-low vs short-and-hard. - The force → club-delivery → ball-flight bridge. - → impulse, anterior-posterior-forces, force-to-ballflight. - Trackman confirm: speed/quantity of motion, path/curve.

LEVEL 4 — Root / Why (off the plate)

When the forces show the fault but not the cause ("force shows HOW, not WHY"): - Physical screen (TPI mobility/stability — esp. lead-hip internal rotation). - Fundamentals · Equipment · Mental (the 4 whys). - 3D / video kinematic cross-check (driver → 3D matters more; iron → force plate). - Output: technical vs physical vs equipment → sets the fix path. (Inputs off-plate — handoff checklist.)

Club-adjusted reference bands (directional — calibrate to YOUR solid strikes per club)

Metric Driver Mid-iron (6i) Wedge
Vertical peak (Fz) ~190–210%+ (elite 230–250) ~150–185% ~150–160%
Unweighting valley ~63–65% moderate shallow (~90%+); chip = stay up
Lateral peak ~20% lower low
Rotational (Tz) ~85 N·m/kg ref lower low
Setup L/R pressure trail-biased (behind ball) ~50/50 centered / slight lead
> Card thresholds are driver-ish defaults. Adjust down for irons/wedges, then trust your own solid-strike numbers for that club over any textbook number.

Fix loop — what to work on + how

  • Priority ladder: Sequence → Timing → Point-of-application → Magnitude → Shape. A fault high up poisons everything below — fix top-down. Backswing-first (cause), not the downswing compensation.
  • Test loop: change ONE thing → capture solid vs mishit → confirm the trace AND Trackman both moved → log it. Promote a fix only when your data confirms it.
  • Physical gate: if a force can't be produced, screen the body — don't drill into a limit; protect injuries.

Output format (what /fp-analyze saves)

Each run writes the record into that session's dated folder: Analysis Sessions/<YYYY-MM-DD>/<YYYY-MM-DD>-<club>.md (use _Cross-Session/_template.md; leave inputs_folder blank — photos are already in this same folder): - Inputs: club, ball-flight focus, Trackman (if any). - Level read(s): L1 as the fixed good/okay/concern status table (Read · Field · What we see · Verdict). Down-clicks (L2–L4) use the same table — but no fixed rows: sorted by concern (worst first), each Field tagged with its level (**L2** / **L3** / **L4**). Map each to its card (in the record; stripped from HTML). - Top priority — what to work on + how (the fix). Every top priority must be pinned to the image — add ≥1 evidence line naming the exact frame and where on it the read comes from: - format: - evidence: <IMG_file> @ <x>,<y> — <what's visible here> where x,y are percent (0–100, top-left origin) of where to drop the numbered pin on that frame. - a priority can carry multiple evidence pins (e.g. the same fault at the top and through impact), and they can point at different frames. Use the actual readouts (load %, line-of-pressure angle, the force trace, or the video posture) — quote the number you see. - Since last session: what changed → how each metric moved → how ball flight moved (the cascade). - Trackman conclusion (optional): predicted vs actual → match?

Then: append a row to _tracker.csv (trend scan), log metrics to data/measurements.csv, and append any change→outcome to correlations/_observations.csv (+ update correlations/<lever>.md).

Review report (the consumable output)

Finally, generate a self-contained 4-tab HTML report for review: cd "Analysis Protocol" && py build_report.py "<YYYY-MM-DD>-<club>.md" → writes the .html next to the record in Analysis Sessions/<YYYY-MM-DD>/. - Tab 1 · Analysis — built for fast reading, in this order: 1. Working on (the ball-flight focus) — plain text at the very top, no framing. 2. Top priority — numbered cards. Each priority is color-coded and its pin(s) on the image use the SAME color (priority 1 ↔ pin 1, priority 2 ↔ pin 2 …) so the card↔image mapping is obvious at a glance. 3. Evidence — the frames with the colored numbered pins dropped exactly where each read comes from, plus a Hide / Show pins toggle so the frame can be seen clean. 4. Level 1 — high-level read — the fixed good / okay / concern status table (rows above). 5. Deeper levels (L2–L4) — the same status table as L1, but sorted worst-first (top concerns at the top, each row tagged with its level) — and the Trackman conclusion; both collapsed by default. - No concept-card citations in the reader-facing tabs. The → card-id references stay in the markdown record (grounding/traceability for the AI) but build_report.py strips them from the Analysis / Trend / Inputs tabs (strip_card_refs). The Protocol tab keeps them, since naming the cards is the method. - No image filenames shown. The report renders the picture, never the file name (IMG_….jpg / frames/…). Filenames stay only in the markdown record's evidence: lines (so the build can find the file). - Top-priority images must match the narrative. Each priority's pin(s) should show what the text says (e.g. the AP-couple frame for the AP/thrust point, the top frame for the late-load point). - Tab 2 · Inputs — the screenshots provided (embedded from inputs_folder) + Trackman + next-capture. - Tab 3 · Trend & new concepts — the since-last diff + the cross-session _tracker.csv table + emerging correlations/. - Tab 4 · Protocol — this method, so anyone can see how the analysis was conducted. (Set inputs_folder in the record's frontmatter so the screenshots embed.)

Force-Plate Cockpit · analysis report. Method tab = how this was conducted.