Skip to content

fix(onboarding): stamp which step the scroll gate blocked - #69

Draft
gatteo wants to merge 1 commit into
mainfrom
fix/funnel-68-gate-blocked-step
Draft

fix(onboarding): stamp which step the scroll gate blocked#69
gatteo wants to merge 1 commit into
mainfrom
fix/funnel-68-gate-blocked-step

Conversation

@gatteo

@gatteo gatteo commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Closes #68

Evidence chain

  • What the data showed: the 2026-08-07 audit joined every onb_paywall_gate_blocked event in the 07-31..08-06 window to the last onb_step_view before it: 10 of 24 events fired on the reveal step, not the paywall. Issue [funnel] paywall: half of paywall viewers abandon without buying or continuing free (44 -> 21 reach confirm) #37's "purchase intent swallowed by the gate" evidence (16u/21ev last window) was ~42% contaminated, and the 08-07 health run's "3 locked-arm paywall viewers fired gate_blocked then closed the tab" actually described reveal-gate clicks.
  • Root cause: track('onb_paywall_gate_blocked') is hardcoded inside the shared ScrollProgressButton (components/dashboard/onboarding/scroll-progress-button.tsx:58), which both steps/reveal-step.tsx ("Create my plan") and steps/paywall-step.tsx (purchase CTA) mount.
  • Why this fix: a required step: 'reveal' | 'paywall' prop at the call sites, stamped on the event. Same event name, so existing dashboards keep working; the dictionary records the pre-fix ambiguity window (2026-07-31 to deploy) so past events are never read as paywall-only.
  • Expected movement: no user-facing change. Post-deploy invariant: every onb_paywall_gate_blocked carries step; audits report reveal-gate and paywall-gate friction separately, and [funnel] paywall: half of paywall viewers abandon without buying or continuing free (44 -> 21 reach confirm) #37's offer-engagement numbers become trustworthy.

Verification

  • pnpm type-check exit 0
  • pnpm lint 0 errors (2 pre-existing warnings in unrelated files)
  • No schema migration, no dependency, no interference with the running onb-modal-exit experiment (additive property only)

onb_paywall_gate_blocked is tracked inside ScrollProgressButton, which both the
reveal step and the paywall mount. Every reveal reader who clicked 'Create my
plan' before scrolling to the end was recorded as blocked purchase intent on a
step they had not reached: 10 of 24 events in the 07-31..08-06 window fired on
reveal, overstating the paywall gate's cost by ~42% and hiding reveal-gate
friction entirely.

Stamp a required step prop on the event at both call sites and record the
ambiguity window in the event dictionary.
@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
linkedinpreview-com Ready Ready Preview Aug 7, 2026 7:05am

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[funnel] instrumentation: onb_paywall_gate_blocked also fires on the reveal step - 10 of 24 events this week are not paywall intent

1 participant