SplashSports โ€” Current Flow Audit ๐Ÿ” โŒ = remove / cut ยท โš ๏ธ = CRO risk ยท ๐Ÿ’ก = recommended fix ยท โœ… = keep ยท ๐Ÿ•ณ = gap / missing feature Legend โŒ Remove or fix this step โš ๏ธ CRO risk โ€” causes drop-off โœ… Keep as-is ๐Ÿ•ณ Gap โ€” missing feature ๐Ÿ’ก Fix / recommendation note Commitment Phases โ‘  Discovery Ask: nothing | Gate: none โœ… Let user browse, see contest value Applies to both flows โ‘ก Contest Engagement Ask: nothing | Gate: none โœ… User fills picks, builds investment Auth wall here = abandonment โ‘ข Human / Identity Check โ“ Details TBD โ€” age gate? CAPTCHA? Currently sits at signup step 3 Confirm: what is this check exactly? โ† needs clarification from Chris โ‘ฃ KYC โ€” Entry Submission Ask: SSN, DOB, address Trigger: submit/finalize entry NOT signup. NOT deposit alone. URL flag: ?kyc=0 skips (campaigns) Free contests may omit if not regulated โ‘ค Withdrawal / Compliance Enhanced AML / DFS checks Gate: payout only ๐Ÿชช Never at signup โŒ Current Signup Flow โ€” app.splashsports.com/sign-up Current Contest Deep Link โ€” (unauthenticated user) ๐ŸŒ Marketing / Landing Page โœ… โš  Login | Sign Up (split screen) /sign-in vs /sign-up โ€” two separate routes Switching modes loses all form state โ†’ existing user clicks wrong tab, abandons ๐Ÿ’ก Fix: Single unified modal. Detect new vs returning by email. One URL. No mode-switch loss. โœ‰๏ธ Email + Password โœ… or Google / Apple SSO This part is correct โ€” keep โ“ โ‘ข Human / Identity Check Currently at signup step 3 Details TBD โ€” what is this check? (age gate? CAPTCHA? ID scan?) ๐Ÿ’ก Clarify: If light check (age/bot) โ†’ OK at signup. If identity docs โ†’ move to Phase 4. โœ• โ‘ฃ KYC โ€” Currently Step 4 of Signup SSN ยท Date of Birth ยท Address ยท Phone BEFORE user has entered a single contest Sensitive data ask with zero value delivered โ†’ 30โ€“50% abandon here โŒ MOVE OUT OF SIGNUP New home: Phase 4 โ€” entry submission / finalize ๐Ÿ’ก Move KYC to: "Submit Entry" / "Finalize Contest" URL flag: ?kyc=0 โ†’ skip ?kyc=1 โ†’ enforce Per campaign goal ideal โ†’ current โœ… Account Created โ€” Dashboard Keep as-is ๐Ÿ•ณ Missing: Signup Confirmation Email No email verification currently triggered No welcome / onboarding sequence โ†’ add: confirm email + "here's your first contest" CTA ๐Ÿ•ณ Missing: Abandon Cart Email If user drops off at KYC (or any step) no re-engagement triggered โ†’ add: "finish your entry" drip (30min / 24h / 72h) ๐Ÿ“‰ Signup Drop-off Estimate Split Login/Signup friction: ~10โ€“20% lose KYC at step 4 (no value yet): ~30โ€“50% lose Combined: ~40โ€“60% of potential signups lost ๐Ÿ”— Contest Deep Link / Direct URL โœ• ๐Ÿšง Auth Gate โ€” Fires on Page Load User redirected to login before seeing contest Zero value shown โ†’ cold traffic bounces โŒ Gate timing is wrong โ€” move to "Save Entry" CTA ๐Ÿ’ก Fix timing: Contest page opens freely. User picks. Gate only at: "Save Your Entry" After investment = OK. โš  Login | Sign Up (split modal) New user clicks "Login" โ†’ switches to Sign Up Tab switch = form state wiped Any picks in memory? Already gone from step above. โš ๏ธ Double friction โ€” wrong gate AND wrong modal ๐Ÿ”‘ Auth Completes โœ… Credentials accepted โ€” redirecting... โœ• ๐Ÿ”ฅ Redirect โ†’ Contest Page ALL PICKS ARE GONE No localStorage preservation on auth redirect Contest reloads blank โ€” user sees empty form โŒ HIGHEST ABANDONMENT POINT IN THE ENTIRE FLOW ๐Ÿ’ก Fix: localStorage Write picks on every change. Key: contest_id + picks[] + entry_data TTL: 30 min. Hydrate on return. โœ… ๐Ÿ˜ค Contest Page โ€” Blank Picks User must re-fill entire entry from scratch Most don't. They close the tab. Registered account = zero contest entry ๐Ÿšช User Abandons Registered but never converted to entry ๐Ÿ•ณ Missing: Re-engagement Email User registered but never entered a contest No triggered "come back" email exists โ†’ add: "Your entry is waiting" (30min, 24h, 72h) ๐Ÿ“‰ Deep Link Drop-off Estimate Immediate auth gate: ~60โ€“80% bounce State loss post-auth: ~50โ€“70% of survivors Combined: ~85โ€“95% of deep link clicks โ†’ zero entry ๐Ÿ›  Priority Fixes โ€” Ordered by Impact #1 โ€” Preserve Picks Across Auth Save contest state to localStorage on every change. On post-auth redirect, hydrate from stored state. Key: { contest_id, picks[], entry_meta } TTL: 30m Impact: eliminates #1 abandonment point entirely. Frontend only โ€” no backend required. #2 โ€” Move Auth Gate to "Save Entry" Contest page: no auth to view or fill picks. Gate fires only when user hits "Save Entry" CTA. User has invested โ†’ friction is acceptable. Impact: ~3โ€“5x deep link conversion uplift. Frontend routing change + ?return_to param. #3 โ€” Move KYC to Entry Submission KYC (SSN/DOB/address) triggers at "Submit Entry" or "Finalize Contest Setup" โ€” not signup. URL flag: ?kyc=0 (skip) / ?kyc=1 (enforce). Impact: removes 30โ€“50% signup abandonment. Free contests may never need KYC. #4 โ€” Unified Auth Modal Replace Login/Signup split with single modal. Email-first detection: new vs returning. Impact: kills mode-switch state loss. Single /auth route or modal component. #5 โ€” Add Email Triggers Signup confirmation + welcome email (missing). Abandon cart: "Your entry is waiting" drip. Impact: recover 10โ€“20% of abandoned signups. 30min / 24h / 72h re-engagement sequence. โ“ Phase 3 Human Check โ€” Clarify Currently at signup step 3. What is it exactly? Age gate / CAPTCHA โ†’ can stay at signup (light). Identity doc / manual review โ†’ move to Phase 4. Confirm with Chris before implementing. Implementation Note Fixes #1โ€“#4 are all frontend-only changes achievable in a single sprint. Fix #5 requires email provider integration. All 5 together est. 50โ€“70% signup-to-entry improvement. Generated by Vega ยท SplashSports CRO Audit ยท Updated with Phase 3 clarification, KYC at entry submission, email gaps, and ?kyc URL flag