---
title: How Vitalis found the revenue hiding inside its subscriber base
url: https://markin.ai/customers/vitalis
company: Vitalis
industry: Health & wellness
result: +19% subscription ARPU
published: 2026-09-01
description: Vitalis grew revenue without buying more members. Markin found and executed upgrade, add-on and reactivation opportunities: +19% ARPU vs a randomised holdout.
---

# How Vitalis found the revenue hiding inside its subscriber base

> Vitalis sells wellness subscriptions to a large consumer base where most revenue growth was assumed to require new members. Markin surfaced the upgrade, add-on and reactivation opportunities already sitting in the base and executed them 1:1, lifting subscription ARPU 19% on treated cohorts against a randomised holdout.

## Results

- **+19%**, Subscription ARPU on treated cohorts. vs randomised holdout, full measurement window
- **+27%**, Plan upgrades. members moving to a higher tier without a discount
- **3×**, Experiments shipped per month. compared with the previous campaign calendar

## At a glance

| Field | Detail |
| --- | --- |
| Industry | Health & wellness subscriptions |
| Markets | Europe and LatAm |
| Base | Millions of members on recurring plans |
| Motions live | Upgrade, add-on cross-sell, reactivation, dunning recovery |
| Stack | Warehouse, product events, Braze, app, Stripe |
| First measured lift | Week 7 |

## The challenge

Vitalis had a healthy subscription business and a growth plan that depended almost entirely on acquiring new members. Every incremental euro was assumed to come from outside the base, while the base itself was managed with a handful of lifecycle emails that had not changed in a year.

The revenue question nobody could answer was smaller and more specific: which member is ready for a higher tier, which one only needs one add-on, and which one is about to lapse for a reason a discount will not fix. Answering it per member, every week, across millions of subscribers, was beyond the team's analytical capacity.

Blanket upgrade pushes made the problem worse: they generated revenue that would have arrived anyway and trained members to wait for promotions.

## What Markin did

- **Data & context, The subscription, as it is actually used.** Markin reads plan history, usage and engagement events, payment outcomes and support contacts where they already live, so every member has a live picture of value received versus value paid.
- **Intelligence, Opportunities the calendar never surfaced.** The intelligence layer sizes each opportunity in the base, tier upgrade, add-on, reactivation, dunning recovery, and separates the members who would convert anyway from the ones where an action is genuinely incremental.
- **Action, One decision per member, launched in place.** Approved actions run through Braze, the app and the billing flow, each against a randomised holdout. Offers that only cannibalise existing revenue are retired automatically.

## Experiments that ran

| Hypothesis | Segment | Action | Channel | Measured lift |
| --- | --- | --- | --- | --- |
| Heavy users on the entry tier upgrade without a discount | Members exceeding entry-tier usage two months running | Tier upgrade framed on the value already consumed, full price | In-app + email | +27% upgrades |
| A single relevant add-on beats a bundle | Members with a consistent single-category usage pattern | One add-on matched to that category, no bundle | In-app | +14% attach rate |
| Most involuntary churn is a payment problem, not a value problem | Failed renewals in the first 48 hours | Card-specific retry timing plus a one-tap update path | Push + email | +21% recovered renewals |
| Lapsed members return for a use case, not for a price cut | Cancelled members with high historical engagement | Reactivation built around their most-used programme | Email + push | +12% reactivation |

## How it rolled out

1. **Week 0, Base connected.** Plan, usage, billing and engagement data connected read-only. Historical cohorts replayed to size the in-base opportunity.
2. **Week 3, First motions live.** Upgrade and dunning recovery running with holdouts, executed through the existing stack.
3. **Week 7, First readable lift.** Subscription ARPU reads +19% on treated cohorts. Two blanket promotions are retired as non-incremental.
4. **Week 12, Always-on in-base growth.** Upgrade, add-on, reactivation and dunning motions running continuously, with new hypotheses entering weekly.

## In their words

"We stopped assuming growth had to come from new members. Most of it was already inside the base, we just could not see it member by member.", VP Growth, Vitalis

## Stack Markin worked with

- [bigquery](https://markin.ai/integrations/bigquery)
- [segment](https://markin.ai/integrations/segment)
- [braze](https://markin.ai/integrations/braze)
- [web-and-mobile-sdk](https://markin.ai/integrations/web-and-mobile-sdk)
- [stripe](https://markin.ai/integrations/stripe)

## FAQ

**Did upgrades come at the cost of churn?**

No. Churn is read on the same holdout as revenue, so a motion that lifts ARPU while pushing members out is caught in the same measurement window and retired.

**How was the Vitalis result measured?**

Every decision carries a randomised holdout. The lift quoted is the difference between the treated cohort and that control group over a full measurement window, not a before-and-after comparison.

**Did they have to move their data to Markin?**

No. Markin reads from the warehouse, CDP and product events already in place. Nothing is copied into a new system and nothing is locked in.

**Which team ran it day to day?**

The existing growth team. Markin does the analytical work, a health and wellness team of that size would need a dedicated data-science pod to produce, and routes every action into the tools they already operate.

**How long until the first measurable lift?**

A first motion goes live in about 30 days and the first statistically readable result lands inside the following six weeks. Scaled impact typically reads at 90 days.

## Related

- [Solution: revenue-discovery](https://markin.ai/solutions/revenue-discovery)
- [Industry: retail](https://markin.ai/industries/retail)
- [All customer stories](https://markin.ai/customers)

Source: https://markin.ai/customers/vitalis