How to Analyze Your Signup Funnel in Supabase — Without Writing SQL
Supabase gives you an unusually honest signup funnel for free: every account, confirmation timestamp, provider, and last sign-in lives in auth.users, and everything users do afterward lives in your public tables. The catch is that the dashboard shows rows, not conversion rates, and joining auth data to app activity still means writing SQL. If you're the founder wearing the growth hat with no data team behind you, these five questions do the joining.
“What does our signup funnel look like from account creation to first real action in the app?”
This is the question that explains why signups aren't becoming users. In Supabase it spans auth.users (creation, confirmation) and your public schema (first project, first record, first anything) — two schemas the dashboard never shows together. One plain-English ask stitches them into a funnel.
You get: A funnel table from signup to first action with counts and conversion rate at each step.
“What percentage of signups never confirm their email?”
Supabase records both created_at and email_confirmed_at on every auth user, so this leak is measurable to the row. Unconfirmed signups are people who wanted in and got stopped at the door — often fixable with a subject-line change or a resend, and worth checking monthly.
You get: A percentage of unconfirmed signups with the weekly trend and a list you can re-engage.
“How do signup and activation rates compare across auth providers like Google, GitHub, and email?”
The provider column in auth.users is segmentation data most teams never use. OAuth signups skip email confirmation entirely, so their funnel is structurally shorter — if they also activate better, promoting social login above the email form is a one-afternoon win.
You get: A comparison of signup volume and activation rate per auth provider.
“How many users sign up but never come back after their first day?”
last_sign_in_at versus created_at in auth.users answers this with zero extra instrumentation. One-and-done signups mean your first session isn't delivering a reason to return — the cheapest cohort to fix because you know exactly who they are and when you lost them.
You get: A count and percentage of one-session users, with the trend over recent signup cohorts.
“Which day of the week and hour do most of our signups happen?”
Timing patterns tell you when your audience is actually paying attention — which is when your launch posts, emails, and support coverage should land. It also flags anomalies: a spike at 4am from one region is usually a traffic source you didn't know you had, or bots.
You get: A day-by-hour breakdown of signups highlighting your peak windows.
Stop reading. Ask.
Connect Supabase or start with sample data — first answers in under 2 minutes.
Ask this on your data — freeFree plan available · No credit card required
Frequently asked questions
Do I need to know SQL, or use the Supabase SQL editor?
No. You ask in plain English and the AI writes and runs the SQL — including the joins between auth.users and your public tables that the Supabase dashboard cannot do for you. The queries stay visible if you want to audit them.
Will RLS policies interfere with funnel numbers?
They can. RLS filters rows per role, so an analytics connection using a restricted role may see only a slice of your users and quietly undercount every funnel step. Connect with a read-only role that is exempt from RLS for accurate totals.
Is it safe to let a tool read auth.users on my production project?
Yes — access is read-only by default and nothing is written back. auth.users contains emails, so treat the connection like any credential: use a dedicated read-only role you can revoke from the Supabase dashboard at any time.
Related question packs
How to Analyze Your Signup Funnel in Postgres — Without Writing SQL
Analyze your signup funnel straight from Postgres in plain English. Find drop-off steps, conversion by source, and activation rates — no SQL.
How to Analyze Your Signup Funnel in MySQL — Without Writing SQL
Analyze your signup or registration funnel in MySQL with plain English questions. Drop-off, activation, and weekly trends — no SQL, no date math.
How to Track Stripe MRR in Supabase — Without Writing SQL
Track Stripe MRR from your Supabase project in plain English. Turn synced subscription tables into growth, expansion, and churn MRR — no SQL.