Subscription source
- Subscription platform connected (RevenueCat, Adapty, or Stripe)
-
trial_started,subscription_started,renewal_completed,subscription_cancelled, andrefund_issuedevents visible in FloKit → Data → Events - No duplicate events — verify by checking for repeated
transaction_idvalues - Revenue amounts match your source-of-truth within a 2% tolerance (platform fees may cause minor differences)
- Sandbox and test events excluded or flagged — confirm test environment events are not inflating production metrics
Attribution source
- MMP connected (AppsFlyer or Adjust)
-
install_attributedevents visible in FloKit → Data → Events -
campaign_idandad_set_idpopulated on attributed installs - Organic installs showing
channel = organicand not being misattributed to paid campaigns - Attribution lookback windows match your MMP configuration (typically 7 days for click, 1 day for view-through)
Identity mapping
-
user_idis consistent across your subscription platform and MMP — both use the same backend identifier -
anonymous_id→user_idlinking is working — verify in FloKit → Data → Identity - Identity join rate is >90% for subscription events
- No large volume of
unknownuser_idvalues on subscription or revenue events - RevenueCat
app_user_idset to your backenduser_idduring authentication - MMP
customer_user_idset to your backenduser_idin the SDK configuration
Revenue reconciliation
- FloKit reported revenue is within 5% of your subscription platform’s dashboard for the past 30 days
- Refunds are correctly reducing revenue and not being double-counted
- Currency conversion is correct for multi-currency apps — verify that
currencyfield is populated on all revenue events - Plan prices in revenue events match actual charge amounts (not list prices when discounts apply)
Payback reports
- First payback report shows the campaigns and channels you expect
- CAC values are within the expected range — cross-check against your existing campaign analytics
- Cohorts cover at least 14 days of subscription history before drawing conclusions from LTV curves
- No campaigns showing $0 spend — verify that your ad platform connection is pulling cost data
- Payback window in the report settings matches your target payback period (e.g. 12 months)