Where our ROAS leaks

Each step from impression to revenue, against the benchmarks, and the fixes that reach 2–3×

date2026-11-04sourcesMeta, PostHog, Stripe and App Store data, Oct 14–31 · RevenueCat State of Subscription Apps 2026

Every ad dollar returns 8–61 cents on the first charge. Three leaks cause most of it: the price we ask at checkout, the checkout itself, and the price of English web traffic. The app route and the Taiwan web route can reach 2–3× in the first year. The English web route can not without a much cheaper click.

A

Verdict

Three leaks, in order of size
  1. Price at checkout. After web prices tripled on 27 Oct, English paywall viewers who opened checkout fell from 29% to 4.5%. Sales fell from 2 to 0.
  2. The checkout itself. On the web, 18–27% of the people who open checkout pay. Operators see 40–65%. In the app, 82% cancel Apple's payment sheet.
  3. English web traffic. CA/GB/AU web clicks cost $87 per thousand impressions. The same countries cost $13.66 on the app campaign.

We also judged ROAS too harshly and too kindly at the same time. Too harshly, because a monthly subscriber keeps paying. The median Health & Fitness monthly plan renews 57% of the time. If later months keep 75% (our assumption), her first year is worth about 3 first charges.

Too kindly, because the "incl. free trials" column assumed every free week pays. The median is 38%.

The app route leaks in two places of its own. The App Store page loses 70–90% of taps. The plan screen and Apple's sheet then lose 95% of paywall viewers. Sections 5 and 6 cover the app.

B

1. How ROAS breaks down

CPM: cost to be seenCTR: who clicksLink-through: whoarrivesPurchase rate: whopaysRevenue per payer

ROAS = 1,000 × CTR × link-through × purchase rate × revenue per payer ÷ CPM. A step that is 2× below its benchmark halves ROAS, so the gaps multiply.

Step Benchmark or target Web, CA/GB/AU Web, Taiwan App, CA/GB/AU App, Taiwan
CPM ≤ $35 $87 $29 $13.66 $4.72
Link CTR 1–1.5% good, target 2.5% 4.0% 5.4% 3.2% 2.7%
Link-through to onboarding – 88% 93% 30% 9.9%
First question done about 50% 40% 16% 80% 93%
Paywall → opened checkout 25–45% 19% 12% 35% 21%
Opened checkout → paid or free week 40–65% 20% 27% 18% 15%
Arrival → free week or paid 6.9% median (app) – – 3.6% 2.5%
Free week → paid 37.7% median, 51.4% top quarter – – pending 5–6 Nov pending
Arrival → paid 2–3% 1.0% 0.8% – –
Revenue per payer, first charge – $20 $44 $21 (monthly) $18 (monthly)
ROAS, first charge – 0.08× 0.61× 0.20–0.27× expected 0.17–0.19× expected

The app's expected ROAS applies the 38–51% trial conversion to its pending free weeks. Web Taiwan's first-question rate undercounts, because a third of its landers skip the quiz.

C

2. The price change

Paywall → opened checkout, old prices Same, after prices tripled Sales, old → tripled
English web 29% (9 of 31) 4.5% (1 of 22) 2 → 0
Taiwan web 15% (7 of 46) 8% (4 of 49) 2 → 1, cancelled
Taiwan at the old price already paid back

Before the change, the Taiwan web ads spent $77 and took $87 on the first charge: 1.1×. After it, they spent $66 and took nothing.

  • The samples are small. Each cell rests on 1–9 checkout openers, so read the direction, not the exact size.
  • Our purchase-rate rule still applies. Decide the price on paid sales per visitor, not on checkout opens alone.
D

3. What to fix, in order

