Scriptonia
PRD-176·heywavelength
Try Scriptonia
PRD-176Draft·May 1, 2026·Updated May 12, 2026·Personal

heywavelength

Executive Brief

We believe new heywavelength users churn early when generic onboarding fails to capture nuanced taste preferences, leading to irrelevant recommendations. Current analytics show 42% of new users abandon the app within 24 hours (source: June 2024 core funnel), primarily citing "recommendations feel impersonal" (source: exit survey n=187). The business case: 27,500 monthly new users × 12.5% churn reduction × $38.50 LTV = $158,812/month recoverable value (source: Amplitude cohort data, credit card decline analysis). Downside (40% adoption): $63,525/month. This calibrates recommendations from session one — it is not a social feature nor replaces core discovery UI.

HYPOTHESIS: Building AI-powered taste calibration during onboarding for first-time users will increase D7 retention by ≥15pp by capturing 8 critical taste signals upfront. Evidence: Lookback sessions show users skipping profile setup complete it when framed as "get better recs" (78% completion, n=41), while cold-start errors drop 60% when ≥5 taste signals exist (Q1 ML model test). Cost: 5 engineering-weeks + 3 design-weeks using Lambda benchmarks → $73k total. Value floor: $63k/month at partial adoption justifies build.

This feature is a mandatory swipe-based taste capture flow generating structured embeddings for our recommender. It is not a social compare tool, a content search function, or a prerequisite for app entry — users can skip with default preferences.

Competitive Analysis

HOW COMPETITORS SOLVE THIS:

  • Pinterest: Requires manual board creation and pinning (hires for curation)
  • Spotify: Post-signup music playback preferences (hires for listening context)
  • Letterboxd: Social follow graph imports (hires for friend-aligned discovery)
      | Capability | Pinterest | Spotify | heywavelength | | --- | --- | --- | --- | | Capture during signup | ❌ | ✅ | ✅ (unique) | | Cross-category signals | ❌ (visuals) | ❌ (audio) | ✅ | | Generates embedding | ❌ | Partial | ✅ (structured)| | WHERE WE LOSE | Ecosystem depth | Audio focus | ❌ content breadth vs Pinterest |

Our wedge is multimodal taste binding because we connect sparse signals across domains into a unified preference vector — Spotify and Pinterest specialize.

Problem Statement

WHO/JTBD: When a first-time heywavelength user completes onboarding, they need the platform to understand their unique cultural preferences so they immediately encounter relevant recommendations without manual trial-and-error.

INCIDENT: On May 15, 2024, "Sam T." (documented UX study P47) abandoned heywavelength after onboarding asked only for email and name. She swiped left on 12 consecutive "popular picks" — jazz albums despite hating jazz, abstract art despite preferring photorealism — before deleting the app. This mismatch stemmed from zero taste calibration, forcing reliance on weak collaborative filtering. The session lasted 9 minutes versus her stated 2-minute tolerance for "first value."

SYSTEMIC COST:

MetricBaselineFrequencyCost
D1 abandonment42%Per new user$1.03M annual lost acquisition spend
Avg. sessions to first rec "like"4.2 sessions67% of new users22,275 hours monthly wasted engagement
Support tickets re: "bad recs"31/day63% from first-week users$142k annual ops cost

JTBD: "When I sign up, I want to teach the AI my taste in 90 seconds flat so I see things I actually like immediately."

Solution Design

CORE FLOW (90-second swipe calibration):

  1. Post-email verification, full-screen modal triggers: "Get better recommendations in 90 sec?" [Skip for now] → [Start]
  2. Swipe interface: Eight sequential card stacks (2 per category: music/books/films/aesthetics). Example card: Album art + "Swipe right if this resonates"
  3. Per swipe, system records:<br>   - Explicit: ✅/❍ (like/skip)<br>   - Implicit: Dwell time, hesitation pattern<br>   - Context: Card metadata (genre/era/vector embedding)
  4. Final screen: "Your Taste Profile is ready!" with 3 personalized recs + "See why" tooltip showing matched attributes
  5. Profile stored as JSON {taste_vector: [0.34, -0.72...], explicit_signals: {music: {rock: +2, jazz: -1}}...}

KEY DECISIONS:

  • 8 swipes balances signal density vs. dropout risk (validated via 5-user time tests)
  • Skippable: Allows opt-out but designs friction (full-screen modal, value-prop copy)
  • No text input: Avoids cognitive load; leverages pre-tagged content library
  • Decoupled from social graph: Avoids privacy/comparison distractions

SCOPE BOUNDARY: Phase 1 uses existing content catalog; no custom uploads.

