Skip to content

[player-coachhelm] FORM/trend self-contradicts: "scoring is sliding" vs "4-round hot streak, 23.5 strokes below average" (+ implausible number) #971

Description

@njrini99-code

Where

src/components/golf/coachhelm/player/FairwayTrendBrain.tsx — the "FORM · SCORE TO PAR" card.

Evidence

IMG_4978.

The problems

  1. Self-contradiction in one card. The headline reads "Your scoring is sliding" (red) with all three windows (Long range / Medium / Recent) marked ↓ declining — but the footer reads "4-round hot streak · 23.5 strokes below your average" (green, positive). A card cannot credibly say the player is both sliding and on a hot streak in the same viewport. The two signals need reconciling or clearly reframing (e.g. "declining trend, but the last 4 rounds buck it").
  2. Implausible magnitude. "23.5 strokes below your average" is not a real per-round figure — no golfer averages 23.5 strokes better than their own average for 4 rounds. This looks like a calculation bug (summing a delta across rounds, a unit error, or comparing against the wrong baseline). Needs root-causing in the hot-streak/trend math, not just the copy.
  3. Cramped 3-column rows on mobile. The middle annotations ("· the real signal", "· small sample — noisy") wrap awkwardly between the "declining" label and the % column. The row layout needs to breathe or restructure at 390px.
  4. Em dashes in copy ("raw scoring — not course-adjusted", "small sample — noisy") — house style avoids em dashes in UI copy.

How it should behave (architecture)

  • One honest verdict per card. If the long/medium windows decline but the recent 4 buck it, SAY that as a single coherent read, don't stack a red headline over a green footer.
  • The hot-streak metric must be a sane per-round figure with a correct baseline; add a guard/clamp and a unit assertion so an impossible magnitude can never render.
  • Restructure the window rows for 390px (label + trend on one line, annotation below, % right-aligned and never colliding).

Acceptance criteria

  • The card never shows contradictory verdicts simultaneously.
  • The hot-streak / delta figure is a plausible per-round number with the correct baseline (add a test around the calc).
  • Window rows read cleanly at 390px; no awkward mid-row wraps.
  • No em dashes in the copy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    plan-meTrigger CodeRabbit automatic issue planning

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions