Practitioner pattern · Thomas Petit (Sells consulting services and runs a paid signal-engineering workshop at App Growth Annual; works with Voyantis)
Report each user's expected value at month 13, not what they paid on day one
Guest's main advanced lever; no numbers given
Workedanalytics-attributionpaid-social
What they did
Default SDK revenue for subscriptions is wrong: trial conversions arrive too late and yearly plans look better than weekly ones that renew for months. Instead send an engineered value per user: predicted value at a fixed day (guest likes month 13, which includes the first yearly renewal and compares monthly vs yearly fairly), set by plan, device, onboarding answers, refund-risk behavior and so on. Find the value drivers with a regression over high/low/zero-value users. Skip this if revenue has little variance across users; go straight to it if variance is extreme (e.g. $1 IAP vs $20/month vs $200/month users).
What happened
Guest says all sophisticated signal engineering happens at the revenue level; no numbers.
“So, it's not a predicted LTV, is a predicted value at day X, maybe it's month two, maybe it's Personally, I like to use month 13, because I've got the first yearly renewal, and I think it's a better comparison between monthly and yearly.”
“Typically, platforms are going to over-index on yearly because all the revenue comes on day one, but maybe your weekly plan has a higher LTV when people renew a lot.”
Related topics
Get tactics like this every Monday
New tactics from the week's founder interviews, each linked to where it was said.
More from this episode
- Check that Meta and Google receive the same event counts as your own analyticsGaps of 30-50% are common; fix anything above 10% before touching ads
- Send trial starts, direct purchases, trial conversions and renewals as separate eventsDefault SDK mapping often lumps them all into one event; guest says fix it first
- Send ad networks only the trials likely to pay, as their own eventGuest's go-to first step when paid trial quality lags; no numbers given
- Tell Meta to value some users more or less instead of excluding themKeeps cheap under-25 reach instead of cutting it; no numbers given
- Look up each conversion's value from a server so you can change it without a releaseAvoids app releases for every price or currency change; says it makes a big difference
- Send your conversion signal within a day, waiting a few hours to see early useVoyantis showed timing matters; guest says signals after 24 hours are nearly useless
- Keep at least 10 conversion events per campaign per day before filteringUnder ~10/day optimization breaks; well above it, fewer better events win
- Report low-value users as worth less and high-value users as worth morePushes delivery toward top users but hides true ROAS; has backfired when overdone
- Send every event to every ad network, then pick a different signal for each
- Compare the value you report with real revenue by country, not just in total
- Send Google only the trials that look likely to payGoogle trials converted at ~15% vs ~40% elsewhere; the fix moved the needle
- Count a business user's yearly plan as worth 5 weekly consumer plansWorked at first; went stale after 18 months of price changes and needed fixing
- Change which events you send to ad networks, even as a young appBig uplift per the guest; details saved for a blog post
- Put all spend behind one channel and one optimization signalGrew from 0 to eight figures in two years, then had no fallback when it broke
- Voyantis: Let a signal specialist filter and send your ad events, and test itOne of two tests looks good, the other doesn't; not conclusive
- Tell ad networks which users reported high anxiety, since they pay far more
- Treat users who rush a 30-screen onboarding in under a minute as low valueHeld for one app; another app found its fastest finishers were its best users
- Change what you report as user value when cash matters more than long-term LTV
- Sell $5-10 top-up credits on top of subscription tiers
- Send buyers to web checkout once the store fee jumps from 15% to 30%Works for them, per the guest; no numbers
- Report a $1 value for non-payers who look likely to stick around
- Report your biggest spenders as mid-value so Meta doesn't stop early