# Activation: finding the aha moment

> Find your product's aha moment: the week-one action that separates users who stay from users who leave, and know what that comparison can't prove.

- Course: [Product Analytics: From Data to Decisions](https://productovi.com/courses/product-analytics.md)
- Module: Where do new users get stuck?
- Lesson 11/32, ~30 min
- Source: https://productovi.com/courses/product-analytics/activation

## What makes people stay?

**Alex Tutor:** The Halves onboarding team needs a target, and Maya turns to you for the answer in the data.

**Maya:** The onboarding team wants one goal for new users: the moment Halves clicks. Which action in the first week makes people stay?

**Alex Tutor:** We're looking for an **activation** criterion, often called the **aha moment**: the moment a new user first gets the core value, written as an action plus a time limit. “Added three expenses in week 1”, not “got it”.

![A light bulb switches on above a person as a friend's face appears on their phone beside a receipt.](https://productovi.com/courses/product-analytics/inline/activation-illustration-2.webp)

*Activation: the first moment a new user gets the core value.*

**Alex Tutor:** The method: take candidate actions, split users into those who did each one in week 1 and those who didn't, and compare how many are still around later. We'll use “opened the app on days 21–27”, week 4.

**Sofia:** Then only the July cohorts work. Everyone who signed up after 2 August hasn't reached week 4 yet.

**Alex Tutor:** Right, that's why `active_week4` is empty for them. Same file as before; use the 96 rows where it's filled.

**Dataset (CSV):** [Halves new users, 6 July – 30 August 2026](https://productovi.com/datasets/product-analytics/activation/halves-new-users-jul-aug.csv)

192 sign-ups, data pulled on 31 August. `active_week4` is filled for the 96 July sign-ups.

- `user_id`: User id
- `signup_date`: Sign-up date (UTC); day 0
- `platform`: ios or android
- `channel`: invite (joined someone's group), app_store_search or paid_social
- `group_created_day`: Day after sign-up the user created their first group; invitees never do
- `member_invited_day`: Day the user sent their first invite
- `invite_accepted_day`: Day someone first accepted the user's invite
- `first_expense_day`: Day of the user's first expense
- `expenses_week1`: Expenses the user added on days 0–6; empty if week 1 isn't over
- `active_week4`: Opened the app on days 21–27 (true/false); filled only for sign-ups 6 July – 2 August

> **Exercise:** Among the 96 July sign-ups (rows with `active_week4` filled), what share was active in week 4? In %, one decimal.

**Alex Tutor:** Before the candidates, a quick check on what a criterion even looks like. The onboarding team sent two drafts.

> **Exercise:** Which draft is a usable activation criterion?

## Finding the aha moment: candidates side by side

**Alex Tutor:** 34.4% is the baseline. Now three candidates, each within days 0–6: **A**, a first expense; **B**, a second member in the group (someone accepted their invite, or they joined through one); **C**, at least three expenses.

**Alex Tutor:** A first: those with a first expense in week 1 kept 54.3% in week 4, those without only 16.0%. A gap of 38 points.

**Sofia:** For B, a user counts if `channel` is `invite` or `invite_accepted_day` is 6 or less.

> **Exercise:** Candidate B: users who had a second member in their group by day 6 (`channel = invite`, or `invite_accepted_day` ≤ 6). What share of them was active in week 4? July sign-ups only; in %, one decimal.

**Alex Tutor:** 58.8% against 6.7% for those who never got a second member. And C, three or more expenses: 72.4% against 17.9%.

**Maya:** B is about the group, C is about using it. What if we need both?

**Alex Tutor:** Try it: users who had a second member **and** at least three expenses by day 6.

> **Exercise:** Combined candidate: a second member in the group by day 6 (`channel = invite`, or `invite_accepted_day` ≤ 6) **and** at least 3 expenses in week 1 (`expenses_week1` ≥ 3). What share of July users who did both was active in week 4? In %, one decimal.

**Alex Tutor:** 80.0% against 18.3%: the best separation so far. The catch is reach: only 25 of 96 users, 26%, got there. A criterion that almost nobody meets is a poor target for onboarding.

![One flashlight throws a narrow bright beam on a few people; another casts a wide, softer beam over many.](https://productovi.com/courses/product-analytics/inline/activation-illustration-3.webp)

*A sharper criterion separates better but reaches fewer new users.*

**Sofia:** Though 26% is also the room to grow. B alone reaches 51 users, but its gap is smaller.

![Users who did each week-1 action kept far more in week 4; a second member plus three expenses separates best (80.0% vs 18.3%) but only 25 of 96 got there.](https://productovi.com/courses/product-analytics/diagrams/m3-l3-activation-candidates.png)

**Maya:** Before I pick the sharpest or the broadest, rank them for me.

> **Exercise:** Order the candidates by the retention gap (did minus didn't, in points), **largest first**.

**Alex Tutor:** Reach matters as much as the gap, so compute it for C as well.

> **Exercise:** Candidate C: at least 3 expenses in week 1 (`expenses_week1` ≥ 3). What share of the 96 July users met it? In %, one decimal.

## Who chose to do it? Selection bias

**Theo:** Then it's simple. We push every new user to get a friend in and add three expenses, and week-4 retention goes to 80%.

**Alex Tutor:** That's the trap. Nobody assigned these users to do the action; they chose to. People who choose it can differ in ways that make them stay anyway. That's **selection bias**.

**Alex Tutor:** Look at invitees. They came because a friend already uses Halves with them. 44% of them reached the combined action, against 19% of self-signups. And invitees who **didn't** reach it still kept 46.7% in week 4; self-signups who didn't kept 10.7%.

**Sofia:** So part of the 80% is just who those people are. Pushing a solo user through the same steps won't give them a friend who already wants to split bills.

![Friends stroll up a hill together to a picnic, while a lone hiker is pulled up the slope by a rope.](https://productovi.com/courses/product-analytics/inline/activation-illustration-4.webp)

*People who chose an action differ from those you'd push into it.*

> **Exercise:** Why can't Theo promise 80% week-4 retention by pushing every new user to the combined action (a second member in the group and 3+ expenses by day 6)?

## An activation metric is a candidate, not a promise

**Maya:** So is the analysis useless?

**Alex Tutor:** Not at all. It gives a strong candidate and a reason to believe in it. Within self-signups alone the gap still holds: 69.2% against 10.7%, on only 13 users who did it. To know whether pushing people there causes retention, test an onboarding change against a control group.

**Alex Tutor:** Theo reads that self-signup number differently. Is he right?

> **Exercise:** Theo: “Among self-signups alone the gap still holds, 69.2% against 10.7%. So selection bias is ruled out, and the combined action (a second member and 3+ expenses by day 6) causes retention.” **True or false:** Theo's conclusion follows.

**Maya:** Then write me the activation criterion for the onboarding team, with the honest caveat.

> **Exercise:** Write the activation criterion for the Halves onboarding team in 3–5 sentences: the action and time limit, the evidence from the July data, and the caveat about what the data can't prove.

> **Key ideas**
>
> - **Activation**, or the **aha moment**, is an action plus a time limit that marks the first real value, e.g. “second member and 3 expenses by day 6”.
> - Find candidates by comparing later retention of users who did an action in week 1 with those who didn't. Use only cohorts whose later period is complete.
> - July data, week-4 retention (baseline 34.4%): first expense 54.3% vs 16.0%; second member 58.8% vs 6.7%; 3+ expenses 72.4% vs 17.9%; both 80.0% vs 18.3%, reached by 26%.
> - Weigh separation against reach: a criterion few users meet is a weak target.
> - Users choose the action, so the gap mixes the action's effect with who they are: **selection bias**. Invitees retain well even without it.
> - The analysis gives a candidate; an experiment tells you whether pushing it works.

**Alex Tutor:** Find the moment in the data, then prove it with a test. Skipping the second step is how teams build onboarding around a coincidence.

- Previous lesson: [Reading a funnel: right censoring and date ranges](https://productovi.com/courses/product-analytics/reading-funnels.md)
- Next lesson: [Case: fix the onboarding funnel](https://productovi.com/courses/product-analytics/onboarding-funnel.md)

---
Productovi Learning. Free, no sign-up needed to read.
