Skip to content

Latest commit

 

History

History
825 lines (658 loc) · 25.6 KB

File metadata and controls

825 lines (658 loc) · 25.6 KB

ScamGuard MVP - Feature Matrix (Fonctionnalités vs Personas)

Date: 12 mars 2026 Version: 1.0 Scope: MVP (Phase 1) + Roadmap (Phase 2-4)


📋 Table des Matières

  1. Vue d'ensemble
  2. Matrice Fonctionnalités x Personas
  3. Détail des Fonctionnalités MVP
  4. Roadmap Phases 2-4
  5. Feature Priority Matrix
  6. Effort vs Impact

Vue d'ensemble

Trois Couches de Fonctionnalités

┌──────────────────────────────────────────────────┐
│ TIER 1: SENIOR CORE (Essential)                  │
│ ├─ Analysis (SMS, Email, Photos)                │
│ ├─ Training Scenarios                           │
│ ├─ Results Feedback                             │
│ └─ Accessibility (Voice, Large fonts)           │
└──────────────────────────────────────────────────┘
                        ↓
┌──────────────────────────────────────────────────┐
│ TIER 2: FAMILY & TRACKING (Important)            │
│ ├─ Family Dashboard                             │
│ ├─ Analysis History                             │
│ ├─ Profile Management                           │
│ └─ Notifications                                │
└──────────────────────────────────────────────────┘
                        ↓
┌──────────────────────────────────────────────────┐
│ TIER 3: INSTITUTIONAL & ADVANCED (Future)        │
│ ├─ White-label                                  │
│ ├─ Reporting & Compliance                       │
│ ├─ API & Integration                            │
│ └─ Advanced Analytics                           │
└──────────────────────────────────────────────────┘

Matrice Fonctionnalités x Personas

Format d'Interprétation

✅ = Critère essentiel pour persona
⚠️ = Critère important (nice-to-have)
❌ = Pas applicable
⭐ = Déjà implémenté
🔜 = Planifié Phase 2+

SENIOR (Personne Âgée)

Fonctionnalité Status Priority Raison
Message Analysis ⭐ MVP 🔴 CRITIQUE Besoin #1 (détection)
SMS Detection ⭐ MVP 🔴 CRITIQUE 90% des arnaques
Email Detection ⭐ MVP 🔴 CRITIQUE 2e type d'arnaque
Photo Upload ⭐ MVP 🟠 HAUTE Capture screenshot
Voice Input (🎙️) ⭐ MVP 🟠 HAUTE Accessibility (pas typage)
Voice Output (TTS) ⭐ MVP 🟠 HAUTE Accessibility (malvoyants)
Risk Score (0-100) ⭐ MVP 🟠 HAUTE Feedback immédiat
Coaching Feedback ⭐ MVP 🟠 HAUTE Explique pourquoi
Training Scenarios ⭐ MVP 🟠 HAUTE Education interactive
Gamification (XP) ⭐ MVP 🟡 MOYENNE Motivation
Large Fonts (20px+) ⭐ MVP 🔴 CRITIQUE WCAG A11Y
High Contrast ⭐ MVP 🔴 CRITIQUE WCAG AAA
Simple Navigation ⭐ MVP 🔴 CRITIQUE Cognitive load
French (fr-CA) ⭐ MVP 🔴 CRITIQUE Language native
Analysis History 🔜 Phase 2 🟡 MOYENNE Track progrès
Quiz Module 🔜 Phase 2 🟡 MOYENNE Deep learning
Resources Tab 🔜 Phase 2 🟡 MOYENNE Education content
Offline Mode 🔜 Phase 3 🟢 BAS Rare need
Multiple Languages 🔜 Phase 3 🟢 BAS English minorities

Summary for Senior: 13/18 features in MVP, rest in Phases 2-3


FAMILY MEMBER (Aidant Familial)

