Comparisons

    Stripe Data vs Self-Reported Metrics

    Where billing-system data and self-reported metrics diverge, why the gap averages 8–15%, and when each source is the right one to trust.

    ·9 min read·
    Holding CosPE Firms

    Every portfolio operator has a version of this story. Revenue is "up 15%" in the board deck, but the bank account says otherwise. The founder isn't lying — they're reporting from a spreadsheet that counts a signed annual contract as MRR the day the deal closes, includes a paused customer who hasn't paid in three months, and quietly excludes a refund that hit last Tuesday. The gap between self-reported metrics and billing-system data averages 8–15%, and it almost always favors the reporter. This isn't fraud. It's structural.

    8–15%

    Average self-reported vs billing-system gap

    73%

    Of companies overstate MRR

    2.4x

    Gap widens at annual billing mix >30%

    Where self-reported metrics come from — and why they drift

    Self-reported metrics originate in spreadsheets, internal dashboards, or finance tools that pull from a mix of sources: CRM deal records, manual CSV exports from the billing system, contract values from DocuSign, and sometimes a founder's mental model of the business. Each source introduces a different kind of drift.

    The most common source of overstatement is definitional ambiguity. MRR has a standard definition — the normalized monthly value of active, recurring subscriptions — but in practice, every company makes small exceptions. One includes implementation fees because "they recur with every new customer." Another counts a verbal commitment to renew as retained revenue. A third normalizes annual contracts by dividing by 12 but forgets to exclude the one-time onboarding line item baked into the first invoice. None of these are unreasonable in isolation. Stacked together, they inflate MRR by 5–12%.

    The second source is timing lag. Self-reported numbers are snapshots taken at a point in time — typically month-end or board-prep day. A customer who churned on the 28th might not appear in the spreadsheet until the next export cycle. A mid-month upgrade gets counted in full even though the prorated charge hasn't settled. The lag isn't large on any given day, but it compounds across a portfolio of 5–15 companies, each with its own reporting cadence.

    The third source is selective inclusion. Not every subscription state maps cleanly to "active." Past-due customers who haven't formally canceled, trial users who converted but haven't been charged yet, paused subscriptions that might resume — each of these lives in a gray zone. Self-reported metrics tend to resolve ambiguity in favor of the higher number because the person building the spreadsheet is also the person presenting to the board.

    What billing-system data actually captures

    Stripe — or any billing system — records events, not interpretations. A subscription is created, upgraded, downgraded, paused, or canceled. An invoice is issued, paid, partially paid, or written off. A charge succeeds, fails, is refunded, or disputed. Each event carries a timestamp, an amount, a currency, and a customer identifier. The data is exhaust from the payment process, not a metric anyone curated.

    This distinction matters because billing data isnon-discretionary. No one chooses whether a failed charge appears in Stripe. No one decides to include or exclude a canceled subscription — the cancellation event exists or it doesn't. The numbers aren't shaped by judgment calls about what counts as "active" or how to handle edge cases. They're shaped by what actually happened in the payment system.

    Computing SaaS metrics from billing data still requires normalization — annual contracts divided by 12, multi-currency conversion, proration handling, metered billing exclusions. But the normalization is applied to a complete, unedited event stream rather than to a curated spreadsheet. The inputs are exhaustive and the rules are explicit, which means two analysts applying the same rules to the same billing data will produce the same number. That reproducibility is what makes billing-derived metrics auditable.

    Monthly Recurring Revenue

    Predictable monthly revenue from active subscriptions, normalized from all billing intervals.

    The structural gap: 8–15% and why it favors the reporter

    The gap between self-reported and billing-verified MRR is not random. Across diligence processes and portfolio audits, the pattern is consistent: self-reported MRR exceeds billing-verified MRR in roughly three out of four companies, and the median overstatement falls between 8% and 15%.

    The direction of the bias is predictable. Every definitional ambiguity — whether to include a paused customer, how to handle a partial refund, when to recognize a signed contract — has a "higher" and a "lower" interpretation. The person building the spreadsheet isn't consciously choosing the higher number. They're making dozens of small judgment calls over months, and the incentive structure (reporting to a board, raising a round, hitting a milestone) nudges each call upward by a fraction. The aggregate effect is significant.

    The five most common sources of overstatement

    • Annual contract front-loading.Counting the full annual value as MRR in the month the contract is signed, rather than dividing by 12. This alone can inflate MRR by 3–8% for companies with a 20%+ annual billing mix.
    • Ignoring failed payments.A subscription with three consecutive failed charges is still "active" in Stripe until it's explicitly canceled. Self-reported metrics often count these as revenue; billing-verified metrics exclude subscriptions past a grace period.
    • Including non-recurring items.Setup fees, one-time consulting charges, and usage overages that appear on the same invoice as subscription charges. They inflate the total but aren't recurring by definition.
    • Delayed churn recognition.A customer who stopped using the product in January but doesn't formally cancel until March. The spreadsheet shows them as active for two extra months.
    • Currency conversion timing.Using today's exchange rate for a charge that settled 90 days ago at a different rate. In volatile FX periods, this can shift reported MRR by 1–3%.

    Head-to-head: Stripe data vs self-reported metrics

    The two data sources aren't interchangeable. They serve different purposes, carry different trade-offs, and are appropriate in different contexts. This table maps the practical dimensions that matter most for portfolio operators evaluating which source to trust — and when.

    FeatureBilling-System DataSelf-Reported Metrics
    Accuracy (vs cash collected)
    Real-time availability
    Standardized definitions
    Auditability
    Includes non-Stripe revenue
    Captures qualitative context
    Multi-source aggregation
    Cost to collect at scaleLow (automated)High (manual)
    Cross-portfolio consistency
    Immune to reporting incentives

    Two rows deserve emphasis. Includes non-Stripe revenueis the single biggest legitimate advantage of self-reported data. A company billing enterprise clients via invoice outside of Stripe, or earning revenue from a second billing system, has real revenue that billing-system data doesn't capture. For companies where Stripe handles less than 80% of revenue, self-reported data isn't just supplementary — it's necessary.

    Qualitative contextis the other area where self-reported wins. A founder who reports "MRR grew 8% but 3% of that was a one-time migration from a partner" is providing information that no billing system can surface. The narrative around the numbers matters, especially for investors evaluating the sustainability of growth trends.

    When self-reported metrics are actually better

    Billing-system-first is the right default for portfolio operators. But there are specific scenarios where self-reported data is not just adequate — it's the better source.

    Multi-billing-system companies

    A company billing through Stripe for self-serve, Chargebee for enterprise, and manual invoicing for strategic accounts has revenue in three systems. No single billing integration captures the full picture. Self-reported data that reconciles all three sources is more complete than any one billing feed.

    The portfolio operator's move here isn't to dismiss the self-reported number — it's to verify the billing-system portion and then assess the gap. If Stripe accounts for $800K of a reported $1M MRR, you can verify 80% automatically and audit the remaining 20% manually. That's a much smaller surface area than auditing the full million.

    Forward-looking and pipeline metrics

    Billing data is historical by definition — it records what already happened. Metrics like committed ARR (signed contracts not yet activated), pipeline-weighted revenue, and expansion signals from product usage are inherently forward-looking. They require human judgment and can't be derived from payment events.

    The right framework treats these as complementary layers, not competing sources. Billing data answers "what is the revenue today?" Self-reported data answers "where do we think revenue is going?" Problems arise when the two get blended into a single number without distinguishing which is which.

    Pre-revenue and early-stage companies

    A company with $15K MRR and three customers doesn't need billing-system verification. The founder knows every customer by name, the spreadsheet has eight rows, and a Stripe integration would add overhead without improving accuracy. The verification threshold scales with complexity: below $100K MRR with a single billing system, the spreadsheet is usually trustworthy enough.

    Making the transition at portfolio scale

    Switching from self-reported to billing-verified metrics across a portfolio of 5–20 companies is an operational project, not a philosophical decision. The practical barriers are real: portfolio companies use different billing systems, some resist sharing billing access, and the initial numbers will look different from what the board has been seeing.

    The rollout sequence

    Start with companies where Stripe is the primary billing system and where the reporting gap is suspected to be largest. Connect billing data, compute verified metrics, and present the delta to the company alongside the self-reported numbers. This isn't an accusation — it's a calibration. Most founders are genuinely surprised by the gap and relieved to have a clean baseline going forward.

    The second phase covers companies with mixed billing. Connect the primary system, verify what you can, and maintain self-reported data for the remainder with explicit labeling: "verified" vs. "reported." This transparency is more useful than either pure approach because it tells the reader exactly how much of the number they can trust without further audit.

    The third phase is standardization. Once every company in the portfolio uses the same metric definitions applied to the same billing events, cross-portfolio comparison becomes meaningful. Ranking companies by NRR or churn rate only works when the numbers are computed the same way. A portfolio where Company A defines churn as "canceled subscriptions" and Company B defines it as "no payment in 90 days" can't produce a useful comparison — even if both numbers are accurate within their own definitions.

    Managing the gap when numbers reset

    The hardest conversation in this transition is the first board meeting where verified MRR is lower than previously reported MRR. The gap is real and it's almost always downward. Three framing approaches work in practice.

    First, present both numbers side by side with a clear explanation of what changed in methodology, not what changed in the business. Revenue didn't drop — the measurement got more precise. Second, show the trend from the verified baseline going forward. A clean 8% month-over-month growth rate from a verified base is more credible than a 15% rate from an inflated one. Third, position the transition as a maturity signal. Institutional investors expect billing-verified metrics; switching to them before being asked demonstrates operational rigor.

    Building a verified metrics layer

    The transition from self-reported to billing-verified metrics doesn't require building infrastructure from scratch. The core requirement is a system that reads billing events, applies standardized normalization rules, and produces metrics that are reproducible and auditable. The system needs to handle the edge cases that make manual calculation unreliable: annual contract normalization, proration, multi-currency conversion, and consistent churn attribution.

    North Metric does this by connecting directly to Stripe via OAuth and computing 30+ metrics from the raw billing event stream. Every metric uses a transparent, inspectable equation — the same definitions across every company in a portfolio. The platform doesn't replace self-reported data; it provides the verified layer that self-reported data gets compared against. For portfolio operators managing multiple companies, that comparison — the delta between what's reported and what's verified — is itself one of the most diagnostic metrics available.

    The goal isn't to eliminate self-reported metrics entirely. It's to know which numbers are verified and which are estimates, and to make that distinction visible to everyone who relies on the data — board members, LPs, operating partners, and the founders themselves.

    See it in action

    Talk to us about comparisons

    15-minute walkthrough, no pitch. We'll show you how North Metric handles this for teams like yours — connect Stripe, see metrics in minutes.

    Newsletter

    Stay sharp on SaaS metrics

    New guides, benchmarks, and original research — delivered when we publish, not on a schedule.

    By continuing you agree to our Terms and Privacy Policy.

    Keep reading