Buyer Guide 11 min read

How to Verify SaaS Revenue With Stripe Data: The Buyer's Due Diligence Playbook

A seller's P&L is a story they wrote about their own business. Stripe data is a record their business wrote about itself. If you're buying a SaaS company and you haven't sat inside the Stripe dashboard for at least two hours, you're not doing due diligence — you're doing hope.

2026-08-27  ·  By Sophal Lanh, Founder of Deal Alert AI

Deal Alert AI is reader-supported. We earn commissions from affiliate links at no cost to you.

This post is based on a video from our Deal Alert AI YouTube channel. Watch the original or read the full breakdown below.

I've looked at hundreds of SaaS listings across Empire Flippers, Flippa, and private broker lists. The single biggest difference between buyers who make money and buyers who get burned isn't deal flow, negotiation skill, or capital. It's whether they verified the revenue at the transaction level before wiring funds.

For SaaS businesses, that verification almost always runs through Stripe. Stripe processes payments for the overwhelming majority of small-to-mid SaaS companies sold on marketplaces — it's the default choice for indie founders and bootstrapped teams, and its reporting layer is far deeper than most buyers realize. If you know which reports to pull and what math to run on them, you can reconstruct a business's entire revenue history in an afternoon.

This guide walks through exactly how to do that: the six reports to review, the math to run, how to request access without spooking the seller, and the patterns that should make you walk away or renegotiate.

Why Stripe Data Is Harder to Fake Than a P&L

A seller's profit and loss statement is a document. Someone typed it. Even when it's honest — and most sellers are broadly honest — it reflects choices about categorization, timing, and what counts as revenue. A month where a customer paid an annual plan upfront might show as $12,000 in one month or $1,000 across twelve, depending on how the bookkeeper felt. Refunds might be netted out or shown separately. One-time consulting revenue might be quietly blended into "subscription revenue."

Stripe data is different. It's generated by Stripe's own systems as a byproduct of money actually moving. Every charge has a timestamp, an amount, a customer ID, and a status. Every subscription has a creation date, a plan, and — if it ended — a cancellation date. You can't retroactively edit these records in any meaningful way. A seller can decline to show you the data, but they can't rewrite it.

That makes Stripe the closest thing to an immutable ledger a small SaaS business has. When I'm evaluating a deal, my rule is simple: the P&L is a hypothesis, and Stripe is the test. If the two agree month by month for 24 months, the seller's numbers are probably real. If they diverge, I need an explanation before I go further — and "the accountant did it that way" is not an explanation.

Key insight: Don't ask "does the P&L look reasonable?" Ask "does the Stripe charge volume for March 2024 match the P&L revenue line for March 2024?" Then repeat that question 23 more times. Reconciliation beats reasonableness every single time.

The Six Stripe Reports Every SaaS Buyer Should Pull

Get Free Deal Alerts Every Morning

We scan Empire Flippers, Flippa, Acquire.com and Quiet Light daily — scoring every listing. Start free.

You don't need to be a data analyst to do this. Stripe's built-in reporting plus a CSV export into a spreadsheet gets you 90% of the way. If the seller uses Baremetrics, ChartMogul, or ProfitWell, those tools sit on top of Stripe and give you the same underlying data with prettier charts — but always verify the tool is connected to the live Stripe account and not a manually uploaded dataset.

Report one — monthly revenue summary. Pull total gross charge volume by month for the last 24 months. This is your baseline. Compare each month against the P&L. Small variances of 1–3% are normal (currency conversion, timing of settlements, partial refunds). Variances above 10% need a specific, verifiable explanation. Common legitimate ones: revenue from a second processor like PayPal, affiliate income, or one-time services. Common illegitimate ones: nothing the seller can actually document.

Report two — subscription overview. Look at the active subscription count broken down by plan. Count them yourself. I've seen listings claiming "480 paying customers" where the Stripe export showed 391 active subscriptions plus 89 that were past due, trialing, or in a failed-payment state. Those 89 are not customers. They're a collections problem. Also verify that the plan prices in Stripe match what the seller claims is the average contract value — if the listing says "$79/mo average" and Stripe shows a plan mix weighted toward a $29 legacy tier, the ARPU story is wrong.

Report three — new subscription trend. Count how many new subscriptions were created each month for 24 months. This is the single best forward-looking indicator you have. Revenue is a lagging metric; new customer acquisition is a leading one. A business doing $18,000 MRR with 40 new signups a month is a fundamentally different asset than a business doing $18,000 MRR with 8 new signups a month, even though the P&L looks identical today. The second one is melting.

Churn Is the Number That Sets the Price

Report four — cancellations and churn. Export every subscription cancellation with its date. Then, for each month, calculate: cancellations during the month divided by active subscriptions at the start of the month. That's your monthly logo churn. Do the same weighted by dollars to get revenue churn, which matters more.

