
A SaaS activation funnel measures whether new users reach value fast. Most teams cannot see theirs. Here is the SaaS activation funnel dashboard that fixes that.
Most SaaS teams cannot answer this question: what fraction of people who signed up last week reached value within 7 days? If your answer is "I think around..." or "we'd have to pull that," your activation funnel is not instrumented. That is the problem. Not the funnel itself.
This post shows you the single-page activation dashboard I build for every company I work with, the 6 events it tracks, and the SQL query that powers the core metric. This is step 2 of the 1,000-User System.
What Activation Actually Means
Activation is not "the user logged in." It is not "the user completed onboarding." Activation is the moment the user first receives the core value your product promises. At Elementor, that moment is publishing a live page. At Riverside.fm, it is completing a first recording session.
Every product has a different activation event. The mistake most teams make is tracking the wrong one (usually a proxy like "completed step 3 of onboarding") or tracking none at all.
Before you build the dashboard, define the activation event in one sentence: "A user is activated when they [specific action] within [time window]." Write it down. Get the product team to agree. This sentence is the foundation everything else sits on.
The 6 Events the Dashboard Tracks
The activation dashboard does not need to be complex. It tracks 6 events, in order, from signup to activation:
| # | Event Name | Description | Typical Drop-off |
|---|---|---|---|
| 1 | signup_completed | Email confirmed or OAuth connected | 5-15% |
| 2 | onboarding_started | First meaningful product screen reached | 20-40% |
| 3 | first_action_taken | First meaningful interaction (create, connect, import) | 25-45% |
| 4 | core_feature_used | The primary feature that delivers value engaged | 15-30% |
| 5 | value_moment_reached | The activation event (defined above) | 10-25% |
| 6 | return_visit_day2 | User returns within 48 hours of activation | 20-40% |
The dashboard shows the conversion rate at each step, segmented by cohort week. That is it. One chart, 6 rows, updated daily.
The SQL Query
This assumes your events are in a standard analytics schema (Mixpanel, Segment, or a custom events table). Adjust table and column names to match your schema.
SELECT
DATE_TRUNC('week', e_signup.created_at) AS cohort_week,
COUNT(DISTINCT e_signup.user_id) AS signups,
COUNT(DISTINCT e_ob.user_id) AS onboarding_started,
COUNT(DISTINCT e_first.user_id) AS first_action,
COUNT(DISTINCT e_core.user_id) AS core_feature_used,
COUNT(DISTINCT e_value.user_id) AS activated,
COUNT(DISTINCT e_return.user_id) AS returned_day2,
ROUND(
COUNT(DISTINCT e_value.user_id)::numeric
/ NULLIF(COUNT(DISTINCT e_signup.user_id), 0) * 100, 1
) AS week1_activation_rate
FROM events e_signup
LEFT JOIN events e_ob
ON e_ob.user_id = e_signup.user_id
AND e_ob.name = 'onboarding_started'
AND e_ob.created_at BETWEEN e_signup.created_at AND e_signup.created_at + INTERVAL '7 days'
LEFT JOIN events e_first
ON e_first.user_id = e_signup.user_id
AND e_first.name = 'first_action_taken'
AND e_first.created_at BETWEEN e_signup.created_at AND e_signup.created_at + INTERVAL '7 days'
LEFT JOIN events e_core
ON e_core.user_id = e_signup.user_id
AND e_core.name = 'core_feature_used'
AND e_core.created_at BETWEEN e_signup.created_at AND e_signup.created_at + INTERVAL '7 days'
LEFT JOIN events e_value
ON e_value.user_id = e_signup.user_id
AND e_value.name = 'value_moment_reached'
AND e_value.created_at BETWEEN e_signup.created_at AND e_signup.created_at + INTERVAL '7 days'
LEFT JOIN events e_return
ON e_return.user_id = e_signup.user_id
AND e_return.name = 'return_visit'
AND e_return.created_at BETWEEN e_value.created_at AND e_value.created_at + INTERVAL '48 hours'
WHERE e_signup.name = 'signup_completed'
AND e_signup.created_at >= NOW() - INTERVAL '12 weeks'
GROUP BY 1
ORDER BY 1 DESC;
Run this query once. Look at the step where the biggest drop occurs. That is your first fix target.
What a Series-Stage SaaS Found When They Ran This
Receipt: In January 2026, I ran this query against the product's event database. The result: 62% of signups were dropping off at step 2 (onboarding_started to first_action_taken). The onboarding flow had 6 steps before users could interact with the core product. We cut it to 3. Week-1 activation rate went from 31% to 58% in the following cohort. No product changes. Just removing friction before the value moment.
That is the dashboard working as intended. It does not give you the answer. It shows you where to look.
Common Mistakes When Building This Dashboard
Mistake 1: Tracking the Wrong Activation Event
If you track "completed onboarding checklist" as your activation event, you are measuring compliance with your UX flow, not value delivery. A user can complete all 5 onboarding steps and never experience the core value. Track the product outcome, not the onboarding behavior.
Mistake 2: Aggregating Across Channels
Paid traffic activates at different rates than organic. Trial users activate differently than freemium. If you aggregate everything into one number, you cannot optimize anything specifically. Always segment by acquisition channel and plan type at minimum.
Mistake 3: Looking at All-Time Data Instead of Cohorts
All-time activation rate is a vanity metric. It blends your best cohort (month you launched with a great onboarding) with your worst (the month you changed the UI and forgot to update the first-run flow). Always view activation by cohort week. That is the only way to know if you are improving.
Mistake 4: Fixing Onboarding Without Fixing the Activation Event Definition
I have seen teams spend 3 months optimizing a 6-step onboarding flow without first confirming that step 6 actually correlates with retention. If users who reach your "activation event" do not retain better than users who do not, you have the wrong event. Run the correlation first. Fix the definition before fixing the flow.
What Comes After the Dashboard
Once the dashboard is live and showing a clean week-1 activation rate, the work becomes: move the number up by 10 percentage points. That usually means one of three interventions: remove steps between signup and value moment, reduce time-to-value within each step, or personalize the path based on user segment.
The dashboard does not tell you which intervention. It tells you which step to intervene on. That distinction matters. Do not change the flow randomly. Change the highest-drop step first, measure the result in the next cohort, then move to the next.
Next Step
This is step 2 of the 1,000-User System. Step 1 is the activation audit (defining your activation event and getting a baseline number). If you have not done that yet, start there.
Download the full playbook for the complete activation audit template, the dashboard setup guide, and the event naming convention I use across all client implementations.
If you want me to run the activation audit at your company: book a diagnostic call. I will need read access to your events table and 30 minutes. You will leave with a prioritized list of activation fixes.
SaaS activation funnel FAQ
What is a SaaS activation funnel?
A SaaS activation funnel measures the path from signup to first value: how many new users complete the actions that predict retention, and how fast. If you cannot say what fraction reached value within 7 days, you have no activation funnel yet.
Which events should a SaaS activation funnel track?
The six that predict retention for your product, usually signup, setup completed, the first core action, the aha moment, an invite or integration, and a repeat session. Track behavior that leads to value, not vanity clicks.
How do I fix a broken activation funnel?
Instrument the six events, find the step with the biggest drop, and remove the friction there before touching acquisition. More signups into a leaking funnel just wastes more money.
Further reading: Customer success and Funnel analysis. Related: B2B SaaS growth, Consulting, Fractional CMO.