Fonctionnalité Status Priority Raison
Family Dashboard ⭐ MVP 🔴 CRITIQUE Raison #1 pour aidant
Member List ⭐ MVP 🔴 CRITIQUE Voir qui on protège
Analysis Visibility ⭐ MVP 🟠 HAUTE Voir quand analyse
Risk Summary ⭐ MVP 🟠 HAUTE "Mom has 5 high-risk"
Alert Notifications 🔜 Phase 2 🟠 HAUTE "Dad analyzed suspicious SMS"
Check-in Messages 🔜 Phase 2 🟠 HAUTE "How can I help?"
Invite Family ⭐ MVP 🟡 MOYENNE Add members
Manage Permissions 🔜 Phase 2 🟡 MOYENNE Control sharing
Own Analysis ⭐ MVP 🟡 MOYENNE Family learns too
Shared Quiz 🔜 Phase 2 🟢 BAS Fun bonding
Educational Tips 🔜 Phase 2 🟡 MOYENNE What to teach parent
How-to Guides 🔜 Phase 2 🟡 MOYENNE Explain arnaque types
Analytics Export 🔜 Phase 3 🟢 BAS Report for advisor

Summary for Family: 4/13 in MVP, 9/13 in Phase 2+


INSTITUTION (Health/Social Worker)

Fonctionnalité Status Priority Raison
Group Management 🔜 Phase 2 🔴 CRITIQUE Manage 50+ clients
Bulk User Import 🔜 Phase 2 🟠 HAUTE Add all at once
Activity Dashboard 🔜 Phase 2 🟠 HAUTE Track client engagement
Compliance Reports 🔜 Phase 2 🟠 HAUTE Audit trail
Risk Alerts 🔜 Phase 2 🟠 HAUTE Flag at-risk clients
Analytics & Metrics 🔜 Phase 2 🟠 HAUTE Monthly reporting
API Access 🔜 Phase 3 🟡 MOYENNE Integration needs
White Label Option 🔜 Phase 3 🟡 MOYENNE Custom branding
SSO Integration 🔜 Phase 3 🟡 MOYENNE Existing directory
Bulk SMS Alerts 🔜 Phase 3 🟢 BAS Reach all clients
Training Materials 🔜 Phase 2 🟡 MOYENNE Staff onboarding
Support Helpline 🔜 Phase 2 🟡 MOYENNE Technical issues

Summary for Institution: 0/12 in MVP, 11/12 in Phase 2+


BANK/FINANCIAL INSTITUTION

Fonctionnalité Status Priority Raison
White-Label 🔜 Phase 3 🔴 CRITIQUE Customer branding
Custom Logo/Colors 🔜 Phase 3 🟠 HAUTE Brand consistency
SMS Integration 🔜 Phase 3 🟠 HAUTE Send via SMS alerts
Deep Linking 🔜 Phase 3 🟠 HAUTE From app → ScamGuard
API for Analysis 🔜 Phase 3 🟡 MOYENNE Real-time checking
Real-time Alerts 🔜 Phase 3 🟡 MOYENNE Notify bank of risk
Compliance Reports 🔜 Phase 3 🔴 CRITIQUE Regulatory proof
Audit Trail 🔜 Phase 3 🔴 CRITIQUE GDPR/PIPEDA ready
Data Residency 🔜 Phase 2 🟠 HAUTE Canada servers only
DPA Agreement 🔜 Phase 2 🔴 CRITIQUE Data processing agreement
Customer Analytics 🔜 Phase 3 🟡 MOYENNE See usage metrics
Fraud Intelligence 🔜 Phase 4 🟢 BAS Receive threat feeds

Summary for Bank: 0/12 in MVP, all Phase 2+


Détail des Fonctionnalités MVP

CORE: Message Analysis

Feature 1.1: SMS Analysis

Description: Analyse de messages SMS suspects

User Story:

AS A Senior
WHEN I receive a text message I'm unsure about
I WANT TO analyze it in ScamGuard
SO THAT I can know if it's a scam

Implementation:

Input: SMS text (up to 160 chars)
Process:
  1. Send to Lambda
  2. LLM analysis (OpenAI  Gemini fallback)
  3. Keyword detection (last resort)
  4. Risk score calculation
Output:
  {
    risk_score: 0-100,
    is_scam: boolean,
    explanation: "Pourquoi c'est une arnaque",
    indicators: ["urgency", "account_threat", "link_request"]
  }

Success Criteria:

  • ✅ Detection in <2 seconds
  • ✅ Accuracy >85%
  • ✅ Handles 500+ concurrent requests
  • ✅ Works with common SMS scams (banking, Amazon, Apple)

Feature 1.2: Email Analysis

Description: Analyse de messages email

Input Types:

  • Copier-coller le texte
  • Upload screenshot
  • Photo de l'écran

Detection: Same as SMS, but longer context

