Stripe Analytics

Stripe Subscription Analytics: What the Dashboard Doesn't Show

Stripe gives you a subscription dashboard, revenue charts, and an MRR estimate. For most SaaS businesses, this is where analytics stops — and where problems start. Here is exactly what Stripe shows, what it cannot show, and what you need to build a complete picture of your subscription health.

Stripe is one of the most sophisticated payment platforms ever built. Its API is excellent, its documentation is thorough, and its billing infrastructure handles complexity that would take years to build from scratch. It is a remarkable engineering achievement.

It is not a revenue analytics platform.

Stripe was built to process payments reliably and at scale. The analytics features in the dashboard are convenience tools layered on top of that core purpose — useful for quick checks, insufficient for the business-critical decisions that SaaS founders and their investors need to make.

This guide explains exactly what Stripe's subscription analytics provide, where the gaps are, and what you need to fill them.

What Stripe's Dashboard Shows

Stripe's subscription analytics are available in the Dashboard under Billing → Overview. The core features:

  • MRR estimate. A running total of normalized monthly subscription value from active subscriptions. Updated in near-real-time as subscriptions change.
  • Active subscriber count. The number of subscriptions currently in active or trialing status.
  • Revenue charts. Gross revenue, net revenue, and MRR over time with basic date range filtering.
  • New subscribers. Count and MRR of new subscriptions created in a period.
  • Churned subscribers. Count and MRR of subscriptions cancelled in a period.
  • Failed payments summary. Count of failed payment attempts and their total value.

For a quick sanity check — is revenue trending up or down, are there anomalies in the past week — these tools are adequate. For anything more sophisticated, they are not.

What Stripe's Dashboard Misses

The gaps in Stripe's analytics are not bugs or oversights — they reflect the fact that Stripe is a payment processor that added analytics as a secondary feature. The gaps are systematic and predictable:

Metric / Feature Stripe Dashboard What you actually need
MRR accuracyIncludes past_due subscriptionsClean MRR + Revenue at risk separate
Churn classificationBlended total churn onlyVoluntary vs involuntary separated
NRR / GRRNot availableCohort-based NRR and GRR
MRR waterfallPartial — no Expansion/Contraction splitAll 5 components separately
Cohort retentionNot availableRetention curves by acquisition month
Failed payment analyticsCount and total value onlyRecovery rate, by decline code, revenue at risk
Audit trailEvent log exists but not connected to metricsEvery metric change traced to source event

Stripe Sigma: Useful but Limited

Stripe Sigma is a paid add-on that provides SQL access to your Stripe data. It is the most powerful analytics tool Stripe offers natively, and it can produce sophisticated custom analyses that the standard dashboard cannot.

Sigma is useful when:

  • You need a specific one-off analysis — investigating a revenue anomaly, checking a specific customer cohort, validating a metric against another source
  • You have an analyst or engineer comfortable writing SQL against Stripe's schema
  • You need data that is not available through the standard dashboard or API exports

Sigma is not the right tool for:

  • Continuous metric tracking — queries must be run manually, results do not update automatically
  • Board reporting or investor metrics — there is no version history, formula versioning, or audit trail for Sigma queries
  • Non-technical founders — SQL knowledge is required to use it effectively

Sigma is a good complement to a dedicated analytics tool, not a replacement for one.

Stripe has the raw data. Dnoise applies the accounting logic.

Dnoise reads your complete Stripe billing history and recalculates every metric with correct accounting logic — past_due excluded, annual contracts normalized, churn classified. No SQL required.

See what your Stripe data shows Connect Stripe — free

The MRR Calculation Gaps

