Your Store Is Leaking Money in One of Two Ways. Usually Both.
A Field Guide · Real Audit Data

Your Store Is Leaking Money in One of Two Ways. Usually Both.

Neither one shows up on your dashboard. Both are sitting in your data right now — and you can find them yourself in an afternoon.

Built from two real audits of ~$1–2M e-commerce brands (Shopify, WooCommerce, Wix, Klaviyo, Meta, GA4). Names changed; every number is real. No pitch — a map you can use.

A growing store can be bleeding money and still look healthy. Revenue is up. Ads are profitable. You’re busy. Nothing screams.

That’s because the money rarely leaves through the front door, where you’d see it. It leaves through the seams — the gaps between the tools you actually check. And once you’ve taken apart enough stores, you see the leaks aren’t random. They come in exactly two kinds.

1
Way One
The money that couldn’t get in
Ready buyers who hit friction after the click — and vanish before they pay.
2
Way Two
The money you never asked for
Buyers who happily paid — far less than they were willing to.

Most stores have both. Here’s each one, shown through a real store — so you can go find yours.

Estimate my leak — 2 minutes →

Want the shortcut before reading on? Plug in your numbers now.

Way One
The money that couldn’t get in

When the marketing works — and the store quietly turns buyers away

The first store did about $2M a year selling pet supplements. Call it Northpaw. Its marketing worked fine — that was never the problem. The ads made money. The traffic was real. The buyers were ready. They just kept hitting walls nobody knew were there. Three of them.

The checkout that asked for a passport — ~$157K/yr

Their credit-card processor ran an ID check. Before a card would go through, the customer had to upload a government ID — a driver’s license or passport. To buy pet supplements. Most people did what you’d do. They left.

Order cancellation rate by payment method — 12 months
Credit card
44.1%
Interac (baseline)
12.5%
Bitcoin (no ID)
0%
Same store, same buyers. The only variable is how much friction each path put between a customer and their money.

Card orders died at 3.5x the normal rate. Here’s the part that proves they wanted to buy: 439 customers refused to quit. They found another way to pay and bought anyway. Another 685 just left, and took about $138K with them. Those weren’t cold leads. They had the product in the cart and a working card in their hand.

A wall where you think you have a door.

The browser nobody chose — ~$77K/yr

Tap an ad inside Instagram and the link doesn’t open in Safari or Chrome. It opens in Meta’s own built-in browser. That browser blocks cookies, breaks autofill, and breaks payments. The customer never picked it and never noticed. But it cut their conversion rate in half — then in half again.

Checkout conversion by browser environment
Chrome / Safari
3.36%
Meta in-app browser
0.49%
16,322 in-app visitors in a year produced ~80 orders instead of the ~549 the baseline predicts.
Take this — it’s yours

The fix is one banner, and you can hand it to a developer today. The browser can be detected from its User Agent string (it contains FBAN, FBAV, or Instagram). When you spot it, show one line on the cart and checkout pages only: “For the best checkout, tap ⋯ and open in your browser.”

One tap sends the customer to Safari or Chrome, where they convert about 7x higher. One or two days of work. A few hundred dollars, once. It pays for itself the first week and never stops.

The $111K dropdown

Their abandoned-cart emails were bringing back about $5,000 a year. The reason was one setting. The emails fired on “Started Checkout” — so they only reached people who’d made it to the final page. Everyone who dropped off earlier, at the cart, got nothing. That’s the warmest audience a store has, and the recovery emails couldn’t see them.

Abandoned-cart recovery by trigger setting — per year
Setting Orders Revenue
“Started Checkout” (theirs) ~30 $5,000
“Added to Cart” @ 3% ~374 $61,781
“Added to Cart” @ 5% ~624 $116,820
The difference between the top row and the bottom is one dropdown in Klaviyo.
The setting, side by side
✕ Theirs
Flow trigger
Started Checkout
Catches ~30 orders/yr · $5,000
✓ Fixed
Flow trigger
Added to Cart
Catches ~624 orders/yr · $116,820

None of these three were marketing failures. The ads did their job. They brought ready buyers to a store that kept turning them away at the door. That’s the signature of Way One: the loss always happens after the click — in a place the media buyer doesn’t own and the developer was never told about.

Estimate my leak — 2 minutes →

Curious if Way One is costing you money too? Plug in your own numbers.

Way Two
The money you never asked for

When buyers happily pay you — far less than they’d have paid

