Analytics counts visits. Bots make visits too. Orders are money, and money is the only number that survives a wire transfer. If a seller's revenue claim cannot be traced to an order ledger and a processor payout landing in a real bank account, it does not exist yet, no matter how clean the screenshot looks. This guide walks the three levels of revenue proof, and then the six checks that turn "trust me" into a number your own accountant would sign.
The three levels of revenue proof
Every revenue claim you will meet while buying a store sits at one of three levels, and the level tells you how much to believe it.
Level one is a screenshot: a dashboard number, a payment processor summary, a photo of a spreadsheet. Anyone with an image editor and five minutes can produce a screenshot that says whatever a seller needs it to say. Treat it as a claim, not as evidence, and move on.
Level two is analytics: a Google Analytics screen-share, a traffic report, a conversion rate. Analytics measures sessions, and a session is a visit, not a sale. Bots, scrapers, and a browser tab refreshed twice all register as traffic. A store can show rising sessions while real revenue falls, or the reverse, and analytics alone cannot tell you which one you are looking at.
Level three is order-level data: the actual order ledger, exported straight from the platform, reconciled line by line against what the seller claims and against the cash that landed in a bank account. This is the only level where the number and the money are the same thing. Everything below level three is a story about revenue. Level three is revenue. Most marketplaces stop at level one or two; how marketplaces actually verify store revenue covers what to ask any venue that claims otherwise.
How to verify revenue at the order level
This is the work. It takes an afternoon for a clean store and longer for a messy one, and none of it requires trusting the seller's word at any point.
Get read-only collaborator access first. Before you spend an hour on anything else, ask for a read-only Shopify collaborator or staff invite. You are asking to see the order ledger and payout reports, not to touch products, issue refunds, or move a cent. A seller who stalls on a read-only request is telling you something about the numbers before you have even looked at them.
Export the full order ledger. Pull every order for the trailing twelve months as a raw export, not a summary screen. You want one row per order: date, amount, product, refund status, customer. A dashboard total is a claim about the data. A row-level export is the data.
Reconcile order revenue against the P and L, month by month. Sum the order export by calendar month and line it up against the profit and loss statement the seller handed you. Do not check the annual totals only, since two annual totals can match while every single month underneath them is wrong. A month that will not reconcile is the month you ask about.
Match every refund and chargeback. Gross order value is not revenue. Subtract refunds, and subtract chargebacks separately, since chargebacks often lag the order by weeks and a seller pulling a P and L too early will miss them. A store that reports gross figures while quietly dropping refunds is reporting a number nobody actually banked.
Cross-check payout reports against bank deposits. The order ledger tells you what was sold. The processor's payout report tells you what was actually paid out, after fees and holds. Ask to see both, and confirm the payout amounts land in the seller's bank statement on the dates the processor says they should. An order that never became a payout, and a payout that never became a deposit, are both the same problem wearing different clothes.
Reconcile ad spend against the same period. Pull the ad account's spend for the exact months you are checking, not a different window, and compare it against orders attributed to paid channels. A seller who shows you strong revenue for a month but a different month's ad spend has, deliberately or not, hidden the real cost of getting there.
Run all six and you are no longer buying a claim. You are buying a number you checked yourself.
A worked reconciliation
Say a listing claims 60,000 in revenue for June. The order export for June totals 61,400 in gross orders. Refunds for June, including two that posted in early July but belong to June sales, come to 2,800. Net order revenue is 58,600, close enough to the claimed 60,000 to be a rounding or timing difference, not a red flag on its own.
Now check the payouts. The processor's June payout report shows 57,900 deposited, which is the 58,600 in net orders minus 700 in processing fees. That 57,900 should show up in the seller's bank statement across a handful of deposits through late June and early July, since payouts lag orders by a few days. If the bank statement shows 57,900 landing on schedule, the number is proven three ways: order ledger, payout report, and bank deposit all agree within a few hundred dollars, which is exactly what real transaction timing looks like.
Now flip it. Say the bank statement only shows 41,000 landing for the period, with no missing payout batch and no processor dispute on file. That 16,900 gap is not a rounding error. It means the P and L overstates revenue by close to 30 percent, and every multiple built on that P and L is wrong by the same margin. This is the entire reason to run the reconciliation before you negotiate price, not after.
The tells of manufactured revenue
A handful of patterns show up again and again in order data that was made to look bigger than it is. None of them require forensic accounting. They just require looking at the order ledger instead of the dashboard.
Self-purchases. A cluster of orders from the same shipping address, the same payment method, or a customer name that never repeats after the sale closes. A seller buying their own product inflates order count and revenue without inflating real demand, and a new owner discovers the truth the first month those "customers" never reorder.
Spikes right before the listing goes up. A sudden jump in orders in the one or two months before a sale, with no matching jump in ad spend or traffic to explain it, is one of the oldest tells there is. Growth that appears exactly when a buyer starts looking and disappears the month after handover was never growth. It was staging.
Gift-card recycling. A seller issues gift cards, funds the balance themselves, then places "orders" against that balance. The order ledger shows real transactions with real order numbers, but no new cash ever entered the business. This is why the payout-to-bank check in the reconciliation matters more than the order count alone: gift-card orders can pass an order-count check and still fail a deposit check, every time.
None of these patterns are visible from a screenshot or an analytics dashboard. They only surface once you are looking at individual orders against real bank deposits, which is the entire argument for skipping levels one and two. For the fuller list of what else to check beyond revenue, the due diligence checklist for buying an ecommerce store covers inventory, supplier terms, and account health alongside the revenue work here, and red flags when buying an online business walks the wider pattern list beyond revenue specifically.
What to do when the numbers do not reconcile
A small gap, explained by timing, is normal. Orders and payouts never land on the same calendar day, and a few hundred dollars of drift across a month is just how processors work. A gap that survives your timing adjustment and still runs into four figures or a double-digit percentage is not timing. It is the actual number, and the actual number is what you should be pricing, not the one in the deck.
Your options at that point are the same three every buyer has: walk away, which is always available and never wrong; renegotiate against the verified number, not the claimed one, since a seller who inflated the claim has no standing to argue for the higher price; or ask the seller to explain the gap with documents, not reassurance, and re-check once they do. What you should not do is split the difference and move forward on a number nobody can defend. A buyer who does that is not buying a discount. They are buying the seller's problem at a price that still assumes it was never a problem.
Where Kairos fits
This entire process is exactly what Kairos runs before a listing earns its verified badge: read-only Shopify order data, eight automated checks, and a human review before anything goes live, so a verified listing has already been through the reconciliation this guide just walked you through. The full mechanics are in how Kairos verifies revenue.
Kairos is pre-launch, and this guide works whether or not you ever use it. But if you are looking at a store on another marketplace and want this exact reconciliation run by someone other than yourself, the paid due diligence service does this work on any listing, anywhere, human-run, with a report back in 5 working days. Either way, the rule does not change: if the number cannot be reconciled against the order ledger and the processor payouts, it does not exist yet. Get it to reconcile before you wire anything.