Industries, Fitness & wellness
Decisions for subscription fitness apps.
Paywall personalisation, plan ordering, and re-engagement loops, measured against real revenue, not vanity metrics.
Subscription fitness apps spend aggressively on user acquisition and depend on paywall personalisation and post-install engagement. Rich user context, engagement scores, plan history, activity patterns, makes contextual bandits powerful. A ten-percent relative paywall lift on a $30M ARR business is $1–3M incremental annually. Outcome pricing aligns perfectly: we grow as the customer grows.

What agents handle
Workflow
Paywall variant per goal cohort
Before
Single paywall for everyone, regardless of stated goal
After
Bandit picks pricing + framing per goal (strength / weight loss / endurance)
Result
+11% trial-start across the top three cohorts
Workflow
Push timing per habit pattern
Before
Same morning notification to all users
After
CATE-targeted send window per user's session history
Result
+19% session-start rate D14
Workflow
Plan-renewal nudge
Before
Generic renewal email seven days before expiry
After
Bandit selects channel + offer per propensity-to-churn cohort
Result
+6% renewal, +2% upgrade-on-renewal
Workflow
Programme recommendation slate
Before
Editorial-picked carousel updated weekly
After
Bandit-ranked slate per user's recent activity and goal
Result
+24% programme-start D7

The challenges we solve
- High CAC means every percentage point of paywall lift is millions in revenue
- Churn is everything, the difference between profitable and not
- A/B tests collapse under seasonal effects (January resolutions, summer drop-off)
- The average treatment effect hides the cohort it actually helped (or hurt)
- Vanity metrics (session counts) decouple from revenue more than teams admit
Bandit handles seasonality
Contextual bandits continuously rebalance as the user mix shifts. No need to pause experiments during seasonal traffic anomalies, the propensity log adjusts.
CATE finds the cohort the average hid
X-learner produces per-user, per-arm treatment-effect estimates. You see which segment a variant helped and which it hurt, not just the mean.
Verify on your own warehouse
offpolicy.py is MIT-licensed on PyPI. Reproduce our doubly-robust readout on your Snowflake / BigQuery instance and you will see the same number we billed against.
Worked audit example
What a doubly-robust re-analysis surfaced for Habit.
Series-C subscription fitness app · ~$48M ARR · 2.43M push-opted active users · case ID HABIT-2026Q2-AUDIT-003
What their team reported
Workout-reminder push: 6 p.m. vs 7 a.m. on session-completion (24h). 18.2% → 19.0%, p = 0.04. Team called it "ship 7 a.m. globally" and rolled to 100%.
What our re-analysis found
Doubly-robust per implicit-exercise-window: +9.7% on the pre-dawn cohort, but −3.2% on the evening cohort, 31% of the user base whose engagement the 7 a.m. push is destroying. Morning is just 4× the size of evening; the average reads positive.
Recommendation · projected annualised impact
Replace the fixed-time push with a contextual-bandit policy keyed on each user's implicit exercise window. +22% session-completion on positive cohorts.
+$3.8M / yr LTV upliftSame shape we'll send back on your last A/B test, in three business days.
Read the full audit PDF →Audit your last paywall test — free.
One CSV, one experiment config. Same-shape readout back in three business days.