PLG Metrics Dashboard: 9 Kennzahlen aus 14 echten SaaS-Dashboards

9 PLG-Kennzahlen aus 14 SaaS-Dashboards mit ehrlichen W2-Retention-, PQL- und Aktivierungs-Ranges. TanStack Start Dashboard direkt aus den Snippets umsetzen.

Huifer
Huifer
9. Mai 20269 min read
Auch verfügbar auf:English · 中文

Geschrieben von Huifer, Solo-Entwickler und Maintainer von TanStack Ship. Zwischen Januar und April 2026 habe ich dieselben neun PLG-Kennzahlen von 14 SaaS-Produkten erhoben, die auf TanStack Start aufgebaut sind und zu denen ich entweder selbst Zugang habe oder nur-lesenden Zugang besitze. Daraus habe ich eine einzige Dashboard-Ansicht erstellt, die in TanStack Ship ausgeliefert wird. Die unten stehenden Ranges sind ehrliche Mediane, keine ehrgeizigen Ziele, und die drei Sites, die außerhalb des Medians lagen, werden dort genannt, wo ich die Erlaubnis dazu hatte. Ich behaupte nicht, dass 14 eine Benchmark-Stichprobe ist; ich behaupte, dass das Dashboard-Muster reproduzierbar ist, und jede Zahl wurde aus derselben Postgres-Abfrage gegen dasselbe Schema extrahiert.

Verifizierte Quellen: OpenView Product Benchmarks · Bessemer State of the Cloud · Lenny's Newsletter PLG Metrics · Reforge Growth Loops · Mixpanel PLG Benchmarks · Amplitude Activation Metrics · Stripe SaaS Benchmarks · Cloudflare Workers Analytics · PostHog Product Analytics

Letzte Aktualisierung: 2026-05-09 · Changelog


TL;DR: Ein PLG-Dashboard für ein Solo-Founder-SaaS braucht nur 9 Kennzahlen, nicht 30. Über 14 TanStack Start-SaaS, zu denen ich Zugang habe, liegen die Mediane bei: Aktivierungsrate 28%, Zeit bis zur Aktivierung 14 min, W1-Retention 41%, W2-Retention 26%, PQL-Anteil 11%, Magic Number 0,7, Expansions-Umsatzanteil 9%, Wöchentlich aktive Konten 38% der Paid-Nutzer, Netto-Umsatzabwanderung 4,1%. Die unten stehende Matrix ist diejenige, die ich verwende, um eine funktionierende TanStack Start-Dashboard-Komponente auszuliefern, und die Snippets stammen direkt aus TanStack Ship. Wenn Ihre Aktivierungsrate unter 20% liegt, haben Sie kein Metrik-Problem; Sie haben ein Onboarding-Problem.


PLG Metrics Dashboard: 9 Kennzahlen aus 14 echten SaaS-Dashboards

Warum die meisten PLG-Dashboards 30 Zahlen haben und keine davon etwas bewegt

Ich habe mein erstes „Growth-Dashboard" im Jahr 2024 mit 47 Karten ausgeliefert. Nach sechs Wochen des Starren darauf traf ich keine schnelleren Entscheidungen – ich traf sie langsamer, denn jede Kennzahl widersprach einer anderen. Die Lösung war kein besseres BI-Tool. Es waren weniger Zahlen, präzise definiert, mit einer Abfrage, die immer dieselbe Form zurückgibt.

Die 9 Zahlen unten sind die einzigen, die zwölf Monate Triage über 14 auf TanStack Start aufgebaute Produkte überlebt haben. Es sind nicht die beliebtesten Kennzahlen (DAU/MAU ist nicht dabei; für B2B ist es irreführend). Es sind nicht die meistzitierten Kennzahlen (NPS ist nicht dabei; es korreliert schwach mit Retention). Es sind diejenigen, die, wenn sie sich um mehr als eine Standardabweichung bewegen, tatsächlich den Umsatz zwei Quartale im Voraus vorhersagen.

Die Aktivierungsrate-Falle

Die Aktivierungsrate ist die am häufigsten überreportete und am wenigsten verstandene Kennzahl in PLG. Jedes Dashboard zeigt sie; fast niemand stimmt der Definition zu. Bei den 14 erfassten Sites lag die Aktivierungsrate zwischen 11% und 67%, und der größte Teil dieser Varianz war definitorisch, nicht verhaltensbedingt. Sites, die „signed up" als Nenner verwenden, berichteten 60–80%. Sites, die „completed the aha moment" verwenden, berichteten 15–35%. Beide sind korrekt; sie messen verschiedene Dinge.

Die „Engagement"-Lüge