Stripe's MRR number is a convenience estimate that several systematic issues make unreliable for financial reporting. The five most significant gaps are covered in detail in our complete guide to why Stripe overstates MRR. In summary:

  • Past_due subscriptions included. Subscriptions where payment has failed are counted in Stripe's MRR until the dunning cycle exhausts and the subscription is cancelled. At a typical 7% failure rate, this overstates MRR by $7,000 per $100,000 of reported MRR.
  • Annual contract normalization inconsistency. Stripe handles annual subscriptions differently depending on how they were created — some normalize correctly, others do not.
  • Grace period cancellation timing. Cancellations may be reflected at billing period end rather than cancellation date, delaying recognition of churned MRR.
  • Refunds not subtracted. Refunds issued after successful charges are not reflected in MRR metrics.
  • Timezone boundary errors. All Stripe timestamps are UTC — if your business operates in a different timezone, month-boundary calculations may attribute transactions to the wrong period.

For a $100,000 MRR business with typical billing patterns, these five issues combined typically produce a 10-20% MRR overstatement. That is not a rounding error — it is a business decision made on incorrect data.

The Churn Analysis Gaps

Stripe shows you a churn count and churn MRR for a period. What it does not show:

Voluntary vs involuntary churn

The most critical missing dimension. Voluntary churn — customers who actively cancel — signals product or pricing problems. Involuntary churn — subscriptions cancelled after payment failure — signals payment infrastructure problems. These require completely different interventions, and mixing them into one number makes it impossible to know which problem you have.

In Stripe's raw data, both types appear as the same customer.subscription.deleted event. Separating them requires checking whether the subscription was in past_due status before deletion. See the complete churn benchmarks guide for why this distinction matters.

Churn by cohort

Stripe shows total churn in a period. It does not show whether the customers who churned were acquired last month (early lifecycle churn) or two years ago (mature customer churn). These have different causes and different solutions.

Churn by plan or segment

Stripe does not break churn down by plan tier, acquisition channel, or customer segment. Knowing that your $29/month plan churns at 8% per month while your $299/month plan churns at 1% per month requires custom analysis outside the dashboard.

The Cohort Analytics Gap

Cohort analysis — tracking groups of customers who started at the same time and seeing how they behave over subsequent months — is the most powerful tool for understanding subscription health. It answers questions like:

  • Are customers acquired this year retaining better than those acquired last year?
  • How much of a cohort's MRR typically remains at 3 months, 6 months, 12 months?
  • Which acquisition months produced customers with the highest LTV?

Stripe does not provide cohort analysis natively. Building cohort retention curves requires custom queries against Stripe's API or a third-party tool that maintains cohort state over time.

This is the gap that makes Stripe's analytics insufficient for board-level reporting and investor due diligence. Cohort retention is increasingly what sophisticated investors want to see — not just current NRR, but NRR by acquisition vintage to assess whether retention is improving over time.

Building Complete Subscription Analytics

A complete subscription analytics setup for a SaaS business requires three layers:

Layer 1: Stripe as the source of truth

Stripe holds the authoritative record of all billing events — subscription creations, updates, cancellations, charges, refunds, and failures. Every metric should ultimately be traceable to specific Stripe events. This is non-negotiable for auditability.

Layer 2: Accounting logic applied to raw Stripe data

A calculation layer that takes Stripe's raw events and applies correct accounting logic: normalizing annual contracts, excluding past_due from clean MRR, classifying churn, building cohort state. This is where Stripe's dashboard falls short — it shows raw subscription state, not accounting-logic-adjusted metrics.

Layer 3: Business metrics and visualizations

The output of the accounting layer — MRR waterfall, NRR, GRR, cohort curves, failed payment recovery rates — presented in a format that supports operational decisions, board reporting, and investor communication.

The options for implementing this stack:

  • Build it yourself. Pull Stripe events via API, apply accounting logic in code, maintain a metrics database. Requires significant engineering investment and ongoing maintenance. Appropriate for businesses with a dedicated data engineer and custom analytics requirements.
  • Stripe Sigma. SQL access to Stripe data. Covers Layer 2 partially but requires manual query execution and has no formula versioning or automated updates.
  • Dedicated analytics tool. Purpose-built tools that connect to Stripe and apply accounting logic automatically. The right choice for most SaaS businesses that want reliable metrics without the engineering investment.

What Dnoise Shows You