Special: Email header analysis (if provided)


Feature 1.3: Photo Upload

Description: Capture screenshot, analyze content

Technical:

Input: Image (JPG/PNG)
Process:
  1. Compress if >2MB
  2. Encode to Base64
  3. Send to LLM with vision capabilities
  4. Extract text + context
  5. Analyze for scam
Output: Same as SMS/Email

Use Case:

Senior: "I got this image on WhatsApp, is it real?"
→ Takes screenshot
→ Uploads to ScamGuard
→ Vision API reads text
→ Analyzes content
→ Returns score + explanation

ACCESSIBILITY: Voice Features

Feature 2.1: Text-to-Speech (TTS)

Configuration:

// Entire analysis read aloud
const speakResult = (text) => {
  const utterance = new SpeechSynthesisUtterance(text);
  utterance.lang = 'fr-CA';           // Quebec French
  utterance.rate = 0.85;              // Slower for seniors
  utterance.pitch = 1.0;              // Normal pitch
  window.speechSynthesis.speak(utterance);
};

// Auto-triggered on results
// Manual button (🔊) for re-reading

When Used:

  • Results screen loads ("Score: 85/100, This is scam")
  • Training scenario loads (reads fake message)
  • Feedback reads aloud (coaching message)

Feature 2.2: Speech Recognition (Dictation)

Configuration:

const recognition = new window.webkitSpeechRecognition();
recognition.lang = 'fr-CA';
recognition.continuous = false;  // Single phrase
recognition.interimResults = false;  // Final only

Flow:

1. Senior clicks 🎙️ Dicter
2. Permission dialog appears (first time)
3. Microphone active (visual feedback: "🛑 Écoute...")
4. Senior speaks response
5. Text appears in textarea
6. Can add more or submit

Browser Support:

  • ✅ Chrome
  • ✅ Edge
  • ⚠️ Firefox (limited)
  • ❌ Safari (fallback to text input)

EDUCATION: Training & Gamification

Feature 3.1: Training Scenarios

Current Scenarios (3 in MVP):

  1. SMS Bancaire

    • Text: "Votre compte est bloqué. Cliquez ici."
    • Type: Banking scam
    • Red flags: Urgency, action required, generic greeting
  2. Annonce Amazon

    • Text: "Votre compte Amazon a été suspendu. Confirmez vos coordonnées."
    • Type: Account suspension
    • Red flags: Demand for personal info, suspension threat
  3. Email Apple

    • Text: "Paiement refusé. Mettez à jour carte bancaire."
    • Type: Payment scam
    • Red flags: Financial threat, update data request

Mechanics:

1. Senior clicks "M'entraîner"
2. System picks random scenario
3. Displays fake message with TTS reading
4. Provides textarea + voice option for response
5. Senior submits response
6. LLM analyzes response quality:
   - Did they recognize it as scam?
   - Did they give good advice?
   - Did they suggest correct action?
7. Returns score + feedback
8. Awards XP
9. Returns to home

Scoring Logic:

// Evaluation criteria
Good responses:
- "This is a scam - don't click"
- "Delete the message, it's fake"
- "Call the bank directly (not the number in SMS)"

Poor responses:
- "I don't know"
- "Maybe click to check" 
- "Ignore it" (too vague)

Scoring:
- Identifies as scam: +50 points
- Explains why: +30 points
- Suggests action: +20 points
- Max: 100 points

XP Awarded:
- Score ≥60: +10 XP
- Score 40-59: +5 XP
- Score <40: +2 XP

Feature 3.2: Gamification (XP & Badges)

XP System:

Activities:
├─ Analyze message: +2-5 XP
├─ Training scenario: +5-10 XP
├─ Quiz completion: +20 XP
└─ Good streak (5 in a row): +15 XP bonus

Leveling:
├─ Level 1: 0-50 XP (Novice)
├─ Level 2: 50-150 XP (Apprentice)
├─ Level 3: 150-300 XP (Guardian)
├─ Level 4: 300-500 XP (Expert)
└─ Level 5: 500+ XP (Master)

Badges (Future - Phase 2):

  • 🛡️ First Analysis
  • 🎯 5 Analyses
  • 🧠 Quiz Master (100% on 3 quizzes)
  • 🚀 Streak (5 correct in a row)
  • 💡 Helpful (Family member says helped them)

