How to Measure True Margin Lift After Going Live
Most teams track top-line revenue. Wrong metric. What matters is net margin per subscriber after platform fees. Here are the 6 numbers that prove you're winning, and the exact queries to get them.
The only number that matters
Net margin per subscriber after platform fees - not gross revenue.
Apple takes 15–30%. Stripe takes ~3%. A web subscriber at lower gross revenue can be worth more than an IAP subscriber. If you're not separating these, you can't see the real effect.
What you'll walk away with: The 6 metrics broken down with benchmarks, a SQL query for your subscriptions table, RevenueCat Charts setup for store-level segmentation, the CardPointers math at 10K subscriber scale, and the four measurement mistakes that make teams draw wrong conclusions.
The 6 Metrics That Matter
Web checkout completion rate
Target: >50%How many users who land on your web checkout page actually complete the purchase. Track this as a funnel event in Mixpanel or Amplitude. Events: web_checkout_viewed → web_checkout_completed. If it's below 50%, your web flow has friction - checkout fields, load time, or a confusing redemption link explanation.
Entitlement sync success rate
Target: 99%+What percentage of completed web purchases correctly unlock the subscription in the app. RevenueCat handles this via redemption links, but you need to verify it. Compare web_checkout_completed events against redemption_link_tapped and entitlement_unlocked. A gap here means lost revenue - user paid, app didn't unlock, support ticket filed.
Web vs IAP paywall conversion rate
Track separatelyDon't assume web converts at the same rate as IAP. RevenueCat's Dipsea test found web subscribes fewer users upfront - 93¢ of IAP revenue per dollar shown. Web paywall views converting to web purchases is a separate funnel from IAP paywall views to IAP purchases. Optimize each independently, and don't penalize web for lower volume - it's serving different traffic.
True margin delta Most important
The number that mattersNet revenue per subscription after platform fees. Formula: IAP gross × (1 - fee_rate) vs web gross × 0.97. CardPointers saved ~27% in fees on web purchases. At scale that's not a rounding error - it's the difference between profitable and not. See the math below.
Web subscriber LTV vs IAP subscriber LTV
Measure after 90 daysDo web subscribers churn faster or slower than IAP subscribers? SOSA 2026 data suggests web may produce stickier subscribers - users who went through a web checkout had higher intent. Measure this cohort by cohort using RevenueCat's retention data segmented by store. Give it at least 90 days before drawing conclusions - early churn patterns don't hold.
Blended effective take rate
Target: below 15%Weighted average fee rate across all subscribers. Formula: (IAP_revenue × iap_fee + web_revenue × 0.03) / total_revenue. As your web mix grows, this number should fall. Today it's probably 15–30%. Target: get it under 15%. Under 10% if you can. This single number captures the entire programme's health.
Dashboard Setup
Three tools, three jobs. Don't try to do everything in one place.
RevenueCat Charts
Store-level revenue, MRR, churn, and retention. Segment by store to separate app_store, play_store, stripe.
Mixpanel / Amplitude
Funnel tracking: paywall view → web checkout opened → checkout completed → entitlement unlocked. Completion rate + drop-off points.
SQL / Google Sheets
Margin math. Pull from your subscriptions table or RevenueCat's data export. Run the query below weekly.
RevenueCat Charts - Store Segmentation
In RevenueCat Charts, open Revenue → break down by Store. You'll see three lines: App Store, Google Play, and Stripe. The Stripe line is your web revenue. Watch the Stripe percentage of total grow over time - that's your blended rate improving.
Also check: Subscriber Retention segmented by Store. This is metric #5 (web LTV). RevenueCat computes 30/60/90-day retention per store natively - you don't need to write a query for this one.
SQL - Net Margin by Store
Run this against your subscriptions table (or RevenueCat's data export). It shows gross, platform fees, and net per store in one query. Adjust fee rates to match your tier - Small Business Program is 15% for the first year, 30% after $1M.
-- Net margin by store, with blended effective rate
SELECT
store,
COUNT(*) AS subscriber_count,
SUM(revenue) AS gross_revenue,
SUM(revenue * CASE
WHEN store = 'stripe' THEN 0.03 -- Stripe processing
WHEN store = 'app_store' THEN 0.15 -- Small Business (adjust to 0.30 if >$1M)
WHEN store = 'play_store' THEN 0.15 -- Google Small Business
ELSE 0.30
END) AS platform_fees,
SUM(revenue) - SUM(revenue * CASE
WHEN store = 'stripe' THEN 0.03
WHEN store = 'app_store' THEN 0.15
WHEN store = 'play_store' THEN 0.15
ELSE 0.30
END) AS net_revenue
FROM subscriptions
WHERE status = 'active'
AND period_start >= DATE_TRUNC('month', CURRENT_DATE)
GROUP BY store
ORDER BY net_revenue DESC; Google Sheets - Blended Rate Formula
If you don't have a SQL database, paste this into a Google Sheet. Put IAP revenue in B2, web revenue in B3, IAP fee in C2, web fee in C3.
// Net IAP revenue (after Apple/Google fee)
=B2*(1-C2)
// Net web revenue (after Stripe 3%)
=B3*0.97
// Blended effective take rate
=(B2*C2 + B3*0.03) / (B2+B3)
// Annual margin lift (web saves vs IAP parity)
=((B2+B3)*C2 - (B2*C2 + B3*0.03)) * 12 Real Numbers at Scale
10,000 subscribers · $9.99/month · $1.2M annual
| Scenario | Platform Fee | Annual Fees | Annual Net |
|---|---|---|---|
| 100% Apple IAP (30%) | 30% | $360,000 | $840,000 |
| 100% Apple IAP (15% SBP) | 15% | $180,000 | $1,020,000 |
| 50% IAP (SBP) + 50% web | 15% / 3% | $108,000 | $1,092,000 |
| 100% web (Stripe only) | 3% | $36,000 | $1,164,000 |
CardPointers: ~27% fee savings on web purchases
CardPointers, a credit card rewards app, structured their revenue to keep App Store IAP below $1M (qualifying for the Small Business 15% rate) while routing web-intent users through Stripe at 3%. The result: ~27% lower fees on web revenue vs what they would have paid at standard IAP rates. Reported in RevenueCat's developer community, 2025.
4 Measurement Mistakes That Lead Teams Astray
Comparing gross revenue instead of net
Web may show lower gross revenue than IAP if fewer users convert on web. Teams see this and conclude web "isn't working." Wrong. A web subscriber at $9.99 with 3% fees nets $9.69. An IAP subscriber at $9.99 with 30% fees nets $6.99. Web wins by $2.70 per subscriber per month - even at lower volume.
Ignoring acquisition cost differences
Web traffic from paid ads or email has a real CAC. Organic App Store discovery has a different CAC. If you're spending $20 to acquire a web subscriber and $5 to acquire an IAP subscriber, the margin advantage may be partially offset. Factor CAC into your LTV model, not just platform fees.
Not segmenting by store in RevenueCat
If you're looking at aggregate revenue charts without store segmentation, you can't see what's happening. Stripe revenue is mixed in with IAP and you lose the signal. Always filter or group by store as the first dimension in any revenue analysis post-launch.
Measuring too early - before the flow stabilizes
The first 2 weeks after launch are noisy. Early adopters are different from steady-state traffic. Conversion rates, completion rates, and churn all shift as the novelty wears off and normal users flow through. Wait 4–6 weeks minimum before drawing conclusions. Set a calendar reminder on launch day.
Tools & Reference
Related Articles
Want help setting up your margin dashboard?
Let's map out your metrics stack and get the SQL running against your data.
Book a 15-min Call →