# Fix Step it moves Lift if it works Evidence Effort
1 Bring web prices back toward the old level, or test 1.5× against 3× Paywall → checkout, checkout → paid 2–6× more checkout opens, back to old-price rates Section 2 Low: the old Stripe prices still exist
2 Move English spend from web ads to the app campaign CPM, cost per arrival Cost per arrival $2.48 → $1.42 Section 1 Low
3 Find out why people leave checkout, then fix it. Log the pay press and payment method. Put Apple Pay and Google Pay first. Show the total before the sheet Checkout → paid 1.5–2× 23 of 35 web openers left with no reason logged Medium
4 Find out why the app's plan screen loses 64–72%, then fix that. It already preselects the free week and shows the Day 5 reminder and the price. Watch the replays of those who left before changing it Arrival → free week 1.9× if free-week starts reach the 6.9% median 47 tapped "Get my plan", 17 opened Apple's sheet, 3 bought (English) Low to look; medium to fix
5 Turn more free weeks into payers: a reminder before day 7, the first workout done in week 1 Free week → paid 1.3× (38% → 50%) Benchmark; ours reads on 5–6 Nov Medium
6 Improve the App Store page: screenshots that match the ad, a page per ad set, more ratings Link-through 1.5× (30% → 45%); Taiwan has more room at 9.9% 70–90% of app taps never open the app Medium
7 Sell more 12-week plans: preselect it, or show it first Revenue per payer 1.1–1.5× App 12-week costs about 3× the monthly Low
8 Let Meta optimize the app campaign for payers: fill the SKAdNetwork schema in Events Manager All steps, through who Meta shows ads to Unknown; installs are not payers The schema is still empty Low
E

4. Paths to 2–3× in the first year

App, CA/GB/AU. Year-one revenue counts renewals: the 57% median first renewal, then 75% a month (our assumption).

Step Cost per arrival Arrival → paid Year-one ROAS
Today, with 38% of free weeks paying $1.42 1.4% 0.64×
+ App Store page: link-through 30% → 45% $0.95 1.4% 0.97×
+ Free-week starts 3.6% → 6.9% $0.95 2.6% 1.85×
+ Free week → paid 38% → 50% $0.95 3.5% 2.44×
+ A third of payers take the 12-week plan $0.95 3.5% 2.57×

Web, Taiwan. 12-week plans; year one adds about 30% for renewals.

Step Arrival → paid Year-one ROAS
Old prices, 26–27 Oct 1.4% 1.1× first charge, 1.4× year one
+ Checkout close 18% → 35% 2.7% 2.70×
+ Paywall → checkout 15% → 20% 3.6% 3.60×

Web, CA/GB/AU. Even every fix together reaches about 1.9×.

Step Cost per arrival Arrival → paid Year-one ROAS
Today $2.48 1.0% 0.26×
+ Old-price checkout rate $2.48 3.0% 0.77×
+ CPM $87 → $35 $1.00 3.0% 1.91×
Where to put the next dollar

Taiwan web at the old price, and English on the app. Keep English web small until a fix brings its CPM near $35.

F

5. The app funnel, step by step

New app users from the 48-hour app test, 29–31 Oct. Each row is people who reached that step.

Step App, CA/GB/AU App, Taiwan Where it leaks
Tapped the ad 277 807 –
Opened the app 84 (30% of taps) 80 (9.9%) The App Store step loses 70–90%
Answered the first question 67 (80%) 74 (93%) English loses 20% on screen 1
Finished onboarding, about 28 screens 48 (72% of starters) 62 (84%) About 1% a screen after screen 1
Saw the paywall 48 62 –
Tapped "Get my plan" 47 54 Almost everyone
Pressed the free-week button on the plan screen 17 (36%) 15 (28%) The biggest leak after the App Store
Confirmed in Apple's sheet 3 (18%) 2 (13%) 11 cancelled, 2 payments failed (English)
Free-week users who finished a first workout 0 of 3 0 of 1 A warning for 5–6 Nov
Paid by 4 Nov 0 (free weeks end 5–6 Nov) 1 monthly plan –
After the paywall, the app converts like the web did at the old price

