Quick reason to trust me here: a big part of my day job is fixing reports that quietly went wrong. I've caught one that said a number was zero when the real answer was about 95%, and another that looked great only because it was counting things that never happened. This is that same know-how, shrunk down to what a business your size actually needs.
Why don't my Google Analytics numbers match my actual sales?
Because Google Analytics counts from the customer's phone or laptop, not from your register. Ad blockers, privacy settings, and folks who close the tab before it loads mean GA4 quietly misses 10 to 20% of your orders. Every time.
On top of that, each tool counts by its own rules — different time zone, tax and shipping in or out, which ID it goes by. So the numbers were never going to line up.
Here's the part people miss: that gap doesn't catch up later. It's just gone. So your real sales number comes from your register or your books — never from web analytics.
The catch: the browser drops orders, and every tool counts its own way.
Facebook says 30 conversions, Google says 12 — which do I trust?
Neither one's lying. They were never built to agree.
Facebook takes credit for people who just saw the ad and bought later — it calls that a conversion and counts it on its own clock. GA4 only counts visits where its little tag actually loaded. Two tools, two meanings for the same word. A 10 to 20% gap between them is normal.
So don't pick a winner. Trust your books instead — the jobs you booked and the invoices you got paid on. Treat both ad platforms as a rough guide, not gospel.
The catch: they're counting two different things, so they'll never match.
Why does Looker Studio disagree with GA4 — it's the same data?
Wild, right? Same data, two answers. Here's why: the dashboard doesn't just show you GA4's number. It re-does the math with its own settings — its own filters, its own time zone, its own way of tossing out bots, its own idea of which ID to trust. So it lands a little off.
That's the whole problem in a nutshell. Every screen does the math its own way. Nobody ever agreed on one version.
The fix is boring but it works: decide what each number means once, then make every dashboard trace back to that one definition.
The catch: every screen re-does the math its own way.
Why doesn't my Profit & Loss match my bank account?
Usually three things. One: your report counts money when you earn it (that's "accrual"), but your bank only counts it when it actually lands (that's "cash"). Different timing, different totals.
Two: money gets stuck in a holding bucket called "Undeposited Funds" — earned on paper, not in the bank yet. Three: the same payment got imported twice.
None of it's broken. Match the report against the bank on a set schedule and the gap goes from spooky to "oh, that's why."
The catch: earned-vs-landed timing, a holding bucket, and double imports.
Which of my marketing is actually working?
Straight answer: no single tool sees the whole thing. One customer touches your ad, then your website, then your phone, then your CRM — and each one only sees its own piece. So each one grabs the credit.
To really know, tie the money (a booked job, a paid invoice) back to whatever first brought that person in — all in one place. And track your calls, because for most local shops the phone is the sale, and web analytics can't see a phone call at all.
The catch: the trip runs across four tools and none sees it whole. See phones.
My dashboard says zero — but my phone rang all day.
Because Google Analytics doesn't count phone calls unless you set it up to. Out of the box, it just doesn't see them.
For phone-first shops — HVAC, home services, med spas — the main way people buy is the one thing the dashboard is blind to. So it says you got nothing while the phone's ringing off the hook. Add call tracking and your calls finally show up as a real number, right next to your form fills.
The catch: your biggest source of sales is invisible to the dashboard.
Why is my CRM double-counting leads?
Because it's counting rows in a table, not things that actually happened. Link one deal to three companies, or let the same contact sit in there twice, and it gets counted again each time. That's how you end up with a report bragging about 13 deals when you really have 4.
Clean out the duplicates, and count real things — a job, an invoice, a call — instead of table rows.
The catch: it's counting rows, not the jobs that actually happened.
Can I trust "how did you hear about us?"
Only a little. When people tell you how they found you, they're mostly guessing — they say whatever's top of mind (usually "Google"), and a big chunk just pick the first thing on the list.
So take it as a hint, never as the reason you move your ad money around. Back it up with a real, tracked path from first touch to booked job.
The catch: people guess, and they lean toward the first option they see.
How I'd approach it
Count what actually happened — then check it against real life.
Every mismatch up top comes from the same thing: you're measuring a stand-in — a pixel, a tap, a row in a table — instead of the real thing — a job booked, an invoice paid, a phone that rang. So flip it. Tie each number to the real event, then pick one place to trust for each question: money comes from your books, leads come from your CRM, calls come from your call tracker. Every other dashboard has to trace back to those.
Then check it on a schedule — count the deposits, count the calls, count the jobs you booked. If a dashboard fights with what actually happened, the dashboard loses. That's the same thing I do at work, just bigger: I ship a report that re-checks its own headline number, so a wrong number gets caught on the next run instead of a year too late.
Trust your numbers
Want a report you can actually believe?
Just tell me which numbers won't line up — or which call you can't make because you don't trust the data — and I'll tell you straight what it'd take to fix it.
Tell me what doesn't add up →