INTERFACE: Accessibility Design

Feature 4.1: Large Fonts & High Contrast

Typography:

:root {
  --font-size-h1: 32px;    /* Titles */
  --font-size-h2: 26px;    /* Subtitles */
  --font-size-body: 20px;  /* Regular text */
  --font-size-button: 22px; /* Buttons (bold) */
  --line-height: 1.6;      /* Generous spacing */
}

/* Minimum: 20px for all text */
/* No text smaller than 16px, ever */

Colors (WCAG AAA):

--color-primary: #0056b3;     /* 10.2:1 contrast on white */
--color-success: #2e7d32;     /* 6.8:1 contrast */
--color-error: #d32f2f;       /* 5.9:1 contrast */
--color-warning: #ff9800;     /* 4.6:1 contrast */
--color-background: #f9f9f9;  /* Slight tint (not pure white) */
--color-text: #1a1a1a;        /* Not pure black (easier on eyes) */

Feature 4.2: Touch-Friendly Buttons

Specification:

/* All interactive elements */
button, input, textarea {
  min-height: 60px;           /* 60px touch target */
  padding: 15px 20px;         /* Generous padding */
  border-radius: 12px;        /* Not too sharp */
  font-size: 20px;            /* Large text */
  border: 2px solid transparent; /* Visible focus state */
}

