Accountant comparing financial documents and bank statements at desk with laptop

DEEP DIVE

The Revenue Verification Test: Why Comparing QuickBooks to Bank Statements Is the One Due Diligence Step That Catches What Everything Else Misses

8 min read Due Diligence Revenue Verification QuickBooks

QuickBooks Records What Someone Typed. The Bank Records What Actually Happened.

You’re two weeks into due diligence on a 10-technician HVAC company. The QuickBooks file shows $2.1M in revenue, $720K in SDE, and 185 active maintenance agreements. The tax returns match. The P&L looks clean. Your CPA reviewed the financials and gave you a thumbs up.

But nobody compared the QuickBooks entries against the bank statements.

If they had, they would have found: only 142 of those 185 maintenance agreements show recurring deposit patterns. $47,000 in recorded revenue has no corresponding bank deposit. And there are $38,000 in deposits that don’t match any invoice in the system.

This is not a hypothetical. Revenue discrepancies between accounting software and bank records appear in roughly one in four small business acquisitions — ranging from innocent bookkeeping errors to deliberate manipulation. The bank statement reconciliation is the single most reliable fraud and error detection method available to a first-time buyer. And almost nobody does it.


Why QuickBooks Alone Isn’t Enough

QuickBooks is a data entry system. It records whatever the bookkeeper enters. If the bookkeeper enters an invoice for $3,200 and marks it paid, QuickBooks shows $3,200 in revenue — whether or not $3,200 actually landed in the bank account.

The QuickBooks forensics analysis catches internal inconsistencies: deleted transactions, backdated entries, unusual journal entries. But it catches these problems within the QuickBooks data itself. It can’t tell you whether the QuickBooks data matches reality.

Bank statements are reality. Money either moved or it didn’t. Deposits either happened or they didn’t. The two systems should tell the same story — and when they don’t, you’ve found something worth understanding.


The Three Types of Discrepancies (and What Each One Means)

Business owner reviewing bank statement documents at office desk

Type 1: Revenue in QuickBooks, No Corresponding Deposit

QuickBooks shows an invoice marked “paid” but the bank statement shows no deposit for that amount on or near that date.

Innocent explanations:

  • Cash payment that was recorded but not deposited promptly (common in residential HVAC — homeowners sometimes pay cash)
  • Credit card payment processed through a third-party merchant account that deposits in batches, making individual matching difficult
  • Timing difference: payment received on the 30th, deposited on the 2nd of the following month

Concerning explanations:

  • Employee skimming: Cash payment was collected by the technician or office staff but never deposited. The QuickBooks entry was created to show the customer paid, but the money went into someone’s pocket.
  • Seller revenue inflation: The seller (or their bookkeeper) created fake invoices marked “paid” to inflate revenue figures for the sale. The SDE looks better because revenue is higher, which justifies a higher asking price.
  • Deposits to a different bank account: Some HVAC owners maintain personal bank accounts that receive business deposits — especially cash payments. This is technically income, but it may not appear in the business bank statements you’re reviewing.

Detection method: Pull a report of all invoices marked “paid” in QuickBooks, sorted by date. Match each payment against the business bank statements for the corresponding week. Flag any payment over $500 that has no matching deposit. On a $2M company, budget 6–8 hours for this reconciliation across 12 months of data.

Type 2: Deposits in the Bank, No Corresponding Invoice

The bank shows a $4,700 deposit on March 15th. There’s no invoice in QuickBooks for $4,700 on or around that date.

Innocent explanations:

  • Customer paid an invoice with a different amount (partial payment, or payment for multiple invoices consolidated into one check)
  • Owner capital contribution or personal loan to the business
  • Insurance reimbursement, rebate check, or manufacturer co-op payment that was correctly deposited but never invoiced in QuickBooks

Concerning explanations:

  • Unreported cash revenue: The seller deliberately kept certain jobs off the books to reduce taxable income. Now, during the sale, these “off-book” jobs are being mentioned as proof that “the real revenue is actually higher” — but they never went through the accounting system. This is both a tax fraud red flag and a valuation manipulation. The seller wants credit for revenue they didn’t report to the IRS.
  • Side jobs: Technicians or the owner running personal side jobs and depositing payments through the business account. This inflates bank deposits without corresponding operational activity.

Detection method: Export all bank deposits over $200 for the trailing 12 months. Match each against QuickBooks invoice payments. Flag unmatched deposits. For any unmatched deposit over $1,000, ask the seller for documentation (invoice, contract, or explanation).

Type 3: Maintenance Agreement Count vs. Renewal Deposit Patterns

The content queue shows 200 active maintenance agreements. But how many are actually active?

The test: Pull the list of all maintenance agreement customers from the company’s records. Then search the bank statements for recurring deposit patterns from those customers over the past 12 months. Monthly agreements should show 12 deposits. Annual agreements should show 1 deposit within the past 12 months. Semi-annual should show 2.

If the seller claims 200 active agreements but only 155 show deposit activity in the trailing 12 months, you have 45 agreements that are on the books but not generating revenue. They may be:

  • Expired and not renewed — the customer stopped paying but was never removed from the “active” list
  • Seasonal only — the agreement is technically active but the customer skips service periods
  • Recently signed — legitimately new agreements that haven’t had their first payment yet (check the sign-up dates)

This matters because maintenance agreement revenue is valued at a premium in HVAC acquisitions — often 5–6x vs. 2.5–3x for one-time installation revenue. Phantom agreements inflate the recurring revenue number, which inflates the valuation. On 45 phantom agreements at an average annual value of $250 each, that’s $11,250 in non-existent recurring revenue being valued at 5x = $56,250 in phantom enterprise value.


