Dashboard

What does a newsletter growth dashboard show in Metabase?

A newsletter growth dashboard shows whether a publication is compounding: net subscriber growth by acquisition source, engagement per post, referral performance, and revenue per send in one governed view. It's built from subscriber and post data synced out of beehiiv, Kit, or Mailchimp — history the platforms themselves don't keep.

For: newsletter operators, creators, and the growth teams behind media products. Grain: one row per subscription event, one per post send.

Which cards belong on a newsletter growth dashboard?

  • Net subscriber growth — subscribes vs. losses by month (combo)
  • Growth rate trend on running list size (line)
  • New subscribers by acquisition source (stacked bar)
  • Retention by source cohort — who's still active (table)
  • Click-through rate per post (table)
  • Engaged-subscriber share — clicked in last 90 days (line)
  • Referral program: invites and conversions (combo)
  • Revenue per send — premium, products, ads (bar)

What data does the dashboard need?

  • subscription_events — subscribe, unsubscribe, and cleaned events with timestamps and acquisition source.
  • subscribers — created date, status, source, tags or tier, referral counts.
  • post_stats — one row per send: recipients, unique clicks, web views, unsubscribes.
  • Revenue rows where they exist — premium tiers, product sales, sponsorship income — joinable by month or by send.

How do you build it?

  1. Sync subscribers and post stats on a schedule — the beehiiv and Kit guides cover the API-script and connector routes. Start early: platforms expose current state, so the synced event streamis your history.
  2. Tag acquisition source on every subscriber at creation, and keep imports as their own series.
  3. Model monthly net growth (subscribes − unsubscribes − cleaned) and a running list size for the rate card.
  4. Add engagement and revenue cards, all filterable by source, tier, and period.

Example card SQL

Net growth by month and acquisition sourcePostgreSQL
WITH monthly AS (
  SELECT
    date_trunc('month', occurred_at) AS month,
    acquisition_source,
    COUNT(*) FILTER (WHERE event_type = 'subscribe')   AS subscribes,
    COUNT(*) FILTER (WHERE event_type = 'unsubscribe') AS unsubscribes,
    COUNT(*) FILTER (WHERE event_type = 'cleaned')     AS cleaned
  FROM subscription_events
  GROUP BY 1, 2
)
SELECT
  month,
  acquisition_source,
  subscribes,
  unsubscribes + cleaned                    AS losses,
  subscribes - unsubscribes - cleaned       AS net_growth
FROM monthly
ORDER BY month, net_growth DESC;

Metrics

Integrations

Dashboards

FAQ

Why build this in Metabase instead of the platform's analytics?
Platform dashboards in beehiiv or Kit are good at single-post stats and current list size, but they report state, not history — and they can't join. Metabase adds the trend a platform forgets (growth by source over 18 months), the joins it can't do (subscriber cohorts against product signups or revenue), and metric definitions that survive a platform migration.
What's the most important segmentation on this dashboard?
Acquisition source. Organic signups, referrals, paid acquisition, and imports grow, engage, and churn at completely different rates — a blended growth number is close to meaningless. Tag every subscriber with a source at creation and put a source filter on every card.
How do I measure engagement now that opens are inflated?
Anchor on clicks per delivered (click-through rate) and an engaged-subscriber share — the portion of the list that clicked anything in the last 90 days. Apple Mail Privacy Protection pre-fetches pixels, so opens read high and vary with audience mix; treat them as a secondary series, never a headline.
Can I track newsletter revenue here too?
Yes, if the money lands somewhere queryable. Premium subscriptions and paid sponsorships from beehiiv, digital product sales from Kit, or Stripe revenue tagged to email UTMs can all join to send data in the warehouse — revenue per send and ARPU per subscriber are the cards sponsors and operators actually ask for.