rebreak-monorepo/ops/strategy/pricing-tiers.md
chahinebrini 1ad964f54b fix(backend): alias NUXT_*_BOT_USER_ID env vars in start-staging.sh
Infisical staging holds the bot user IDs as NUXT_LYRA_BOT_USER_ID /
NUXT_REBREAK_BOT_USER_ID, but nitro.config.ts reads process.env.LYRA_BOT_USER_ID
(no NUXT_ fallback) and start-staging.sh had no alias for them → config.lyraBotUserId
was empty → POST /api/admin/lyra-post threw 500 "LYRA_BOT_USER_ID nicht
konfiguriert" (surfaced via the admin app proxy). Adds the alias + NITRO_ override
exports, same pattern as the other keys.

Also: ops/strategy/pricing-tiers.md — strategist's tier-pricing analysis,
stress-test, downgrade-policy matrix, plan-change briefing-screen content +
scenario test matrix (Task #8 Phase 1).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 15:37:38 +02:00

254 lines
31 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ReBreak Pricing-Tiers: Strategie, Stress-Test, Downgrade-Policy
> Single-Source-of-Truth für tier-gated Features bleibt `backend/server/utils/plan-features.ts` (Code) bzw. die Pricing-Page auf rebreak.org (Preise). Dieses Doc ist die *Strategie-Schicht* darüber.
>
> **Preis-Caveat:** rebreak.org/pricing war beim Schreiben nicht erreichbar (HTTP 401). Alle Preise unten (`Pro 3.99€`, `Legend 7.99€`, `+3€ MDM`) sind aus `ops/RELEASE_READINESS.md` + `ops/strategy/mdm-productization-roadmap.md` übernommen und als **Annahme** markiert. Sobald die Pricing-Page live ist, gilt die — dieses Doc nachziehen.
>
> Autor: rebreak-strategist · Stand: 2026-05-11
---
## 0. TL;DR für Eilige
- **Tier-Logik ist grundsätzlich tragfähig**, aber **Free ist zu großzügig** und **Pro hat ein Wertproblem**: free→pro für 4€ verkauft aktuell hauptsächlich "schnellere Stimme + 200 statt 5 Domains" — das ist kein Schmerzpunkt für jemanden in Recovery.
- **Legend ist der einzige Tier mit echtem, schwer-kopierbarem USP**: Multi-Device-DNS-Schutz (Mac/Windows fremde Geräte). Das ist die Conversion-Story. Haiku-Coach + ElevenLabs + Mail-Live sind "nice", aber allein keine 8€ wert.
- **Empfehlung Pricing-Architektur:** Free bewusst *schmaler* schneiden (Domains 5→bleibt, aber Global-Blocklist als Pro-Gate ist okay; Mail-Cron 4h ist okay), **Pro repositionieren als "ernsthafter Schutz" (Live-Mail rein, Multi-Device 1 Gerät rein)**, Legend = "alles + bis 3 fremde Geräte + Premium-Coach". Mehr in §2.5.
- **Downgrade-Policy:** *Niemals* sicherheitsrelevante Features bei Downgrade still abschalten. Grundprinzip: **Recovery-Schutz bleibt aktiv, Komfort wird limitiert.** Detail-Matrix in §3.
- **DiGA/Ethik:** Paywalling von *Coaching* und *Komfort* ist okay. Paywalling von *Blockade-Reichweite* (Multi-Device) ist vertretbar, aber kommunikativ heikel — Sprachregelung in §2.4. Das eine Feature, das man **nie** hinter Paywall stellen sollte: den Kern-Blocker auf dem Hauptgerät + SOS-Coach in irgendeiner Form. Beides ist heute korrekt free.
---
## 1. Tier-Feature-Tabelle (Strategie-Sicht, abgeglichen mit `PLAN_LIMITS`, Stand 2026-05-11)
Spalten = Ist-Zustand Code. Empfohlene Änderungen stehen in §2.5, nicht hier.
| Achse | free | pro | legend |
|---|---|---|---|
| **Preis (Annahme, web-only via rebreak.org)** | 0 € | ~3,99 €/mo | ~7,99 €/mo |
| **MDM-Lock Add-On (geplant, Phase G)** | — | +3 € → ~6,99 € | +3 € → ~10,99 € |
| **Kern-DNS-Blocker (Hauptgerät, HaGeZi-/ReBreak-Liste)** | ✅ | ✅ | ✅ |
| **Globale HaGeZi-Blocklist (208k+ Offshore-Domains)** | ❌ (`globalBlocklist:false`) | ✅ | ✅ |
| **Custom-Blocklist-Domains (eigene)** | 5 | 5 | 10 |
| **Domain-Slot-Refill** | ❌ | ✅ | ✅ |
| **Domain direkt zur ReBreak-Community-Blocklist beitragen** | ❌ | ❌ | ✅ (`canAddToBlocklist`) |
| **Multi-Device-DNS-Profile (fremde Mac/Windows-Geräte)** | ❌ | ❌ | ✅ bis 3 (`maxDevices:3`) |
| **Account-Devices parallel (Anti-Sharing-Limit)** | 1 | 1 | 3 |
| **SOS-Coach LLM** | Groq Llama 3.1 8B | Groq Llama 3.3 70B | Claude 3.5 Haiku (via OpenRouter) |
| **SOS-Coach Fallback-Kette** | 70B → gemma2 → OR-Llama | 8B → OR-70B | Claude-3-Haiku → Llama-70B |
| **SOS-TTS-Provider** | Google Neural2 | Cartesia Sonic-2 (~75ms) | ElevenLabs Turbo v2.5 |
| **TTS-Tagesquota** | 60 s/Tag | 300 s/Tag | unbegrenzt |
| **Lyra-Voice-Picker (Stimme wählbar)** | ❌ | ❌ | ✅ |
| **Mail-Agent (Casino-Newsletter-Scan)** | 1 Account | 3 Accounts | unbegrenzt |
| **Mail-Scan-Intervall** | nur 4h-Cron | 1h / 4h / 8h | 1h / 4h / 8h (+ Live-IDLE geplant) |
| **Community: posten** | ✅ | ✅ | ✅ |
| **Community: Gruppe gründen** | ❌ | ❌ | ✅ (`canCreateGroup`) |
| **Streak / Urge-Log / Profil / Demographics** | ✅ | ✅ | ✅ |
| **Standalone-Games (Solo)** | ✅ | ✅ | ✅ |
| **Games 1vs1-Mode (geplant)** | ❌ | ✅ (geplant) | ✅ (geplant) |
| **Demographics-Reward** | 1 Woche Pro-Trial fürs vollständige Ausfüllen | — | — |
**Code-Inkonsistenzen (Tech-Tickets, nicht Strategie):**
1. **Legend `mailIntervalOptions` listet kein Live-IDLE** — Memory sagt "legend = Live-Scan", Code hat nur `[1,4,8]`. → klären, nichts bewerben was nicht im Code ist.
2. **`maxDevices` (App-Login-Geräte) vs. Multi-Device-DNS-Profile** heißen beide "Devices" → User-Verwirrung. Naming: "Geräte mit ReBreak-App" vs. "geschützte Computer".
3. **Pro `customDomains:5` == Free `customDomains:5`** — Pro bekommt nur `domainRefill:true` zusätzlich → schwacher Unterschied (siehe §2.2).
---
## 2. Strategie-Begründung + ehrlicher Stress-Test
### 2.1 Reicht Free zum "Anfixen" — oder verschenkt es zu viel?
Free hat: Kern-Blocker (Hauptgerät), SOS-Coach (echtes LLM), Mail-Scan (1 Account, 4h), 5 eigene Domains, voller Streak/Urge/Community/Games-Stack, Profil.
- **Kern-Blocker MUSS free sein** — nicht verhandelbar. Niemand im akuten Rückfallrisiko darf an einer Paywall scheitern. DiGA-/PR-mäßig die einzig haltbare Position. ✅
- **SOS-Coach free ist richtig** — der Craving-Moment ist *der* Hochrisikomoment. Free = Groq Llama 8B (Groq quasi gratis, gut genug). ✅
- **Mail-Scan 1 Account / 4h free: grenzwertig großzügig, aber okay** — günstig (kein IDLE-Halten), liefert "es funktioniert"-Erlebnis. ✅
- **5 Custom-Domains free: zu großzügig in *Kombination*** — 5 reicht den meisten für ihre Trigger-Seiten. Wer 5 hat ohne globale HaGeZi-Liste, hat löchrigen Schutz → das ist eigentlich *der* natürliche Pro-Trigger. Aber Free fühlt sich mit Blocker+Coach+Mail+Community "fertig" an. Gesamt-Großzügigkeits-Problem, kein Domain-Problem.
- **Verdict:** Free ist nicht *gefährlich* großzügig (nichts Sicherheitskritisches fehlt jemandem) — aber *kommerziell* zu großzügig, weil der Pro-Sprung kein klares "das brauche ich" hat. Lösung: Pro aufwerten, nicht Free beschneiden.
### 2.2 Lohnt free → pro für ~4 €?
Pro gibt zusätzlich: globale HaGeZi-Liste, Domain-Refill, 70B-Coach statt 8B, Cartesia statt Google TTS + 5min statt 1min/Tag, 3 statt 1 Mail-Account, Mail-Intervall wählbar.
**Honest take: zu dünn für eine Recovery-App.** Der 70B- vs. 8B-Coach ist für 90% nicht erlebbar (Engineering-Metrik, kein User-Bedürfnis). Cartesia-Stimme = Komfort, kein Schmerzpunkt. **Globale HaGeZi-Liste ist das einzige Pro-Feature mit echter Substanz** — geht aber neben drei "Premium-Geschmäckle"-Features unter. 3 statt 1 Mail-Account = Nische. Domain-Refill = Nische.
**Empfehlung:** Pro braucht *einen* harten, sicherheitsrelevanten Anker → Kandidaten: (a) globale HaGeZi-Liste *lauter kommunizieren* ("Free schützt vor 5 Seiten deiner Wahl. Pro schützt vor 208.000 bekannten Glücksspiel-Domains."), (b) **1 fremdes Gerät schützen nach Pro ziehen** (radikaler, siehe §2.5), (c) Live-Mail-Scan nach Pro *falls gebaut*. Pflicht: (a). Empfohlen zusätzlich: (b).
**Verdict:** Pro ist heute "Free mit besserer Stimme". Das verkauft sich nicht. Pro muss "der ernsthafte Schutz" werden.
### 2.3 Lohnt pro → legend für nochmal ~4 €? Ist Multi-Device der Killer?
**Ja — Multi-Device-DNS-Schutz ist der einzige echte Legend-USP, und er ist gut.** Sucht arbeitet gegen Lücken (iPhone gesperrt → alter Windows-Laptop). ReBreak hat dafür eine Antwort, die OASIS strukturell nicht hat (DNS-Layer = auch Offshore, jedes Gerät). Verteidigbar, kopier-schwer, Bedarf entsteht organisch. **Haiku-Coach, ElevenLabs, Mail-Live, Gruppe-gründen, 10 statt 5 Domains** = "nett", aber *garnieren* das Multi-Device-Angebot, rechtfertigen den Legend-Preis nicht allein.
**Risiko:** Wenn Multi-Device technisch noch nicht rund ist (`.mobileconfig`-Generierung pro User, Windows-Pfad, Onboarding-UX — Phase G ist "~1-2 Wochen dev", noch nicht entschieden; `protectedDevices.ts` Endpoints teils noch nicht fertig), hat Legend *aktuell* keinen tragfähigen USP. **Push back: Legend nicht zu 8€ bewerben, solange Multi-Device nicht End-to-End läuft.** Bis dahin: Legend ~5,99€ oder Multi-Device als "Early Access" labeln.
**Verdict:** Multi-Device IST der Killer — *wenn er fertig ist*. Legend-Pricing an Multi-Device festmachen, nicht am Coach/Voice-Kram.
### 2.4 DiGA-/Ethik-/PR-Check: Darf man Recovery-Features paywallen?
| Feature-Klasse | Paywall okay? | Begründung |
|---|---|---|
| Kern-Blocker Hauptgerät | **Nein, niemals.** | Lebensader. Free. (Ist es.) |
| SOS-Coach (irgendeine Form) | **Nein.** | Craving-Moment = Hochrisikomoment. Free braucht *einen* funktionierenden Coach. (Hat es: Groq 8B.) |
| Bessere Coach-Qualität (70B/Haiku) | **Ja, okay.** | Kein User stirbt an 8B statt 70B. Qualitäts-Upgrade legitim. |
| Globale HaGeZi-Blocklist | **Grenzwertig, aber vertretbar.** | Pflege/Hosting kostet, Free hat *einen* Schutz (5 eigene). Aber 5 vs. echte Offshore-Landschaft = Free hat löchrigen Schutz. → behalten als Pro-Gate, ABER ehrlich kommunizieren, keine Angstmache. Falls DiGA: dann gibt's eben einen "alles drin, Kasse zahlt"-SKU (separat). |
| Mail-Schutz (Cron vs. Live) | **Ja, gestaffelt okay.** | Free = 4h-Cron auf 1 Account = echter Schutz, nur nicht instant. Live als Upgrade legitim. |
| **Multi-Device-DNS-Schutz** | **Ja, vertretbar — mit Sorgfalt.** | Kostet echte Infra pro Gerät; Free/Pro haben *Hauptgerät* geschützt; wer mehrere Geräte hat, ist tendenziell weiter im Prozess. **Sprachregelung:** nie "Schutz kostet" — immer "ReBreak auf deinem Computer einrichten — Teil von Legend". Frame als *Reviererweiterung*, nicht als Sicherheits-Gating. Akute-Krise-Hardship-Comp: 3 Monate Legend gratis. PR-Gold, billig. |
| Community posten / Gruppe gründen | Free okay / Gruppe = Legend okay (Moderations-Last). | Unkritisch. |
| Premium-Voice / Voice-Picker | **Ja, klar okay.** | Reine Kosmetik. |
**PR-Bottom-Line:** Solange (a) Kern-Blocker + ein Coach immer free sind, (b) nie mit Angst/Dringlichkeit verkauft wird, (c) kulante Hardship-Comp-Policy → ist die Tier-Struktur PR-verteidigbar. Eine Recovery-App, die *gar nicht* monetarisiert, geht ein und hilft dann niemandem. Außenkommunikation: "Free hilft. Pro/Legend finanzieren, dass Free weiter existiert und besser wird."
**DiGA-Spezialfall:** Wenn der DiGA-Pfad konkret wird → vermutlich ein *vierter* SKU "ReBreak DiGA" (Kasse zahlt, ~200€/Quartal). Was da drin sein muss → BfArM-Verfahren + Wirksamkeitsstudie, nicht diese Page. **DiGA-SKU jetzt nicht mitdesignen** — aber nichts in Free/Pro/Legend tun, das einer späteren "alles drin"-Variante im Weg steht.
### 2.5 Empfehlung: konkretes Re-Slicing (optional, aber begründet)
| Achse | free (Vorschlag) | pro (Vorschlag) | legend (Vorschlag) |
|---|---|---|---|
| Kern-Blocker Hauptgerät | ✅ | ✅ | ✅ |
| Globale HaGeZi-Liste | ❌ → **als DAS Pro-Argument framen** | ✅ | ✅ |
| Custom-Domains | 5 | **1525** (echter Unterschied) | unbegrenzt |
| Domain-Refill | ❌ | ✅ | ✅ |
| **1 fremdes Gerät schützen** | ❌ | **✅ (1 Gerät)** ← *neuer Pro-Anker* | ✅ (bis 3) |
| Mail-Accounts | 1 | 3 | unbegrenzt |
| Mail-Live-Scan *(falls gebaut)* | ❌ | ✅ | ✅ |
| Coach-LLM | Groq 8B | Groq 70B | Haiku 4.5 |
| TTS | Google 60s | Cartesia 300s | ElevenLabs unbegrenzt + Voice-Picker |
| Gruppe gründen | ❌ | ❌ | ✅ |
| Community-Blocklist beitragen | ❌ | ❌ | ✅ |
| Preis | 0 € | ~3,994,99 € | ~7,999,99 € |
**Der entscheidende Move:** "1 fremdes Gerät" von Legend nach Pro ziehen → Pro hat plötzlich eine Substanz-Story, Legend bleibt differenziert ("schütz *alle* Geräte + Premium-Coach"). Kosten: 1 zusätzliches DNS-Profil pro Pro-User ≈ 0€ marginal. Falls ihr das NICHT macht: dann muss Pro zumindest die globale HaGeZi-Liste als Headline haben und Pro-Marketing muss aufhören, mit "schnellere Stimme" zu führen.
### 2.6 Natürliche Upgrade-Trigger-Momente (für In-App-Prompts)
**Regel: nie im SOS-/Craving-Flow upsellen. Nie Countdown/Knappheit. Nur kontextuell, faktisch.**
| Trigger | Sprung | Ton-Beispiel |
|---|---|---|
| User trägt seine 5. Custom-Domain ein | free→pro | "Das war deine letzte freie Domain. Pro kennt 208.000 bekannte Glücksspiel-Seiten." |
| 2. Mail-Account hinzufügen | free→pro | "Free schützt eine Mailadresse. Pro schützt bis zu drei." |
| Mail-Intervall-Picker (<4h) | freepro | "Schnellere Scans gibt's ab Pro." |
| Lyra-Voice-Settings öffnen | prolegend | "Lyras Stimme wählen Teil von Legend." |
| "Computer schützen" / "Gerät hinzufügen" | legend (oder pro im Re-Slice) | "ReBreak auf deinem Mac/Windows einrichten gehört zu Legend." |
| Community-Gruppe gründen | legend | "Eigene Gruppen gründen geht ab Legend." |
| Demographics ausgefüllt | (kein Sprung Reward) | "Danke. Du hast 7 Tage Pro freigeschaltet." |
| Pro-Trial läuft ab | pro | "Deine 7 Pro-Tage sind vorbei. Dein Schutz läuft normal weiter Pro war's, was du extra hattest: [Liste]." |
---
## 3. Downgrade-Policy pro tier-limitierter Ressource
**Leitprinzipien (für alle Ressourcen):**
1. **Recovery-Schutz wird bei Downgrade nie still abgeschaltet** muss etwas deaktiviert werden, wird's *vor* dem Downgrade im Briefing-Screen 4) gezeigt + nachher in persistenter Notification gelistet.
2. **Komfort wird limitiert, Sicherheit wird grandfathered wo kostenmäßig vertretbar** Marginalkosten sind fast überall 0 (Groq gratis, DNS trivial, 1 DB-Row); einziger echter Kostentreiber: ElevenLabs-TTS + IMAP-IDLE-Connections.
3. **Im Zweifel: Grace-Period statt harter Block.**
4. **Bei Reaktivierung (re-upgrade) schaltet sich alles Deaktivierte automatisch wieder ein** deaktiviert gelöscht, keine Re-Konfiguration nötig.
| Ressource | Downgrade-Szenario | Empfohlene Policy | Begründung |
|---|---|---|---|
| **Custom-Blocklist-Domains** (z.B. legend 10 5, User hat 8) | über Limit | **Grandfathered: alle behalten & aktiv, kein Neues hinzufügen bis unter Limit.** Niemals Auto-Delete. | Aktiver, vom User selbst gesetzter Schutz. Marginalkosten 0. Bei "Domain hinzufügen": "8/5 entferne erst eine". |
| **Globale HaGeZi-Blocklist** (→ free) | Feature entfällt | **Grace 14 Tage, dann deaktiviert** + sichtbarer Hinweis ("Schutz vor 208.000 Seiten endet in X Tagen. Deine 5 eigenen bleiben."). | Größter Schutz-Verlust beim Downgrade Grace gibt Zeit, Trigger-Domains in die 5 Free-Slots zu übernehmen. Ehrlich, unaufdringlich. Re-upgrade sofort wieder aktiv. |
| **Mail-Accounts** (legend pro 3 free 1; User hat 5) | über Limit | **Grandfathered, dann nach 30 Tagen ohne re-upgrade die überzähligen N *pausieren* (älteste behalten, zuletzt hinzugefügte pausieren). Niemals löschen.** + Spezialfall | Mail-Scan = echter Schutz, aber IMAP-IDLE kostet Server-Ressourcen pausieren statt forever-grandfathern. **Spezialfall:** wenn ein bald-pausierter Account gerade einen ungescannten Casino-Newsletter in der Inbox hat erst ein "final sweep"-Scan + Block, *dann* pausieren. Recovery-Sicherheit > saubere Limit-Durchsetzung. |
| **Multi-Device-DNS-Profile** (legend → pro/free; User hat 2 enrolled) | Feature entfällt | **Sonderfall, ausführlich ↓.** Kurz: nach 14-Tage-Grace → DoH liefert für betroffene Token nur noch Passthrough/Minimal-Liste, Profil-Status `degraded` (nicht `revoked`), In-App klar: "Schutz ausgelaufen — Profil auf [Gerät] selbst entfernen: [Link]". **Kein** grünes "geschützt"-Häkchen. | `.mobileconfig` auf nicht-supervised-Gerät ist *nicht* remote-removable. Wer nicht zahlt, soll's nicht *dauerhaft* behalten (sonst kauft niemand Legend) — aber falsche Sicherheit ("geschützt" auf einem Gerät, das nur Passthrough macht) ist in Recovery gefährlicher als ehrliche Klarheit. |
| **Account-Login-Devices** (`maxDevices`: legend 3 → 1; User auf 3 Geräten) | über Limit | **Grace 7 Tage, dann beim nächsten App-Start auf einem überzähligen Gerät → sanfter Logout mit Erklärung. Zuletzt aktives Gerät behält Session. Nie das gerade benutzte rauswerfen.** | Anti-Account-Sharing, kein Schutz-Feature → darf härter sein. "Dein Plan erlaubt 1 Gerät. [iPad] wird abgemeldet, auf [iPhone] bleibst du angemeldet." **Logout ≠ Schutz aus** — der DNS-Filter auf dem abgemeldeten Gerät läuft weiter. Klarstellen. |
| **Coach-LLM-Qualität** (Haiku → 70B → 8B) | schwächeres Modell | **Sofort, kein Grace, aber dezent ankündigen** ("Dein Coach läuft ab jetzt auf [Modell] — er ist weiter da, immer."). Nicht dramatisieren. | Kein Sicherheitsverlust (Coach voll funktional, nur weniger nuanciert). |
| **TTS-Provider + -Quota** (ElevenLabs ∞ → Cartesia 300s → Google 60s) | Downgrade | **Sofort.** Provider wechselt, Quota greift ab nächstem Tag — laufende TTS-Session nicht mid-sentence killen. Custom-Voice-Auswahl merken (nicht löschen), re-upgrade → wieder aktiv. | ElevenLabs = einziger echter Kostentreiber → hier *muss* hart limitiert werden. Aber: TTS = Komfort, kein Schutz → kein Drama, kein Grace. |
| **Lyra-Voice-Picker** | Feature entfällt | Gewählte Stimme gespeichert lassen, inaktiv; Default aktiv. Re-upgrade → zurück. Kein Hinweis nötig. | Reine Kosmetik, 0 Kosten. |
| **Community: eigene Gruppe** (User hat eine gegründet) | Feature entfällt | **Grandfathered: Gruppe bleibt, User bleibt Admin/Owner, kann moderieren — kann keine neue gründen.** | Eine Gruppe schließen, weil der Gründer downgradet, bestraft *andere* User. Inakzeptabel. Verwaiste Gruppe (Owner downgradet + inaktiv >90d) → separater Cleanup-Pfad, kein Downgrade-Thema. |
| **Domain-Slot-Refill** (`domainRefill:true``false`) | Feature entfällt | Sofort, lautlos. Bereits-aufgefüllte Slots bleiben; künftige füllen nicht nach. | Nische, kein Schutzverlust. |
| **Games 1vs1** (geplant) | Feature entfällt | Sofort. Laufende Partie zu Ende, danach Mode nicht startbar. | Reine Unterhaltung. |
| **Demographics-Pro-Trial** (7 Tage, läuft *immer* aus) | Trial-Ende = de-facto pro→free | **Wie normaler pro→free-Downgrade, aber besonders sanftes Briefing** (§4): "Danke nochmal. Deine 7 Pro-Tage sind vorbei — dein Schutz läuft normal weiter, das hier war diese Woche extra: [Liste]. Wenn du Pro behalten willst: [Link]." Nie schuldzuweisend. | Sonst "die haben mich angefüttert"-Gefühl → Marken-Schaden + DSGVO-Optik. Hans-Müller-DSB-Review (pending) sollte explizit auch den *Trial-Ablauf-Flow* abdecken. |
| **MDM-Lock Add-On** (geplant; +3€ → User kündigt Add-On, behält Pro/Legend) | Add-On weg | **Wie Multi-Device-DNS, aber: das MDM-Restriction-Profil *kann* remote entfernt werden (NanoMDM-Push). 14-Tage-Grace, dann `RemoveProfile` für das Restriction-Payload (DNS-Payload bleibt = Basis-Schutz). + 7-Tage-Cooldown vor Lock-Entfernung** (symmetrisch zum Enrollment-Cooldown — Lyra: "drüber schlafen"). | ReBreak hat technisch Kontrolle (supervised). Ethisch heikel in die *andere* Richtung: ein User, der das Lock loswerden will, ist evtl. im Rückfall-Modus → Cooldown. Liability-Pfad via Lyra + Admin-Override. |
### Spezialfall ausführlich: Multi-Device `.mobileconfig` ist nicht remote-removable
1. **Faktum:** Ein DNS-`.mobileconfig` auf einem *nicht-supervised* Mac wird manuell installiert, zeigt statisch auf `dns.rebreak.org/dns-query`, kein Push-Channel zum Löschen. *(Vom Backend/MDM-Owner bestätigen lassen, ob der Multi-Device-Pfad = der MDM-Add-On-Pfad (supervised) oder ein separater nicht-supervised-Pfad ist.)*
2. **Was wir kontrollieren:** *Was* `dns.rebreak.org` für die Anfragen eines Geräte-Tokens zurückgibt — variabel pro Token.
3. **Policy:**
- **Tag 014:** Profil voll funktional (volle Blocklist). App zeigt Karte "Geräteschutz für [Label] läuft am [Datum] aus." — neutral, mit "Schutz behalten"-Link (re-upgrade) + "Profil selbst entfernen"-Anleitung.
- **Ab Tag 15:** Server liefert für dieses Token **keine ReBreak-Blocklist mehr****Passthrough auf normalen Upstream-Resolver** (nicht `REFUSED`/`SERVFAIL` — das macht das Gerät potenziell internet-los, "ReBreak hat meinen Rechner kaputtgemacht", Stress → Rückfall-Trigger). Minimaler Logging-Footprint, klare Privacy-Notice.
- **In-App:** Profil-Status `degraded` (nicht `revoked` — "revoked" suggeriert "weg"). Karte: "[Label]: Schutz ausgelaufen. Profil noch auf dem Gerät — entferne es unter [OS-Pfad], oder hol dir Legend zurück." **Kein** grünes Häkchen, **kein** "geschützt".
- **Re-upgrade:** Token wieder volle Blocklist, Status `active`, keine Neu-Installation.
4. **Warum nicht "lassen wir's an, kostet ja nix":** dann wird Legend-Multi-Device unverkäuflich (einmal zahlen → für immer behalten). ≈0€ Marginalkosten ist kein Argument, das Hauptverkaufsargument zu verschenken.
5. **Warum nicht `REFUSED`:** Arbeitsrechner plötzlich ohne Internet = Stress = Rückfall-Trigger. Sanfter Passthrough + ehrlicher In-App-Hinweis = recovery-sicherer Weg.
---
## 4. Plan-Wechsel-Briefing-Screen — Inhalt (Text/Struktur, kein Code)
**Tonalität (beide Screens):** Du-Form, ruhig, faktisch. Keine Ausrufezeichen-Wände, keine Countdowns/Knappheit. **Beim Downgrade: keine Schuld, keine Manipulation, keine "bist du sicher? du verlierst SO viel!!"-Dramatik.** Immer **zuerst sagen, was *bleibt*** ("dein Schutz läuft weiter"), dann was sich ändert. Wort "verlieren" sparsam — lieber "wird limitiert auf", "pausiert", "ändert sich zu".
### 4a. Upgrade-Briefing
1. **Header:** "Du wechselst auf Legend." (bzw. Pro)
2. **Was dazukommt** — Liste mit Häkchen, konkret: "Schutz für bis zu 3 weitere Geräte (Mac/Windows)", "Coach läuft auf Claude — feinfühligere Gespräche", "Lyra-Stimme nach Wahl, unbegrenzte Sprachausgabe", "Echtzeit-Schutz für Mail-Postfächer" *(nur wenn gebaut)*, "Eigene Community-Gruppen", "Bis zu [N] eigene blockierte Seiten".
3. **Was gleich bleibt:** "Dein Streak, deine Logs, dein Coach, dein bisheriger Schutz — alles bleibt. Du kriegst nur mehr dazu."
4. **Preis-/Abrechnungshinweis:** "[X]€/Monat, abgerechnet über rebreak.org. Du kannst jederzeit zurückwechseln." (Apple 4.8: dieser Screen darf *informieren*, aber kein Kauf-Button, der aus der App zur Web-Bezahlseite führt. Mit Release-Engineer klären — sicherer: nur "verwalte dein Abo auf rebreak.org"-Hinweis-Text.)
5. **CTA:** "Los geht's" / Bestätigen. **Nicht:** "du sparst X%"-Banner, keine rot-durchgestrichene-Free-Vergleichstabelle. Recovery-App, kein SaaS-Funnel.
### 4b. Downgrade-Briefing
1. **Header:** "Du wechselst von [Legend] auf [Pro]." — neutral.
2. **Zuerst die Beruhigung:** "Dein Grundschutz läuft weiter. Dein Streak, deine Logs, dein Coach, deine Community — bleiben." (Immer als erstes, prominent.)
3. **Was sich ändert** — ehrliche Liste, pro betroffener Ressource eine Zeile mit *konkreter Zahl + Mechanik*: z.B. "Globale Glücksspiel-Blocklist (208.000 Seiten): läuft noch 14 Tage, danach bleiben deine 5 eigenen Domains. → Tipp: trag jetzt deine wichtigsten ein, solange Platz ist." / "Geschützte Geräte: du hast 2 ([MacBook], [PC]). [Plan] deckt [N]. [MacBook] bleibt, [PC] läuft am [Datum] aus — danach Profil auf [PC] selbst entfernen: [Link]." / "Mailpostfächer: 5 verbunden, [Plan] schützt [N]. Die [3] zuletzt hinzugefügten werden pausiert (nicht gelöscht). Letzter Scan läuft noch durch." / "Eigene blockierte Seiten: [8], [Plan] deckt [5]. Alle bleiben aktiv — keine neue hinzufügen bis unter [5]." / "Coach: läuft ab jetzt auf [Llama 70B] statt [Claude]. Er ist weiter da — immer." / "Sprachausgabe: andere Stimme, [N] Min/Tag statt unbegrenzt. Deine gewählte Stimme merken wir uns." / "Eingeloggte Geräte: [Plan] erlaubt [1]. In 7 Tagen meldet sich [Liste] ab — auf [aktivem Gerät] bleibst du angemeldet. Der Filter auf den abgemeldeten Geräten läuft weiter." / "Deine Community-Gruppe [Name] bleibt — du bleibst Admin. Neue Gruppen gründen geht ab Legend."
4. **Was *nicht* passiert:** "Es wird nichts gelöscht. Alles Pausierte kommt sofort zurück, wenn du wieder upgradest — du musst nichts neu einrichten."
5. **Recovery-Sicherheitssatz (immer):** "Wenn dieser Wechsel deinen Schutz in einem Moment schwächt, in dem du dir unsicher bist — schreib Lyra. Oder schreib uns. Wir finden eine Lösung." (Hardship-Comp-Hook — gehört *sichtbar* hier rein.)
6. **CTA-Reihe:** primär "Verstanden, weiter" — sekundär, *kleiner*, "Doch bei [Legend] bleiben". **Kein** "BIST DU WIRKLICH SICHER???"-Zwischendialog.
7. **Nach dem Wechsel:** persistente (wegklickbare) In-App-Karte mit den "läuft aus am [Datum]"-Punkten, bis abgelaufen/erledigt.
---
## 5. Szenario-Test-Matrix (für den Tier-Toggle-Build)
### 5a. Statische Tier-Erwartungs-Matrix — "Was *soll* der User pro Tier sehen/können" (Soll = aktueller Code-Stand, nicht das Re-Slicing)
| # | Feature / Achse | free — Soll | pro — Soll | legend — Soll |
|---|---|---|---|---|
| T1 | Kern-DNS-Blocker Hauptgerät | aktiv | aktiv | aktiv |
| T2 | Globale HaGeZi-Liste | **nicht** aktiv; Pro-Hinweis | aktiv | aktiv |
| T3 | Custom-Domain hinzufügen | bis 5, dann Block + Pro-Hinweis | bis 5, dann Hinweis | bis 10, dann Hinweis |
| T4 | Domain-Slot-Refill | nein | ja | ja |
| T5 | "Zur ReBreak-Liste beitragen"-Button | nicht sichtbar/disabled | nicht sichtbar/disabled | sichtbar + funktioniert |
| T6 | "Computer schützen" / Multi-Device-Screen | gated → Legend-Hinweis | gated → Legend-Hinweis | erreichbar; enroll bis 3, dann Limit-Hinweis |
| T7 | Account-Login-Devices | 2. Gerät → alter verdrängt/blockiert | dito (1) | bis 3 parallel, 4. → ältester raus |
| T8 | SOS-Coach LLM | Groq Llama 8B | Groq Llama 70B | Claude 3.5 Haiku |
| T9 | SOS-TTS-Stimme | Google Neural2 | Cartesia Sonic-2 | ElevenLabs Turbo |
| T10 | TTS-Tagesquota | nach 60s/Tag kein TTS (Text bleibt) | nach 300s/Tag | nie erschöpft |
| T11 | Lyra-Voice-Picker | nicht sichtbar/Legend-Hinweis | nicht sichtbar/Legend-Hinweis | sichtbar, Auswahl wirkt |
| T12 | Mail-Account hinzufügen | bis 1, dann Block + Pro-Hinweis | bis 3, dann Hinweis | unbegrenzt |
| T13 | Mail-Scan-Intervall-Picker | nur 4h | 1h/4h/8h | 1h/4h/8h (+Live falls gebaut — sonst Doc/Code-Mismatch dokumentieren) |
| T14 | Community: Post erstellen | erlaubt | erlaubt | erlaubt |
| T15 | Community: Gruppe gründen | gated → Legend-Hinweis | gated → Legend-Hinweis | erlaubt |
| T16 | Streak/Urge-Log/Profil/Demographics | voll nutzbar | voll nutzbar | voll nutzbar |
| T17 | Standalone-Games (Solo) | spielbar | spielbar | spielbar |
| T18 | Games 1vs1 (falls gebaut) | gated | erlaubt | erlaubt |
| T19 | Demographics ausfüllen → Pro-Trial | nach vollständig: 7 Tage Pro aktiv, Banner | (n/a) | (n/a) |
| T20 | Upgrade-/Downgrade-Briefing-Screen | erscheint bei jedem Toggle, Inhalt = §4 | dito | dito |
**Architektur-Konsistenz-Checks:**
- **C1:** Toggle wirkt *sofort* auf alle gated UIs (kein App-Neustart)? → dokumentieren, sonst False-Negatives.
- **C2 (wichtigster):** Backend respektiert den Toggle, nicht nur das Frontend? Coach-Modell / TTS-Provider / Mail-Limit werden serverseitig in `getPlanLimits` entschieden → der Test-Toggle muss den *Server*-Plan ändern, nicht nur einen Client-Flag. Sonst testet man UI-Theater. *(Erfüllt: `/api/dev/set-plan` setzt `profile.plan` in der DB.)*
- **C3:** Legacy-Plan-Namen (`"premium"`→legend, `"standard"`→pro) — falls Test-User mit alten Werten existieren, mappen die korrekt?
### 5b. Downgrade-Szenarien als durchspielbare Test-Cases
| # | Startzustand | Aktion | Erwartetes Verhalten |
|---|---|---|---|
| D1 | legend, 8 Custom-Domains | → pro | alle 8 bleiben aktiv & blocken. "hinzufügen" → "8/5 — entferne erst eine". Nichts gelöscht. Briefing listet's. |
| D2 | legend, 8 Custom-Domains | → free | wie D1 + HaGeZi-Karte "läuft in 14 Tagen aus". Nach 14d: globale Liste inaktiv, 8 eigene bleiben. |
| D3 | pro, globale Liste aktiv | → free | Briefing nennt 14-Tage-Grace. Tag 013: HaGeZi blockt weiter. Tag 14: inaktiv. Re-upgrade → sofort aktiv. |
| D4 | legend, 5 Mail-Accounts | → pro | 3 bleiben aktiv (3 zuerst hinzugefügte), 2 *pausiert* (nicht gelöscht). Vor Pause: "final sweep"-Scan. Re-upgrade → reaktiviert automatisch. |
| D5 | legend, 5 Mail-Accounts, **einer hat ungescannt einen Casino-Newsletter in der Inbox** | → free | betroffener Account wird **nicht sofort** pausiert: erst Scan + Block, *dann* Pause. (Falls Code das nicht so macht → P1-Bug.) |
| D6 | legend, 2 fremde Geräte enrolled | → pro/free | DB: beide → `degraded` nach 14-Tage-Grace. Tag 013: volle Blocklist. Tag 14: DoH-Passthrough. App: "Schutz ausgelaufen — Profil selbst entfernen: [Link]". Kein grünes Häkchen. Re-upgrade → volle Liste, `active`, keine Neu-Installation. |
| D7 | legend, eingeloggt auf 3 Geräten | → pro/free | 7-Tage-Grace. Danach: nächster App-Start auf überzähligem Gerät → sanfter Logout-Screen; zuletzt aktives bleibt. DNS-Filter auf ausgeloggten Geräten läuft weiter. |
| D8 | legend, Coach Haiku, mitten im SOS-Chat | → free | laufende Antwort nicht abbrechen. Nächste Nachricht: Llama 8B. Kurzhinweis. Kein Schutz-/Funktionsverlust. |
| D9 | legend, TTS gerade am Sprechen (ElevenLabs) | → free | laufende Ausgabe zu Ende. Nächste: Google-Stimme, 60s/Tag-Cap. Custom-Voice-Auswahl gespeichert. |
| D10 | legend, hat Community-Gruppe gegründet | → pro/free | Gruppe bleibt, User bleibt Admin, kann moderieren. "Neue Gruppe" → gated. Andere merken nichts. |
| D11 | free, aktiver 7-Tage-Demographics-Pro-Trial | Trial läuft ab | wie D1D10 wo zutreffend + sanftes Briefing (§4b, "Danke nochmal"-Ton). Kein Daten-Rückzug, keine Schuld-Sprache. |
| D12 | pro+MDM-Add-On, MDM-Lock auf supervised iPhone | Add-On kündigen | 7-Tage-Cooldown (Lyra). Danach: NanoMDM pusht `RemoveProfile` (Restriction-Payload); DNS-Payload bleibt. Liability-Override via Admin-API. |
| D13 | jeder Downgrade | → runter | Briefing erscheint *vor* der Wirkung, Inhalt = §4b: erst "Schutz bleibt", dann konkrete Änderungsliste, dann "nichts gelöscht", dann Recovery-Sicherheitssatz, dann CTA. Kein "bist du sicher???"-Dialog. |
| D14 | jeder Downgrade → späterer Re-Upgrade | → hoch | alles Pausierte/Degradierte reaktiviert sich automatisch, ohne Neu-Einrichtung (Domains, Mail-Accounts, Voice, Geräte-Token, Gruppe-Admin). |
---
## 6. Offene Klärungspunkte (bevor das auf die Pricing-Page geht)
1. **Ist Mail-Live-IDLE-Scan tatsächlich gebaut?** Code (`mailIntervalOptions:[1,4,8]`) sagt nein, Memory sagt ja. → Backend-Owner fragen, nichts bewerben was nicht im Code ist.
2. **Multi-Device-Pfad: MDM-Add-On-Pfad (supervised, remote-removable) oder separater nicht-supervised-Pfad?** Downgrade-Policy D6 hängt davon ab. → klären.
3. **Echte Preise:** rebreak.org/pricing war 401 — sobald live, dieses Doc + alle "Annahme"-Stellen nachziehen.
4. **Test-Toggle ändert Plan serverseitig?** → ja (`/api/dev/set-plan` setzt `profile.plan`). Bestätigt.
5. **MDM-Add-On-Preis:** Strategist-Empfehlung — **5€ statt 3€** (95% Marge, hoher Setup-Support-Aufwand/User, Zielgruppe nicht preissensibel; bei <20 erwarteten Usern Jahr 1 ist Volumen irrelevant Marge). Bei Volumen-Strategie: 3€.
6. **DiGA-SKU:** jetzt *nicht* designen erst Beta + Wirksamkeitsstudie. Aber Free/Pro/Legend so bauen, dass eine spätere "alles drin, Kasse zahlt"-Variante kein Architektur-Umbau wird.
---
## Quellen
- Headspace/Calm pricing teardowns (SBI Growth, Headspace Help, Breethe); Quitzilla (Google Play); "Best Addiction Recovery Apps 2025" (ChoosingTherapy)
- Intern: `backend/server/utils/plan-features.ts` (`PLAN_LIMITS`), `ops/RELEASE_READINESS.md`, `ops/strategy/mdm-productization-roadmap.md`, `apps/rebreak-native/stores/protectedDevices.ts`, Memory (`project_legend_multi_device_usp`, `project_demographic_pro_trial_reward`, `feedback_anonymity_nickname`, `project_mdm_productization`)