# Supabase Analytics Dashboard: Signups, Actives, Retention

- URL: https://betteranalyst.com/data-connectors/supabase/user-growth-dashboard
- Published: 2026-11-02
- Updated: 2026-11-02
- Author: David Bressler, Founder (https://betteranalyst.com/authors/david-bressler)

> **Summary:** A Supabase user growth dashboard tracks signups, daily and monthly active users, stickiness (DAU/MAU) and early retention from your app's own tables. Better Analyst connects to the Supabase Postgres database with database credentials and reads your application schema, so the dashboard runs on a public profiles or events table rather than the auth schema.

Data source: [Supabase](https://betteranalyst.com/data-connectors/supabase)

Build a user growth dashboard from your Supabase Postgres tables: daily signups, active users, DAU/MAU and retention, with setup through the session pooler.

## Who this report is for

Indie developers and startup teams building on Supabase who want product metrics from their own database without adding a separate analytics SDK first.

## What the report includes

*Metrics and dimensions in this report*

| Metric | Source field | Why it matters |
| --- | --- | --- |
| Signups | public.profiles.created_at (example schema) | New users per day or week, from the profile row your app creates at signup. |
| Activity | public.events.user_id, public.events.created_at (example schema) | Defines who was active on a given day. |
| Daily active users | Calculated: COUNT(DISTINCT user_id) per day | Day-to-day usage level. |
| Monthly active users | Calculated: COUNT(DISTINCT user_id) over trailing 30 days | Breadth of the active base. |
| Stickiness | Calculated: DAU ÷ MAU | How often active users come back within a month. |
| Week-1 retention | Calculated: signups active 7–13 days after signup ÷ signups | Early signal of whether onboarding works. |

## How to build it in Better Analyst from Supabase

1. In the Supabase dashboard, copy the Session pooler connection details: host, port 5432, database postgres and a username like postgres.<project-ref>. Use the database password, not the anon or service_role API keys.
2. In Better Analyst, open Connectors, choose Supabase, enter those details with SSL set to require and schema public, then test the connection and save.
3. Make sure signups are visible in your application schema (many apps create a public profiles row per user), because the auth and storage schemas aren't accessible to the connector.
4. Ask for daily signups, DAU, MAU, DAU/MAU and week-1 retention for the last 90 days, then turn it into a dashboard.

## Questions to ask

- “Show me signups and logins by day for the last 30 days.”
- “What's our DAU/MAU ratio by week this quarter?”
- “Build a retention dashboard from my events table.”
- “What share of last month's signups were active in their second week?”

## Sample output

Sample data for illustration, not real account data.

*Sample data: weekly user growth (illustrative)*

| Week starting | Signups | Avg DAU | MAU | DAU/MAU | Week-1 retention |
| --- | --- | --- | --- | --- | --- |
| Sep 1 2026 | 640 | 1,180 | 5,420 | 21.8% | 31.4% |
| Sep 8 2026 | 712 | 1,236 | 5,610 | 22.0% | 29.8% |
| Sep 15 2026 | 698 | 1,301 | 5,790 | 22.5% | 33.1% |

## Charts to use

- **Signups and active users** (Combo chart): Weekly signups as columns with DAU and MAU as lines.
- **Stickiness** (Line chart): DAU/MAU trend, which shows whether engagement deepens as the base grows.

## Keep it up to date

A weekly scheduled task can send the growth summary to Slack, and an alert on daily signups catches a broken signup flow quickly.

## Further reading

- [Supabase connector](https://betteranalyst.com/data-connectors/supabase)
- [Supabase connector docs](https://betteranalyst.com/docs/connectors/supabase)
- [How to calculate churn rate](https://betteranalyst.com/metrics/churn-rate)
- [Web dashboards](https://betteranalyst.com/product/dashboards)

[Try Better Analyst free](https://betteranalyst.com/signup)

## Frequently asked questions

### Can Better Analyst read the Supabase auth.users table?

No. The Supabase connector is focused on your application schema; the auth and storage schemas aren't accessible. Use a public profiles table populated at signup, or an events table, for user metrics.

### Why the session pooler instead of the direct connection?

It's the connection the Better Analyst Supabase docs specify: the session pooler host on port 5432 with a postgres.<project-ref> username, which works from external services.

### What counts as an active user?

Whatever meaningful action you choose, such as any logged event or a specific core action. Define it once in Data Context so DAU and MAU stay consistent.

## Related reports

- [SaaS Metrics Dashboard from PostgreSQL: MRR, Churn and ARPA](https://betteranalyst.com/data-connectors/postgresql/saas-metrics-dashboard)
