See where your users drop off before subscribing.

Submetry tracks the journey from install to renewal for mobile subscription apps. A tiny SDK, connected to RevenueCat, brings the whole journey into focus.

Users on the wayDrop-offsSubscribers
Simulation, fictitious data
100 %Install
64 %User onboarding
42 %Activation
33 %Paywall
13 %Trial
7 %Subscriber

One journey. Seven stages. No extra noise.

No automatic capture of each tap. You mark the moments that matter, Submetry connects them from the first launch to the last euro.

100 %first launches
first_open

Install

Automatic: first launch, openings, version, country and language. You don't write anything more.

Submetry.configure( appId: "app_herocut", key: "sub_pk_…" )

Five lines. Events start flowing.

The SDK groups events in batches, keeps them local if the network goes down, and never embeds Cloudflare identifiers.

HeroCutApp.swift
import SubmetrySubmetry.configure( appId: "app_herocut", key: "sub_pk_…")Submetry.onboardingStep(0, id: "goal", answer: "create_launch_video")Submetry.paywallShown("onboarding")Submetry.paywallPlanSelected("annual")Submetry.trialStarted("annual")Submetry.track("generation_completed", properties: ["style": "kinetic"])
Swift PackageBatches of 20 to 50 eventsOffline event queueDeduplication by event_id
Events received, live
first_openanon_95de

The app, screen by screen.

Submetry mobile screens, to follow your app from your pocket. Drag, or choose a screen.

Try the web dashboard.

Change period, hover over the curve, compare two versions. The data below is fictitious, the interface is that of the product.

app.submetry.com/herocut
Installs13,474+12 %
Activation41 %+4 pts
Trial → paid52%−3 pts
MRR8,940 €+6 %
Hover over the curve
608456304152029 days ago15 days agoTodayv1.8

Trial conversion has been decreasing since v1.8. Compare with previous version.

Questions from an indie dev, with the answer right away.

Onboarding completed

+6 pts

More people complete onboarding with v1.8 than with v1.7.

v1.758 %
v1.864 %
Fictional examples.

Everything runs on Cloudflare, nothing sleeps.

Events flow through a durable stream into R2 as Iceberg and Parquet. The dashboard reads precomputed aggregates from D1.

SDK Swiftbatch eventsWorker + Honovalidation, limitsPipelinesDurable streamR2 · Icebergsource of truthCron Workeraggregates every 5–15 minD1dashboard aggregatesDashboardquick readingevery 5–15 minsRevenueCatwebhooksR2 SQLraw queriesNo identifierCloudflare in the app
Pipelines and R2 SQL are still in open beta. The storage remains in Iceberg and Parquet, an open format, to be able to change query engines if necessary.

A dashboard with a clear focus

Activation, subscription, income. The custom events are there, but Submetry does not become a second Mixpanel.

A cost that follows your volume

No database running around the clock. Costs follow your actual event volume.

Your data remains portable

Raw history lives in an open format. No warehouse locks, and per-user deletion is provided.

Ready to spot the leaks?

Submetry opens to iOS apps first with RevenueCat. Leave your email to be notified when it launches.

It is noted.
Submetry, for subscription + telemetry.Concept page: No emails are saved.