SupabaseSignup Funnel

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.

Question 1

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.

Ask this free
Question 2

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.

Ask this free
Question 3

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.

Ask this free
Question 4

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.

Ask this free
Question 5

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.

Ask this free

Stop reading. Ask.

Connect Supabase or start with sample data — first answers in under 2 minutes.

Ask this on your data — free

Free 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.