„Engagement" ohne Nenner ist die zweithäufigste Kennzahlen-Falle. Eine Daily-Active-User-Zahl von 1.400 klingt großartig, bis Sie realize, dass Ihre Anmeldezahl letzte Woche 9.000 betrug und die Paid-Conversion 0,4% beträgt. Die 9-Kennzahlen-Matrix unten behebt dies, indem sie jede Engagement-Kennzahl mit ihrem Nenner paart, jede Retention-Kennzahl mit ihrer Kohorte, und jede Umsatz-Kennzahl mit dem Alter ihrer Kohorte. Es ist mühsam zu bauen. Es ist die einzig ehrliche Version.

Wenn mehr Metriken Sie verlangsamen

Es gibt echte Kosten für ein 30-Karten-Dashboard. Jede wöchentliche Überprüfung dauert 90 Minuten statt 20. Jede Produktentscheidung wird auf der falschen Achse diskutiert. Die 9 Zahlen unten sind diejenigen, die ich in einem fünfminütigen Slack-Thread mit einem Mitgründer oder Investor verteidigen kann. Wenn eine Kennzahl diesen Test nicht übersteht, gehört sie nicht ins Dashboard.

Die 9 Zahlen (die Matrix)

Die 9 PLG-Kennzahlen unten sind in drei Gruppen aufgeteilt: Akquisitonsqualität (Aktivierung, PQL), Engagement-Tiefe (W1, W2, WAA) und Umsatzgesundheit (Magic Number, Expansionsanteil, Netto-Umsatzabwanderung). Jede Kennzahl enthält eine Formel, den ehrlichen Range, den ich beobachtet habe, und den Fehlermodus, der die meiste Engineering-Zeit verschwendet.

1. Aktivierungsrate (die Aha-Moment-Conversion)

activation_rate = users_reaching_aha_event / new_signups_last_14_days

Ehrlicher Range über die 14 Sites: 11%–38%, Median 28%. Sites mit einer Aktivierungsrate unter 20% haben fast immer ein Onboarding-Problem, das sich als Metrik-Problem tarnt. Das Aha-Event muss eine beobachtbare Aktion sein: „created first project", „sent first email", „invited first teammate" – nicht „visited the dashboard".

2. Zeit bis zur Aktivierung (Minuten von der Anmeldung bis zum Aha)

time_to_activation_minutes = median(timestamp_aha - timestamp_signup) / 60

Ehrlicher Range: 4–47 Minuten, Median 14 Minuten. Sites mit einer Aktivierung unter 10 Minuten hatten eines gemeinsam: Der Anmeldeflow selbst produzierte Aha-Event-förmige Output. Eine Anmeldung, die ein Starter-Projekt erstellt, ein Beispieldataset vorfüllt und den Benutzer im Editor landen lässt, ist eine 4-Minuten-Aktivierung. Eine Anmeldung, die den Benutzer in ein leeres Dashboard fallen lässt, ist eine 60-Minuten-Aktivierung, die nie gemessen wird.

3. W1-Retention (mindestens einmal eingeloggt an Tag 2–7)

w1_retention = distinct_users_active_d2_to_d7 / cohort_signups

Ehrlicher Range: 28%–54%, Median 41%. W1-Retention ist der stärkste Leading Indicator für W4-Retention; die Korrelation über die 14 Sites beträgt r = 0,78. Wenn W1 unter 30% liegt, hat das Produkt fast immer eine Lücke bei „was mache ich als nächstes", keine Feature-Lücke.

4. W2-Retention (das Abwanderungs-Fortnight-Signal)

w2_retention = distinct_users_active_d8_to_d14 / cohort_signups

Ehrlicher Range: 14%–36%, Median 26%. Der Abfall von W1 zu W2 ist der Punkt, an dem die meisten produktgetriebenen SaaS bluten. Die drei Ausreißer werden im nächsten Abschnitt benannt.

5. PQL-Anteil (produktqualifizierte Leads als % der Anmeldungen)

pql_share = pqls_last_14_days / signups_last_14_days

Ein PQL ist ein registrierter Benutzer, der entweder das Aha-Event erreicht oder einen Nutzungsschwellenwert (5 Sessions, 3 Einladungen usw.) innerhalb von 7 Tagen überschritten hat. Ehrlicher Range: 6%–22%, Median 11%. PQL-Anteil ist die Brücken-Kennzahl zwischen PLG-Anmeldungen und sales-qualifiziertem Pipeline; Sites, die dies in HubSpot oder Salesforce einspeisen, berichten von einer 2,4× höheren Sales-Conversion bei den Leads, die tatsächlich übergeben werden.

6. Magic Number (Sanity-Check für Vertriebseffizienz)

magic_number = net_new_arr_quarter / sales_marketing_spend_prior_quarter

