Log in

Data & Analytics

Retention curves that build themselves.

ZeroTwo queries your database, segments users by signup cohort, and models retention in a code sandbox.

Integrates with:

What changes

Before
With ZeroTwo
Analysis frequency
Quarterly, when someone asks
Monthly, delivered automatically
Definition changes
"Can you rerun with a different retention event?" adds two days
Change the definition, rerun in minutes
Segmentation
Each cut adds another half-day of SQL and formatting
Every segment computed in the same run
Traceability
A number in a slide with no source query attached
Every retention figure links to the SQL and code that produced it

Analysis frequency

Before

Quarterly, when someone asks

With ZeroTwo

Monthly, delivered automatically

Definition changes

Before

"Can you rerun with a different retention event?" adds two days

With ZeroTwo

Change the definition, rerun in minutes

Segmentation

Before

Each cut adds another half-day of SQL and formatting

With ZeroTwo

Every segment computed in the same run

Traceability

Before

A number in a slide with no source query attached

With ZeroTwo

Every retention figure links to the SQL and code that produced it

Someone asks 'what's our retention?' and nobody has the same answer.

Product, Finance, and analysts report conflicting retention figures due to different definitions and data issues. The core problem is iteration speed -- building proper cohort analysis takes a full day, with each subsequent request for different cuts or definitions adding hours of work.

Each team uses a slightly different event, a different time window, or a different denominator. The numbers never match because the definitions were never aligned. And every time someone asks for a new cut -- by plan tier, by channel, by geography -- it's another half-day of SQL and spreadsheet formatting.

How ZeroTwo runs cohort retention analysis

1

Pulls signup, activation, and product events

PlanetScale

Users grouped into weekly or monthly cohorts based on first-touch event. SQL logged with row counts and timing.

2

Models retention curves in a code sandbox

Google

Calculates retention per interval per cohort. Editable logic for reactivations and plan changes.

3

Segments by plan tier, channel, and custom dimensions

Google

Reruns model across data dimensions. Compares recent vs. older cohorts to surface trends.

4

Delivers findings to your channel

Slack

Posts improved cohorts, best-retaining segments, and major shifts with full matrix and source queries.

Runs Monthly, 2nd business day at 7:00 AM · Findings posted to #product-data in Slack

Get started in under 10 minutes

1

Connect your tools

One-click OAuth for each integration. No API keys, no engineering.

2

Describe what you need

Build monthly retention cohorts based on signup week. A user counts as retained if they log in at least once in the period. Break it down by plan tier and acquisition channel.

3

It runs on schedule

Updated findings land in your team channel on the second business day of each month.

Frequently asked questions

You choose the retention event: a login, a product action, a transaction, or any event in your database. ZeroTwo applies that definition consistently across every cohort.

Yes. The cohort model runs as Python code in an isolated sandbox. Every SQL query and every line of modeling code is visible.

Yes. ZeroTwo can track both strict retention (active in consecutive periods) and any-period retention (active regardless of gaps).

Yes. ZeroTwo connects to PlanetScale (MySQL), Neon (Postgres), and Supabase (Postgres).

Related workflows

Stop doing the work your tools should do for you.

Set it up once. ZeroTwo runs it every time.