Web and mobile apps
One MRR for Stripe and RevenueCat, with the App Store funnel next to it
If you sell on the web through Stripe and in your app through RevenueCat, neither dashboard shows the business. Adding them double counts subscriptions RevenueCat also tracks from Stripe. Joinsight counts each subscription once, keeps the web and mobile split, and puts the App Store funnel beside it.
No card required. The trial clock starts when your first revenue source connects.
Why it's hard to answer today
- RevenueCat can import Stripe subscriptions, so adding the two dashboards counts some customers twice.
- Someone who pays on the web and in the app shows up as two customers with two small plans.
- App Store Connect shows downloads by source, but not which of those downloads became subscribers.
| Item | MRR |
|---|---|
| Stripe | €2,180 |
| RevenueCat | €1,524 |
| In both, counted once from Stripe | −€292 |
| Combined MRR | €3,412 |
Without deduplication, this business would report €3,704: 8.6% more than it earns.
How Joinsight answers it
Counted once, from Stripe
A subscription visible in both sources counts once, from Stripe, matched on the Stripe subscription ID RevenueCat stores. The Revenue screen shows how the sources reconcile.
One person, one customer
When the same user ID is used in Stripe, RevenueCat and identify(), web and mobile subscriptions belong to one customer, with MRR summed.
The store funnel beside revenue
App Store impressions, product page views and downloads by source type and campaign link, next to trials and new MRR from RevenueCat in the same period.
Web pages that lead to the app
When someone signs up on your website and later subscribes in the app under the same user ID, the mobile subscription is credited to the web page or campaign that first brought them.
What you connect
Good to know
- MRR is gross, before App Store, Google Play and Stripe fees.
- App Store data is aggregate: downloads can't be tied to individual customers, and small numbers can fall below Apple's privacy thresholds.
- Tracing web pages to mobile subscriptions needs the snippet and identify() on your website, and the same user ID as RevenueCat's app user ID. Installs that start in the App Store, without a web visit, have no first touch.
Set it up
- Connect Stripe and RevenueCat
The restricted-key permissions Stripe needs, the RevenueCat key and webhook, how often each syncs, and how a subscription in both is counted once.
- Connect App Store Connect and Instagram
The two App Store Connect keys, the store funnel by source and campaign, and how Instagram posts are joined to signups and MRR.
- Link visitors to customers with identify()
Call identify() at signup, from the browser or your server, and use one user ID across Stripe, RevenueCat and your app so each person is one customer.
Further reading
Other questions it answers
- Content-led SaaSWhich blog posts bring paying customers?Revenue per landing page, measured from the first visit of each customer who paid.
- SEO planningWhat should I write or refresh next?Queries close to page one, on pages that already earn, ranked by what a better position is worth.
- Diagnosing changesWhy did MRR drop last week?An alert with the segments that caused it, computed by code before a sentence is written.
- Launches and socialDid the launch or the post bring customers?Revenue per channel and community, from Hacker News to Product Hunt, with tagged links where referrers are stripped.
- AI assistant reviewCan I just ask my AI assistant about my numbers?Yes. The MCP server returns the dashboard's numbers, with their definitions and labels.
See what makes you money.
Connect Stripe or RevenueCat and Search Console, and you see combined MRR and 16 months of search history on day one. Page and keyword revenue follow as the snippet collects first touches.
No card required. The trial clock starts when your first revenue source connects.