Immersive Business and Growth Plan
Status: living plan; phases and gates are updated as the #562 launch workstream progresses.
This is a companion document to docs/features/immersive_redesign_extension_design.md. That document covers product, UX, and technical design. This document covers the business side requested in issue #280: monetization, marketing, growth, and retention.
Revised 2026-07-15 after a research pass across three questions: whether the verb conjugator is a good acquisition/onboarding wedge, real-world freemium conversion benchmarks and anti-annoyance design, and how to run an authentic real-people social marketing operation. This revision replaces the first draft’s verb-conjugator-centered framing and placeholder income table. Every claim below is sourced; treat unsourced numbers as explicitly-labeled illustrations, not projections.
Status of Billing Today
Resolved 2026-07-15: no billing for now, by deliberate choice, not just because it doesn’t exist yet. The site is positioned as beta and everything is free during this period — defer building any billing infrastructure until there are real users to justify it. This reverses the earlier framing below (kept for the historical record and because the technical facts are still accurate): billing work in sub-issue #299 is deferred, not P0.
There is currently no real billing infrastructure. The Subscription model (app/models/subscription.rb) only stores email and an ahoy_visit_id — it is a newsletter/interest-capture form, not a paid subscription record. There is no Stripe (or other payment processor) integration, no plan/tier model, and no entitlement/paywall system anywhere in the codebase. When monetization does get built (post-beta, once there are real users), it needs a Plan/Subscription model backed by a processor (Stripe is the natural default for Rails, already agreed as the processor when the time comes), webhook handling, entitlement checks, and a billing UI in Profile/account settings.
Core Strategic Reframe: The Wedge Is Not Verb Conjugation
The original framing treated the public verb conjugator as the acquisition-to-conversion engine. Research shows that’s the wrong model.
Across every comparable reference-utility site, lookup-intent traffic monetizes via ads or same-tool convenience upgrades — never by converting into a paid structured-learning subscription:
- SpanishDict (10M+ monthly users, free dictionary/conjugator/quiz platform): its Premium tier is ad-removal, offline downloads, and cheat sheets — a convenience upsell on the same tool, not a bridge into a distinct learning subscription. Owner Curiosity Media positions itself as a media/ad business, not a subscription-learning company. (Wikipedia, curiositymedia.com)
- WordReference: ad-supported; its only paid tier is a $20/year “Supporter” plan that removes ads and speeds up pages. (wordreference.com/docs/supporter.aspx)
- Reverso: free ad-supported conjugator/dictionary; ~$7.49/mo Premium buys ad removal, unlimited translation, and a grammar checker — friction removal on the utility itself, not conversion into spaced-repetition study. (toolchase.com/tool/reverso)
The precedent that does match Immersive’s actual model — a demonstrable core loop converting into paid structured learning:
- LingQ reached 3.5M users at near-zero ad spend, driven substantially by founder Steve Kaufmann’s YouTube channel (760K+ subscribers) demonstrating the actual import-and-read workflow. The growth engine was demonstrable, shareable content of the core loop, not SEO traffic to a peripheral utility. (vantechjournal.com, lingq.com/about)
- Duolingo for Schools (launched 2015): a free teacher dashboard (rosters, progress, weekly reports) that functions as a lead generator for premium conversions, inside an overall ~80%-organic growth engine. Validates teacher-led B2B2C as a real, proven channel for language learning specifically. (nogood.io/blog/duolingo-case-study)
Conclusion: keep the public verb conjugator exactly where it is — free, unlimited, the signed-out root — because it’s a compounding SEO/trust asset and it’s already built. But stop treating it as the conversion engine. Give verb pages a lightweight “save this to a deck” bridge as low-cost connective tissue, and route the actual acquisition-and-validation story through two channels with real precedent: Documents (a demoable click-to-translate/listen/save loop, matching LingQ’s demonstrable-content pattern) and teacher/classroom-led signup (matching Duolingo for Schools).
Phase 0: Validation-First Soft Launch (before any paid acquisition spend)
The goal of Phase 0 is to learn, cheaply, whether the core loop is sticky and whether people would pay — before spending on ads, UGC creators, or SEO tooling. Traction without validation just means scaling the wrong thing faster.
Lead slice: the Documents reader loop (paste/read real text, click-to-translate, listen, save to a deck) is the strongest existing candidate to demo, per the LingQ precedent above. It already exists in basic form — sentence/word click, translation API, audio, bookmarking — and needs polish (ownership-check fix already flagged in sub-issue #295, a real reader toolbar, and a “save to deck” hook) more than new build.
Differentiated story: the Bridge Method — learning English and the five Romance languages (Spanish, French, Italian, Portuguese, Catalan) together by using what a learner already knows in one to accelerate the next — is genuine, distinctive positioning. English belongs in the set, not just as a fluent-language option outside it: its large Latinate/French-derived vocabulary layer means cognate recognition works from English into the Romance languages too (e.g. “important,” “possible,” “restaurant” are near-identical across all six). Nothing in the competitive set (Duolingo, Babbel, Kwiziq, Readlang, LingQ) tells this story across all six languages as one connected family. It’s worth leading with as the narrative hook alongside the Documents demo, not just the feature itself.
The story is also evidence-backed, which the competitive set’s marketing is not (deep review on the EuRom5 source in the research knowledge base (admin: Knowledge Base > Sources, SLA research domain; #540), #407; canonical adaptation in docs/features/bridge_method.md): the Bridge Method descends from EuRom5, an EU- and French-government-funded line of university research (experiments from 1990, EuRom4 published 1997, EuRom5 2010) whose published result is that adults with one Romance language reach autonomous newspaper reading across four related languages — roughly B1–B2 receptive on the CEFR’s own partial-competences framework — in about 40 guided hours. “Read real articles in a related language after ~40 hours, using the languages you already know” is a concrete, citable hook for Phase 0/Phase 1 copy. Honest-marketing caveat, always: that evidence covers comprehension only, among Romance-L1 learners — Immersive’s additions (English in the set, production practice, spaced repetition) extend beyond what EuRom5 demonstrated, and copy must not attribute the 40-hour claim to them.
Recruit the first cohort manually and authentically, not through paid channels:
- Language-learning communities with real fit: r/languagelearning, r/Spanish, r/French, r/italianlearning, r/Portuguese, r/Catalan, language-exchange Discords/forums.
- Builder-audience channels if a “building in public” angle fits: Indie Hackers, Product Hunt, Show HN.
- Any existing personal network, teaching/tutoring contacts, or Bridge-Method-interested contacts (open question below).
- A founder-authored “I’m building this, here’s why, try it and tell me what’s wrong with it” post is authentic, free, and satisfies the “real people” rule by construction — it doesn’t need hired talent.
Instrument validation, not vanity metrics, from day one, using the Ahoy tracking that already exists:
- Activation: did a new signup complete onboarding and do a first review session.
- Retention: D1/D7/D30 return rate.
- Qualitative signal: a short survey or 15-minute calls/DMs with the first 20-50 real users — the actual “user validation” this plan needs.
Decision gate before any Phase 1 spend (resolved 2026-07-15): the point of a decision gate is to pre-commit to a bar for “this is working well enough to spend real money,” set now, before Phase 0 starts — so the choice isn’t made in the moment under the pull of sunk cost or impatience. Two concrete conditions, both need to be true to greenlight Phase 1 (paid UGC/SEO):
- D7 retention ≥ 20% — of people who actually activated (completed onboarding and did a first review session), at least 1 in 5 are still doing a review a week later. This is a real stickiness signal, not a vanity metric like signups or pageviews.
- At least 3 unprompted “I’d pay for this”-type signals out of the first 20-50 real users surveyed/DMed — someone saying it unprompted is a much stronger signal than someone agreeing when asked directly.
These are starting numbers, not fixed forever — revisit once real Phase 0 data exists. Use the actual language early users use to describe the value; it sharpens Phase 1 ad scripts and makes them more authentic, which matters given the research below.
Explicitly not in Phase 0: paid ads, hired UGC creators, paid SEO/keyword tools. All of that is Phase 1, contingent on what Phase 0 actually shows.
Founder Dogfooding Plan: User 1
Sean will be user 1, and has agreed to the build-in-public approach — his own progress becomes the guide, and the content. This is the single most authentic piece of Phase 0: not hired talent, a real founder learning a real language with the real product. Resolved 2026-07-15: Sean is the visible voice on camera/in posts for round one; scripts get written in-house (drafted from this plan and his actual study progress) rather than improvised — real person, prepared material, consistent with the “real people” rule (the rule is about who’s featured, not whether it’s scripted).
Starting point (corrected): fluent in English and French, learning Italian from zero. The occasion is a holiday in Ireland, not a trip to Italy — Ireland is English-speaking, so this is not a travel-survival-Italian scenario. Italian study fits into holiday spare time (evenings, downtime, travel between places), likely still phone-first. This is still close to an ideal dogfooding scenario — French-to-Italian is the strongest possible Bridge Method case (high cognate overlap, similar grammatical gender system, related verb morphology), and phone-first casual use stress-tests whether the mobile-web experience holds up without waiting for native apps — but the content plan should be “everyday foundational Italian,” not “phrases to survive a trip to Italy.”
Setup decision: set fluent language to French, not English, for this profile. French-contrastive grammar notes and false-friend call-outs are far more useful to a French speaker than English-contrastive ones — this is the Bridge Method applied to Sean’s own account, not just marketing copy.
Before the holiday (using what’s already built):
- Grammar: read A1 Italian notes in order — alphabet/pronunciation, articles and gender,
essere/averepresent tense, then regular-are/-ere/-ireconjugation. Flag explicitly where French fluency doesn’t transfer cleanly: Italian pronounces verb endings fully where spoken French elides them, so the conjugation-recognition instinct from French will need active retraining, not passive transfer. - Verbs: build a starter deck from high-frequency everyday verbs (
essere,avere,andare,venire,fare,potere,volere,dovere,prendere,mangiare,bere,parlare,capire,dire) using the existing conjugation tables, audio, and example sentences, present tense only. - Decks: an “Everyday Italian” starter deck — numbers, greetings, common phrases, question words (
dove,quando,quanto,come,perché) — reviewed with FSRS. Same beginner building blocks as before, just not framed as trip-survival vocabulary since there’s no real-world Italian immersion happening in Ireland. - Documents: write or paste a handful of short A1 dialogues and read them in Show mode with click-to-translate against French and audio playback.
During the holiday (spare-time, short bursts):
- FSRS review of due cards from the Everyday Italian and verb decks in downtime — exactly the short-session use case decks/FSRS is built for, holiday version (an evening, a ferry/flight, a quiet morning).
- A genuinely strong use of the Documents “write a document” feature once it exists: journal the actual holiday, in simple Italian, as writing practice (“Oggi sono andato a Dublino…”). It’s personally meaningful content, produces real corrections/feedback signal for sub-issue #295, and doubles as natural material to read aloud on video.
- This will still surface real gaps, just different ones than a travel scenario would: there’s no photo/OCR import yet (direct validation for sub-issue #295), no document folder support yet (validation for
DocumentFolder, #293/#295), and zero grammar exercises yet, so grammar practice is read-only for now (validation for #296). Go in expecting these rather than being surprised by them.
Video content plan: Sean records short videos of his own progress; scripts are written in-house rather than improvised, delivered by a real person on a real journey — this doesn’t need hired creators for this thread (that’s still useful separately for broader Phase 1 reach). Script sourcing per video: pull from that week’s actual study progress (activity/effort stats, a grammar point that caused genuine confusion, a real deck) so scripts stay grounded in what actually happened rather than generic copy. Natural content: the “learning Italian while on a holiday in Ireland” juxtaposition itself is a relatable, honest hook; screen-recorded moments of a deck review or the activity/effort stats; reading a real Italian journal entry about that day’s holiday; the occasional real mistake and what it taught him. Cadence should follow the holiday, not fight it — no obligation to post daily; a few good clips beat a content treadmill, consistent with the anti-annoyance rules applied to himself as much as to users. Post to the same community list as the rest of Phase 0 (r/languagelearning, r/Italian, build-in-public spaces), plus Instagram/TikTok/YouTube Shorts if broader reach is wanted.
Effort Tracking, Not Just Mastery
Sean’s explicit requirement: the app should track effort spent, not only progress/mastery achieved. These need to be two distinct, separately visible dimensions, not one blended score:
- Mastery/progress: how well a grammar point, verb, or deck is actually known — the existing FSRS/mastery-score design in
docs/features/immersive_redesign_extension_design.md. - Effort: how much time and repetition has actually been invested — total study time, session count, review count — independent of whether the answers were right. This matters most exactly when travel or life makes consistent progress hard: showing “18 sessions, 3h42m, 214 reviews this week” validates the work even in a week where mastery didn’t visibly move, which is also the more honest, less demoralizing signal per the anti-annoyance rules above (no guilt for a slow week; effort put in still counts).
- Practically, this needs an “effort streak” (did any effortful study happen today) tracked separately from an accuracy-based streak — the same distinction as the Duolingo streak-guilt problem, but on the input side rather than the output side: never punish a wrong answer as if it broke something.
- Done (2026-07-15, sub-issue #293): the duration data existed in two places already, neither wired together.
reviews.answer_time(seconds) was already captured client-side by a workingreview_timer_controller.jsStimulus controller and sent on every review submission — it just went into thereviewstable and nowhere else. Separately,study_events.review_duration_ms(milliseconds, capped at 60000) existed in schema for issue #202’s spec but no in-app review ever produced aStudyEventat all (Decks::ReviewsController#submit_reviewnever calledStudyEventLogger). Fixed by bridging:Card#record_review!now logs aStudyEventper review withanswer_timeconverted toreview_duration_ms, resolved through each card subtype’s existing#resourcemethod. This also caught and fixed a real authorization bug in the same controller (unscopedCard.findlet a user submit a review for any card ID, not just their own deck’s) and a latent fixture bug (a test fixture card was missing a required association, undetected because no prior test exercised a full successful review). Profile still needs to surface this as a first-class effort number (#298) — the data now exists to query.
Phase 1: Amplify What Validated (only after a Phase 0 signal)
Real-People UGC Marketing
Per the explicit rule that social campaigns must feature real people (via scripts written in-house and jobs posted on marketplaces like Fiverr), not fabricated people:
- Direct precedent, same category: Chatterbug (a language-learning app with live tutors) found polished ads underperformed and switched to featuring their actual tutors as talking-head UGC, iterating 60+ ad variants across 8 markets. Over 6 months: +311% signups, −50% CPA, −41% CPI, +20% one-month retention, reaching 100k+ signups/month at scale. This directly validates the “real people” rule in this exact vertical — authenticity outperformed polish. (appradar.com case study)
- Platform recommendation for a bootstrapped budget: Billo (pay-per-video, no subscription, $99–120/video, best fit for irregular/small budgets) > Fiverr (cheapest floor, $60–300/video, but needs manual vetting per creator) > JoinBrands (worth it if volume scales, ~$90/video at ~20 videos/mo) > Insense (skip below meaningful monthly ad spend — its $500-650/mo platform-access floor eats the budget before paying a single creator).
- Budget/volume guide: $300–500/mo via Billo ≈ 3–5 videos/month (enough for a first test batch); $800–1,200/mo ≈ 8–12 videos/month (enough for real hook/angle A-B testing, matching Chatterbug’s high-iteration approach).
- Script template (hook/problem/demo/CTA, ~30s): 0–3s pattern-interrupt hook, camera-facing, first-person (“I kept messing up French verb endings until I found this”); 3–8s name the specific relatable pain; 8–20s show the actual product moment on-screen (one clear action, not a feature tour); 20–25s one honest payoff line, no hard claims; 25–30s soft peer-to-peer CTA, no hard-sell language.
- Sources: Influee UGC Rates 2026, Stormy AI platform comparison 2026, Billo pricing guide, Reloop UGC script templates.
SEO and Tooling
Only invest in paid keyword/competitor tools (Ahrefs/SEMrush, ~$100–130/mo) once Phase 0 shows a signal worth amplifying at scale. Until then, free tools (Google Trends, Google Search Console once the domain is verified) are sufficient — verb/conjugation SEO is a slow-compounding asset regardless, not something that needs paid tooling to start benefiting from good metadata and page speed.
Teacher/Classroom Channel
Formalize once teacher/peer-permission features exist (sub-issue #298): a lightweight “invite your class” flow for one teacher to onboard many students at once, matching the Duolingo for Schools precedent above.
Anti-Annoyance Rules (hard constraints)
Per the explicit rule to never be aggressive toward existing users, grounded in real research rather than intuition:
- Never use guilt/fear copy. Duolingo’s own notification history is the cautionary example — real, documented copy like “You’re about to lose your streak. Hurry, finish your lesson!”, “Don’t let Duo down!”, and an escalating “I’m afraid of people who skip their lessons” drew documented user resentment and anxiety, with criticism that the streak became the goal instead of learning. Immersive’s reminders state facts (“N cards due”) in a neutral or encouraging tone only — never guilt, fear, or anthropomorphized disappointment. (webdesignerdepot, duolingoexperts.com)
- Reminder cadence is user-controlled, opt-in and adjustable, off by default beyond one weekly default — no blanket daily push by default. Braze’s frequency-capping research shows tolerance is individual, not a single global cap; blanket over-messaging (not reminders per se) is what drives opt-outs and accelerated churn. The same research found weekly notifications produced far higher retention than zero notifications — the goal is respectful cadence, not silence. (Braze frequency capping)
- Cap total marketing/retention messages (push + email combined) at a low weekly ceiling regardless of channel, with one-tap opt-out.
- No dark-pattern streak mechanics (loss-aversion framing, streak freezes as manufactured anxiety). Show progress as accrual, not something to be lost.
- New/never-active users get zero re-engagement messaging until they’ve had one genuine session — don’t chase people who never started.
Beta: Free for Everyone (current state, resolved 2026-07-15)
No billing, no paywall, no tier gating during beta. Every feature described in the design doc is available to every user while the product is proven out. This directly serves Phase 0/Phase 1 validation: fewer signup-moment objections, faster real usage data, no premature engineering investment in billing before there’s evidence anyone would pay. Site messaging should say “beta” plainly, which also sets the right expectation for rough edges (missing OCR import, no grammar exercises yet, etc.) without needing to apologize for them.
The tier/pricing design below is retained as the future monetization design — what to build once there are real users and a real signal to build it against — not something to implement now. Revisit sub-issue #299’s billing scope only after the Phase 0 → Phase 1 decision gate above is actually met.
Future Monetization Design (post-beta, not active now)
Free
- Public verb conjugator: unlimited. Stays free regardless of tier design — it’s the SEO/trust asset, not something to gate.
- Grammar notes: browse and read (target + fluent language) with no limit.
- Decks: a capped number of user-created decks and daily reviews (e.g. 1 deck, 20 reviews/day) — enough to feel the FSRS loop, not enough for serious volume.
- Documents: a small number of saved documents. Resolved 2026-07-15: A/B test the cap shape itself — one cohort gets a document count cap (e.g. 3 documents), another gets a rolling word/character budget (e.g. 5,000 words/month) — rather than guessing which converts better. This needs the entitlement system (sub-issue #299) to support a configurable/flagged cap, not a hardcoded number, from day one.
- Chat: capped daily messages, routed to a cheap/free model tier (see below).
- Teacher/peer permissions: free, regardless of the teacher’s own plan (resolved 2026-07-15) — this is the acquisition mechanism (matches the Duolingo for Schools precedent above), not a premium feature. Paywalling the thing meant to drive free signups would work against itself.
- No vocabulary rollup, no activity graph history beyond a short window.
Paid: $9.99/month, or $89/year (~26% off, resolved 2026-07-15) — a starting anchor, not fixed forever. Positioned between reference-utility premium upgrades (Reverso Premium ~$7.49/mo) and full course platforms (Duolingo Super/Babbel ~$12-15/mo), matching Immersive’s position as a focused workspace rather than either a utility or a gamified course. Revisit once Phase 0/Phase 1 show real willingness-to-pay signal. Single tier to start; do not build a tier matrix before there is any paying user.
- Unlimited decks, reviews, and documents.
- Document upload/import: PDF, image/photo OCR, scanner (mobile).
- Writing mode: prompts, correction, alternatives, CEFR grading, revision history.
- Dictation / read-aloud with voice selection.
- Full chat access on the higher-quality model tier.
- Grammar progress map, activity graph, vocabulary rollup.
- Anki export for user-created decks.
Rationale for one paid tier instead of Free/Plus/Pro: the product doesn’t have any paying users yet, and a tier matrix is a decision best made after seeing what the first cohort actually pays for.
Model Cost Strategy (applies now, during beta)
Everyone gets the cheap-model routing during beta, since there’s no paid tier yet funding stronger model spend — this matters more now, not less, since 100% of usage runs through it:
- Route chat, hints, and low-stakes generation through a cheaper model — DeepSeek, Qwen, or a similar low-cost provider — via the existing
ruby_llm/agent abstraction, so the model is swappable per use case. - Treat model routing as a
model_key/tier lookup in the agent layer, not scattered if/else branches, so a stronger paid-tier model can be introduced later without restructuring. - Cache/reuse generated content aggressively (e.g. a missing example sentence for a given conjugation only needs to be generated once, ever, for all users).
- When paid tier is eventually built, keep paid-tier chat/writing-correction/coaching on a stronger model where response quality directly affects perceived value.
Conversion Triggers (Free -> Paid) — future design, not active during beta
Paywall placement should trigger at moments of demonstrated value, not arbitrary limits hit cold, whenever this gets built post-beta:
- Hitting the daily review cap while cards are still due.
- Trying to upload/import a document (PDF/photo/scan).
- Finishing a first writing submission and wanting corrected alternatives beyond a one-time free sample.
Retention Loop
- Activity graph (GitHub-style) as a visible consistency signal on Profile — already scoped in the design doc.
- FSRS due-card notifications, subject to the anti-annoyance rules above (neutral tone, user-controlled cadence).
- Teacher/peer accountability as a social retention layer distinct from streaks.
- Vocabulary and progress rollups that make “coming back” show visible compounding progress rather than a blank dashboard.
Freemium Benchmarks (for calibration, not commitment)
Real disclosed figures, useful as sanity-check ranges rather than targets to promise:
- Duolingo (public SEC filings): paid-subscriber penetration is ~8.9–9.0% of trailing-twelve-month MAU through 2025, reaching 12.5M paid subscribers by Q1 2026 (+21% YoY). This is the best real-world free-to-paid ratio for a language app at real scale — but it’s an anchor for a mature, years-in product, not a launch-week expectation. (10-K FY2025, Q1 FY26 shareholder letter)
- RevenueCat State of Subscription Apps 2026: freemium apps (no hard paywall) convert at a median 2.1% by day 35, versus 10.7% for apps with a hard paywall; longer trials (17–32 days) convert around 42.5% versus under 4-day trials at 25.5%. (RevenueCat 2026 report, education vertical breakout)
Immersive has no billing yet and no proven activation loop, so Phase 0’s real job is to generate the first actual data point for these ratios, not to assume industry medians apply. I still have no production traffic data — say the word and I can pull production analytics (the repo already has a prod-data sync workflow) once there’s something worth measuring.
Daily Mini Marketing Plan — Process Design (not yet executing)
This is the seed process for the recurring “daily mini marketing plan” requested in issue #280, and it stays linked to the open approval-boundary questions in sub-issue #302 (Slack/autonomous execution) — nothing here runs autonomously until those boundaries are explicitly defined and approved. As designed, a bounded daily loop would:
- Check the previous day’s activation/retention numbers from Ahoy (once instrumented).
- Check any responses/comments on the current soft-launch community posts.
- Take one small, human-reviewable action (e.g. draft a reply, draft a content idea, note a pattern in user feedback).
- Log the day’s findings and proposed next action for review — not execute anything with real-world effect (posting, spending, messaging) without approval, per the anti-annoyance and approval-boundary rules above.
Open Decisions
All resolved as of 2026-07-15:
- Founder voice: Sean is user 1 and on camera/in posts for round one; scripts written in-house.
- Existing audience to seed Phase 0: none — starting cold in public communities, as planned.
- Real-life events: out of scope for the app, handled externally via Meetup.
- Anki bidirectional sync plugin: not needed.
- Billing: deferred entirely until there are real users — no billing, no paywall, site is beta and free for everyone (see “Beta: Free for Everyone” above). This supersedes the price point, billing processor, document-cap-A/B-test, and teacher-paid-access questions below — they’re answered as a future design (see “Future Monetization Design”), not something being built now:
- Price point anchor: $9.99/month or $89/year, when billing is eventually built.
- Billing processor: Stripe.
- Free-tier document cap shape: A/B test count vs. rolling word/character budget, once there’s a free/paid split to test against.
- Teacher/peer permissions: free regardless of the teacher’s own plan, matching the Duolingo for Schools acquisition mechanic.
- Decision-gate thresholds for Phase 0 -> Phase 1: D7 retention ≥ 20% of activated users, and at least 3 unprompted “I’d pay for this” signals from the first 20-50 real users (see “Phase 0” above) — this determines when Phase 1 marketing spend and eventually billing get built, not just marketing spend alone now that billing is deferred to the same milestone.
Nothing left open from this round. Next real decision point is whichever of the two decision-gate conditions gets hit first.