How to Perform the Reconciliation: Step by Step

What to Request from the Seller

  1. 24 months of business bank statements — all accounts (operating, payroll, savings, merchant processing). Not QuickBooks bank feeds. Actual bank statements, either PDFs from the bank or paper statements.
  2. QuickBooks backup file (or read-only access) for the same 24-month period.
  3. Merchant processing statements from the credit card processor (Square, Stripe, Heartland, etc.) for the same period.
  4. A list of all active maintenance agreements with customer name, agreement amount, and billing frequency.

If the seller balks at providing bank statements, that’s a red flag. Any seller engaged in good faith will provide bank records during due diligence — it’s standard practice per financial due diligence best practices. Resistance suggests there’s something in the deposits (or lack thereof) they don’t want you to see. See our due diligence document request checklist for the full list of records to request.

The Reconciliation Process

Month-by-month, work through this sequence:

  1. Total revenue reconciliation. Sum all QuickBooks revenue for the month. Sum all bank deposits for the month (excluding owner contributions, loan proceeds, and transfers between accounts). The two numbers should be within 5% of each other for any given month. If the gap is larger, investigate.
  2. Large transaction matching. For every QuickBooks transaction over $2,500 (which captures most installation jobs and major repairs), find the corresponding bank deposit. Match by amount and approximate date (±7 business days for check deposits, ±3 days for card payments).
  3. Recurring revenue verification. Cross-reference the maintenance agreement list against monthly deposit patterns. Count the agreements that show active payment activity vs. those that don’t.
  4. Unmatched deposits. List every bank deposit over $500 that doesn’t correspond to a QuickBooks invoice or receipt. Request explanations.
  5. Cash payment audit. Identify all QuickBooks entries marked as “cash” payment. Verify that corresponding cash deposits appear in the bank within a reasonable window. Cash is the highest-risk payment method for skimming.

Time Investment

For a $1.5M–$3M HVAC company with 12–24 months of records:

  • DIY (you do it yourself): 15–25 hours of detailed reconciliation work. Tedious but possible with spreadsheets and patience.
  • CPA/advisor: 8–15 hours at their billing rate. A CPA performing a Quality of Earnings analysis includes this automatically. A basic financial review may not. The HVAC acquisition legal guide from Acquisition Stars covers when professional help is worth the cost.
  • Automated tools: Platforms like QuickBooks’ own bank reconciliation function can flag unmatched transactions, but they require access to both the QuickBooks file and the bank feed — and they trust the bank feed, which may not catch issues with merchant processing deposits that batch differently.

What to Do When You Find Discrepancies

Small discrepancies (under $5,000 total across 12 months): Usually innocent — timing differences, rounding, miscategorized payments. Note them but don’t panic.

Medium discrepancies ($5,000–$25,000): Request detailed explanations for each discrepancy. Legitimate explanations exist, but you need documentation. If the seller can’t explain a $15,000 gap between QuickBooks and bank records, the revenue number they’re using to justify the valuation is unreliable.

Large discrepancies (over $25,000): This is a material finding. Options:

  • Adjust the purchase price to reflect verified revenue only, not reported revenue. If verified revenue is 8% lower than reported, the SDE calculation changes, and so does the valuation.
  • Require a Quality of Earnings from a CPA if you haven’t already. A QoE is the professional-grade version of this analysis.
  • Walk away. If the discrepancies suggest intentional manipulation — fabricated invoices, unreported deposits, phantom agreements — the seller’s financial presentation can’t be trusted. The deal collapse risk of proceeding with unreliable numbers is substantial. Oberman Law’s due diligence readiness guide covers what sellers should be doing to prepare — if they haven’t, ask why.

The Pattern That Should Concern You Most

The single biggest red flag in bank statement reconciliation: the seller tells you “the real revenue is higher” because they ran cash through personal accounts or did side jobs off the books.

This is shockingly common in small HVAC companies. The seller genuinely believes they’re helping you by revealing that actual revenue was $2.4M, not the $2.1M on the tax returns — those extra $300K were cash jobs that went into a personal account.

Here’s the problem:

  • You cannot use unreported revenue to justify an SBA loan. The lender uses tax returns. Period.
  • The seller committed tax fraud by underreporting income. You don’t want to inherit that exposure — the IRS can audit prior years, and asset deal buyers sometimes face successor liability for tax obligations.
  • If the seller inflated revenue off-books, you have no way to verify the actual amount. “$300K in cash jobs” could be $100K or $500K. There’s no documentation.
  • The maintenance agreements, customer relationships, and repeat business patterns that generated that off-book revenue may or may not continue under new ownership — you have no data to model it.

The correct response: value the business based on documented, verified revenue only. The tax returns are the floor. Everything above that floor is unverifiable and should be disregarded for valuation purposes.


The Bottom Line

The bank statement reconciliation takes 15–25 hours. It costs nothing beyond your time (or $2,000–$5,000 if you hire a CPA to do it). It catches problems that financial statement analysis, QuickBooks forensics, and seller interviews all miss.

Every dollar of revenue the seller claims should have a corresponding dollar in a bank account. When it doesn’t, you’ve found either an honest mistake or a deliberate misrepresentation — and the difference between the two determines whether you adjust your offer or cancel the deal.

Don’t skip this step. It’s the one piece of due diligence that even experienced buyers wish they’d done more carefully.


This article covers due diligence best practices for HVAC business acquisitions. For professional revenue verification, engage a CPA experienced in small business acquisition Quality of Earnings analyses. For financing guidance and lender matching, visit Lendesca.