/* Hover/focus states visible */
button:hover {
  background-color: darken-primary;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

button:focus {
  outline: 3px solid var(--color-primary);
  outline-offset: 2px;
}

Rationale:

  • 60px: Accommodates trembling hands, arthritis
  • 2px border: Clear focus indicator
  • 12px radius: Not too sharp (ergonomic)
  • 20px font: Readable for vision loss

Feature 4.3: ARIA Labels & Screen Reader Support

Implementation:

<button aria-label="Relire le message">
  🔊
</button>

<button aria-label="Dicter ma réponse au micro">
  🎙️
</button>

<div role="alert" aria-live="polite">
  Résultat: Ceci est une arnaque (92/100)
</div>

Testing:

  • ✅ Tested with NVDA (Windows)
  • ✅ Tested with JAWS (licensed)
  • ✅ Tested with VoiceOver (Mac)

FAMILY: Dashboard & Tracking

Feature 5.1: Family Dashboard

View:

┌─────────────────────────────────────────┐
│ MA FAMILLE (My Family)                  │
├─────────────────────────────────────────┤
│                                          │
│ 👴 PAPA (73 ans) - ACTIF                │
│ ├─ Analyses ce mois: 8                  │
│ ├─ Dernière: Il y a 3 jours             │
│ ├─ Risk moyen: 35/100 ✅ (Bas)          │
│ └─ Statut: Tout va bien                 │
│                                          │
│ 👵 MAMAN (76 ans) - ACTIF               │
│ ├─ Analyses: 14                         │
│ ├─ Dernière: Il y a 2 heures            │
│ ├─ Risk moyen: 25/100 ✅ (Très bas)     │
│ └─ Statut: Vigilante!                   │
│                                          │
│ 👴 GRAND-MÈRE (88 ans) - ATTENTION      │
│ ├─ Analyses: 2                          │
│ ├─ Dernière: Il y a 3 semaines          │
│ ├─ Risk moyen: 65/100 ⚠️ (Moyen)        │
│ └─ Statut: 3 alertes ce mois            │
│                                          │
│ [+ Ajouter un membre]                   │
│                                          │
└─────────────────────────────────────────┘

Data Points:

  • Member name + age
  • Analysis count (this month)
  • Last activity date
  • Average risk score (0-100)
  • Overall status (healthy/at-risk)
  • Alert count

Interaction:

Tap on member → See recent analyses
  ├─ Last 5 analyses listed
  ├─ Can see timestamp
  ├─ Can see risk score
  └─ Can see type (SMS/Email/etc)

Feature 5.2: Analysis History

For Senior:

History View:
├─ All analyses date-ordered (newest first)
├─ Each shows:
│  ├─ Date & time
│  ├─ Type (SMS, Email, Photo)
│  ├─ Risk score (visual + number)
│  ├─ Message preview (truncated)
│  └─ Tap to view full result
├─ Filter by type (SMS, Email, etc)
└─ Filter by date range

For Family:

Aidant sees:
├─ Member's last 10 analyses
├─ Trends (is risk increasing?)
├─ Most common type
├─ Alerts if unusual pattern
└─ Cannot see full messages (privacy)

RESULTS: Feedback & Coaching

Feature 6.1: Results Screen

Layout:

┌────────────────────────────────────────┐
│          RÉSULTAT ANALYSE               │
├────────────────────────────────────────┤
│                                         │
│              ╔═════════╗                │
│              ║   92   ║                │
│              ║  /100  ║  ← Score       │
│              ╚═════════╝ (Color coded)  │
│                                         │
│  🟥 CECI EST UNE ARNAQUE               │
│                                         │
│  ┌────────────────────────────────────┐│
│  │ Explication:                       ││
│  │ Cet SMS a 3 signaux d'alerte:      ││
│  │ 1) Urgence ("action immédiate")    ││
│  │ 2) Menace (compte "bloqué")        ││
│  │ 3) Lien malveillant inclus         ││
│  │                                    ││
│  │ Les banques JAMAIS demandent       ││
│  │ vérification par SMS!              ││
│  └────────────────────────────────────┘│
│                                         │
│  🎖️ +10 XP GAGNÉS!                      │
│                                         │
│  ┌────────────────────────────────────┐│
│  │      [🏠 RETOUR À L'ACCUEIL]       ││
│  └────────────────────────────────────┘│
│                                         │
└────────────────────────────────────────┘

Score Interpretation:

0-30:    🟢 Sûr (Safe)
31-50:   🟡 Suspect (Watch out)
51-75:   🟠 Risqué (Risky)
76-100:  🔴 Arnaque (Scam)

Feature 6.2: Coaching Messages

Dynamically Generated Based on Score:

Score Message
>80 "Excellente détection! Ce message avait tous les signaux d'une arnaque. Continuez comme ça!"
60-80 "C'était une arnaque. Méfiez-vous des messages demandant données personnelles ou cliquer sur liens."
40-60 "Celui-ci était un peu ambigu. En cas de doute, appelez directement (pas le numéro du message)."
<40 "Ce message semble assez sûr. Vous faites preuve de vigilance en vérifiant!"

Roadmap Phases 2-4

PHASE 2: User Engagement & Tracking (Weeks 3-6)

Feature Priority Effort Benefit
Analysis History 🟠 HAUTE 2 pts See patterns
Quiz Module 🟠 HAUTE 3 pts Deeper learning
Push Notifications 🟠 HAUTE 2 pts Engagement
Resources Tab 🟡 MOYENNE 2 pts Reference material
Profile Management 🟡 MOYENNE 2 pts Personalization
Family Alerts 🟠 HAUTE 3 pts Family value
Basic Analytics 🟡 MOYENNE 3 pts See progress

Total Effort: 17 story points (4 weeks, 2 devs)


PHASE 3: Institutional Features (Weeks 7-12)

Feature Priority Effort
White-label version 🔴 CRITIQUE 5 pts
Admin dashboard 🔴 CRITIQUE 4 pts
Bulk user import 🟠 HAUTE 2 pts
Compliance reports 🔴 CRITIQUE 4 pts
API endpoints 🟠 HAUTE 4 pts
Data residency (Canada) 🔴 CRITIQUE 3 pts
Advanced analytics 🟡 MOYENNE 3 pts

Total Effort: 25 story points (6 weeks, 2 devs)


PHASE 4: Advanced Features (Months 3-6)

Feature Priority Benefit
ML-based threat scoring 🟡 MOYENNE 10% accuracy gain
Image vision API 🟡 MOYENNE Better OCR
Mobile apps (iOS/Android) 🟠 HAUTE 50% more users
Multi-language support 🟡 MOYENNE Expand market
Offline mode 🟢 BAS Rare use case

Feature Priority Matrix

2x2 Matrix: Impact vs Effort

                    HIGH EFFORT
                        ↑
                        │
        ╔═══════════════╪═══════════════╗
        ║    NICE       │    PLAN       ║
        ║  TO HAVE      │    LATER      ║
        ║               │               ║
        ║  Mobile Apps  │  White-label  ║
        ║  i18n         │  Advanced API ║
        ║  Offline      │  ML scoring   ║
        ├───────────────┼───────────────┤
        ║    SKIP       │   DO FIRST    ║
        ║               │               ║
        ║ (Empty)       │  Analysis     ║
        ║               │  Voice        ║
        ║               │  Scenarios    ║
        ║               │  Dashboard    ║
        ╚═══════════════╪═══════════════╝
        LOW EFFORT      │
                        │
                    LOW IMPACT
                    ↓

Quadrants Expliqués

DO FIRST (High Impact, Low Effort)

  • ✅ Message Analysis
  • ✅ Voice Features
  • ✅ Training Scenarios
  • ✅ Family Dashboard
  • Timeline: MVP (Weeks 1-2)

PLAN LATER (High Impact, High Effort)

  • 🔜 White-label version
  • 🔜 Advanced APIs
  • 🔜 ML threat scoring
  • Timeline: Phase 3-4 (after MVP success)

SKIP (Low Impact, High Effort)

  • ❌ Offline mode (not a priority for seniors)
  • ❌ Wearable support (low user base)
  • ❌ VR/AR interface (overkill)

NICE TO HAVE (Low Impact, Low Effort)

  • ⭐ Animation polish
  • ⭐ Additional badges
  • ⭐ Social features (optional sharing)

Effort vs Impact

MVP Feature Costs

Feature Effort Benefit ROI
Analysis Engine 5 pts Solves #1 pain ⭐⭐⭐⭐⭐
Voice I/O 3 pts Accessibility ⭐⭐⭐⭐⭐
Training 4 pts Education ⭐⭐⭐⭐
Dashboard 2 pts Family value ⭐⭐⭐⭐
Gamification 2 pts Engagement ⭐⭐⭐
Accessibility 3 pts Market diff ⭐⭐⭐⭐⭐

Total MVP: 19 story points (2-3 weeks, 2 devs)


Feature Completeness by Persona

Senior Completeness (MVP vs Needs)

Tier Status Coverage
Tier 1: Core Detection ✅ MVP 100%
Tier 2: Education ✅ MVP 80% (3 scenarios, add more Phase 2)
Tier 3: Tracking 🔜 Phase 2 0% (Analysis history)
Tier 4: Advanced 🔜 Phase 3+ 0%

Outcome: Senior has full core experience in MVP ✅


Family Completeness (MVP vs Needs)

Tier Status Coverage
Tier 1: Basic Dashboard ✅ MVP 100%
Tier 2: Analysis Visibility ✅ MVP 100%
Tier 3: Alerts & Actions 🔜 Phase 2 0%
Tier 4: Advanced 🔜 Phase 3+ 0%

Outcome: Family gets visibility in MVP, engagement in Phase 2 ✅


Institution Completeness (MVP vs Needs)

Tier Status Coverage
Tier 1: Tools ✅ MVP 100% (can use existing features)
Tier 2: Admin Features 🔜 Phase 2 0% (need bulk import, reporting)
Tier 3: Compliance 🔜 Phase 3 0% (white-label, APIs)
Tier 4: Advanced 🔜 Phase 4+ 0%

Outcome: Institution uses MVP tools, gets dedicated features Phase 2+ ✅


Conclusion: Feature Strategy

MVP Philosophy

✅ DO: Core features that work really well
  ├─ Analysis (2 seconds, >85% accuracy)
  ├─ Accessibility (senior-focused)
  ├─ Education (3 scenarios + feedback)
  └─ Family dashboard (basic visibility)

❌ DON'T: Nice-to-have features
  ├─ Mobile apps (Phase 4)
  ├─ Advanced analytics (Phase 3)
  ├─ Multi-language (Phase 3)
  └─ White-label (Phase 3)

📍 GOAL: Perfect MVP for seniors + families
        Not "half-baked for everyone"

Success Metrics for Each Phase

Phase 1 (MVP):

  • ✅ >5,000 senior users in 3 months
  • ✅ >2,000 family members join
  • ✅ >1,000 analyses/week
  • ✅ 4.5+ star rating
  • ✅ >60% monthly retention

Phase 2 (Engagement):

  • ✅ >50,000 senior users
  • ✅ >20,000 family members
  • ✅ >10,000 analyses/week
  • ✅ First institutional partnership
  • ✅ >70% monthly retention

Phase 3+ (Scale):

  • ✅ >250,000 senior users
  • ✅ 10+ institutional partners
  • ✅ White-label deployments
  • ✅ Revenue ($500K+/year)

Document créé: 12 mars 2026 Responsable: Product Management Version: 1.0 Complete