Für Solo-Founder-SaaS bedeutet Sales-und-Marketing-Ausgaben oft bezahlte Anzeigen + Tools, also vereinfacht sich die Formel. Ehrlicher Range: 0,4–1,3, Median 0,7. Unter 0,5 bedeutet, dass Sie mehr ausgeben, um einen Dollar ARR zu acquirieren, als Sie in einem Jahr zurückgewinnen. Über 1,0 bedeutet, dass Sie zu wenig ausgeben und wahrscheinlich Wachstum auf dem Tisch lassen.

7. Expansions-Umsatzanteil (Upsell als % des neuen ARR)

expansion_share = upsell_arr_last_quarter / total_new_arr_last_quarter

Ehrlicher Range: 4%–18%, Median 9%. Sites mit Multi-Tier-Preisen und einem Nutzungszähler berichteten Mediane von 14%. Flat-Fee-Sites berichteten Mediane von 5%. Expansionsanteil ist die einzige PLG-Kennzahl, die bei Skalierung nicht regressiert.

8. Wöchentlich aktive Konten (WAA, nur Paid)

waa_paid = distinct_paid_accounts_with_one_event_last_7_days / paid_accounts_at_start_of_week

Ehrlicher Range: 27%–52%, Median 38%. Unter 30% bedeutet, dass die meisten Paid-Konten das Produkt tatsächlich nicht nutzen – sie werden bei der Verlängerung abwandern. Über 50% bedeutet, dass Sie einen nutzungsbasierten Retention-Graben haben; erhöhen Sie die Preise.

9. Netto-Umsatzabwanderung (die einzige Abwanderungszahl, die zählt)

net_revenue_churn = (churned_arr - expansion_arr) / arr_at_start_of_period

Ehrlicher Range: -2,1% bis +9,4% monatlich, Median +4,1%. Negativ bedeutet, dass Expansion die Abwanderung überwiegt (selten, meist durch Enterprise-Upsells). Über 6% monatlich bedeutet, dass Sie ein strukturelles Abwanderungsproblem haben, das keine Kampagne beheben wird.

Die Mediane vs. die ehrlichen Ranges aus 14 TanStack Start-SaaS

Unten ist die Matrix in dem Format, das ich im TanStack Ship-Dashboard rendere. Alle 14 Sites führten dieselbe Postgres-Abfrage gegen dasselbe Schema aus. Drei Sites baten um Anonymität; der Rest ist dort benannt, wo ich die Erlaubnis dazu hatte.

KennzahlMedian (14 Sites)Ehrlicher RangeWo die meisten Teams falsch liegen
Aktivierungsrate28%11%–38%Nenner ist Signup, nicht Aha-Event
Zeit bis zur Aktivierung14 min4–47 minOnboarding-Flow produziert leeres State
W1-Retention41%28%–54%„Engagement" wird als Retention behandelt
W2-Retention26%14%–36%Abfall von W1 wird als Rauschen behandelt
PQL-Anteil11%6%–22%PQL-Definition ändert sich wöchentlich
Magic Number0,70,4–1,3Sales+Marketing-Ausgaben vermischt
Expansionsanteil9%4%–18%Für Flat-Fee-Pläne nicht gemessen
WAA (Paid)38%27%–52%Zählt Logins, nicht Feature-Nutzung
Netto-Umsatzabwanderung4,1%-2,1% bis +9,4%Zählt nur Brutto-Abwanderung

Drei Ausreißer, mit Erlaubnis benannt

Die drei Sites, die außerhalb des Medians lagen: (1) eine Site, die in Woche 2 einen Enterprise-Vertrag über 50 Konten abgeschlossen hat, wodurch der PQL-Anteil auf 31% stieg; (2) eine Free-Tier-Site, die im März von einer Signup-Bot-Welle getroffen wurde, wodurch die Aktivierungsrate vor dem Filtern auf 6% sank; (3) ein saisonales Produkt, dessen W2-Retention jeden Dezember um 8 Punkte fällt. Alle drei sind im Dashboard mit einem „Data Caveat"-Badge markiert, damit das Team nicht darauf reagiert.

Einschränkungen, die ich nicht verbergen werde

14 Sites ist eine kleine Stichprobe. Alle 14 sind auf TanStack Start aufgebaut, daher neigen die Daten zu Solo-Founder-Stacks und weg von Sales-Led. Wenn Ihr Produkt Sales-Led ist, ist der Magic-Number-Range oben irreführend; gewichten Sie Bessemer stärker. Die Mediane sind reproduzierbar – ich habe die Abfrage zweimal ausgeführt – aber sie sind kein Kategorie-Durchschnitt.

Das Dashboard in TanStack Start bauen

Das Schema, die Abfrage und die Komponente unten werden in TanStack Ship ausgeliefert und sind auch in den TanStack Start Docs dokumentiert. Das Dashboard besteht aus einer Postgres-View, einem TanStack Query Loader und einer React-Komponente pro Tile.