The second store sold kids’ clothes and did about $1.1M a year. Call it TinyTrackers. It had the opposite problem. Nothing was broken. Checkout worked. Ads were profitable at 2.94 ROAS. People bought. They just bought small — one item, over and over — and nobody had built anything to ask them for more.

Half the business was a single $99 item

Order composition — full year, 6,546 orders
1 item · $99 avg
49.8%
2 items · $189
34.1%
3 items · $287
8.4%
4+ items
7.7%
1.83 items per order. Half of all revenue is one item, bought once, and left alone.

Here’s the math that should stop you. You can run the exact same math on your own store tonight:

$293,670
3,263 single-item orders × $90 — the gap to a two-item order. That’s not a forecast. It’s the value sitting inside orders that were already placed.

The offer that lived in the ads and died on the site

Here’s what makes this Way Two and not just “low AOV.” Their best campaign ran one offer — “15% off orders over $250” — and it returned a ROAS of 4.14 against a blended 2.94. Forty percent better than everything else in the account.

ROAS 4.14
Their best offer, vs. 2.94 blended — and the website never showed it. It lived in Ads Manager and died on the homepage.

The customer clicked that ad. They landed on the site ready to hit $250 and earn the discount. And the site said nothing. No banner. No progress bar. No “add $40 more to unlock 15% off.” The most profitable offer in the whole business lived only in the ad — because the space between the ad and the site belongs to no one.

Their cart vs. the same cart with a progress bar
✕ Their cart
Cart total$189
no prompt, no nudge, nothing
Checkout
✓ With progress bar
Cart total$189
You’re $61 away from 15% off — add one more
Add one more & save
Take this — it’s yours

The cart progress bar is the highest-leverage thing most stores skip — and it’s a built-in feature on every major platform. Set a threshold just above your two-item order value. Then show a live bar on the cart: “You’re $34 away from 15% off — add one more.”

It turns the discount into something the customer unlocks instead of something you give away. And it turns your most-visited page into a salesperson that never gets tired. The proof it works is already in this store’s ad account. It just never made it onto the site.

Way Two is quieter than Way One, and meaner for it. Nothing looks wrong. Every order is a small win. The dashboard is green. The missing money never shows up as a loss — because you can’t see a second item that was never added. You only see the single-item order, sitting there looking perfectly fine.

Estimate my leak — 2 minutes →

Not sure how much Way Two is costing you? See the estimate.

Find yours — an afternoon, your own data, no one’s help required

You don’t need us to run this. You need an hour with your own numbers and the nerve to look. Seven checks, split by the two ways.

1 Cancel rate by payment method. Pull cancelled orders by method, last 12 months. If one method cancels at 2x+ the others, you have a wall where you think you have a door. Way One
2 Conversion rate by browser. In GA4, split purchases by browser. Look for “in-app,” FBAN, FBAV, or Instagram. A gap wider than 2x against Chrome/Safari is money on the floor. Way One
3 Your abandoned-cart trigger. Open the flow and read one field. Does it fire on “Added to Cart” or “Started Checkout”? If it’s the second one, you’re leaving most of the recovery behind. Way One
4 Your single-item order share. What percent of orders have exactly one item? Over 45% on a store with matching products means the second item is right there, unasked-for. Way Two
5 The $90 math. Single-item orders × (your two-item AOV − your one-item AOV). That’s your yearly gap between one item and two. Way Two
6 Your best ad offer vs. your site. Open your best campaign, read the offer, then open your site. Is the offer there too — as a banner, a bar, a prompt? If it only lives in the ad, you’re paying to make a promise your store doesn’t keep. Way Two
7 Items per order, every month. Not AOV — items. AOV hides behind price changes. Items-per-order tells you the truth: are you building baskets, or just taking single sales? Way Two

Write down what you find. Price each gap against your own AOV and margin. Some of these you can fix yourself this week — the banner, the trigger, the progress bar are all in this article, and they’re yours to take. Others go deeper, and are worth doing right.

But the fix list isn’t the point. The point is where you look. Stop watching the front door — revenue, ROAS, the numbers that are already green — and start watching the seams. Once you see it, you can’t un-see it. The money was never hiding. It was just standing somewhere no dashboard was pointed.

That’s the whole article. No form, no download, no catch.

We wrote it because these two patterns are in almost every store we open, and most founders have never had them named.

Running the seven checks by hand is the honest way to do it, and we’d rather you did. But if you’d like the shortcut — six numbers you already have on your dashboard, and a rough estimate of what each leak is costing you per year — we built a small tool that does the arithmetic for you.

Estimate my leak — 2 minutes →

Start with the afternoon if you’d rather — most of what’s leaking, you can find on your own.