Here's the reference range I use for small SaaS. Under 3% monthly churn on a B2B product is genuinely good. 3–5% is normal and workable. 5–7% is concerning and needs a story — usually a low price point or a heavy SMB customer base. Above 7% monthly, you're looking at a business that replaces its entire customer base roughly every 14 months, which means you're not buying a customer base at all. You're buying a marketing machine, and you'd better be sure you can operate it.

Run the arithmetic on what churn actually does to a valuation. Take a SaaS doing $20,000 MRR. At 3% monthly churn with zero new customers, you'd still have about $13,900 MRR in 12 months. At 8% monthly churn with zero new customers, you'd have roughly $7,700 — you lost more than 60% of the business in a year. Now factor in that acquisitions almost always cause a temporary dip in growth (the new owner needs 60–90 days to learn the marketing), and high-churn businesses become genuinely dangerous purchases.

Warning: Sellers frequently quote "annual churn" calculated as revenue in month 12 divided by revenue in month 1. That number hides everything. A business that lost 300 customers and gained 310 shows near-zero net churn while having a catastrophic retention problem. Always calculate gross monthly cancellations from raw Stripe subscription records — never accept a seller's summarized churn figure.

Refunds, Disputes, and What They Tell You About the Product

Report five — refund and dispute rate. Stripe logs every refund and every chargeback dispute with amounts and, if the seller configured them, reason codes. Calculate refunds as a percentage of gross revenue per month. Under 1% is healthy. 1–3% is worth a conversation. Above 3% consistently means something is wrong: the product doesn't do what the marketing promises, onboarding is broken, or the billing is confusing customers.

Disputes matter even more than refunds because they carry a hard operational consequence. Stripe's dispute threshold sits around 0.75% of transaction volume; sustained rates above that can trigger account reviews or, in extreme cases, termination. If you're buying a business and inheriting a Stripe account with an elevated dispute rate, you may be buying a payment processing problem you can't easily fix.

Look at refund clustering too. Ten refunds spread evenly across 24 months is noise. Ten refunds in a single month is a signal — maybe a botched product update, a pricing change customers hated, or a period where support went unanswered. Ask about every cluster. The seller's answer tells you a lot about how forthcoming they are, which is data in itself.

Customer Concentration: The Risk Hiding Inside Good MRR

Report six — customer concentration. Export all customer records with their subscription amounts, sort descending, and calculate what share of total MRR comes from the top 1, top 5, and top 10 customers. This takes about ten minutes and it has killed more deals in my pipeline than any other single check.

My thresholds: if any single customer is more than 15% of MRR, that's a material risk requiring specific diligence. If the top 5 exceed 40% of MRR, you're not buying a SaaS business — you're buying five relationships. And relationships transfer poorly. Enterprise customers often have informal ties to the founder, and a portion of them will re-evaluate the vendor when they learn ownership changed.

When concentration is high, escalate the diligence. Ask for each large customer: how long have they been a subscriber, is there a written contract or is it month-to-month, when does it renew, who is the internal champion, and has the customer been told about the sale? If the seller can't answer these questions confidently, they don't have a relationship — they have an invoice. And if a customer representing 22% of MRR is on a month-to-month plan with no contract, that revenue should be discounted heavily in your valuation or structured into an earnout.

Key insight: Concentration risk isn't binary. Price it. If your top customer is 20% of MRR on a month-to-month plan, model the business at 80% of stated MRR and see if the multiple still works. If it doesn't, you're not being conservative — you're being realistic about a scenario that happens all the time post-acquisition.

How to Request Stripe Access Without Killing the Deal

The gold standard is read-only access to the live Stripe account. Stripe's Team feature lets a seller invite you with a restricted role that can view data but cannot move money, issue refunds, or change settings. It costs them nothing and takes two minutes. Ask for it explicitly, by name: "Can you add me as a read-only team member in Stripe for the diligence period?"

Many sellers will say yes, especially on brokered deals where the broker has already normalized this request. Some will hesitate for legitimate reasons — customer PII, an account shared across multiple businesses, or simple unfamiliarity with the permissions system. If they hesitate, offer alternatives in this order: a live screen share where they navigate the dashboard while you direct which reports to open; a full CSV export of charges, subscriptions, and customers pulled during that screen share; or an existing Baremetrics/ChartMogul dashboard connected to live Stripe with view-only access granted to you.

What you should not accept is a set of PDF summaries or screenshots emailed to you with no live verification. A screenshot is a picture. A CSV a seller generated privately three weeks ago is a document you can't authenticate. If a seller refuses every form of live verification on a six-figure SaaS deal, that refusal is your answer. Walk. There are more listings than there is capital, and I'd rather pass on ten good deals than close one bad one. That's exactly the filtering philosophy behind Deal Alert AI — verification-first, always.

The Stripe Verification Checklist