┌───────────────────────────────────────────────┐
│ [Book Category]                               │
│                                               │
│   ┌─────────────────────────────────────┐     │
│   │                                     │     │
│   │  [Cover Art: "Dune" Poster]         │     │
│   │  "Foundational sci-fi epic"         │     │
│   │                                     │     │
│   └─────────────────────────────────────┘     │
│                                               │
│  Swipe ← for not you      Swipe → for love it │
└───────────────────────────────────────────────┘
┌───────────────────────────────────────────────┐
│ Taste Profile Complete!                       │
│                                               │
│  We found patterns in your 8 choices:         │
│  • Strong preference: 80s synth, photorealism │
│  • Avoids: Abstract art, jazz                 │
│                                               │
│  TRY THESE FIRST:                             │   
│  ┌───────┐ ┌──────┐ ┌───────┐                 │
│  │ [Img] │ │[Img] │ │ [Img] │                 │
│  └───────┘ └──────┘ └───────┘                 │
└───────────────────────────────────────────────┘
Acceptance Criteria

Phase 1 — MVP (4 weeks)
US#1 — Taste onboarding entry

  • Given new user completes email verification
  • When modal displays with "Skip/Start"
  • Then 100% display consistency (P0)
    Failure: Skip rate >55% → redesign modal

US#2 — Swipe interaction

  • When user swipes on a content card
  • Then system records card metadata + vector position within 200ms p95
    Failure: Latency >500ms → fall back to simple logging

Out of Scope (Phase 1):

FeatureWhy Not Phase 1
Profile editing UIRequires complex preference weighting controls
Custom content uploadNeeds moderation pipeline not in scope
Multi-user correlationPhase 2 social features required

Phase 1.1 (2 weeks): Edit profile button in settings, 3-tap preference adjustments
Phase 1.2 (3 weeks): "Taste match" social compare (non-default)

Success Metrics
MetricBaselineTargetKill ThresholdMeasurement
Primary
D7 retention51%≥66%<55% at D90Amplitude cohort
Avg. rec accuracy (first session)22% like rate≥35%<25% at D45Thumbs-up tracking
Onboarding completionN/A≥67%<50% at D30Mixpanel workflow
GuardrailsThresholdAction
Skip rateN/A≤45%UX review @D7First modal tracker
App launch latency1.4s p95≤1.6sRevert if breachedFirebase Perf
Cold-start rec CTR12%≥10%Investigate modelsA/B test control

What We Are NOT Measuring:

  1. Profile creation count (inflated by partials, doesn't indicate usage)
  2. Median swipe time (no proven correlation with signal quality)
  3. Social shares (not a Phase 1 objective)
Risk Register

RISK: Low signal density from minimal swipes
Probability: Medium | Impact: High
Trigger: Avg. signals/user <5.5 at D14
Mitigation: Alex (Data) monitors signal distribution → inject high-contrast cards if <5 signals (live by Phase 1)


RISK: Embedding degrades base model recall
Probability: Low | Impact: Critical
Trigger: p95 rec latency >3.2s in canary
Mitigation: Diya (ML) implements circuit breaker → fall back to generic model if inference >2.5s (validated via load test)


RISK: GDPR consent for implicit signals
Probability: High | Impact: Medium
Trigger: DPA flags dwell-time collection
Mitigation: Lena (Legal) confirms compliance by 6/20 → if blocked, collect explicit-only (reduces model accuracy 15%)


KILL CRITERIA (within 90 days):

  1. D7 retention below 55% despite ≥50% calibration completions
  2. Support tickets about bad recs increase >15% from pre-launch baseline
  3. Skip rate >55% with no downward trend by D30
Strategic Decisions Made

Decision: How many swipe interactions to require
Choice Made: 8 signals (2 per category)
Rationale: 90s max, validated per usability tests. 12+ increased dropouts by 22%.


Decision: Data retention for skipped users
Choice Made: Store partial profiles and retarget at D3 via notification
Rationale: Partial signals better than cold-start; notifications historically show 38% CTR (source: push campaign data)


Decision: Personalization depth in Phase 1
Choice Made: Profile populates session but no editable UI yet
Rationale: Edits require complex preference tuning UI — deferred to Phase 1.2 to hit launch target


Decision: Empty state handling for skip-all users
Choice Made: Use "popular near you" with explicit "based on location" label
Rationale: Avoids false personalization; preserves trust per ethics guidelines

Appendix

BEFORE/AFTER STORY
Before: Riley signed up and got classical music recs despite hating it. She searched manually for 8 minutes, found one relevant film, then quit. churned at D2.
After: Riley swiped through 8 cards (loved Blade Runner, hated Kandinsky). Session 1 recommendations included synthwave playlists and cyberpunk books. Saved 3 items in 90 seconds.

PRE-MORTEM
"It is 6 months from now and this feature failed because:

  1. Users interpreted swipe gestures as content voting, not taste calibration — polluting signals
  2. Phase 1.1 editing tools got cut, trapping users in wrong profiles with no recourse
  3. Pinterest launched Lens-based taste capture 5 weeks before us using existing image graph
    Success means VP Product says: 'Our D7 retention finally beats benchmark. Users report "it gets me" on day one — ops tickets about bad recs dropped 70%.' The team no longer hears 'Wavelength doesn't know me.'"