- 1What You Need Before You Start
- 2The 15-Minute Shopify QuickBooks File Diagnostic
- 3Test 1: Double-counted income — 3 minutes
- 4Test 2: Net-deposit revenue — 2 minutes
- 5Test 3: Sales tax booked as income — 3 minutes
- 6Test 4: Refunds netted or deleted — 3 minutes
- 7Test 5: The clearing account balance — 2 minutes
- 8Scoring the File: Green, Yellow, Red
- 9What to Do With Each Verdict
- 10Run It on Every Prospect
You don't have to be inside the engagement to know how bad the file is. A 15-minute Shopify QuickBooks file diagnostic, run from read-only access, tells you — before you've quoted a single hour.
The proposal said twelve hours. You'd looked at the P&L, it seemed plausible, the prospect was pleasant, and you priced it the way you price most cleanups: a reasonable guess wrapped in a professional font.
Week two is when you found it. A clearing account carrying a five-figure balance that had never once been zeroed, sitting under months of double-counted income the P&L had politely absorbed. The twelve-hour project was a forty-hour project, and you'd already signed the number.
Most firms come out of that experience believing the same thing: you can't know how bad a Shopify file is until you're inside the engagement. The damage only reveals itself once you start working the transactions, so blind quoting is just the cost of doing e-commerce work.
That's the lie. Here's the mechanical truth: Shopify client files break in the same five ways, and every one of those five defects has a detection test that takes two to three minutes from read-only accountant access. Fifteen minutes, five tests, one verdict — a full Shopify QuickBooks file diagnostic, run before you write the proposal. The defects themselves (and how to fix them, in what order) are covered in the cleanup guide. This post is the step that belongs in front of it.
What You Need Before You Start
Two things, both reasonable to request from any serious prospect:
- Read-only accountant access to QuickBooks Online. They invite you from Settings » Manage users » Accounting firms. No engagement letter required — this is diligence, and prospects who refuse it are telling you something useful too.
- Their Shopify sales summary for the same period. One export from Shopify admin (Analytics » Reports » Finance summary), covering the trailing twelve months. Two minutes of their time.
Set every report below to the same date range — trailing twelve months is the right default — and work the tests in order. Each one is numbered and specific enough to hand to a staff accountant. That's deliberate: once you've run this diagnostic twice yourself, it's a delegable checklist, not partner work.
The 15-Minute Shopify QuickBooks File Diagnostic
Test 1: Double-counted income — 3 minutes
Where to click: Reports » Profit and Loss, set the date range, note Total Income. Put it next to gross sales from the Shopify finance summary.
Clean looks like: Book income within a few percent of Shopify gross sales — timing differences and non-Shopify revenue explain small gaps.
The defect looks like: Book income at roughly twice platform gross sales. Confirm in one more click: open any income account and look at the transaction list. If bank-feed deposits and sales receipts from a sync tool are posting side by side, both the deposit and the receipt are landing in revenue.
Severity signal: Count the months where both streams overlap. Overlap confined to recent months is contained; overlap crossing a filed tax year means the return was prepared on doubled revenue, and the scope just changed category.
Test 2: Net-deposit revenue — 2 minutes
If income isn't doubled, check whether it's understated instead — these two defects are mirror images.
Where to click: Same P&L. Compare Total Income to total bank deposits from the Shopify payout account for the period. Then open Transactions » Chart of accounts and search for a merchant fees or processing fees expense account.
Clean looks like: Revenue above deposits, with a fee expense account showing steady monthly activity — roughly 2–3% of sales for a typical Shopify Payments store.
The defect looks like: Revenue that equals bank deposits to the penny, and a fee account that's empty or doesn't exist. The client has been booking net payouts as sales; gross revenue and fee expense have both been invisible for the life of the file. (Why payouts and sales never match in the first place is its own anatomy lesson.)
Severity signal: Duration. Every month this ran, margins were fiction. If the client has shown these numbers to a lender, note it — that conversation belongs in the proposal stage, not week two.
Test 3: Sales tax booked as income — 3 minutes
Where to click: Chart of accounts » find the sales tax liability account » Run report (the account QuickReport). Glance at the Taxes tab while you're there.
Clean looks like: The liability accrues as sales post and draws down when remittances go out. Balance roughly tracks the filing cycle.
The defect looks like: Little or no activity in the liability account — for a client who is demonstrably collecting and remitting. Search expenses for the mirror image: state remittances booked to a "sales tax expense" account. The two roughly cancel on the P&L, which is exactly why nobody inside the business ever noticed.
Severity signal: Count the filing periods in the affected window. Each one is a return the books can't support. This defect carries audit exposure the other four don't, so weight it accordingly in your verdict.
Test 4: Refunds netted or deleted — 3 minutes
Where to click: Chart of accounts » look for a Refunds & Allowances (contra-revenue) account and run its QuickReport. Compare against the refunds line on the Shopify finance summary.
Clean looks like: Contra-revenue activity that roughly tracks Shopify's refund totals, leaving gross sales, refunds, and net sales as three visible lines.
The defect looks like: Shopify shows meaningful refunds; the books show nothing. The refunds were either netted silently into deposits or deleted when they "didn't match anything" — the audit log (Settings » Audit log, filter for deleted transactions) settles which, in about sixty seconds.
Severity signal: The gap between the client's believed returns rate and the real one. A store refunding 6% while its owner believes 2% has been making pricing and inventory decisions on bad data — and deletions in the audit log are a worse sign than netting, because they tell you how the last bookkeeper handled anything that didn't reconcile.
Test 5: The clearing account balance — 2 minutes
Where to click: Chart of accounts » find the Shopify clearing account (or wherever payouts stage — sometimes Undeposited Funds) » look at the balance and the date of the last transaction that brought it near zero.
Clean looks like: A balance hovering near zero between payout cycles. Clearing that zeros regularly is the file's built-in checkpoint.
The defect looks like: A large, stale balance — months old, never once flushed. This is the finding that should most influence your quote, because clearing that never zeros means no checkpoint ever existed that would have caught the other four defects. Whatever you found in tests one through four, assume there's more underneath.
Severity signal: Size × age. A four-figure balance from last quarter is an afternoon. A five-figure balance older than the fiscal year is the forty-hour engagement announcing itself in advance — which is precisely the announcement the blind quote never receives.
Scoring the File: Green, Yellow, Red
You now have five results. Score them:
| Verdict | Findings | Cosa significa |
|---|---|---|
| Green | Zero defects; clearing zeros on cycle | Books are structurally sound. Standard monthly engagement. |
| Yellow | One or two defects, confined to the current fiscal year; clearing balance explainable | Scoped cleanup first, then the monthly engagement. |
| Red | Three or more defects, or any defect crossing a filed tax year, or a stale five-figure clearing balance | Full cleanup project, priced and papered separately — never bundled into onboarding. |
The scoring is the point of the fifteen minutes. When you review a Shopify client's books before quoting, you're not estimating hours — you're classifying the file into an engagement type, and the engagement type sets the price.
What to Do With Each Verdict
Green: Skip the cleanup conversation entirely and move to standard onboarding — the client onboarding workflow takes a green file to a fully mapped, syncing engagement without detours. Green files are also where you protect the verdict: a payout-journal sync layer (this is where a tool like LedgerPort sits, posting each payout as a journal entry with gross sales, refunds, fees, and tax split to their mapped accounts) structurally prevents all five defects from ever developing. A green file with automation stays green.
Yellow: Quote a scoped cleanup as a fixed project, then the monthly engagement on top. Your diagnostic already defined the scope — you know which defects, over which window. Pricing QuickBooks cleanup engagements covers how to turn exactly these findings into a number that survives contact with the file.
Red: Same structure as yellow, but present the diagnostic findings as the proposal. "Your income is double-counted since March, sales tax is sitting in revenue across four filing periods, and your clearing account hasn't zeroed in eleven months" is a scope statement no prospect argues with — you're the first accountant who could tell them what's wrong before being paid to look. Then run the cleanup sequence in order.
One honest trade-off: the diagnostic detects; it doesn't size to the hour. A red file might be twenty-five hours or sixty, and the difference lives in transaction volume and how far back you restate. But quoting a classified engagement with a defined defect list is a different business than quoting blind — and it's the difference between e-commerce clients as a loss leader and as your most profitable segment.
Run It on Every Prospect
Here's the habit that makes this compound: the diagnostic runs on every e-commerce prospect, before every proposal, no exceptions. Fifteen minutes of staff time against read-only access, results in a one-page template, verdict attached to the quote.
The week-two discovery stops existing — not because the files got cleaner, but because you stopped meeting them for the first time inside a fixed-price engagement. You expected the diagnostic to protect your quotes. What it actually changes is your positioning: you become the firm that can assess an e-commerce client's QuickBooks in the first conversation, and firms that assess before quoting price the whole service line differently.
If there's a Shopify prospect in your pipeline right now, request accountant access today and run the five tests before you send the number. And when the verdict comes back green — or the cleanup gets the file there — the CPA onboarding walkthrough covers standing up the sync layer that keeps every future diagnostic boring.
Related: The CPA's Guide to Cleaning Up a Shopify Client's QuickBooks · Pricing QuickBooks Cleanup Engagements