Here's the sequence I run on every SaaS deal. It takes two to three hours with live access and produces a defensible view of whether the revenue is real, growing, and transferable. Work through it in order — each step informs the next.

  1. Reconcile 24 months of gross charge volume against the P&L, month by month. Flag any month with more than a 10% variance and get a documented explanation before proceeding.
  2. Count active subscriptions yourself by status. Separate genuinely active from trialing, past due, unpaid, and incomplete. Only "active" counts as a customer.
  3. Verify plan prices and mix against the listing's claimed ARPU. Check whether legacy pricing tiers make up a meaningful share of the base — those customers often churn when repriced.
  4. Chart new subscriptions per month for 24 months. Compare the trailing 6 months against the prior 6. Declining acquisition is a valuation issue even when revenue is flat.
  5. Calculate gross monthly logo churn and revenue churn from raw cancellation dates. Never use a seller-supplied churn figure. Look at the trend, not just the average.
  6. Compute refund rate and dispute rate as a percentage of monthly revenue. Investigate any month above 3% refunds and any sustained dispute rate approaching 0.75%.
  7. Build the customer concentration table for the top 10 accounts. Identify anyone above 15% of MRR and run separate diligence on contract terms, tenure, and renewal dates.
  8. Check failed payment recovery (involuntary churn). Look at how many subscriptions fail and are recovered by dunning. Poor recovery is an easy, high-ROI fix for a new owner — and a legitimate upside lever.
  9. Compare annual versus monthly plan mix. Heavy annual prepay inflates cash-based revenue in the months it lands and creates a renewal cliff you need to map.
  10. Confirm no other processors exist. Ask directly whether any revenue flows through PayPal, Paddle, Lemon Squeezy, or manual invoicing, and verify those separately.
  11. Cross-check Stripe payout totals against the business bank statements. Money should leave Stripe and arrive in the account the seller says it does.
  12. Model MRR 12 months forward using verified churn and verified new-customer rates. If the model shows decline, negotiate on the model — not on the trailing twelve months.

Red Flags That Should Change Your Offer or End the Conversation

Some findings are fixable and should simply move the price. Others should end the deal. Knowing the difference is what separates disciplined buyers from anxious ones. Here's how I sort them.

Renegotiate on these: churn 1–2 points worse than the listing claimed; moderate customer concentration with contracted, long-tenured accounts; refund rates in the 2–3% range with an identifiable cause; new-subscription decline that maps clearly to the seller reducing marketing spend during the sale process (very common, and often recoverable). These are pricing problems. Adjust the multiple, structure part of the payment as an earnout, and move forward.

Walk away on these: Stripe totals that don't reconcile to the P&L with no documented explanation; a spike in new subscriptions in the final 3–4 months before listing that came from paid ads or discount codes the seller "paused" right before sale; a single customer above 30% of MRR on month-to-month terms; dispute rates that put the Stripe account itself at risk; and any refusal to grant live verification of any kind. That last one is non-negotiable for me.

Watch specifically for the pre-sale bump. It's the most common form of soft manipulation in this market. A seller decides to exit, spends aggressively on ads or runs a lifetime-deal promotion for four months, drives MRR from $14,000 to $19,000, and lists based on the higher number. The Stripe data exposes it immediately: new subscriptions triple in exactly the window before listing, and cohort retention on those new customers is visibly worse than on older cohorts. Always segment retention by signup cohort. If the customers acquired in the last six months churn at double the rate of customers acquired 18 months ago, the recent growth isn't growth — it's a purchase of temporary revenue.

How Deal Alert AI Screens for Healthy Revenue Patterns First

Everything above is manual work you do after you've found a listing worth pursuing. The harder problem — and the one I built Deal Alert AI to solve — is finding the small number of listings that deserve that effort in the first place. On a typical week there might be 400 new business listings across the major marketplaces. Maybe 30 are SaaS. Maybe 6 have financial profiles worth a serious look.

Our screening looks for the patterns that correlate with clean Stripe data before a buyer ever requests access: consistent month-over-month revenue without unexplained step changes, growth that predates the listing date rather than starting alongside it, stable pricing, disclosed customer counts consistent with stated ARPU, and multiples that aren't stretched relative to comparable closed transactions. Listings that show a sharp revenue inflection in the final quarter before going to market get flagged, not celebrated.

The system monitors listings from Empire Flippers, Flippa, and other marketplaces continuously, so instead of refreshing listing pages you get alerted when something matching your criteria appears. That's the whole point: spend your diligence hours on the six deals that might work rather than the 394 that won't. You can see how the filtering works at Deal Alert AI.

But no screening tool replaces the Stripe review. Software narrows the field; transaction-level verification decides the deal. Get read-only access, pull the six reports, run the churn math yourself, and price the risks you find. Do that consistently and you'll be in the small group of buyers whose acquisitions actually perform the way the listing promised.

By Sophal Lanh, Founder of Deal Alert AI: Sophal built Deal Alert AI after years of analyzing online business acquisitions and missing time-sensitive deals. The platform tracks and scores 100+ listings daily across Empire Flippers, Flippa, Acquire.com, and Quiet Light. Learn more →

Get Deals Before Other Buyers

We scan Empire Flippers, Acquire, Flippa, and Quiet Light daily. The best sub-$500K businesses are gone within 48 hours.