Dnoise is a Stripe analytics layer that applies accounting logic to your billing history — the gap between what Stripe shows and what you actually need.

  • Clean MRR and revenue at risk separately. Past_due subscriptions are never in clean MRR. They appear in a revenue at risk bucket with decline reason, days in dunning, and recovery probability.
  • Full MRR waterfall. New, Expansion, Reactivation, Contraction, and Churned MRR as separate line items — with voluntary and involuntary churn split within Churned MRR.
  • NRR and GRR on proper cohorts. Both metrics calculated from actual cohort data, not from blended totals.
  • Cohort retention curves. Retention by acquisition month so you can see whether newer cohorts retain better than older ones.
  • Failed payment analytics. Recovery rate, revenue at risk by decline code, and involuntary churn MRR tracked natively.
  • Full audit trail. Every metric change traced to the source Stripe event — subscription ID, event ID, timestamp, formula version.

See the complete metric definitions in the Metrics Library. Related articles: why Stripe overstates MRR, NRR guide, failed payment recovery, and board metrics guide.

See what your Stripe data actually shows when accounting logic is applied.

Connect in read-only mode and Dnoise recalculates your complete subscription analytics from source events — in minutes, not days.

See live demo Connect Stripe — free

Summary

  • Stripe's subscription dashboard provides useful quick-check analytics but lacks the accounting logic required for business-critical reporting.
  • The key gaps: MRR includes past_due subscriptions, churn is not split into voluntary and involuntary, NRR and GRR are not calculated, cohort analysis is absent, and there is no metric audit trail.
  • Stripe Sigma offers SQL access to raw data but requires manual queries and has no formula versioning — useful for investigation, not ongoing monitoring.
  • Complete subscription analytics requires accounting logic applied to Stripe's raw events: annual contract normalization, past_due exclusion, churn classification, and cohort state maintenance.
  • For investor reporting and board metrics, every number needs to be traceable to a source Stripe event — not just displayed on a dashboard.

Frequently Asked Questions

What analytics does Stripe provide for subscriptions?

Stripe provides an MRR estimate, active subscriber count, revenue charts, new and churned subscriber counts, and a failed payments summary. It also offers Stripe Sigma for SQL-based custom queries. These tools are useful for quick monitoring but lack the accounting logic for investor-grade reporting: MRR includes past_due subscriptions, churn is not classified by type, and cohort retention analysis is not available natively.

Why is Stripe subscription analytics insufficient for SaaS reporting?

Stripe is a payment processor, not a revenue analytics platform. Its analytics lack the accounting logic that investor-grade metrics require: MRR includes uncollected past_due subscriptions, annual contracts may normalize inconsistently, churn is not separated into voluntary versus involuntary, NRR and GRR are not calculated, and there is no cohort retention analysis. For a $100k MRR business, these gaps typically produce 10-20% MRR overstatement. See why Stripe overstates MRR for the full analysis.

What is Stripe Sigma and when should you use it?

Stripe Sigma is a paid add-on providing SQL access to your Stripe data. Use it for one-off custom analyses, specific cohort investigations, or validating metrics against another source. Do not use it as a replacement for continuous metric monitoring — queries must be run manually, results do not auto-update, and there is no formula versioning or audit trail for ongoing reporting.

How do you get cohort retention data from Stripe?

Stripe does not provide cohort retention natively. You need to either query the Stripe API directly to group customers by first subscription month and track their status over time, use Stripe Sigma with SQL, or use a third-party analytics tool that maintains cohort state automatically. Cohort retention by acquisition vintage is increasingly important for board and investor reporting — see the board metrics guide.

What subscription metrics should every SaaS track beyond what Stripe shows?

Beyond Stripe's dashboard: NRR and GRR on proper cohorts, voluntary versus involuntary churn separation, failed payment recovery rate and revenue at risk, the full MRR waterfall (New, Expansion, Reactivation, Contraction, Churned), cohort retention curves by acquisition month, and CAC payback period. See the Metrics Library for definitions of each and the board metrics guide for investor context.