Bold Little Oracle — Living-Content Strategy (Council-Synthesized, FINAL — R2 must-fixes applied)
Synthesis of six concept lenses + two council rounds. All R2 must-fixes from BRANSON, MACKENZIE, VEGA, and SHADE are applied below. Judged on brand-compounding and hours-liability first, revenue second — because at honest scale this entire portfolio is €60–1,400/yr and the install base is the actual bottleneck.
Council scores (Round 2)
| Reviewer | Score | One-line verdict |
|---|---|---|
| BRANSON | 9 | “This plane flies — one headline, three moves, every timid half-idea killed dead; only gap was that the share loop waited passively for an install base to spin it.” |
| MACKENZIE | 8.5 | “Finance/ops math verifies to the cent and the lifetime contract survives a refund dispute; what remained were instrumentation and calibration gaps, not strategy gaps.” |
| VEGA | 8.5 | “Gates are pre-registered and honest, but the load-bearing metric needed a real data source, a foreground-only fetch definition, and a denominator that doesn’t decay by arithmetic.” |
| SHADE | 9 | “The rare plan that treats the promise as load-bearing architecture; two truth seams remained — bench-card provenance and the silent deletion of purchased cards — both fixable.” |
0. The Headline
Every asset, share card, listing edit, and pitch serves one sentence:
“Hand-written oracle cards — including the ones for the hard days. One price, forever. Plus a free new card every week.”
Three moves, nothing else. Everything not in these three moves is deleted from the plan, with explicit re-entry gates where earned:
- The Week’s Card + branded share loop + deterministic daily draw — one binary (v1.2), launch-adjacent. The distribution engine and the measurement sensor, fused. The loop is primed, not passive (BRANSON R2): the identical Week’s Card share asset is posted publicly every Sunday to one named owned channel (§4).
- The Missing Cards — one flagship €4.99 pack + listing relaunch, month 2–3, gated.
- The Paper Oracle — waitlist page now, paid preorders only after ops verification (including the two German-law mechanics in §3), production only after 10 paid preorders.
1. Resolving the Lifetime Promise vs. Living Content — Explicitly
The tension is resolved by scoping, not softening. The paywall line “No subscription. No games. No tracking. One price, forever.” remains literally true under these rules, which are permanent and non-negotiable:
| Promise | What it covers, forever | What it never blocks |
|---|---|---|
| €6.99 lifetime | The 72-card base deck, unlimited draws, Sassy mode, all app features, every future improvement to any of them. Never re-scoped, never shrunk, nothing existing ever moves behind a new gate. Retired cards never vanish (§6, SHADE R2). | New, clearly-separate hand-written decks — “new books by the same author” — each itself a one-time purchase, forever. |
| “No subscription. Ever.” | The app. No auto-renewable SKU ever exists in the app. | Off-app patronage of a human writer (LATER, gated, never mentioned in-app). |
| “Not AI-generated” | Never changes. No generated sentence ever ships as card text, notification text, weekly-card text, or Obadiah’s letters — any voice, ever. Bright line published in the FAQ as a marketing asset. | — |
| “No tracking” | No accounts, no analytics SDKs, no device IDs, no per-user anything, ever. | Anonymous aggregate request counting on the content CDN, disclosed honestly (see claim surgery); the share card’s QR source tag, disclosed in the same breath (SHADE R2). |
| Free weekly card | Free for everyone including free tier, forever. Moment/season content is never paid. | — |
The frame for users: “Your unlock covers everything you’ve ever bought here, forever. The weekly card is a gift. New decks are new books — each one also one price, forever.”
The one claim surgery — done ONCE. Batched into the v1.2 release, one review cycle, all surfaces simultaneously: App Store description (EN + de-DE), paywall, FAQ, site, and the App Review notes:
- “72 HAND-WRITTEN CARDS” → “the hand-written 72-card base deck — plus a free new hand-written card every week.”
- “No data leaves your phone” → “No accounts. No analytics. No trackers. The app fetches one small public card file — the same file for everyone. Our server counts how many times that file was asked for — a number, never a name. We can’t see who you are or what you drew, and we don’t want to.” (Updated per VEGA/MACKENZIE R2: the counting Worker exists, so the disclosure describes it truthfully rather than pretending the CDN is inert.)
- FAQ adds the AI bright line: “Every word on every card is written by a human. Our tools check for duplicates and typos; they never write.”
- FAQ tracking answer discloses the QR in the same breath (SHADE R2): “The share card’s QR code is a standard App Store link with a source tag baked in on your device — it tells us which share format worked (story, square, dark), never who shared it or who scanned it. Decode it yourself; you’ll find exactly this.”
- FAQ “priority previews” promise rewritten now: early availability via remote-content gating (lifetime holders see each new pack 1 week early) + 2 free preview cards per pack. Never promise discounts.
- Airplane mode stays a hard guarantee: bundled deck is the floor; the app is fully functional offline forever.
2. Offer Ladder
| Rung | Product | Price / Type | Status |
|---|---|---|---|
| 0 | Free tier — 1 deterministic daily card, gentle voice, plus the free Week’s Card | Free | v1.2 |
| 1 | Lifetime unlock — unlimited draws, Sassy, all features | €6.99 non-consumable (existing SKU, untouched) | v1.1, in App Review |
| 2 | The Missing Cards — 20-card flagship pack: money fear, grief, heartbreak, waiting-on-an-outcome, real forks, failure that already happened, family duty. “The cards for the hard days.” | €4.99 non-consumable (nets ~€3.56 DE) | Month 2–3, gated |
| 3 | One seasonal pack per year, maximum (e.g. The Dark Half, Oct) | €2.99–3.99 non-consumable | Only if Missing Cards clears its recalibrated gate (§5) |
| 4 | The Paper Oracle — printed 72-card deck, gentle front / sassy flip | €29–34, web checkout, zero Apple cut | Waitlist now → gated, with preorder mechanics per §3 |
| — | ~~€8.99 four-pack bundle~~ | Killed |
No new payment platform unless a single concept credibly clears €500/yr. Only the physical deck ever does — Stripe enters only with it. Everything else stays Apple-as-merchant-of-record, keeping the Einzelunternehmer EÜR trivial.
Entitlement screen: before any pack purchase button, one plain screen in Obadiah’s voice: “Your lifetime unlock covers everything you’ve ever bought here, forever — this app, the 72 cards, Sassy, all of it. This is a new deck. New cards, new work. Also one price, forever.”
3. Staging
NOW — v1.1 live, zero binary changes (weeks 1–4)
- Capture the pre-CDN baseline: one clean window of ASC metrics — page conversion, opt-in active devices/sessions, install→unlock rate.
- Verify Small Business Program enrollment. All math assumes it.
- Verify the measurement instrument exists (MACKENZIE R2 #1, VEGA R2 #2 — promoted to a NOW item because the gate that controls all paid work depends on it): Cloudflare Pages does not expose per-path, status-split request counts on free/standard plans (Logpush is Enterprise-only; Pages analytics is aggregate). Therefore v1.2 scope includes a count-only Worker on the three content routes, writing
(path, status-class, ISO-week)tuples to Workers Analytics Engine. It stores no IPs, no user-agents, no cookies, no timestamps finer than the week bucket. ~0.5 day. This is the weekly-active counter; without it the plan has no sensor. Confirm the Worker + Analytics Engine binding works on the current plan before v1.2 submission. - Write the two governance documents (one page total): Obadiah disclosure posture (pen name + voice, never fabricated biography, never first-person money appeals) and the AI bright line (a “seed observation” that arrives as a well-turned sentence is a draft).
- Write the 6-card evergreen bench before the first weekly card exists. Bench cards ship in their own frame (see v1.2 schema, SHADE R2) — never a fake “this week” stamp on old work.
- Make the sassy-grief register decision before one Missing Card is written: gentle leads on the darkest cards; sassy sides with the reader against the platitudes — never teases the wound — and sits out entirely where it can’t. Test with 2–3 outside human readers. Then start writing The Missing Cards (10–12 evenings across 6–8 weeks).
- Put up the Paper Oracle waitlist page (email only, no payment).
- Create the outbound channel (BRANSON R2): an Instagram account (@boldlittleoracle) — the one named owned surface where the identical Week’s Card share asset is posted every Sunday. Zero marginal writing cost; the asset already exists from the ritual. Per-channel ASC campaign token from day one. (If attributed installs from it are zero by day 60, switch the same ritual slot to Pinterest — one swap, not a second channel.)
- Create ASC campaign links per channel and per share format so attribution exists from day one.
- Draft the entire claim surgery (all copy, both languages, review notes) so v1.2 ships it in one pass.
v1.2 — ONE binary, ONE review cycle, ONE claim surgery (target: 3–5 weeks post-approval)
| Ship | Detail |
|---|---|
Remote content module (lib/remoteContent.ts) |
Manifest-first fetch from Cloudflare Pages, ETag cache, bundled deck as permanent offline floor, schemaVersion/minAppVersion guards, kill switch (pull/replace a card same-day via git push). The weekly fetch fires only on foreground app open — never background refresh, never notification prefetch (VEGA R2 #1, written into the spec so the gate counts engagement, not the OS scheduler). ~2 days. |
| Counting Worker + Analytics Engine binding on the three content routes (spec in NOW #3) | ~0.5 day. |
| The Week’s Card | One hand-written card/week (both voices), same card for everyone. Two frames in the remote-content schema (SHADE R2 #1): provenance: "fresh" renders “written this week, by hand”; provenance: "bench" renders “a card for any week like this one” — the honest line is part of the frame, not a label bolted onto a frame that still claims freshness. No archive, no backlog, no streak. |
| Weekly notification, re-specced (MACKENZIE R2 #3) | BGAppRefreshTask cannot guarantee arrival detection, so v1.2 ships a fixed weekly scheduled local notification — default Sunday 19:00 Berlin, user-adjustable — whose copy invites rather than asserts arrival (“Obadiah’s been writing. Come see.”). The card is published by Sunday 18:00; since the fetch runs on open, the card is there when they arrive. No copy anywhere claims the card “has arrived” on the device. |
| Deterministic daily card + anti-repeat | Date-seeded draw, exclude trailing ~14 draws. ~1 day. |
| Branded share card | Wordmark, two-voice motif, date, App Store QR with per-format campaign token (story/square/dark) + newsletter URL in the footer. Same asset doubles as the Sunday Instagram post. |
| Notification overhaul | User-pickable time, ~30 rotating hand-written lines in Obadiah’s voice, deep link to the draw. Local-only, no push tokens. |
| Refreshed base deck — shipped as “The Second Printing” (SHADE R2 #2) | Still exactly 72 cards (§6). Named openly: a short human note from Obadiah in the release notes and FAQ (“Books get second printings. So do decks. Here’s what changed and why.”). Proposed decision (awaits Joshua’s sign-off — README decision 4): retired and rewritten first-printing cards remain browsable in a read-only “First Printing” archive screen for lifetime unlockers — purchased content never disappears from the device. +0.5–1 day. |
| Entitlement explainer screen | Built now, dormant until the first pack. |
| The claim surgery | Listing (EN + de-DE), paywall, FAQ (including the counting-Worker and QR disclosures), review notes — all in this release’s metadata. Zero drip of promise-edits ever after. |
LATER — gated, in order
| When | What | Gate that opens it |
|---|---|---|
| Month 2–3 | The Missing Cards launches + listing relaunch (“92 hand-written cards, including the ones for the hard days”) + first PPO experiment | Weekly-open gate green (§5). Writing proceeds regardless; launch waits for the gate. |
| Month 3+ | Paid preorders for the Paper Oracle (Stripe), with two mechanics fixed in the terms before the button exists (MACKENZIE R2 #4): (a) German USt on Anzahlungen is due in the VAT period the prepayment is received — VAT from each preorder is set aside immediately and entered in that period’s USt-VA, so December preorders don’t create a surprise January liability; (b) preorder terms state the estimated ship date and a full-refund-on-request path before delivery; the 14-day Widerrufsrecht runs from physical delivery. Preorder cash is carried as a refundable liability, not margin, until decks ship. | ≥25 waitlist emails AND verified EU landed-cost sheet AND LUCID/Verpackungsgesetz registration. Production: ≥10 paid preorders by Dec 1, else the page comes down. |
| Oct (earliest) | One seasonal pack (The Dark Half) | Missing Cards ≥5 buyers in its first 60 days (recalibrated, MACKENZIE R2 #2 — at base-case attach the old 30-day window produced 1.5–4 expected buyers even mid-scenario, i.e. it silently killed rung 3 in every scenario the revenue table presents. Hitting 5 within 30 days is now explicitly an outperform signal that justifies starting the seasonal pack early.) |
| List ≥300 | Obadiah’s Letter, free tier (monthly) | Organic list growth only. |
| Free letter shipped 3 consecutive months AND list ≥300 | Paid patronage on a merchant-of-record platform (Patreon; Ko-fi is not MoR → EU VAT lands on Joshua). Never mentioned in-app. Disclosure posture doc is a hard precondition. | |
| ≥2,000 installs | Revisit tip jar (Settings-only consumable). | |
| 2027 | Your Year, Printed — parking lot, only if a fully on-device export survives design review. |
Killed — deleted, not deferred
Paid/generated “Live Oracle” subscription. Any in-app subscription. The Ribbon / any streak mechanic. Roast Mode Preview. Live “N people drew this” counters. Facilitator’s Deck / any B2B. Quarterly pack cadence. €8.99 bundle. Daily hand-written cadence. On-device debug-screen counter.
4. Content Production System
Who writes: Joshua writes every word that ships, by hand, both voices. Full stop.
Where the LLM sits (hard ceiling): research assistant and QA linter, never an author — seed briefs as bullet fragments and dates only, never sentences; dedup checker against all 144 existing voice-texts; lint pass (banned idioms, “Stop…”-opener counter, tiny/small/today ration, schema validation, both-voices check). Never drafting, rephrasing, or suggesting phrasings.
The weekly ritual (Sunday evening, ~1.5–1.75h all-in, updated for BRANSON R2): read the seed brief → write both voices → gut-check (“does this survive tomorrow’s headlines?” — season’s emotional weather, never the news) → run lint → git commit → Pages deploy (card live by 18:00 Berlin) → post the identical branded share asset to @boldlittleoracle with its campaign-tagged QR (~10 min) → top up the bench if drawn from. The outbound post is part of the ritual, not a new recurring commitment — it displaces nothing because it reuses the asset the ritual already produces.
Hours-stack rule: the weekly ritual (card + post) is the only recurring commitment this portfolio can afford. No new recurring commitment may be approved without naming which existing one it displaces. Pack-writing months are bursts, scheduled only when the weekly bench is ≥4 cards deep.
| Steady state | Hours |
|---|---|
| Week’s Card ritual incl. outbound post (permanent) | 1.5–1.75h/wk |
| Missing Cards (one-time burst) | 10–12 evenings over 6–8 weeks |
| Second Printing refresh (one-time) | 4–6 evenings + 0.5–1 dev day for the archive screen |
| Everything else | €0 hours until its gate opens |
5. Measurement & Gates (pre-registered NOW, before data exists)
The instrument set (no in-app analytics, ever): ASC analytics · the count-only Worker + Workers Analytics Engine (anonymous aggregate GETs on the content paths — this, not Pages analytics, is the weekly-active counter; see NOW #3) · Apple PPO · owned off-app surfaces (Beehiiv, site, Instagram insights).
One asset path per surface: content/weekly/current.json · content/packs/<slug>/manifest.json · content/deck/base.json.
| Gate | Metric (source) | Threshold & window | Green → / Red → |
|---|---|---|---|
| Weekly-open (load-bearing) | (200s + 304s on weekly/current.json per week, from the counting Worker — fetches fire on foreground open only, so this counts engagement, not the OS) ÷ ASC installs in the trailing 90 days (VEGA R2 #3 — a cumulative-install denominator never shrinks and decays the ratio mechanically; trailing-90 keeps green reachable and makes red mean retention, not arithmetic). Known noise — retries, multi-device, cached opens — documented and accepted. |
≥30% for 4 consecutive weeks by day 60 post-v1.2 | Launch Missing Cards / <15% → stop all paid-content work, fix retention |
| Missing Cards | ASC buyers (absolute count) | ≥5 buyers in 30 days | ≥5 in 30 days → seasonal pack may start early (outperform); pack #1 is the calibration experiment that prices everything downstream |
| Seasonal pack | ASC buyers of Missing Cards | ≥5 buyers in 60 days (recalibrated to test the base case, not outperformance) | One seasonal pack allowed / no further packs ever |
| Paper Oracle | Waitlist emails, then Stripe preorders | ≥25 emails → paid preorders; ≥10 paid preorders by Dec 1 → POD run | Run / page comes down |
| Patronage | Beehiiv subscribers | ≥300 + 3 free letters shipped | Open paid tier (MoR platform) / stay free |
| Share loop | ASC campaign-token attributed installs per format AND per channel (in-app shares vs. the Sunday Instagram post carry distinct tokens) | >0 by day 30; winning format identified; Instagram slot swapped to Pinterest if its token reads zero by day 60 | Double down on winner / redesign share card |
| Conversion baseline | Observed ASC install→unlock at week 2 | Replaces the assumed 2% in every table; no revenue math re-run until this number exists | — |
6. Deck-Refresh Plan — “The Second Printing” (ships bundled in v1.2, still exactly 72 cards)
The refresh keeps “72 hand-written cards” literally true while fixing quality, and splits the audit’s gap list deliberately: soft gaps go free into the base deck (generosity), heavy gaps anchor the paid flagship (differentiation).
- Collapse duplicate clusters (~12 slots freed): just-start-small 6→2; phone-down 3→1; notice-progress 5→2; inner-critic 3→2; goal-fit 2→1; say-no 3→2.
- Refill freed slots with the softer gaps: waiting-on-an-outcome, decision paralysis between two real options, envy-as-map, patience with slow seasons, one work-conflict card.
- Reserve the heavy gaps for The Missing Cards: money fear, grief, heartbreak, failure that already happened, family duty.
- Voice repair: purge datable 2021–23 idioms; cut “Stop…” sassy openers from 13 to <8; dial back pg-purple on clarity cards; ration tiny/small/today.
- Rewrite the audit’s weakest 10 outright (#19, #20, #18, #9, #21, #48, #60, #66, #40, #35).
Honesty mechanics (SHADE R2 #2): the refresh ships under a name — The Second Printing — with a short note from Obadiah in the release notes and FAQ explaining that decks, like books, get reprinted, and what changed. Retired and rewritten first-printing cards remain browsable in a read-only “First Printing” archive for lifetime unlockers. “Nothing existing ever shrinks” survives its own refresh: content is superseded in the draw pool, never deleted from the buyer’s device.
~4–6 evenings of writing + 0.5–1 dev day, before or parallel to Missing Cards writing.
7. App-Enhancement Shortlist
| P | Enhancement | Release | Days |
|---|---|---|---|
| 1 | Remote content module + kill switch + offline floor + two-frame provenance schema + foreground-only fetch | v1.2 | 2 |
| 2 | Counting Worker + Analytics Engine on content routes | v1.2 | 0.5 |
| 3 | Deterministic daily draw + anti-repeat | v1.2 | 1 |
| 4 | Branded share card + campaign QR + newsletter footer | v1.2 | 1–2 |
| 5 | Notification overhaul (custom time, rotating hand-written lines, deep link, fixed weekly schedule for the Week’s Card reminder, local-only) | v1.2 | 1–2 |
| 6 | First Printing archive screen (read-only, lifetime holders) | v1.2 | 0.5–1 |
| 7 | Entitlement explainer screen (dormant until pack #1) | v1.2 | 0.5 |
| 8 | Reflection note after reveal + uncapped history for lifetime holders (on-device only) | v1.3 | 2–3 |
| 9 | Pick-a-card 3-spread (situation/block/move — exactly one spread, included in existing lifetime) | v1.3 | 2–3 |
| — | Widget | Post-v1.3, only if weekly-open gate is green | — |
8. Revenue Math — One Assumption Set, Three Scales
Shared assumptions: lifetime nets €4.99 DE (SBP verified; honest band €4.2–5.0). Non-consumables net ~71% of sticker → Missing Cards nets ~€3.56. Install→unlock 2% provisional until the week-2 ASC number replaces it. Pack attach underwritten at 15–20% of cumulative unlockers. Scenarios are cumulative installs at day 90. Paper Oracle preorder cash is a refundable liability until shipped (Widerruf + cancellation path), and its VAT is remitted in the period received — the €12/deck margin is recognized only at delivery.
| Year-one, net € | Low: 500 installs | Mid: 2,000 | High: 8,000 |
|---|---|---|---|
| Cumulative unlockers (2%) | 10 | 40 | 160 |
| Lifetime unlocks | €50 | €200 | €800 |
| Missing Cards (15–20% attach + ~0.5% of free installs) | ~€7–15 | ~€25–55 | ~€100–210 |
| Seasonal pack (if gated in — note the gate now tests base case at 60 days) | €0 | ~€10–20 | ~€50–90 |
| Paper Oracle (~€12 target margin/deck at delivery — verified only once the landed-cost sheet exists; gated, Christmas-weighted) | €0 | ~€60–120 | ~€180–300 |
| Year-one total | ~€60–65 | ~€300–400 | ~€1,100–1,400 |
The honest read: these numbers do not pay for the hours. What pays is (a) the listing-conversion lift from “hand-written cards including grief and money,” tested via PPO; (b) a catalog where every object compounds the brand; (c) the share loop — now with a named weekly seed channel — the only thing on this page that attacks the install bottleneck. Distribution first, catalog second, patronage maybe-never.
9. Risks
| Risk | Mitigation |
|---|---|
| Missed weekly card | 6-card bench written before launch; bench cards ship in the honest bench frame (“a card for any week like this one”) — the frame itself changes, never a fake freshness stamp |
| One tone-deaf sassy grief line | Register rule decided before writing; gentle leads on darkest cards; 2–3 outside human readers; slower edit cycle budgeted |
| Entitlement confusion (Moonly failure) | Explainer screen before every pack purchase; boundary stated in one sentence on the paywall |
| Claim-erosion optics | All surgery in one v1.2 pass, including review notes and the counting-Worker/QR disclosures; never again |
| “Second Printing” reads as content removal | Named openly with Obadiah’s note; First Printing archive keeps every purchased card browsable |
| Gate has no data on day one | Counting Worker verified on current Cloudflare plan before v1.2 submission; foreground-only fetch keeps the metric meaning engagement |
| Notification promises what iOS can’t deliver | Fixed weekly scheduled reminder with invitational copy; no arrival claims anywhere |
| Persona blowback | Disclosure posture written now; patronage frozen behind it |
| Weekly card meets a live tragedy | Season’s weather, never headlines; same-day pull/replace via git push |
| Hours creep | Displacement rule; the Sunday ritual (card + post) is the sole permanent commitment |
| Physical-goods ops trap | Waitlist-first; landed-cost sheet + LUCID before preorders; USt-on-Anzahlung set-aside; ship-date + refund terms in preorder copy; production at ≥10 paid preorders |
| Deciding on unmeasurable vibes | Every gate pre-registered with number + window + date; trailing-90 denominator; absolute counts below 500 installs; pre-CDN baseline captured first |
10. One-Paragraph Summary
Ship v1.2 as a single binary containing the remote-content module (foreground-fetch only, two provenance frames), the free hand-written Week’s Card, the deterministic daily draw, the branded share loop with per-format and per-channel attribution, the count-only Worker that gives the load-bearing gate a real data source, the Second Printing of the base deck with its First Printing archive, and the one-time claim surgery across every surface including Apple’s review notes. Every Sunday the same ritual writes the card and posts the same asset to the one owned public channel, so the loop has a first push instead of waiting on forty unlockers. Write The Missing Cards with the sassy-grief register decided first, launch only if weekly-open clears 30% of trailing-90-day installs for four weeks, and relaunch the listing around “hand-written cards, including the ones for the hard days.” The Paper Oracle takes emails now and money only after German preorder law and landed costs are verified on paper that exists. Everything else is killed or gated. The lifetime promise survives untouched because nothing existing ever shrinks — not even in a reprint — nothing in the app ever recurs, every new deck is one price forever, and no generated sentence ever ships.
Unresolved (honest list — cannot be closed on paper)
- The counting Worker is specified, not verified. Whether Workers Analytics Engine + a Worker route in front of Pages content paths works as described on the current Cloudflare plan is an action item (NOW #3), not a fact. If it fails, the weekly-open gate has no instrument and v1.2 must not ship until an equivalent anonymous counter exists.
- Install→unlock conversion is still an assumption. Every table runs on a provisional 2% until the week-2 ASC number exists; several sequencing decisions flip between 2% and 3.5%.
- The sassy-grief register is a rule, not a result. Whether the two-voice duet actually survives grief content is only knowable after outside human readers see real Missing Cards. The rule caps the risk; it doesn’t prove the cards work.
- The recalibrated seasonal gate (≥5 in 60 days) still may never open at low scale. At 500 installs, expected buyers are ~1–3 even in 60 days. This is accepted: at that scale there should be no seasonal pack. But it means rung 3 is realistically mid-scenario-and-up only, and the plan should not be judged a failure when the gate stays shut at low scale.
- The Instagram seed channel is a bet, not a validated channel. BRANSON’s fix guarantees the loop gets a push; it does not guarantee Instagram is where oracle-card audiences are. The 60-day swap rule bounds the cost, but the right channel is an empirical question.
- Weekly-open’s 30% threshold is a chosen number, not a derived one. No comparable product publishes weekly-content open rates for a no-account, no-push-token app; 30% could prove too strict or too generous. It is pre-registered so it can’t be gamed, but its calibration will only be known in hindsight.
- App Review acceptance of the claim surgery is not guaranteed. Changing “no data leaves your phone” plus adding remote content in one release is the correct honest move, but a reviewer could still flag the delta; the review notes mitigate, they don’t control.
- First Printing archive scope for free-tier users is decided narrowly (lifetime holders only) on the reasoning that free users never owned deck browsing. If a free user’s beloved daily card is retired, they lose access to it — a small truth seam accepted rather than hidden.