CASE STUDY · SUBSCRIPTION GROWTH

End-to-End Data Analytics & Engineering for Taoist Wellness (SaaS)

Across 4 payment processors, 9 data sources — unified into one warehouse leadership can take pivotal decisions.


CLIENT

Taoist Wellness Academy — UK subscription wellness education

INDUSTRY

Online subscription education — trial-to-paid, recurring revenue

SCOPE

Data engineering · revenue & growth analytics · paid-media attribution · content intelligence

STACK

BigQuery · layered SQL · Looker Studio · GA4 + GTM

THE SHORT VERSION

A growing subscription business was running on 4 payment processors, 3 ad platforms, and a pile of dashboards nobody fully trusted. We unified all of it into one system that gives leadership a revenue number they can optimize and move the needle with.

4

payment processors

9

data sources unified

209

tables

50

hand-built analytic view

Once the pipelines, the warehouse and the dashboards were built and the SQL was sound, we built a fourth layer: data integrity and observability — the checks that watch the data itself. Building that layer immediately proved why it exists. It surfaced four silent data failures that had been quietly corrupting the reporting for months. None of them threw an error. All of them were making the numbers wrong.

That fourth layer is the difference between a dashboard and a data system you can actually trust.

THE SITUATION

Every platform had its own dashboard, and every dashboard told a slightly different story.

Taoist Wellness sells subscription courses on a trial-to-paid model. Money comes in through Stripe, SamCart, PayPal and ThriveCart, in USD. Traffic comes from Google Ads, Meta, YouTube and organic search.

Leadership couldn't get a straight answer to the questions that decide the business:


What is our real MRR — across every processor, in one currency?


What is our actual churn, and can we trust it?


Which campaigns bring in students who stay — and what does each one really cost?


Is our data even right?

Nobody could answer those from the tools they had. Weekly reporting meant hours of manual exports, and the manual work still didn't reconcile.

THE PROBLEM


9 data sources, no single source of truth. Stripe, SamCart, PayPal, ThriveCart, Google Ads, Meta, GA4, YouTube and Search Console each lived in its own silo.


Revenue split across 4 processors — reported separately, never unified, never normalized.


No trustworthy churn, retention, or CAC. MRR movement, Net Dollar Retention and true cost-per-student didn't exist in one place.


Attribution broke at the checkout. You couldn't follow an ad click through to a trial, to a paying student, to a recurring subscriber.


Manual reporting. 6+ hours a week pulling and cleaning data by hand — and a week-over-week review that took 3+ hours before anyone could think.

WHAT WE BUILT

One connected system, in four layers.

Designed for the client's team to own. The first three make the numbers. The fourth makes sure they're true.


01
Ingestion

Automated daily pipelines pull from all 9 sources into a BigQuery warehouse. Every source uses a staging-to-production pattern, so a bad load never reaches a live dashboard.


02
The warehouse

Raw data flows through a disciplined, layered SQL model: normalize → merge → business logic → serving. Four payment processors become one unified, currency-normalized, deduplicated view of revenue.

This is where the numbers become one number.


03
Analytics

50 hand-built analytics views feed three dashboards the team runs without us.

Revenue & growth

MRR movement (new, expansion, contraction, churn, reactivation), Net Dollar Retention, gross and net churn, ARR, and a stakeholder scorecard for board-grade reporting at a glance.

Acquisition & Funnel

Ad click → trial → paying student → recurring revenue, per campaign, with blended and attributed CAC, CAC payback, LTV and LTV:CAC.

Content Intelligence

YouTube and organic performance tied back to subscriber growth.


03
Data Integrity & Observability

Once the dashboards was live and the SQL sound, we built a set of health checks that watch the data itself — monitoring its integrity and overtime.

Freshnessis every source actually still updating, or has one frozen while it still looks live?

Row-count anomaly did a daily load suddenly collapse, the way a capped export does?

Value driftdid a field's meaning shift underneath the reports that depend on it?

Key uniqueness is the same customer or transaction being counted twice?

View healthdoes every one of the 50 analytics views still run against its upstream?

Each check returns only what's failing — empty means healthy. The automated version runs every morning and sends a single digest of anything wrong, with a weekly all-clear heartbeat so silence never gets mistaken for health.

WHAT LAYER 4 CAUGHT IN IT’S FIRST PASS

A broken dashboard doesn't show an error. It shows a confident, believable, incorrect number.

The dashboards were built. The SQL was sound. By every visible measure, the reporting was finished and correct. Then we ran the integrity checks — and four silent failures fell out immediately.

ROW-COUNT CHECK

A transactions table capped at exactly 10,000 rows

A round number almost always means an export quietly stopped paginating. New sales were silently dropping out of the data.

FRESHNESS CHECK

One revenue stream's subscriptions frozen for over 110 days

It still looked live, so churn and retention for that stream were being calculated from three-and-a-half-month-old state.

FRESHNESS CHECK . BREAKDOWN TABLES

An ad pipeline running “split-brain”

Headline spend looked current, but every by-country, by-placement and by-audience view was 3–6 months stale, so optimization decisions were being made on old ground.

A labeling flip that hid an entire revenue source

VALUE-DRIFT CHECK

One platform's transactions were being mis-attributed, making a real, active business line look like it barely existed — its revenue was quietly surfacing under a different processor.

We corrected each one, fixed the attribution, and left the checks in place so the next silent failure surfaces the day it happens — not months later.


This is normal, and it's invisible — which is exactly why it's dangerous. Silent data failures don't announce themselves. The only way to catch them is to build the layer that goes looking.

THE OUTCOME


BEFORE

AFTER


9 sources, no single source of truth

One warehouse, one revenue number


Revenue split across 4 processors, 1 currency

Unified, currency-normalized, deduplicated


Board-grade MRR movement, NDR, churn, CAC, LTV

No trustworthy churn, NDR or CAC


Full funnel, per campaign, with true ROAS

No path from ad click to recurring student



Week-over-week review took 3+ hours

Same review in under 30 minutes

Automated daily refresh — ready by morning

6+ hours/week manual reporting


A data integrity & observability layer that caught 4 silent bugs on its first pass — and stands guard for the next

No layer watching the data itself


And the thing that matters most: leadership can finally trust the churn number.

IN THE CLIENTS WORDS

“Before we started working with Alcon, our data was spread across six platforms. We tried many analytics platforms, including Hyros and Baremetrics. No solution was a good fit, and we couldn't tell which campaigns were attracting paid students. Alcon built our analytics system from the ground up, and now we own our data and have real-time dashboards that clearly show where our revenue comes from and where it goes.”

— Brett, COO · Taoist Wellness

WHO IS THIS FOR

If you run a subscription business on more than one payment processor plus a checkout tool and ad platforms — and you can't get one honest MRR, churn or CAC number your whole team trusts — this is exactly what we build.

SaaS, online education, membership, D2C. You'll end up with a system your team owns, documented well enough that a new engineer could run the whole pipeline from the wiki. Not a dependency on us.

Ready to find out if your numbers are right?

Start with a SaaS Revenue & Data Health Check, a fixed-scope audit of your subscription-revenue data. In 5–10 days we tell you what your real MRR, churn and CAC are, where your data contradicts itself, and what's silently broken. You keep the report whether or not we work together.

Next
Next

F&B AI Financial Intelligence System