Illustration representing businessman with index finger up showing increase of incomes on graph on purple background

Three Dashboards, Three Revenue Numbers, One Fix

Your ad platform, email marketing tool, and analytics each report different revenue totals. The instinct is to blame one platform. That’s almost always the wrong call.

Last month, a client pulled up three screenshots during a call. Ads revenue. Email marketing revenue. Google Analytics revenue. Same month. Different numbers. Not within rounding distance of each other. Actually different.

Their working theory was that one platform was overcounting. So they had already started pulling bids down on the campaigns that “looked too good.” They had set the email platform’s attribution window to its shortest option to cut what they called “false” conversions.

They had been optimizing against broken data for months.

The three-dashboard problem comes up a lot for small and medium-sized businesses running paid ads, email marketing, and analytics at the same time. It does not matter what industry you are in. The numbers diverge. Someone picks the one they trust most, usually whichever is highest or whichever platform they are most comfortable with. Decisions get made against it. The gap never closes.

The numbers weren’t wrong because the platforms were lying. They were wrong because three systems had never been set up to talk to each other.

The Three Gaps

The disconnect almost always comes from the same three places. Most teams don’t realize all three are happening at once.

Tracking data lost between systems. When a visitor moves between tools or domains during their journey, the information about where they came from can disappear. A concrete example: in Shopify, if your checkout is hosted on a separate domain, GA4 cross-domain tracking needs to be configured to carry the session data through. Without it, a customer who clicked a paid ad and then purchased can show up in Google Analytics as direct traffic, while your ad platform still counts the sale because it tracked the click earlier. The result looks like your ad platform is overcounting. It usually isn’t. Analytics is losing the source.

This isn’t limited to any one platform or checkout setup. Any time a visitor moves between a landing page, a booking tool, a third-party form, or a separate system, the same problem can occur. The principle is the same: if the handoff between tools isn’t configured, attribution breaks.

Analytics configured once and never maintained. A lot of businesses set up Google Analytics at some point because that’s what you’re supposed to do, and then never properly validated it. Tags got added over time. Someone added another tag later to fix something else. Nobody went back to check whether events were firing correctly or being counted twice. The result is often duplicate events or inflated revenue in GA4, and a team that trusts it less over time. The fix is an audit, not a rebuild, but it requires actually looking at what’s firing and when.

Attribution windows that overlap by design. Your ad platform and your email tool don’t use the same definition of which channel caused a sale. That isn’t necessarily wrong. Paid search and paid social often kick off a consideration period that ends in a purchase days later. Email clicks tend to convert fast because the customer was already close to buying. The windows each platform uses reflect those different roles in the journey.

The problem isn’t that the windows are different. It’s that most teams don’t know what each one is set to, and they treat the platform-reported revenue numbers as if they can be added together or compared head to head. They can’t. A customer who clicked an ad on day 1, received an email on day 8, and purchased on day 9 will appear in both platforms’ conversion totals. That overlap is built in. Once you start making budget decisions against those overlapping numbers, the math doesn’t hold.

The Fix

Three things, in order.

Fix the handoffs between systems. Map where your visitors travel during the purchase journey and identify any point where they move between domains or tools. For each handoff, verify that your analytics platform is configured to carry session data through. In Google Analytics, this is cross-domain tracking. For Shopify specifically, this is in the GA4 data stream settings. The goal is that GA4 or any other analytics platform sees the actual traffic source for every sale, not just the ones where the customer stayed on one domain the whole time.

Audit your analytics setup. Look at what events are firing and how often. If a single purchase is generating two identical events, you have duplicate tracking. Most of the time this comes from tags added at different points that were never reconciled. Clean it up and establish a consistent event structure. This is worth doing even if your numbers look reasonable, because inflated or missing data often goes undetected until something looks obviously wrong.

Set each platform’s window to fit its role, and stop treating platform revenue as additive. The goal is not to force every tool onto the same conversion window. If you shorten your ad platform’s window to match a tight email window, you starve its bidding algorithm of the conversion data it needs to optimize. That hurts performance in the channel you’re trying to evaluate.

What you actually need: know what each platform’s window is set to, and make sure it fits how that channel works for your business. Demand-driving channels with a longer consideration lag warrant a longer lookback. Channels where a click usually means the customer was already ready to buy don’t need one as long. Different windows per platform is fine.

What isn’t fine is adding those numbers together and calling it total revenue, or using them to rank channels against each other without accounting for the overlap.

Enforce consistency at the analytics layer instead. An analytics platform running one attribution model across all channels is the natural home for that cross-channel number, GA4 being the most common choice. When you pull reports, compare the same date ranges and lookback windows across sources. That’s the discipline that makes comparison valid, not making every platform match the same conversion window.

Once those three are in place, your team needs to pick one source of truth for cross-channel revenue and budget decisions, and everyone works off that same number. An analytics platform like GA4 is usually the right fit for that role because it sees all channels through one model. The platform-level numbers stay useful for optimizing within each channel. They stop being what you use to decide where to put money next month.

What This Actually Changes

When the setup is right, the revenue gap between platforms shrinks to something explainable. Google Analytics stops showing unexpectedly low revenue. Your ad platform and email tool still report different totals, and they should. The difference makes sense given how each one assigns credit.

The more meaningful shift is in the questions you can ask. Instead of “which number do I trust,” it becomes “which campaigns are driving the contacts that convert in the next two weeks?” Most businesses running multiple channels cannot answer that today. Once the data is clean, they can.

Teams also stop second-guessing their own calls. The client I opened with spent months pulling back on campaigns that were actually working. Once the tracking was fixed, they had a clear picture of what was driving revenue. That is not a small thing.

The Real Problem

Three dashboards showing three different revenue numbers is not a sign that something was set up wrong. It is a sign that three platforms are doing exactly what they were designed to do, independently of each other.

The problem is that businesses use those numbers to make decisions that require the platforms to agree. The instinct is to audit whichever number looks furthest off. But that’s chasing a symptom.

Tracking gets lost at handoff points. Analytics collects duplicate events. Time windows don’t match. Each is a small gap on its own. Together they produce numbers that can’t be reconciled and a team that stops trusting its own data.

The fix isn’t a new attribution tool. It isn’t a reporting layer on top of what you have. It’s getting the three systems you already use to share one definition of what a sale is.


If you’re seeing a revenue gap that never quite closes, I’m happy to take a look. billyschlotter.com