Confidential Document

This document is restricted to RRI leadership.

Incorrect password
UNCLOG — Remove What Slows You Down
U2

Checkout Pre-fill & One-Click Purchase

NOT STARTED Wave 2 · 4 weeks

Executive Summary

During live events, upsell links from Obv.io/Zoom redirect customers to a blank checkout form — despite the customer already having a portal account with a stored Stripe card. Checkout abandonment is 30%+. At $223K at risk per event across 9 events per year, this is a $600K-$900K annual revenue leak.

The fix is straightforward: Stripe’s Payment Element upgrade + CustomerSession API surfaces saved cards at zero incremental cost. Combined with a signed JWT identity bridge from Obv.io to Sanity checkout, returning customers see their saved card and can purchase with one click.

Stripe Link bonus: 14% conversion uplift for returning customers. Enable after Payment Element upgrade — 30-minute toggle.

What Needs to Happen

Three Workstreams

  1. Payment Element upgrade — Replace Stripe Elements V2 with Payment Element. Faster, supports Apple Pay/Google Pay, handles international payment methods (SEPA, iDEAL already enabled in Stripe). Week 1.
  2. Batch-migrate allow_redisplay — Migrate existing payment methods from unspecified to always on allow_redisplay. CustomerSession API surfaces saved cards at zero cost. Week 1.
  3. Enable CustomerSession API — Saved card display for returning customers. Week 2.
  4. Build signed JWT identity bridge — HMAC-SHA256, 4hr TTL, embedded in upsell URL. rri-event-api generates the token, rri-sanity-project validates it. Redis replay prevention. Weeks 2-3.
  5. Integration test — Full flow across web + portal + Obv.io upsell. Week 3.
  6. Enable Stripe Link — 30-minute toggle after Payment Element is live. 14% conversion uplift. Week 4.
  7. Production deploy and A/B validation — Measure checkout abandonment rate against baseline. Week 4.

Claude Code acceleration: Stripe Payment Element migration is well-documented with clear API patterns. JWT bridge service (HMAC-SHA256 + Redis replay prevention) is a standard pattern Claude Code can scaffold end-to-end. Estimated 4 weeks → 2 weeks with Claude Code generating the Stripe integration code and JWT service.

Completion Criteria

  • Stripe Payment Element deployed, replacing Elements V2
  • Existing payment methods migrated to allow_redisplay: always
  • CustomerSession API active — returning customers see saved cards
  • Signed JWT identity bridge operational between Obv.io and Sanity checkout
  • Checkout abandonment below 15% at first post-deployment event
  • Saved card display rate >80% for returning customers
  • Stripe Link enabled and conversion uplift validated
  • Apple Pay / Google Pay functional on checkout

Initiative Attributes

U2 — Checkout Pre-fill & One-Click Purchase
Cost
$0 incremental infrastructure. 78 engineering hours.
Timeline (Original)
4 weeks (Wave 2)
Timeline (With Claude Code)
2 weeks
~2 weeks saved — Stripe Payment Element + JWT bridge
Owner
Nick Jensen + Johnny Yarlott + Federico Del Rio (portal side)
Dependencies
Hard: D4 (Cognito must be reliable before building silent OIDC flow). Soft: U3, D7
Unblocks
U3 (Phase 4 Obv.io bridge is essentially U2’s identity work), S3 (Mastery Path needs frictionless checkout), S4 (Event Passport subscription flows need pre-fill)
Revenue at Risk
$600K-$900K/year — 30% → <15% checkout abandonment
Success Metrics
Checkout abandonment below 15% at first post-deployment event; saved card display rate >80% for returning customers

Related Risks

IDRiskSeverityProbabilityMitigation
RF1 Nick Jensen disengagement / departure — Nick is owner CRITICAL MEDIUM Lior 1:1 Week 1 post-UPW. Frame S3 + S5 ownership as growth opportunity. Load relief from H4. If Nick leaves, U2, U4, S3, S5 all at risk — he’s bus factor 1 on TonyRobbins.com.