Personalization Roadmap
Status: Infrastructure Complete, Frontend Not Started Updated: February 2026 Data Source: 2024 Arlem Analytics (122 cart adders, 3,044 total visitors)
Current Status
Infrastructure (Complete)
| Component | Status | Location |
|---|---|---|
useVisitorSegment() hook | Implemented | web/lib/hooks/use-visitor-segment.ts |
useIsAtLeastSegment() helper | Implemented | web/lib/hooks/use-visitor-segment.ts |
| Backend segment computation | Implemented | BigQuery scheduled job (hourly) |
| Cosmos DB reverse sync | Implemented | analytics/src/functions/scheduledBigQuerySync.ts |
| Tracking API segment response | Implemented | analytics/src/functions/httpLogEvent.ts |
| Frontend segment storage | Implemented | web/lib/events/post-event-data.ts (localStorage _as key) |
Frontend Usage (Not Started)
No components currently consume the useVisitorSegment() hook. The hook exists and works, but is unused.
Comparison: The useLocalizedText() hook (from lib/hooks/use-country.ts) demonstrates the intended pattern and is successfully used in 4 components.
Segment Model
Segments are computed hourly in BigQuery and synced to Cosmos DB. The frontend reads them via localStorage (_as key).
| Segment | Code | Criteria | Psychology |
|---|---|---|---|
| Cold | 1 | < 2 sessions AND < 5 events | Knows nothing, high bounce risk |
| Interested | 2 | 2+ sessions OR 5+ events | Curious, actively exploring |
| Warm | 3 | Has AddToCart event | Mentally engaged, researching |
| Hot | 4 | Has ProceedToCheckout event | Committed but stuck |
| Customer | 5 | Has Purchase event | Knows and trusts brand |
Match the Message to the Mindset
| Segment | Visitor Needs | Site Should Provide |
|---|---|---|
| Cold | Trust, education, value prop | Brand story, trust badges, social proof |
| Interested | Guidance, answers, comparison | Size guide, FAQ, product recommendations |
| Warm | Confidence, validation | Reviews, UGC, guarantees, social proof |
| Hot | Friction removal, urgency | Free shipping progress, stock alerts, checkout simplification |
| Customer | Recognition, value | Loyalty perks, cross-sells, referral program |
The Opportunity
Industry Benchmarks
| Metric | Improvement | Source |
|---|---|---|
| Personalized CTAs | 202% better conversion | HubSpot (330K CTAs analysed) |
| Product recommendations | Up to 320% conversion increase | Various studies |
| Brands excelling at personalization | 40% more revenue | Epsilon study |
| Exit-intent cart abandonment popups | 17.12% conversion rate | OptiMonk |
2024 Data: We’re Losing High-Intent Visitors
37% of cart adders needed multiple visits before adding to cart. We showed them the exact same experience every time.
CART ADDER DISTRIBUTION (122 real cart adders)
══════════════════════════════════════════════════════════════
Added to cart on first visit: 77 (63%) → Decisive buyers
Needed 2 sessions: 23 (19%) → Quick returners
Needed 3 sessions: 5 (4%) → Considering
Needed 4+ sessions: 17 (14%) → HIGH INTENT, STUCK
Of the 17 high-intent visitors (4+ sessions):
├── Average sessions: 7.8
├── Longest journey: 23 sessions over 126 days
├── Estimated value: ~$6,000+ in cart additions
└── Conversions from personalization: 0 (we didn't have any)Case Study: The 23-Session Visitor
A Sydney iPhone user visited 23 times over 126 days (July - November 2024):
- Session 1: Added Boucle Bedhead (~$350) + Neapolitan Cushion (~$100) to cart
- Sessions 2-22: Returned repeatedly, viewed same products
- Session 23: Final visit, then disappeared
- Cart value: ~$450
- Outcome: Abandoned
What we showed: Standard site, 23 times What we should have shown:
| Visit | Personalization |
|---|---|
| 2 | “Welcome back! Your Boucle Bedhead is still in your cart” |
| 3 | “Still thinking about it? Here’s what customers say…” + testimonials |
| 4 | “Questions about sizing? I’m Emily, happy to help” + chat prompt |
| 5 | “Here’s 10% off to help you decide: COMEBACK10” |
| 6+ | Persistent discount banner + urgency messaging |
Implementation Touchpoints
35+ personalization opportunities identified across the site:
Priority 1: Quick Wins (High Impact, Low Effort)
Announcement Bar
File: components/layout/announcement-bar.tsx
| Segment | Message |
|---|---|
| Cold | “We’re reopening March 2026. Get 10% off - Join the waitlist” |
| Interested | “Welcome back! Join our waitlist for 10% off” |
| Warm | “We saved your 10% discount. Add to cart to claim it” |
| Hot | “Your cart is waiting - complete your order for 10% off” |
| Customer | “Welcome back! Exclusive 15% loyalty discount: FAMILY15” |
Add to Cart Button
File: components/cart/add-to-cart.tsx
| Segment | Button Text |
|---|---|
| Cold/Interested | “Add to Cart” |
| Warm | “Add to Cart - 10% Off Today” |
| Hot | “Complete Your Order” |
| Customer | “Add Another” |
Hero Section
File: app/pages/home/header-img.tsx
| Segment | Headline | CTA |
|---|---|---|
| Cold | “The Bedhead Cushion That Changes Everything” | “See How It Works” |
| Interested | “Find Your Perfect Bedhead” | “Compare Sizes” |
| Warm | “Join 500+ Australian Homes” | “Read Reviews” |
| Hot | “Your Bedroom Transformation Awaits” | “Complete Order” |
| Customer | “Welcome Back” | “Shop New Arrivals” |
Trust Strip
File: app/pages/home/hero-trust-strip.tsx
| Segment | Enhancement |
|---|---|
| Cold | Keep as-is (all trust signals) |
| Interested | Add “X people viewing now” |
| Warm | Emphasize “30-Day Easy Returns” |
| Hot | Show “Your cart is saved” |
| Customer | Show “Thank you for being a customer” |
Priority 2: Conversion Optimization (Medium Effort)
- Free Shipping Progress Bar - Progress bars increase threshold conversion by 15-25%
- Exit-Intent Popup - Cart abandonment popups convert at 17.12%
- Review Section Repositioning - Move above fold for Warm+ segments
- Product Card Badges - “You viewed this”, “10% off for you”, “In your cart”
Priority 3: Deep Personalization (Higher Effort)
- Product Recommendations Reordering - Previously viewed first for returning visitors
- Section Reordering/Condensing - Skip educational content for Warm+ visitors
- “Find Your Bedhead” Quiz - Zero-party data collection for Cold/Interested
Technical Pattern
Based on the existing useCountry() pattern:
'use client';
import { useVisitorSegment, useIsAtLeastSegment } from 'lib/hooks/use-visitor-segment';
export function PersonalizedHero() {
const segment = useVisitorSegment();
const isWarmOrHigher = useIsAtLeastSegment('Warm');
const content = {
Cold: {
headline: 'The Bedhead Cushion That Changes Everything',
cta: 'See How It Works'
},
Interested: {
headline: 'Find Your Perfect Bedhead',
cta: 'Compare Sizes'
},
Warm: {
headline: 'Join 500+ Australian Homes',
cta: 'Read Reviews'
},
Hot: {
headline: 'Your Bedroom Transformation Awaits',
cta: 'Complete Order'
},
Customer: {
headline: 'Welcome Back',
cta: 'Shop New Arrivals'
}
};
const { headline, cta } = content[segment];
return (
<section>
<h1>{headline}</h1>
{isWarmOrHigher && <UrgencyBanner />}
<Button>{cta}</Button>
</section>
);
}Implementation Phases
Phase 0: Infrastructure (Complete)
-
useVisitorSegment()hook implementation - BigQuery segment computation (hourly scheduled job)
- Cosmos DB reverse sync (BigQuery -> Cosmos)
- Tracking API segment response
- Frontend localStorage storage
Phase 1: Quick Wins (Not Started)
- Announcement bar personalization
- Add-to-cart button text changes
- Hero headline/CTA variations
- Trust strip enhancements
Phase 2: Conversion Optimization (Not Started)
- Free shipping progress bar
- Exit-intent popup implementation
- Review section repositioning
- Product card badges
Phase 3: Deep Personalization (Not Started)
- Prelaunch modal bypass logic
- Product recommendations reordering
- Section condensing for warm/hot visitors
- Customer loyalty features
Phase 4: Zero-Party Data (Not Started)
- “Find Your Bedhead” quiz design
- Quiz implementation
- Quiz data integration with segments
- Email personalization based on quiz
Success Metrics
| Segment | Primary Metric | Target |
|---|---|---|
| Cold | Bounce rate, email capture | <50% bounce, >5% capture |
| Interested | Pages per session | >4 pages |
| Warm | Add-to-cart rate | >10% ATC |
| Hot | Checkout completion | >60% complete |
| Customer | Repeat purchase rate | >20% repeat |
Estimated Impact (Based on 2024 Data)
| Scenario | Calculation | Outcome |
|---|---|---|
| Convert 30% more of 4+ session visitors | 17 × 30% × $350 | +$1,785 |
| Convert 20% more of 2-3 session visitors | 28 × 20% × $350 | +$1,960 |
| Capture emails from 10% of browsers | 3,044 × 10% | +304 subscribers |
Conservative estimate: $3,000-5,000 additional revenue from personalization alone.
Discount Timing Strategy
Based on 2024 cart adder behavior:
| Session | Action | Rationale |
|---|---|---|
| 1-2 | No discount | 63% convert without one |
| 3 | Soft offer for cart abandoners only | “10% off to complete your order” |
| 4+ | Proactive discount for ALL returning visitors | They’re clearly stuck |
| 5+ with cart abandon | Aggressive discount + chat help | Highest value targets |
Privacy Compliance
- First-party data only - Segments based on on-site behavior stored in localStorage
- No third-party cookies - Tracking via Arlem Analytics
- Server-side computation - BigQuery processes data server-side
- Zero-party data future - Quiz-based personalization is explicitly consented
Next Steps
- Approve Phase 1 implementation items
- Begin with announcement bar and hero personalization
- Set up A/B testing to measure impact by segment
- Review metrics weekly and iterate
Consolidated from CONDITIONAL-RENDERING-PROPOSAL-2026.md and VISITOR-JOURNEY-PERSONALIZATION.md