From paywall to a sale started, the English app converts 6.3% (3 of 48). The English web converted 6.5% (2 of 31) before prices tripled. The app wins earlier: traffic costs a sixth as much, and 57% of its arrivals reach the paywall against 27% on the web.

  • The plan screen is the decision. "Get my plan" is a pass-through; the plan screen with the prices loses 64–72%. It already preselects the free week and shows the Day 5 reminder, so the cause is not yet known. Every free-week sale also needs Apple's sheet, and 82–87% cancel there.
  • The free-week users have not started training. Two of the four opened a workout and none finished one. A first workout in week 1 is the strongest lever we have on 5–6 Nov.
  • App prices are low. The app sells the old price level: the monthly plan is NT$490 (about $15) in Taiwan and £14.99 in Britain. The 12-week plan costs about 3 times the monthly.

Apple's cut. Apple keeps 15% if FiftyStrong is in the App Store Small Business Program, and 30% in a subscription's first year if not. App Store Connect's price list shows proceeds at the 30% rate, so check the enrolment. Stripe keeps about 4% on the web. Tax is left out of both.

Year-one ROAS after the store's cut App, CA/GB/AU, keeps 85% App, CA/GB/AU, keeps 70% Web, Taiwan, keeps 96%
Today 0.54× 0.45× 1.33× at the old price
+ the first fix in section 4 0.82× 0.68× 2.59×
+ all fixes in section 4 2.18× 1.80× 3.46×
G

6. How to fix the app route

# Fix Step it moves Lift if it works Evidence
1 Find out why people leave the plan screen. It already has the free week preselected, the Day 5 reminder, and the price after the trial. Watch the iOS session replays of the 64–72% who left, then test one change, such as the free-week card alone Plan screen → free-week press 36% → 50% is 1.4× 64–72% leave; replay is on for every app user
2 Find out why people cancel Apple's sheet. Log the purchase result for each cancel, so a second thought shows apart from a failed payment. The plan screen already states the price, so the sheet holds no new information Apple's sheet → confirmed 18% → 25–35% is 1.4–1.9× 82–87% cancel the sheet; 2 payments failed
3 Get a first workout done in the free week: start one right after she buys, then a nudge on day 2 Free week → paid 38% → 50%, 1.3× 0 of 4 free-week users finished one
4 Fix the App Store page, Taiwan first: screenshots that match the ads, a custom page per ad set, more ratings Tap → app opened Taiwan 9.9% → 20% is 2×; English 30% → 45% is 1.5× 386 Taiwan store visits gave 80 opens
5 Fill the SKAdNetwork schema with the free-week start, then optimize the campaign for it Who Meta shows the ad to Unknown; buys payers instead of installers Meta now optimizes for installs only
6 Lead with the 12-week plan Revenue per payer 1.1–1.5× 12-week costs about 3× the monthly
7 Soften screen 1 for English: a short welcome before the goal question Opened → first question 80% → 90%, 1.1× Taiwan keeps 93% on the same screen
8 Run a week, not 48 hours: about 50 installs per ad set, $25–35 a day Meta's learning Needed to read any of the above Neither ad set reached 50 installs
The app route can reach 2× after Apple's cut, but only with the plan screen fixed

Start with what costs nothing: watch the plan-screen replays and log why people cancel Apple's sheet. Fixes 1–3 then need an app release and App Review. Fixes 4, 5 and 8 need no build. Re-run the test for a week after the release and read it on paid sales, not installs.

H

7. What to measure next

  • The app's free weeks on 5–6 Nov. They decide whether section 4's 38% assumption is too low or too high.
  • Year-one value, not first charge. Read ROAS at day 7, 30 and 90 for each run, so renewals count.
  • Why checkout fails. The web logs no pay press since the order sheet. Without it, fix 3 is a guess.
  • App Store page conversion by country, from App Store Connect, to aim fix 6 at Taiwan or English.
  • Runs long enough to learn. Two-day bursts never give Meta the about 50 results a week it needs.
I

Sources