Activation metrics: connect first value to observable behaviour
In this article (7 sections)
Choose an activation event that represents a plausible first delivery of product value, define it precisely and evaluate whether it relates to later meaningful outcomes. Completing registration is observable, but it may say little about whether a user accomplished the job they came to do.
An activation metric is a product hypothesis encoded as a measurable contract. Its usefulness requires evidence beyond a convenient event name.
Define first value for a fictional reporting product
The product analytics lab treats a valid published report within seven elapsed days of signup as the activation proxy. The report must satisfy the event's validity contract; an empty or failed publication does not qualify.
Eligible users are external nonbot accounts. The interval is signup inclusive through signup plus seven days exclusive. The denominator includes only accounts with a fully observed seven-day window by the cutoff.
Calculate activation at the user level
SELECT u.user_id,
CASE WHEN EXISTS (
SELECT 1 FROM events e
WHERE e.user_id=u.user_id AND e.event_name='report_published' AND e.valid=1
AND julianday(e.event_time)>=julianday(u.signup_at)
AND julianday(e.event_time)<julianday(u.signup_at)+7
) THEN 1 ELSE 0 END AS activated
FROM users u
WHERE u.user_kind='external' AND u.is_bot=0
AND julianday(u.signup_at)+7<=julianday('2026-01-16T00:00:00Z')
ORDER BY u.user_id;Expected activated users are U1, U3 and U5 among six mature accounts: 50% activation under this definition.
from build_and_verify import database, ACTIVATION_SQL
db = database()
rows = db.execute(ACTIVATION_SQL).fetchall()
db.close()
assert [user for user, activated in rows if activated] == ['U1', 'U3', 'U5']
assert len(rows) == 6 and sum(value for _, value in rows)/len(rows) == .5
assert 'U9' not in [user for user, _ in rows]
print({'mature_accounts': 6, 'activated': 3, 'activation_rate': .5})Inspect the edge cases
U2 publishes after the seven-day window. U4's publication is invalid. U6 publishes exactly seven days after signup and is excluded by the upper-bound rule.
U9 has already published but has not completed its full observation window. Excluding every immature account avoids a denominator that admits early successes while withholding recent failures.
If a dashboard instead reports activation-to-date for recent cohorts, label that quantity separately and show cohort age. It should not be compared directly with fully matured seven-day rates.
Validate the proxy against the user's job
A publish event might be easy to trigger without creating a useful report. Include relevant validity properties, such as successful completion and a nonempty result, while avoiding unnecessary sensitive payloads.
Then investigate whether activated users achieve later meaningful outcomes. That association can support the proxy's usefulness, but it does not prove that forcing every user to publish will cause retention. More motivated users may both activate and return.
A randomized onboarding change can help evaluate a causal intervention when its design and measurement support that question. Keep the proxy definition separate from the intervention being tested.
Compare cohorts at compatible ages
Use consistent signup eligibility, identity rules, observation windows and source coverage. A recent cohort should not look worse merely because it has had less time to activate.
Amplitude's retention interpretation guide illustrates how starting events and time definitions affect subsequent behavior analysis. Activation and retention are related questions, but their events and denominators need separate contracts.
Turn the metric into a diagnostic path
Break nonactivation into interpretable stages: no meaningful creation, creation without valid publication, invalid output, late completion or incomplete observation. Those categories suggest different product investigations.
Exercise: add a required quality property to the publication event and create one user who clicks publish without a valid result. Verify that the activation count follows the value contract rather than the interface click.
NeuraPath's Data Analytics with Generative AI course connects event modeling with product metrics. A useful activation definition makes its first-value hypothesis and its verification rules explicit.
Continue learning
This article is part of the Customer and product analytics sequence. Use the neighbouring tasks when you need the prerequisite or the next application.
- Review the prerequisite or neighbouring task in Build a product funnel with an explicit event contract.
- Continue with Retention curves: distinguish acquisition and calendar views.
Pankit Kumar has 10 years in Data Science & AI, building and shipping production systems in regulated pharma and clinical environments. He is a freelance trainer at Boston Institute of Analytics, AnalytixLabs and Scaler, and has taught this material to thousands of working professionals.
This article is part of our Data Analytics with Generative AI programme — 3–4 months. The full analyst stack — Excel, SQL, Power BI and Python pipelines — then a generative-AI layer you can prove is right.
Explore Data Analytics with Generative AI