PRD — Billing & Monetization¶
Doc owner: Justin Audience: Eng, Design, Product, Finance, GTM Status: v2 (February 2026 — pricing alignment, credits removed, per-companion billing, Superpowers+ rebrand, referral integration) Depends on: PRD 3 (Progression & Loadout), PRD 6 (Onboarding & Growth), PRD 9 (Gateway API) Blocks: PRD 4 (premium themes), PRD 10 (proactive gating)
Implementation Status¶
| Section | Status | Notes |
|---|---|---|
| Stripe checkout (monthly + annual) | ✅ Shipped | app/payment/service.py — $7.99/mo and $50/yr |
| Stripe webhooks | ✅ Shipped | checkout.session.completed, invoice.paid, etc. |
| Free tier enforcement (50 msgs/day) | ✅ Shipped | app/services/subscription_access_service.py |
| Rate limiting (4 categories) | ✅ Shipped | app/services/rate_limit_service.py |
| In-persona upgrade messages | ✅ Shipped | 3 variants, monthly link only (annual discoverable via web) |
| Billing history API | ✅ Shipped | app/api/payment_routes.py |
| Subscription management (cancel/reactivate) | ✅ Shipped | app/api/payment_routes.py |
| Account deletion (30-day grace) | ✅ Shipped | app/api/account_routes.py |
| Slot-aware enforcement | ❌ Not Shipped | Binary superpowers on/off. Needs upgrade to slot-count-aware (see PRD 3 Section 6). |
| Per-companion billing scope | ❌ Not Shipped | Subscription is per-user, slots are per-companion. Not yet reflected in enforcement. |
| Referral reward billing | ❌ Not Shipped | 3 referrals = 1 free month (PRD 6). Stripe coupon/credit integration needed. |
| Paid level transfer | ❌ Not Shipped | One-time purchase for companion level transfer (PRD 3). No one-time purchase support yet. |
| Pause subscription | ❌ Not Shipped | No pause flow |
| Student discount | ❌ Not Shipped | No SheerID / .edu verification |
| Monthly value summary | ❌ Not Shipped | No "what your companion did this month" report |
| Gift subscriptions | ❌ Not Shipped | No gift purchase flow |
References¶
This PRD uses standardized terminology, IDs, pricing, and model references defined in the companion documents:
| Document | What it Covers |
|---|---|
| REFERENCE_GLOSSARY_AND_IDS.md | Canonical terms: workflow vs miniapp vs superpower, ID formats |
| REFERENCE_PRICING.md | Canonical pricing: $7.99/mo + $50/yr, free tier limits |
| REFERENCE_MODEL_ROUTING.md | Pipeline stage → model tier mapping |
| REFERENCE_DEPENDENCY_GRAPH.md | PRD blocking relationships and priority order |
| REFERENCE_FEATURE_FLAGS.md | All feature flags by category |
| REFERENCE_TELEMETRY.md | Amplitude event catalog and gaps |
Executive Summary¶
This PRD defines Ikiro's complete monetization model across consumer (B2C) and developer/enterprise (B2B) products. The consumer model uses a freemium structure where free users get a genuine companion experience and Superpowers+ ($7.99/mo or $50/yr) unlocks expanded superpower slots, unlimited messages, companion switching, proactive features, and cosmetic upgrades. The B2B model uses tiered API pricing (defined in PRD 9).
Core tension: We're building a relationship product. Aggressive monetization destroys trust. But unsustainable unit economics kill the company. The model must feel generous while covering costs and generating margin.
Current state: Stripe subscription live ($7.99/mo + $50/yr). Free tier enforcement shipped (50 msgs/day). Three in-persona upgrade message variants deployed (monthly link only). Billing history and subscription management APIs operational. Slot-aware enforcement and per-companion billing scope not yet implemented.
What changed in v2: - Superpowers+ rebrand — subscription tier renamed from "Sage+" to "Superpowers+" (companion-agnostic). - Credits removed — credit system fully deprecated. No credit packs, no paid trial, no credit balance. Pure free tier + subscription. - Pricing aligned — $7.99/mo + $50/yr canonical. Annual discoverable via web/payment page, not surfaced in chat. - Memory cap removed — free users get unlimited memories. The upgrade lever is what the companion can do, not what it can remember. - Slot alignment — Free = 1 slot always. Superpowers+ = 3→6 at L10 per companion (PRD 3 v3). - Per-companion billing — subscription is per-user, but slots and loadouts are per-companion. Paid level transfer as one-time purchase. - Referral integration — 3 referrals = 1 free month of Superpowers+ (PRD 6 v5). Billing handles Stripe coupon/credits. - Cost model updated — Supermemory (not mem0), model routing in place, margins recalculated at $7.99 (~58% gross).
1) Consumer Pricing (B2C)¶
1.1 Tier Structure¶
| Feature | Free Forever | Superpowers+ ($7.99/mo) |
|---|---|---|
| Daily messages | 50 | Unlimited |
| Superpower slots | 1 (always, personality test default) | 3 → 6 (grows with companion level per PRD 3) |
| Memory storage | Unlimited | Unlimited |
| Superpower tiers | Bronze → Silver → Gold (use-based) | Bronze → Silver → Gold (use-based) |
| Proactive messages | 1/day max | 5/day (configurable) |
| Group chats | 1 active group | Unlimited groups |
| Photo memories | 5/month | Unlimited |
| Voxel Room themes | Basic themes | All themes (incl. premium) |
| Avatar customization | None | Full customization |
| OAuth connections | 1 source | Unlimited sources |
| Response priority | Standard | Priority queue |
| Companion switching | Not available (locked to onboarding companion) | Available (per-companion levels, paid level transfer) |
| Superpower creation | Unlocks at Level 8 | Unlocks at Level 5 |
| Progression speed | 1x | 1.5x multiplier in formula |
Per-companion note: Slots are per-companion — each companion in your roster has their own equipped superpowers. One Superpowers+ subscription covers all companions. See PRD 3 Section 6 for loadout mechanics.
1.2 Pricing Rationale¶
$7.99/month (or \(50/year, ~\)4.17/mo) — targeting college students and young professionals: - Below the "think twice" threshold for most of this demographic - Comparable to: Spotify (\(10.99), ChatGPT Plus (\)20 but utility-focused), Character.AI Pro (\(9.99) - Covers estimated cost per active premium user (~\)3.35/month in LLM + infra) - ~58% gross margin at full engagement — sustainable at scale - Annual option ($50/yr) available via web portal and Stripe checkout page, not surfaced in chat
Free Forever — not a trial, a real product: - 50 messages/day is enough for a genuine relationship (most users average 15-30/day) - 1 superpower slot gives real utility (personality test superpower auto-equipped, swappable) - Unlimited memory — the companion remembers everything regardless of plan. Capping memory is capping the relationship itself. - The free tier must feel generous, not crippled — the upgrade sells itself through expanded capabilities, not degraded basics
2) Free-to-Premium Conversion¶
2.1 Natural Upgrade Moments¶
The product creates organic moments where premium feels valuable, never forced. Each moment is delivered in the active companion's voice (Sage, Vex, or Echo):
| Moment | What Happens | Status |
|---|---|---|
| Hit 50-message daily limit | "we've been chatting a lot today! Superpowers+ gives you unlimited" | ✅ Shipped (3 variants) |
| Try to equip 2nd superpower (free user) | "I'd love to learn that but my one slot is full — Superpowers+ gives me more room" | ✅ Shipped (as binary superpowers check) |
| Superpower blocked in group | "superpowers work in groups when the creator has Superpowers+" | ✅ Shipped |
| Try to join 2nd group chat | "I can only do one group on free — upgrade and I can be everywhere" | ❌ Depends on group count enforcement |
| Proactive message blocked by limit | "I had something to tell you about tomorrow but I hit my daily limit" | ❌ Depends on proactive gating (PRD 10) |
| Premium Voxel theme visible | "ooh that room theme looks nice — that's a Superpowers+ thing" | ❌ Depends on Voxel World (PRD 4) |
After any upgrade decline: Companion mentions the referral alternative once: "you can also get a free month by inviting 3 friends — no pressure either way." See PRD 6 Section 6.6.
Upgrade frequency rule: Max 1 suggestion per week. Never during emotional conversations. Never after a same-conversation decline.
2.2 Upgrade Flow¶
In-chat (primary conversion path):
Companion: you've been hitting the daily limit a lot lately —
Superpowers+ is $7.99/mo and you get unlimited everything.
want me to send you the link?
User: yeah
Companion: here you go! → [Stripe checkout link (monthly)]
(you can cancel anytime, no contracts, I won't be weird about it)
The in-chat link always goes to the monthly checkout. The annual option ($50/yr) is discoverable on the Stripe checkout page and the web portal settings page, but is not surfaced in companion messages.
Web portal: - Settings → "Upgrade to Superpowers+" button - Feature comparison table showing both monthly and annual options - Stripe checkout redirect (annual pre-selected as better value) - Immediate activation on payment confirmation
2.3 Anti-Patterns (What We Will NOT Do)¶
- ❌ Hard paywall after trial expires (kills trust)
- ❌ Degrade free experience over time (feels punitive)
- ❌ Nag about upgrading more than once per week
- ❌ Make the companion less helpful or warm to free users
- ❌ Lock safety features behind paywall (crisis support, boundary enforcement)
- ❌ Lock memory behind paywall (memory is unlimited for all users)
- ❌ Use dark patterns (hidden auto-renewal, difficult cancellation)
- ❌ Mention pricing during emotional or vulnerable conversations
- ❌ Surface annual plan in chat (keep chat upgrade flow simple — one link, one price)
3) Premium Churn Prevention¶
3.1 Why Users Might Cancel¶
| Reason | Mitigation |
|---|---|
| "I don't use it enough" | Level/streak system creates habit. Proactive messages provide value even on quiet days. |
| "It's not worth $8" | Ensure premium features feel meaningfully better (more slots, unlimited messages, companion switching, premium themes). Monthly value summary. |
| "I forgot I was subscribed" | Monthly summary: "here's what I did for you this month" (opt-in) |
| "I can't afford it right now" | Pause subscription (keep data, lose premium features, resume anytime). Referral alternative: 3 friends = 1 free month. |
| "I'm switching to another AI" | Portability (PRD 9) makes companions available everywhere. Memory + persona + per-companion level = high switching cost. |
3.2 Cancellation Flow¶
User: cancel my subscription
Companion: totally get it — no pressure at all. here's what changes:
- messages capped at 50/day (you average 23, so you'll probably be fine)
- superpower slots drop to 1 per companion (you have 3 equipped — you'd need to pick one to keep)
- companion switching disabled (you keep whichever companion is active)
- your memories stay (I won't forget you!)
- your companion levels stay (I won't lose what we've built!)
want to go ahead, or would pausing for a month be better?
Key design decisions: - Memories are never deleted on cancellation (relationship preservation) - Companion levels never decrease (ratchet — per PRD 3) - Superpower tiers never downgrade (Gold stays Gold, preserved in archive) - Equipped superpowers above free-tier slot limit: grandfathered — user keeps what's equipped but can't equip new ones above the 1-slot cap until they re-subscribe or unequip. Per PRD 3 v3 "grandfather equipped, prevent new equips above cap." - All companions' loadouts follow the same rule — not just the active one - 7-day grace period after cancellation (premium features still active) - One-click re-subscription at any time (no re-onboarding)
3.3 Winback¶
If a user cancels and is still active on free tier after 14 days: - Companion can mention once: "hey just so you know, if you ever want Superpowers+ back, it's still $7.99. no rush." - Also mention referral path: "or invite 3 friends and get a free month" - After that: never mention it again unless user asks
4) B2B Pricing (Gateway API)¶
Covered in detail in PRD 9, Section 5. Summary:
| Tier | Price | Calls/Month |
|---|---|---|
| Free | $0 | 1,000 |
| Pro | $49/mo | 50,000 |
| Business | $199/mo | 500,000 |
| Enterprise | Custom | Unlimited |
Revenue model: subscription + usage-based overage + LLM pass-through with markup.
5) Cost Structure¶
5.1 Per-User Cost Model (Consumer)¶
| Cost Component | Free User | Superpowers+ User |
|---|---|---|
| LLM (routing + generation) | ~$0.60/mo (50 msgs/day cap, avg 15-20/day) | ~$2.40/mo (unlimited, avg 30-40/day) |
| Memory (Supermemory) | ~$0.15/mo | ~$0.40/mo |
| LLM (proactive workflows) | $0 (1/day cap) | ~$0.40/mo (5/day, estimated) |
| Infrastructure | ~$0.15/mo (shared) | ~$0.15/mo (shared) |
| Total | ~$0.90/mo | ~$3.35/mo |
Note: Routing model is Gemini-2.5-flash-lite (cheaper than GPT-5-mini). Generation uses GPT-5. Memory uses Supermemory (25x faster than previous mem0, comparable cost). These estimates should be validated against production telemetry.
Unit economics: - Free user: costs ~\(0.90/mo. Subsidized by premium revenue. - Superpowers+ user: costs ~\)3.35/mo, revenue $7.99/mo. ~58% gross margin. - Target: 15% premium conversion → profitable at scale
5.2 Cost Scaling¶
| Users | Free | Superpowers+ | Monthly Revenue | Monthly Cost | Margin |
|---|---|---|---|---|---|
| 100 | 85 | 15 | $120 | $127 | -$7 (near breakeven at 15% conversion) |
| 1,000 | 850 | 150 | $1,199 | $1,268 | -$69 (approaching breakeven) |
| 10,000 | 8,500 | 1,500 | $11,985 | $12,675 | -$690 (need ~17% conversion) |
| 10,000 | 8,000 | 2,000 | $15,980 | $13,900 | +$2,080 (profitable at 20% conversion) |
Breakeven conversion rate: ~17% premium conversion at $7.99/mo (down from 22% at the old $4.99 pricing).
5.3 Cost Optimization Levers¶
| Lever | Impact | Status |
|---|---|---|
| Model routing (cheap model for classification, expensive for generation) | -25% LLM costs | ✅ Shipped (Gemini-2.5-flash-lite for routing) |
| Redis caching (common queries) | -20% LLM costs | 🟡 Partially shipped |
| Proactive batching | -10% proactive costs | ❌ Not yet (500+ users) |
| OpenRouter for multi-model cost optimization | -10-20% overall | ❌ Not yet (when LLM costs hit $300+/mo) |
6) Payment Infrastructure¶
6.1 Stripe Integration (Existing)¶
- Checkout: Hosted Stripe Checkout for payment collection
- Webhooks:
checkout.session.completed,invoice.paid,invoice.payment_failed,customer.subscription.deleted - Verification: HMAC signature on all webhooks
- Currencies: USD only (MVP). Multi-currency P2.
6.2 Subscription Management¶
-- Subscriptions table
CREATE TABLE subscriptions (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id) UNIQUE,
stripe_customer_id TEXT NOT NULL,
stripe_subscription_id TEXT,
plan TEXT CHECK (plan IN ('free', 'superpowers_plus', 'paused')),
billing_interval TEXT CHECK (billing_interval IN ('monthly', 'annual')),
status TEXT CHECK (status IN ('active', 'past_due', 'canceled', 'paused')),
current_period_start TIMESTAMPTZ,
current_period_end TIMESTAMPTZ,
cancel_at_period_end BOOLEAN DEFAULT false,
paused_at TIMESTAMPTZ,
resume_at TIMESTAMPTZ,
referral_credits_remaining INTEGER DEFAULT 0, -- free months from referral rewards
created_at TIMESTAMPTZ DEFAULT now(),
updated_at TIMESTAMPTZ DEFAULT now()
);
-- Usage tracking (for limits enforcement)
CREATE TABLE daily_usage (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id),
usage_date DATE DEFAULT CURRENT_DATE,
messages_sent INTEGER DEFAULT 0,
photos_uploaded INTEGER DEFAULT 0,
superpower_triggers INTEGER DEFAULT 0,
proactive_received INTEGER DEFAULT 0,
UNIQUE(user_id, usage_date)
);
6.3 Limit Enforcement¶
async def check_usage_limit(user_id: str, action: str) -> bool:
sub = await get_subscription(user_id)
usage = await get_daily_usage(user_id)
limits = {
"free": {"messages": 50, "photos": 5, "proactive": 1},
"superpowers_plus": {"messages": float('inf'), "photos": float('inf'), "proactive": 5},
}
plan_limits = limits.get(sub.plan, limits["free"])
if action == "message" and usage.messages_sent >= plan_limits["messages"]:
return False # Trigger upgrade suggestion in companion voice
if action == "photo" and usage.photos_uploaded >= plan_limits["photos"]:
return False
return True
6.4 Referral Reward Billing¶
When a user earns a free month through referrals (3 referrals = 1 free month per PRD 6 Section 6.6), the billing system applies a Stripe coupon or credit:
- Existing subscribers: Stripe credit applied to next billing cycle (100% discount for 1 month)
- Free users earning referral reward: Creates a 1-month Superpowers+ subscription at $0 with auto-cancel at end. User can convert to paid at any time during.
- Stacking: Multiple referral rounds stack. 6 referrals = 2 free months, etc.
- Tracking:
referral_credits_remainingonsubscriptionstable tracks earned-but-unused months.
6.5 Future: One-Time Purchases¶
The current Stripe integration handles recurring subscriptions only. Future features that need one-time purchase support:
- Paid level transfer (PRD 3) — transfer companion level from one companion to another
- Premium Voxel themes (PRD 4) — individual theme packs, not bundled with subscription
- Cosmetic packs — avatar accessories, room items
Stripe supports one-time payments natively. When these features ship, add a one_time_purchases table and corresponding Stripe Payment Intent flows. Flag this gap now to avoid painting the billing system into a subscription-only corner.
7) API Endpoints¶
| Endpoint | Auth | Purpose | Status |
|---|---|---|---|
GET /billing/subscription |
User | Current plan, status, limits, usage | ✅ Shipped |
POST /billing/subscribe |
User | Create Stripe checkout for Superpowers+ (monthly) | ✅ Shipped |
POST /billing/cancel |
User | Cancel at period end | ✅ Shipped |
POST /billing/pause |
User | Pause subscription (keep data, lose premium) | ❌ |
POST /billing/resume |
User | Resume paused subscription | ❌ |
GET /billing/usage |
User | Today's usage vs limits | ✅ Shipped |
GET /billing/history |
User | Payment history | ✅ Shipped |
POST /billing/referral-reward |
Internal | Apply referral reward (free month credit) — called by referral tracking system | ❌ |
POST /webhooks/stripe |
Stripe | Webhook handler (all subscription lifecycle events) | ✅ Shipped |
8) Success Metrics¶
| Metric | Target | Why |
|---|---|---|
| Free → Superpowers+ conversion | >15% (long-term) | Sustainable business (breakeven at ~17%) |
| Premium churn (monthly) | <8% | Relationship stickiness + per-companion investment |
| Average revenue per user (ARPU) | >$1.20/mo blended | Covers costs + margin at $7.99 |
| Time to first payment | <14 days from activation | Value demonstrated through relationship, not urgency |
| Upgrade moment conversion | >5% per moment type | Natural upgrade triggers work |
| Cancellation save rate | >20% choose pause over cancel | Pause option preserves users |
| Re-subscription rate (within 90 days) | >15% | Product is missed after leaving (per-companion level is a pull) |
| Referral reward redemption | >3% of users earn a free month | Referral flywheel is working (PRD 6) |
| Annual vs monthly split | >30% annual (at D90) | Annual reduces churn, improves LTV |
| LTV:CAC ratio | >3:1 | Unit economics work |
9) Phasing¶
Phase 1: Core Billing (Weeks 1-3)¶
Already largely shipped. Verify and harden:
- Superpowers+ subscription in Stripe ($7.99/mo + $50/yr) — ✅ Shipped
- Free tier limits enforcement (50 messages/day, 1 slot) — ✅ Shipped
- Daily usage tracking — ✅ Shipped
- In-chat upgrade suggestions at natural moments (monthly link only) — ✅ Shipped (3 variants)
- Cancellation flow with 7-day grace period — ✅ Shipped
- Webhook idempotency and edge case handling — verify
- New: Upgrade subscription_access_service.py to slot-count-aware (PRD 3 dependency)
- New: Ensure upgrade prompts never fire during emotional conversations
Phase 2: Referral & Optimization (Weeks 4-7)¶
- Referral reward billing (3 referrals = 1 free month, Stripe coupon/credit integration)
- Monthly value summary ("here's what I did for you this month" — opt-in)
- Upgrade moment A/B testing (track conversion per trigger type)
- Pause subscription flow (keep data, lose premium features, resume anytime)
- Companion-generic upgrade messages for Vex and Echo (currently Sage voice only)
Phase 3: Advanced (Weeks 8-12)¶
- Student discount verification (SheerID or .edu email)
- Gift subscriptions ("give Superpowers+ to a friend")
- One-time purchase infrastructure (paid level transfer, premium Voxel themes)
- B2B billing integration (PRD 9 tiers)
- Multi-currency support
Feature Flags & Gating¶
| Flag Key | Default | Purpose |
|---|---|---|
enable_free_tier |
true |
Free tier with daily message limits |
free_tier_daily_messages |
50 |
Daily message cap for free users |
free_tier_superpower_slots |
1 |
Superpower slots for free users (always 1, no level expansion) |
enable_subscription |
true |
Superpowers+ subscription availability |
subscription_price_monthly |
7.99 |
Monthly subscription price |
subscription_price_annual |
50.00 |
Annual subscription price |
enable_pause_subscription |
false |
Subscription pause flow |
enable_student_discount |
false |
Student pricing verification |
enable_gift_subscriptions |
false |
Gift purchase flow |
enable_referral_rewards |
false |
3 referrals = 1 free month billing integration |
upgrade_nag_max_weekly |
1 |
Maximum upgrade mentions per week |
upgrade_block_during_emotional |
true |
Suppress upgrade prompts during emotional conversations |
See REFERENCE_FEATURE_FLAGS.md for the full catalog.
Telemetry¶
| Event | Trigger | Properties |
|---|---|---|
billing_upgrade_prompted |
Companion shows upgrade message | user_id, companion_id, trigger_moment, variant |
billing_upgrade_clicked |
User clicks checkout link | user_id, plan (monthly), source (chat/web) |
billing_subscription_started |
Stripe checkout completes | user_id, plan, billing_interval (monthly/annual), amount |
billing_subscription_canceled |
User cancels subscription | user_id, plan, billing_interval, days_subscribed, reason |
billing_subscription_paused |
User pauses subscription | user_id, plan, pause_duration |
billing_subscription_resumed |
User resumes subscription | user_id, plan, pause_duration_days |
billing_limit_hit |
Free user reaches daily limit | user_id, limit_type (messages/photos/proactive/slots), count |
billing_payment_failed |
Stripe payment fails | user_id, plan, failure_reason |
billing_winback_sent |
Winback message sent to churned user | user_id, days_since_cancel |
billing_referral_reward_applied |
Free month from referral applied | user_id, referral_count, months_earned |
Needed but not yet tracked:
- billing_annual_vs_monthly — track which plan users select on checkout page and conversion rates
- billing_downgrade_impact — what features users lose on downgrade (slot count, companion count, superpowers archived)
- billing_ltv_milestone — when user reaches LTV milestones (3mo, 6mo, 12mo)
See REFERENCE_TELEMETRY.md for the full event catalog.
Definition of Done¶
Phase 1 (Core Billing)¶
- Free tier enforces 50 msg/day, 1 slot without degrading experience
- Memory is unlimited for all users (no cap)
- Superpowers+ subscription works for both monthly (\(7.99) and annual (\)50)
- In-chat upgrade links go to monthly checkout only (annual via web/checkout page)
- Upgrade prompts trigger at natural moments (limit hit, slot full, group blocked)
- Upgrade nag frequency: ≤1 per week, never during emotional conversations
- Cancellation flow preserves all data (memories, levels, superpower tiers)
- Grandfathering: cancelled users keep equipped superpowers above free cap, can't equip new ones
- 7-day grace period after cancellation keeps premium active
- Stripe webhooks handle all edge cases (payment failed, subscription updated, etc.) with idempotency
-
subscription_access_service.pyupgraded to slot-count-aware enforcement (PRD 3) - All billing features gated by feature flags
- Telemetry tracks full upgrade funnel (prompt → click → subscribe → churn)
Phase 2 (Referral & Optimization)¶
- Referral reward billing: 3 referrals = 1 free month applied via Stripe coupon/credit
- Referral alternative mentioned after upgrade decline
- Monthly value summary generated and delivered (opt-in)
- Pause subscription flow preserves data and allows resume
- Upgrade messages render in all three companion voices (not just Sage)
Phase 3 (Advanced)¶
- One-time purchase infrastructure supports paid level transfer and Voxel themes
- Student discount verification functional
- Gift subscription purchase and redemption flow
- All pricing references match canonical values in REFERENCE_PRICING.md
10) Open Questions¶
Resolved in v2¶
| Question | Resolution |
|---|---|
| Memory cap (200) or unlimited? | Unlimited for all users. Memory is the relationship — capping it contradicts design philosophy. Memory costs are low (~$0.15/mo). |
| Is $4.99 the right price? | $7.99/mo + $50/yr. Better margins (~58% vs 36%). Still below Character.AI Pro. Canonical per REFERENCE_PRICING. |
| Should credit packs exist? | No. Credits deprecated entirely. Pure free tier + subscription model. |
| Downgrade: auto-archive or let user choose? | Grandfather equipped, prevent new equips above cap. Per PRD 3 v3 decision. |
| What is the subscription tier called? | Superpowers+ (not "Sage+" — companion-agnostic). |
Open¶
- Premium feature degradation model: Should the 51st message be blocked or delayed? (Rec: soft block with companion message, not hard 403.)
- Group chat vs daily message limit: Should messages in group chats count toward the free user's 50/day limit? (Rec: yes — keeps the model simple and incentivizes upgrade.)
- Voxel theme pricing: Bundled with Superpowers+ or separate one-time purchases? (Rec: basic premium themes bundled, "legendary" themes as one-time purchases.)
- Paid level transfer pricing: How much for transferring level from one companion to another? (Rec: $2.99 one-time per transfer — low enough to not feel punitive, high enough to preserve per-companion investment model.)
- Student discount amount: $3.99/mo? $4.99/mo? Free for .edu? (Needs research on willingness-to-pay for college demo.)
- Proactive gating: Which proactive workflow categories are free vs Superpowers+? (Rec: simple reminders free, complex analysis and multi-source workflows Superpowers+ only. See PRD 10.)