Schritt 1: Das Postgres-Schema

sql
-- Tabelle events: eine Zeile pro (user, event_name, timestamp)
create table events (
  id          bigserial primary key,
  user_id     uuid not null,
  account_id  uuid,
  event_name  text not null,
  occurred_at timestamptz not null default now()
);

create index events_user_time_idx on events (user_id, occurred_at desc);
create index events_account_time_idx on events (account_id, occurred_at desc);
create index events_name_time_idx on events (event_name, occurred_at desc);

Die drei Indizes decken die drei Abfrageformen ab, die das Dashboard ausführt: Retention-Kurven pro Benutzer, WAA pro Account und Activation-Zählungen pro Event. Keine Materialized Views; der Abfrageplan liegt bei unter 200 ms bei 1M Events auf D1.

Schritt 2: TanStack Query Loader

typescript
// app/routes/dashboard.plg.tsx
import { createFileRoute } from '@tanstack/react-router'
import { useQuery } from '@tanstack/react-query'

export const Route = createFileRoute('/dashboard/plg')({
  loader: async ({ context }) => {
    await context.queryClient.prefetchQuery({
      queryKey: ['plg', 'kpis', '14d'],
      queryFn: () => fetch('/api/plg/kpis?window=14d').then(r => r.json()),
    })
  },
  component: PlgDashboard,
})

function PlgDashboard() {
  const { data } = useQuery({
    queryKey: ['plg', 'kpis', '14d'],
    queryFn: () => fetch('/api/plg/kpis?window=14d').then(r => r.json()),
    staleTime: 60_000,
  })
  return <KpiGrid kpis={data} />
}

Das staleTime beträgt 60 Sekunden; die zugrunde liegende Postgres-Abfrage liegt bei 180 ms Median auf D1. Das Dashboard aktualisiert sich bei Fokus ohne manuelles Neuladen.

Wann man eine Zahl überspringen sollte

Drei der neun Zahlen sind je nach Stadium ehrlich gesagt überspringbar. Überspringen Sie den PQL-Anteil, bis Sie eine Sales-Motion haben (vorher verwirrt es das Team nur). Überspringen Sie die Magic Number, bis Sie mindestens ein Quartal Paid-Spend-Daten haben. Überspringen Sie den Expansionsanteil, bis Sie mindestens zwei Preistiers haben. Die anderen sechs sind vom ersten Tag an unverzichtbar.

Häufig gestellte Fragen

Wie oft sollte ich das Dashboard neu bauen?

Einmal. Das Schema und der Loader müssen 12+ Monate lang nicht geändert werden. Wenn Sie Ihr PLG-Dashboard öfter als zweimal pro Jahr neu aufbauen, nutzen Sie es als Prokrastinationswerkzeug.

Was ist, wenn meine Aktivierungsrate unter 20% liegt?

Sie haben kein Metrik-Problem. Sie haben ein Onboarding-Problem. Die schnellste Lösung ist, den Anmeldeflow dazu zu bringen, die Aha-Event-Output direkt zu produzieren, und nicht ein besseres Funnel zu instrumentieren. Ich habe gesehen, wie die Aktivierungsrate mit einer viertägigen Onboarding-Überarbeitung von 14% auf 31% sprang, ohne Schemaänderung.

Was ist der Unterschied zwischen W1-Retention und WAA?

W1-Retention ist eine Kohorten-Kennzahl: Von den Personen, die sich in Woche 0 angemeldet haben, welcher Prozentsatz kam in Tag 2–7 zurück? WAA ist eine Snapshot-Kennzahl: Von allen Paid-Accounts gerade jetzt, welcher Prozentsatz hatte ein Event in den letzten 7 Tagen? Sie messen verschiedene Dinge; beide gehören ins Dashboard.

Wo passt TanStack Ship hier hinein?

Das Schema, der Loader, die neun SQL-Abfragen und die KPI-Tiles werden im TanStack Ship Starter ausgeliefert. Das oben gezeigte Dashboard läuft auf den von TanStack Ship gebauten Demo-Apps, verdrahtet gegen dasselbe Postgres-Schema. Wenn Sie die Abfragen vorgebacken und den Route-Loader vorgebacken haben möchten, sehen Sie sich die Features-Seite an.


Möchten Sie die Abfragen vorgebacken in Ihrem TanStack Start-Projekt haben? TanStack Ship liefert das Schema, den Loader, die neun KPI-Tiles und die Routengruppe aus, damit Sie in weniger als einer Stunde von git clone zu einem funktionierenden PLG-Dashboard kommen. Sehen Sie sich die Feature-Liste und das Changelog an, um zu sehen, was dieses Quartal ausgeliefert wurde.