Case Study · Product Analytics

Product analytics that 750 people use on their own, for 19% less.

Joyn's product analytics bill grew with every login and few people trusted the numbers. Moving the product analytics platform from Amplitude to Mixpanel through the existing data layer cut projected cost from $220K to $179K a year and made it the group's daily decision tool.

Role Led the migration end to end: vendor evaluation and negotiation, phased delivery, and a year of hands-on adoption

Joyn · European streaming platform $41K saved a year 5–7M → 20M monthly users Segment · Snowflake · Prefect
StreamingProduct AnalyticsMigrationSelf-Service

Product analytics everyone could use, at a bill that stops climbing

The product organisation wanted PMs, CRM and marketing to explore data on their own, without the cost rising every time traffic did.

NEED

Self-service people can rely on

Joyn had 5–7M monthly users in 2021 and has grown to about 20M. Teams across the group needed one product analytics tool they could open daily and trust.

GAP

Per-event billing punishes accuracy

Amplitude charged for every event. Browsers had become far less persistent with cookies, so users were re-identified constantly and each identify call counted toward the bill.

What was at stake
Billing per event = the bill grows with traffic, not insight
$220K projected = spend rising on re-identification, not new learning

Cost, trust and engineering time all pulled product analytics the wrong way

Fixing one without the others would have left the platform expensive, ignored, or stuck behind a release queue.

COST

Identity calls inflated volume

Every new anonymous-ID and user-ID pairing, and every session start for a registered user, needed an identify call. Misconfigured identity events fired several times over, using the event budget without adding information.

Repeat identify calls = paying for events that taught nothing
TRUST

Inflated metrics, little training

Teams struggled with numbers that looked too high and had no training on the tool, while the product organisation wanted PMs to self-serve.

Metrics nobody believes = decisions made without the data
CAPACITY

No room on the engineering roadmap

A migration that needed app and web releases would have competed with product work for engineering time. Segment was already in place as the CDP, which opened another route.

App releases needed = migration queues behind the roadmap

Win the commercial case, switch through the data layer, then earn the trust

Four steps: price it, swap the destination, prove the numbers, then run adoption as a product. The track turns purple where the work moves from the build to the people.

1
Make the commercial case Amplitude vs Mixpanel

I ran a vendor evaluation, negotiated directly with both vendors and built a cost model comparing event-based with user-based pricing. The key finding for the product analytics contract: identity calls drive cost under event pricing and are free under user pricing. The Head of Product Ops approved the decision and owned the budget.

Cost model · Vendor negotiation
2
Switch through Segment, in three phases foundation → depth → marketing

The data already flowed through Segment, so apps and web needed no re-instrumentation and no releases. A working group of a data engineer, a warehousing expert, a product analyst, the Head of Reporting and a Mixpanel consultant delivered screen views, identity and video views first, then lane views and click-throughs, then data models for marketing.

Segment · Backend uploads
3
Prove the numbers every day Mixpanel ↔ Snowflake

An automated daily check in Prefect compared Mixpanel user counts with Snowflake, the source of truth. Early gaps swung between 2% and 19%; the daily check and a phased ramp-up of data brought them to about 5%.

Prefect · Snowflake
4
Own adoption for a year training → support → shared definitions

After a consultant-led kickoff per user group, I ran adoption myself: office hours every second Friday, in-person help, first-line support on Slack, FAQs written from recurring questions, and the Mixpanel Lexicon so every event and property carried one business definition.

Office hours · Slack · Lexicon
How the data flows
Apps & web→Segment→Mixpaneldaily check againstSnowflake · via Prefect

What the switch returned

$41K
Saved a year
$220K → $179K (~19%)
750
Users with logins by year four
60 at end of year one · ~150 weekly
~5%
Gap to Snowflake on monthly users
Down from daily swings of 2–19%
0
App releases or re-instrumentation
Delivered through the data layer

From a doubted dashboard to the group's daily product analytics desk

⚡

One tool, used for each team's own job

Engineering tracks errors, drop-offs and feature-flag results. PMs use it for problem discovery and experiment analysis. Data science visualises experiment results. Marketing builds on the models set up for it.

⊕

Curators steer the home screen

Content curators review it daily and weekly and use it to promote or demote lanes.

↻

Adoption became institutional

Mixpanel training is now part of onboarding for every new engineer, product person and content curator.

✕

Shared definitions, fewer arguments

Lexicon definitions and the daily Snowflake check give self-service users a reason to trust what they find.

⟲

An open trade-off at 20M users

Full-volume tracking stopped scaling, so Joyn moved to 30% sampling, which cut cost about 70% against full volume. PMs want full volume back, and that decision is still open.

Let's talk

Tackling something like this?

Tell me your biggest data or AI bottleneck and I'll send you how I'd approach it — the same way I worked this problem. No résumé dump, no pitch. Just a useful conversation.

Start the conversation →