Full calculations, visual comparisons, and path to $25K MRR — for the models that matter most to TMA right now
Everything is measured against this. These are the numbers that define the problem.
This is the most important comparison in this document. Both models produce almost the same 12-month revenue — but through completely different psychology. "4-Week Plan" (time-horizon, goal framing) vs "Annual Plan" (commitment framing). The A/B test between these two is purely about which framing TMA's audience responds to better. The economics are identical. The conversion rate may not be.
Replace "Choose Your Plan" with "Your PAIN_FREE Plan Is Ready." Rename plan cards and CTA button to match PRIMARY_PATH. The user has spent 15 minutes earning this plan — the paywall should reflect that.
Move the 60-day guarantee ABOVE the plan selector, not below the CTA. Change copy from "60-day money-back" to "Try your programme risk-free for 60 days — if it's not working, we refund every penny." Guarantee is a price reducer, not a legal footnote.
Make "$0.43/day" the largest typographic element on the annual plan card (28px bold). "$157 billed annually" stays but at 11px muted. Show comparison: "☕ Coffee: $4.50/day · TMA: $0.43/day." Total cost is the same — the perception is not.
Highest Day-30 RPV at full price. No lifecycle email prerequisite. Lowest implementation risk.
Ariely offered MIT students three Economist subscriptions: web-only ($59), print-only ($125), or web+print ($125). Without the print-only option: 68% chose web-only, 32% chose web+print. With print-only added: 0% chose print-only, 16% chose web-only, 84% chose web+print. The decoy didn't sell — it made the target look unmissable by comparison.
The coaching tier ($97/month) is the decoy. 0% will buy it at paywall. Its job: make $157/year feel like an absurd bargain. $97/month × 12 = $1,164/year. Annual at $157 saves $1,007. The decoy transforms the annual plan from "expensive" to "obviously the best decision."
When three options are presented, people systematically avoid extremes and choose the middle. This isn't rationality — it's cognitive comfort. The middle option feels "safe" and "balanced." Pre-selecting annual with a "Most Popular" badge reinforces this: the system endorses the middle choice, and the user confirms what they were already inclined to do.
None. This is a copy + layout change. Replace quarterly plan with a coaching tier description card ($97/month, clearly labelled "Premium"). Pre-select annual radio button. Add "Most Popular" badge. Deploy in one sprint.
Highest 12-month RPV. Fastest path to $25K MRR. But only after the month 2–3 retention cliff is fixed.
People who comply with a small request are far more likely to comply with a larger one later. The $1 charge is the small request. Renewing at $24.97 feels consistent — not like a new decision. The user doesn't re-evaluate; they continue. Cialdini calls this Commitment and Consistency: "I'm the kind of person who trains with TMA. I paid for it. I continue."
The current paywall asks a stranger to commit $157. Most people defer unfamiliar large purchases ("I'll think about it"). A $1 ask doesn't trigger that deferral — the brain classifies it as "no real downside to trying." The skip rate collapses because there's almost no reason to skip. The decision has been de-risked to zero.
1. Lifecycle email (Day 1–6): Without a Day 1–6 push/email sequence, $1 users have no reason to stay engaged. They churn silently after 30 days.
2. In-app onboarding must be solid: The app experience in Week 1 is what determines M2 retention. If the app doesn't deliver value in the first session, no pricing model saves it.
3. Day-25 annual upgrade email: The $1 model's biggest lever is converting M1 users to annual before their first renewal. "Lock in $2.90/week before your plan renews at full price."
An acquirer will see: rapid MRR ramp, high new-user volume, strong cohort retention data. The $1 model builds the growth curve that commands premium multiples. The story is: "We cracked the quiz-to-subscription conversion problem. 70% of quiz completers convert. Here's the cohort data." That narrative is worth 6–8× ARR to the right buyer.
Quiz-earned discount. Real expiry. Best RPV balance between conversion volume and annual plan revenue.
The flash discount converts users who would have skipped Model #3. These are price-sensitive users who need urgency to decide. If those 150 extra users have good retention, flash discount wins in 12-month LTV. The key test: do discount converters have comparable 90-day retention to full-price converters? Often they don't — use this as Test #2 specifically to answer that question.
The human brain weights losses ~2× more heavily than equivalent gains. "You've earned a quiz reward — it expires in 48 hours" converts the non-purchase into LOSING something already earned. The prospect of losing the discount is more painful than the pleasure of gaining the savings. This is why fake countdown timers worked for years — the mechanism is powerful. The problem is fake timers erode trust permanently.
Noom and BetterMe used fake countdown timers for years. Users noticed the timer reset on refresh. Trust collapsed. Multiple consumer complaints and FTC scrutiny followed. TMA's brand is built on authenticity — a fake timer is the fastest way to destroy the "knowledgeable friend" positioning. The timer MUST genuinely expire. SessionStorage persists it across refreshes. After 48 hours, the price reverts to full price. This is the implementation that creates real urgency without the trust damage.
1. Timer must expire for real. SessionStorage, not cookies. If session ends, start fresh 48 hours. If timer hits zero, price reverts. No exceptions.
2. Discount reason must be "quiz completion." Not "limited time offer" (feels arbitrary). "You've completed a 47-question personalised assessment — this is your quiz reward" (earned, specific, credible).
3. Post-timer retargeting: Users who didn't convert while timer was live should see a retargeting ad or email: "Your quiz reward expired — but your programme is still saved." This recovers some of the urgency without extending the fake timer.
The exact format from the BetterMe screenshot — 1-Week / 4-Week / 12-Week plans with per-day dominant pricing and auto-renew. Applied to TMA.
"Monthly subscription" = open-ended, forever, commitment. "4-Week Plan" = defined goal, finite, achievable. The brain processes them differently even though the economics are identical. BetterMe discovered this through split testing — their conversion from "Monthly" to "4-Week Plan" naming alone was significant. The perceived commitment is lower even though the auto-renew makes it functionally the same.
BetterMe claims "visible results in 4 weeks" — credible for weight loss apps. TMA's calisthenics skill progression is slower and more honest. Use: "Feel stronger in 4 weeks" (honest) not "See visible results" (overpromise). For PAIN_FREE: "Move without pain in 2 weeks." For SKILL_SEEKER: "Your first real skill progress in 4 weeks." Path-specific claims are more credible and more converting.
BetterMe's fine print is small and easy to miss — they've faced complaints. TMA's brand is built on trust. Make the auto-renew disclosure clear: "After your intro period, your plan continues at $24.97 every 4 weeks." Transparent disclosure converts as well as hidden disclosure — and protects the brand.
Where the BetterMe model fits in the test sequence and how it stacks up.
This means the real test question is: does "4-Week Plan" framing convert better than "Annual Plan" framing for TMA's audience? The economics are nearly identical. The difference is psychological — time-horizon vs subscription. For a quiz audience who's just committed 15 minutes, both should work. But the conversion rates may differ by 5–15% based on audience psychology. This is exactly the A/B test to run.
With the BetterMe model now included. Based on TMA's current state: $8–9K MRR, no lifecycle email yet, exit in 12–24 months.
Ordered by: lowest prerequisite burden → highest expected RPV impact → best exit narrative.
PATH-personalised headline (#14), guarantee above plans (#15), $0.43/day framing (#13). Pure copy/CSS. No Stripe changes. No RevenueCat. Expected lift: 18–35% on current conversion. Nic ships in 1 day.
Replace quarterly with coaching anchor. Pre-select annual. Add PATH testimonial. This is the control test — establishes baseline for all future tests. Lowest risk, meaningful lift expected. Nic builds in one sprint. Tim designs the stats.
"4-Week Plan / 12-Week Plan" framing vs "Annual / Monthly" framing. Same economics, different psychology. Primary question: does goal-completion framing convert better than plan-length framing for TMA's audience? Full prototype at BETTERME_MODEL_TMA.html.
Add genuine 48-hour quiz-earned discount to the Test 1/2 winner. Tests whether urgency layer lifts RPV further. Answers: "Is TMA's audience price-sensitive?" Expected: yes for ~30% of visitors.
Only after Day 1–6 email sequence live and M2 retention understood. Test both introductory prices head-to-head. The winner depends on M1→M2 retention differential. This is a 90-day test minimum.
Run on the proven architecture from Tests 1–3. Highest traffic requirement (500+ annual conversions per variant). Tim owns the statistical design. Results go directly into the data room. This is the test that moves the exit multiple.
Full analysis of the M3 Flash Discount model pricing. Three alternatives stress-tested against quiz-funnel conversion psychology, competitor benchmarks, and RPV maths. Decision at the bottom.
| Option | First payment | Total value | Est. conv. rate | RPV | 12-mo LTV risk | Verdict |
|---|---|---|---|---|---|---|
|
Current M3
$157 → $99 annual · no trial
|
$99 | $99 / year | 2.5–3.5% | $2.80 | Low churn risk — annual paid upfront | ⚠ BROKEN STRUCTURE |
|
Option A — Half-price Annual
$157 → $77 · 7-day trial first
|
$0 today | $77 / year after trial | 5.5–7% | $4.04 | Trial churn ~30–35% before billing | ✓ STRONG |
|
Option B — Quarterly Flash
$49.97 → $29.97 first 3 months
|
$29.97 | $29.97 → $49.97 renews | 6–8% | $2.10 | High churn at 3-month renewal · low LTV | ⚠ LOW LTV |
|
★ Option C — Trial-Gated Annual
$157 → $99 · 7-day FREE TRIAL first · timer locks the rate
|
$0 today | $99 / year after trial | 7–10% | $6.37 | Committed users don't cancel · low churn | ⭐ RECOMMENDED |
Documented decisions from the PAYWALL_4MODEL_PROTOTYPE.html build session (March 2026). Each decision records the original problem, the rationale, and what was implemented — so future work and A/B tests start from a known baseline.
Six elements audited and resolved. Each decision documents what was wrong, why it was removed or changed, and the conversion principle behind the change.
Systematic spacing audit across all 4 models. Cramped layouts signal low quality — every gap and padding adjustment is a perception fix, not just a visual one.
| Element | Before | After | Why it matters |
|---|---|---|---|
| Screen content padding | 12px | 16px | Content was touching phone edges — looks like a prototype, not a product |
| Below-fold section padding-top | 14px | 22px + border-top | No visual separation between above/below fold created a merged wall of content |
| Feature pills grid gap | 5px | 8px | Pills were visually merged into a block — individual features couldn't be parsed |
| Sticky CTA padding-top | 8px | 16px | Guarantee row was crowded against top edge — gave the CTA a rushed, cheap feel |
| Second CTA margin-bottom | 100px | 20px | 100px created a 248px dead zone at bottom of scroll — content appeared to stop early |
| Phone-screen padding-bottom | 148px | 200px | Sticky CTA is ~182px tall. Content was hidden behind it. Fixed with accurate measurement. |
| Anchor table row padding | 7px | 9px | Anchor comparison rows (Future AI Coach etc.) were too tight — made the table hard to scan |
| Section margins (anchor, next-steps, testimonial) | 14px | 18px | Sections ran together — no breathing room between conversion elements reduces comprehension |
Three components required structural redesign — not just adjustments. Each had a fundamental UX failure at the component level.
M2 (Time-Horizon model) had dynamic plan cards that updated the highlight state but not the surrounding text — creating factual errors visible to the user.
id="m2RenewNote" · updated in selectM2() with label lookupid="m2CoffeeCompare" · updates to "TMA $X.XX/day" per planid="m2MatchSpan" · wired into switchPath() to update with path match valuebackground: #f97316; color: #fff; border: none; — solid orange, high contrastWe are already testing $157/year + 7-day trial. The Flash Discount question is: what do we put the timer on, and what do we discount? Discounting the annual ($97) gives away $60 on users who might have paid $157. Discounting the monthly as a tripwire gets more users through the door and builds the MRR that drives exit multiple. Full maths below.
| Option | First payment | Conv rate | Day-30 RPV | 12-mo RPV | New MRR / 1K visitors | Verdict |
|---|---|---|---|---|---|---|
|
Current (being tested)
$157 annual · 7-day trial · no discount · no timer
|
$0 → $157 | ~5% | $5.87 | $7.40 | $1,511 / mo | → CONTROL |
|
Flash Annual Discount
$157 → $97 annual · 48hr timer · trial-gated ($0 today)
|
$0 → $97 | ~9% | $6.88 | $9.58 | $2,180 / mo | ⚠ GIVES AWAY $60 |
|
★ Flash Monthly Tripwire
$24.97 → $9.97 first month · 48hr timer · upsells to $157 annual at Day-25
|
$9.97 | ~17% | $1.70 | $22.79 | $4,239 / mo | ⭐ BEST MRR |
|
Flash Quarterly
$49.97 → $19.97 first quarter · 48hr timer
|
$19.97 | ~12% | $2.40 | $14.25 | $1,960 / mo | ✗ SKIP — dying format |
What people actually pay, what the Facebook tests showed, and the verdict on $9.99. Every number below was pulled live from Stripe and GA4 on 26 Jul 2026.
153 new subscription sales took money in the 90-day window, totalling $7,013.47. Every one is itemised here — there is no residual.
| Plan | Price paid | Sales | Cash | Note |
|---|---|---|---|---|
| Annual | $78.50 | 43 | $3,375.50 | the real annual price |
| Annual | $157.00 | 4 | $628.00 | full list — 7% of annual sales |
| Annual | $79.99 | 3 | $239.97 | |
| Annual | $109.90 | 2 | $219.80 | |
| Annual | $24.98 | 1 | $24.98 | ⚠ a YEAR for $25 — price fault |
| Annual | $24.97 | 1 | $24.97 | ⚠ a YEAR for $25 — price fault |
| Quarterly | $24.98 | 58 | $1,448.84 | half of list $49.97 |
| Quarterly | $49.97 | 6 | $299.82 | full list |
| Quarterly | $44.97 / $34.98 / $24.99 | 3 | $104.94 | |
| Monthly | $24.97 | 21 | $524.37 | full list |
| Monthly | $9.98 | 6 | $59.88 | tripwire |
| Monthly | $12.48 | 5 | $62.40 | |
| Total | 153 | $7,013.47 | avg $45.84 |
Walking the live quiz on 26 Jul (Pain-Free/Recovery path, mobile), the paywall offers exactly three things:
| Tier | Price | Commitment |
|---|---|---|
| 1-Week | Free trial | 7 days |
| 4-Week | $12.48 | 4 weeks |
| 12-Week | $24.98 | 12 weeks — the ceiling |
There is no annual option, and the highest-cash plan in the business is therefore unpurchasable from the funnel that generates the traffic. A discounted annual banks $78.50; this paywall's best possible outcome banks $24.98 — 3.1× less on the same buyer, on the same click.
Annual is clearly being sold somewhere else (35% of sales come from somewhere), and the annual checkout URLs exist and return HTTP 200 today: /register/yearly_2026/ and /register/yearly3/. So this is a configuration gap, not a build.
Worse, the paywall's persistent sticky CTA — "Get My Recovery Plan Free →" — enrols at $24.97/month, the lowest-cash plan of all. The path of least resistance leads to the worst outcome.
Aga's Facebook tests found $9.99/30-day came closest to beating Time Horizon on front-end conversion, and her instinct is that it is "insane on revenue." Her instinct is correct, and here is the arithmetic that proves it.
So $9.99/30-day can only win on the back end — months 2–12. That requires a step-up conversion and a retention curve we do not currently measure. Betting the front end on an unmeasured back end is how a business quietly shrinks while its conversion-rate chart goes up.
There is a second, structural problem. $9.99 for 30 days is $0.33/day. The annual plan is $0.43/day at its discounted $78.50. So a 30-day pass at $9.99 is cheaper per day than the annual plan — it doesn't just discount, it inverts the price ladder and teaches the market that the cheapest way to buy TMA is one month at a time.
Do not run it as a standalone offer. It wins the metric Facebook optimises for and loses the metric the business runs on. Aga's read is right.
This is a completely different instrument, and it is much stronger. Not because the number is smaller, but because of what it changes structurally.
| $9.99 / 30 days | $9.99 / 7 days | |
|---|---|---|
| What it is | A discounted month | A paid trial / qualifier |
| Cost per day | $0.33 — below the annual daily rate | $1.43 — well above it |
| Effect on the ladder | Inverts it — cheapest way to buy | Preserves it — a premium taster |
| Product given away | A full month at 40% of price | One week |
| vs today's free trial | — | Collects cash from every starter |
| Filters low intent? | No — cheap attracts it | Yes — payment is the filter |
The strategic fit is the part that matters. TMA's problem is not lead volume — it is lead quality and plan mix. The live per-source data shows Meta leads convert to a purchase at 35.1% versus direct at 64.3% — Meta sends people who will answer questions and hand over an email but will not enter a card. A free trial cannot tell those two groups apart. A $9.99 card-required trial separates them on day one, and gets paid for doing it.
Today's free 7-day trial converts at 36.9% matured. Paid trials characteristically convert far better than free ones because the card is already on file and the payment has already been justified. The trade is fewer starts for better starts — which is the right trade when 59% of buy-clicks already fail to become subscriptions.
The billing mechanics break it, in every configuration. The strategic logic (a paid trial qualifies traffic) is sound — but it cannot be built on top of the trial TMA actually runs.
~50% off is on nearly every sale. That is currently a default, not a decision — nobody chose it, it simply became the price. It is the most expensive structural problem in the pricing stack.
MODELLED If all 54 annual sales had banked at $157 that is $8,478 against the actual $4,513 — a $3,965 gap over 90 days (~$1,322/mo) on annual alone. But that assumes zero price elasticity — that all 54 would have bought anyway at full price, which is almost certainly false. Treat it as a ceiling on what the discount costs, not as recoverable money.
The answerable question is narrower: does the discount buy enough extra volume to pay for itself? That needs a holdout — hold back the discount from a random slice of traffic for two weeks and compare revenue per visitor, not conversion rate. Until that test runs, nobody in this business knows whether the discount is earning or costing.
| # | Action | Why | Effort |
|---|---|---|---|
| 1 | Put annual on the quiz paywall — at $97, pre-selected | Annual is 64.4% of cash and is currently unpurchasable from the funnel that makes the traffic. MODELLED +$1,000–1,700/mo | 3–4 h |
| 2 | Raise the annual floor $78.50 → $97, with a stated reason | $18.50 × ~18 annual sales/mo. MODELLED +$333/mo now, ~$800/mo after #1 | copy |
| 3 | Stop the free-trial route enrolling at monthly | The persistent sticky CTA leads to the lowest-cash plan | 2 h |
| 4 | Remove quarterly from the quiz paywall | 43.8% of sales, only 26.4% of cash — a confusion tier | 1 h |
| 5 | Fix the two annual price objects charging ~$25 | A year is being sold for $25 | 30 min |
| 6 | Add a Day-6 in-app annual upgrade prompt | Captures annual intent without touching trial billing | after #1 |
| 7 | Run a discount holdout | Settle whether ~50% off earns or costs | 2 weeks |
| ✗ | $9.99 / 7 days | Day-8 double-charge breaks it in every configuration | — |
| ✗ | $9.99 / 30 days as a standalone offer | Needs 4.6× more buyers to break even on month one, and inverts the price ladder. Only viable after #1, paired with a Day-20 annual upgrade email. | — |
The other tab remains the right strategic thinking. But three of its inputs are now known to be wrong:
Sources — all pulled live 26 Jul 2026 and reproducible: tools/finance/quiz_buys_90d.py (Stripe, both keys) · tools/quiz-analytics/pull_quiz_deep.py and pull_quiz_by_source.py (GA4). Companion analysis: marketing/campaigns/quiz-funnel/QUIZ_FUNNEL_DROPOFF_ANALYTICS_2026-07-26.md.