Activation Funnel from PostgreSQL: Signup to First Value
Summary
An activation funnel measures how many new signups reach each step toward first value, such as creating a project, inviting a teammate and starting a paid plan, within a set number of days. Your app's PostgreSQL tables already record these steps, so Better Analyst can build the funnel directly, by week of signup and by acquisition source.
On this page
Who this report is for
Product managers, growth teams and founders who want to know where new users stall during onboarding, using the data the product already stores rather than a separate analytics tool.
What the report includes
| Metric | Source field | Why it matters |
|---|---|---|
| Signup | users.created_at (example schema) | Defines each user's start and their weekly signup cohort. |
| Acquisition source | users.signup_source (example schema) | Compares activation by channel. |
| Funnel step events | events.event_name, events.user_id, events.created_at (example schema) | Records when each user first completed each step. |
| Step conversion | Calculated: users reaching step N ÷ users reaching step N − 1 | Shows which step loses the most users. |
| Time to step | Calculated: first step time − signup time | Median time to activation; long gaps suggest friction. |
How to build it in Better Analyst from PostgreSQL
- Create a read-only PostgreSQL user, and if your database restricts inbound traffic, allowlist the Better Analyst IP ranges listed in the PostgreSQL connector docs.
- In Better Analyst, open Connectors, choose Add Connector, then PostgreSQL, and enter host, port (5432 by default), database, username, password and SSL mode (require is recommended).
- Test the connection and save.
- List the funnel steps and their event names in Data Context, plus the window (for example 'within 14 days of signup').
- Ask for the funnel by weekly signup cohort for the last eight weeks, with step-to-step conversion and median time to each step.
Questions to ask
- “Build an activation funnel: signed up, created first project, invited a teammate, started a paid plan, each within 14 days of signup.”
- “Which step has the biggest drop-off for users who signed up from paid search?”
- “What's the median time from signup to first project, by week?”
- “Which users signed up in the last 7 days?”
Sample output
Sample data for illustration, not real account data.
| Step | Users | Step conversion | From signup |
|---|---|---|---|
| Signed up | 4,800 | 100.0% | 100.0% |
| Created first project | 2,880 | 60.0% | 60.0% |
| Invited a teammate | 1,008 | 35.0% | 21.0% |
| Started paid plan | 302 | 30.0% | 6.3% |
Charts to use
- Activation funnel (Funnel chart): Users remaining at each step with step-to-step conversion labels.
- Activation by signup week (Line chart): Share of each weekly cohort reaching the key step, to see whether onboarding changes helped.
Keep it up to date
A weekly scheduled task can post the latest cohort's funnel to the product team's Slack channel every Monday.
Further reading
Frequently asked questions
Should funnel steps have to happen in order?
Why use a time window?
What if my steps aren't logged as events?
Related reports
SaaS Metrics Dashboard from PostgreSQL: MRR, Churn and ARPA
Build a SaaS metrics dashboard from your PostgreSQL subscriptions table: MRR, new and churned MRR, logo churn and ARPA by month.
Supabase Analytics Dashboard: Signups, Actives, Retention
Build a user growth dashboard from your Supabase Postgres tables: daily signups, active users, DAU/MAU and retention, with setup through the session pooler.