Shopify Revenue Recovery Report: 13 settings defensible to your CFO in 2026.

By Philippe Maza, Founder Updated May 2026 22 min read Built from 50+ real scans

Most Shopify revenue losses don't come from the ads. They come from store settings that drained $5K to $15K a year each, every year, before anyone looked. This report names the 13 we keep finding. Each one is a machine-verifiable check, so your CFO can confirm the recoverable amount against your P&L without a single agency call.

See pricing

Why "CFO defensible" matters in 2026.

The agencies that win this year aren't the ones with the best pitch deck. They're the ones whose clients can defend their ad spend to a CFO each quarter without the agency in the room. That single shift changes the brief. Founders no longer need a 50-page audit. They need a setting, a screenshot, a recoverable amount, and a fix.

Every finding in this report meets the same bar. We list the setting. We tell you how to verify it in under five minutes. We give you a typical dollar range based on the 50+ Shopify stores we have scanned. And we give you the fix, so you can hand it to a dev, a VA, or your current agency without translating anything.

If a finding doesn't pass the CFO bar, it's not on this list. No vibes, no "best practices", no "industry standards". Just 13 settings you can audit against your own store today.

Setting 01 · Checkout

Checkout step count above three.

Shopify's native checkout is three steps. Information, shipping, payment. Custom themes, third-party apps, and "personalization" stacks routinely add a fourth or fifth step, sometimes more. Every extra step on mobile drops your conversion rate by 4 to 8 percent based on Baymard Institute data and our own scan corpus.

How to verify
Open your checkout on mobile in incognito. Count the screens between Cart and Order Confirmed.
Recoverable amount
$5,400 to $11,400 / yr
Fix
Remove any custom checkout extension or post-purchase upsell that adds a screen. Revert to Shopify's three-step default.
From the field

One $45K/month jewelry brand we scanned had a 7-step mobile checkout. The custom theme added an "engraving preview", a "shipping reminder", and a "review your cart" step on top of Shopify's default three. The annualized recoverable amount we surfaced was $11,400. The fix took the dev 90 minutes.

Setting 02 · Checkout

Forced account creation at checkout.

Shopify ships with three customer account options: required, optional, guest only. The default for many themes is "required", which forces every first-time buyer to create a password before paying. Conversion drops 10 to 15 percent on mobile.

How to verify
Shopify Admin → Settings → Checkout → Customer accounts. Should be "Optional" or "Guest only".
Recoverable amount
$3,000 to $9,000 / yr
Fix
Switch to "Optional". If you need accounts for subscriptions or loyalty, set "Guest only" and offer account creation post-purchase.
Setting 03 · Margin

Free shipping threshold below your AOV.

This is the most expensive misconfiguration we see. If your free shipping threshold sits below your current AOV, you are giving away margin on every order that would have crossed the line without the incentive. The fix is simple but the math is invisible until someone runs it.

How to verify
Compare your free shipping threshold to your last 90-day AOV. If the threshold is at or below AOV, you have a finding.
Recoverable amount
$3,500 to $8,000 / yr
Fix
Set the threshold to 1.15x to 1.25x your trailing AOV. Test the new threshold against a small cohort first.
From the field

One supplement brand we scanned offered free shipping above $50. Their AOV was $54. We surfaced $4,200 in annualized margin erosion on a single setting. Their CFO ran the numbers against last quarter's P&L and confirmed within an hour.

Want every setting in this report priced on your store?

The Fortis Scan runs every check listed in this report (and the rest of the playbook) on your live Shopify store. PDF report in 48 to 72 hours with a recoverable amount on every finding.

See pricing
Setting 04 · Trust

Returns policy worded as hostile.

The words you put on your returns page change your conversion rate before the customer even reaches the cart. Phrases like "all sales final", "no refunds", "no returns accepted", "store credit only" knock pre-cart conversion by 5 to 12 percent across the 50 DTC stores we have measured. We wrote a separate field note on this one because the data set was unusual.

How to verify
Read your /policies/refund-policy or /pages/returns. Look for hostile phrasing in the first 200 words.
Recoverable amount
$2,800 to $7,200 / yr
Fix
Rewrite the first paragraph to lead with what's possible (window, conditions, exceptions). Read the field note linked below for the exact rewrite template.

→ Returns policy hurting your conversion? Here's what we found scanning 50 DTC stores.

Setting 05 · Email

Klaviyo paid, zero flows live.

This is the cleanest signal in our scan corpus. The store has Klaviyo installed and billed. The flows tab is empty or every flow status reads "draft". We see it on roughly one in three stores we scan. The cost is a monthly subscription burning with zero attributed revenue, plus the email channel sitting idle.

How to verify
Klaviyo → Flows → Status filter. Count flows in "Live" status. Welcome series, abandoned cart, post-purchase are the baseline three.
Recoverable amount
$7,000 to $14,000 / yr
Fix
Activate the three baseline flows from Klaviyo's library. Customize copy later. The default templates outperform "draft" every time.
From the field

A skincare brand with $40K/mo revenue had Klaviyo on the $200/mo Pro plan. Zero flows active. We surfaced $7K/mo lost to a dead post-purchase flow alone. App installed, never configured. Customers checked out and never heard back.

Setting 06 · Email

Cart abandonment recovery disabled.

Shopify Email has a built-in cart abandonment trigger. Klaviyo, Omnisend, and every other ESP do too. Half the stores we scan have the toggle off, or the flow status set to "manual review", which means no email actually goes out. The 90-day cart recovery channel is the single highest ROI email channel for most DTC brands.

How to verify
ESP → Abandoned cart flow → Status. Should read "Live". Check the trigger fires within 1 hour of abandonment.
Recoverable amount
$2,200 to $5,500 / yr
Fix
Flip the toggle to live. Email 1 fires at 1 hour, email 2 at 24 hours, email 3 at 72 hours. Use Klaviyo's default copy until you have data.
Setting 07 · Deliverability

DMARC policy on p=none or missing.

This one your CFO loves. DMARC, DKIM, and SPF are three DNS records. Either they exist with strict policies, or they don't. If your DMARC policy reads "p=none" or the record is missing, your transactional and marketing emails get downgraded to spam, often invisibly. Gmail and Yahoo enforced this in February 2024 for senders above 5,000 emails per day. We still see it broken across the board.

How to verify
Run dig TXT _dmarc.yourdomain.com. Should return v=DMARC1; p=quarantine or p=reject. "p=none" or no record is a finding.
Recoverable amount
$1,800 to $6,000 / yr
Fix
Add a DMARC record with p=quarantine. Verify SPF and DKIM are aligned. Tools like MXToolbox give you a one-click read in 30 seconds.
Setting 08 · Tracking

Meta Pixel firing twice on Purchase.

The single most common tracking bug we surface. A second Pixel ID gets installed via an old GTM container, a Shopify app upgrade, or a theme update. Both Pixels fire on the same Purchase event. Meta's reporting dashboard now overstates ROAS by 30 to 80 percent. Your CFO sees the bloated number, your dev sees the duplicate event, nobody connects them.

How to verify
Install Meta Pixel Helper on Chrome. Trigger a test purchase. Count Purchase events fired. Should be exactly one.
Recoverable amount
Overstated ROAS by 30 to 80%
Fix
Identify the duplicate source (usually a legacy GTM tag or a Shopify app). Remove one. Verify with Pixel Helper.
Setting 09 · Tracking

Conversions API not deployed.

iOS 14 broke browser-based Pixel tracking for roughly half your conversions. Conversions API (CAPI) was Meta's server-side answer. Two and a half years later, we still find stores running Pixel-only. Match quality scores below 6 on the dashboard. Attribution credit goes to "organic" by default. Your media buyer is flying blind.

How to verify
Meta Events Manager → Your Pixel → Settings → Connection Methods. CAPI should read "Connected". EMQ should be 7+.
Recoverable amount
$3,500 to $9,000 / yr
Fix
Deploy CAPI via Shopify's native Meta channel (10-min install) or via a CAPI gateway like Stape.io for full control.

Four settings left. Want every one of them priced on your store?

The Fortis Scan covers all 13 settings in this report plus the rest of the playbook. Read-only access to Shopify, Meta, GA4, and Klaviyo. PDF in 48 to 72 hours.

See pricing
Setting 10 · Catalog

Stockout signals on live PDPs.

Products with all variants out of stock that still appear in your collection pages and accept paid traffic. The ad spend lands on a dead PDP. The customer sees "Out of stock" or "Sold out" and leaves. The Pixel still fires ViewContent, so the ad engine thinks the placement worked. Money goes to a wall.

How to verify
Shopify Admin → Products → filter "Out of stock". Cross-check against the products advertised in your active Meta campaigns.
Recoverable amount
$1,200 to $4,500 / yr
Fix
Unpublish dead variants or add a "Notify me" waitlist app like Klaviyo Back-in-Stock. Pause ads pointing at dead PDPs.
Setting 11 · Payments

BNPL enabled in payments, missing on PDP.

You enabled Klarna, Affirm, or Afterpay in Shopify Payments. The button shows up at checkout. But the "4 payments of $X" widget on the product page is missing because the theme block was never installed. Stores at AOV $80+ leave 4 to 8 percent of conversions on the table by not showing the financing option pre-cart.

How to verify
Open a PDP. Look for "or 4 payments of $X" under the price. Missing widget = finding.
Recoverable amount
$2,400 to $6,000 / yr
Fix
Install the BNPL provider's PDP widget (Klarna On-Site Messaging, Affirm Promotional Messaging, Afterpay Product Page Asset).
Setting 12 · Speed

Mobile Core Web Vitals failing real-user data.

Lighthouse scores from your dev tools mean nothing. Real-user data from the Chrome User Experience Report (CrUX) is what Google ranks on and what your actual customers experience. Mobile LCP above 2.5s, INP above 200ms, or CLS above 0.1 all hurt conversion. We see 7 out of 10 Shopify stores failing at least one threshold.

How to verify
PageSpeed Insights on your homepage and a PDP. Read the "Real Experience Score" panel, not the Lighthouse score.
Recoverable amount
$2,000 to $7,000 / yr
Fix
Compress hero images, lazy-load below-the-fold sections, defer non-critical apps. Most stores cut LCP by 40% in one dev cycle.
Setting 13 · Tracking

GA4 Purchase event missing or duplicate.

Shopify's default GA4 integration fires Purchase only on the Thank You page. Custom themes, headless setups, and post-purchase apps can fire it twice, in the wrong format, or not at all. Your CFO pulls a GA4 revenue report and the number doesn't match the Shopify report. Trust is broken from there.

How to verify
GA4 DebugView during a test order. Should fire purchase exactly once, with the correct transaction_id and value.
Recoverable amount
Reporting trust + 10 to 20% attribution loss
Fix
Use Shopify's native Google & YouTube channel for GA4. If on a custom stack, deploy server-side GTM with the right transaction_id deduplication.

13 settings. One audit.

The Fortis Scan covers every setting in this report plus the rest of the playbook (200+ checks across 20 audit categories). $1,500. Full PDF report in 48 to 72 hours after read-only access.

See pricing
Methodology

How we built this list.

This report is not based on industry surveys. It's based on the 50+ Shopify and Shopify Plus stores we have scanned with our own audit worker between February and May 2026. Each scan ran 14 automated checks on the public store, plus a manual review of the policy pages, the checkout flow on mobile, and the DNS records for email deliverability.

The dollar ranges come from a formula we publish in every scan report. Channel share times impact rate times trailing 90-day revenue. We use ranges instead of point estimates because two stores with identical settings rarely lose the same amount: AOV, category, country, and traffic mix all change the slope. A CFO can plug their own numbers into the formula and verify the claim against the P&L.

We picked the 13 settings out of a larger checklist of 32 because they share two properties. They are machine-verifiable in under five minutes. And they have shown up on at least 30 percent of the stores in our corpus. Settings that depend on subjective judgement (brand tone, photography quality, copy emotion) are not on this list, even when they matter.

Last reviewed by Philippe Maza on May 12, 2026.

About the author
Philippe Maza, Founder of Fortis Motion

Philippe Maza

Founder & lead auditor, Fortis Motion

Most agencies look at your ads. I look at your business. I kept seeing the same findings on every store I worked with, hidden between checkout, tracking, email and shipping. I built Fortis Motion to surface them and put a number on each one so the founder can defend the fix to their CFO.

Philippe Maza on LinkedIn

FAQ

What does "CFO defensible" mean for a Shopify finding?

Every finding is tied to a specific setting your CFO can verify: a DNS record, a Shopify checkout setting, a GA4 event, a screenshot of the policy page. We cite the source for every recoverable amount so finance can audit the claim against the P&L.

How long does a Fortis Scan take?

48 to 72 hours after read-only access is granted. You get a PDF report with a recoverable amount on every finding, plus an annotated screenshot for the visual ones.

What access do you need to run a Fortis Scan?

Shopify Partner read-only, Meta Ads Manager read-only, GA4 viewer, Klaviyo read-only. No write access, ever. Access is granted by you and revoked once the audit ships.

What's the typical total recoverable amount you find per store?

Across the 50+ Shopify stores we have scanned, the median total annualized recoverable amount is $40,000 to $60,000. The largest single finding we have surfaced was $11,400 a year on a single checkout setting.

What if my store doesn't run on Shopify?

Most of the 13 settings still apply if you run on BigCommerce, WooCommerce, or a headless setup. Fortis Scan itself is built for Shopify and Shopify Plus specifically. For other platforms reach out by email.

How do you price a finding on a setting?

Every finding has a formula. Channel share times impact rate times your monthly revenue. We use ranges, not point estimates, because every store is different. The formula is in the report so a CFO can plug in their own numbers.

Can I run these 13 checks myself?

Yes. Every "How to verify" cell tells you exactly where to look. Doing it manually takes about 90 minutes if you know your way around the Shopify admin and a DNS lookup tool. The Fortis Scan covers it (and the 200+ other checks in our playbook) in 48 to 72 hours.

What does a Fortis Scan deliver?

A PDF with every finding named, ranked by recoverable amount, and shown with an annotated screenshot of the problem on your store. 200+ checks across 20 audit categories. $1,500, one-time, paid up front. 48 to 72 hours after access.

Want every setting in this report priced on your store?

The Fortis Scan runs every check in this report plus the rest of the playbook on your live Shopify store. Every finding ships with a recoverable amount your CFO can defend against your P&L.

See pricing
Fortis Scan $1,500 · 48 to 72 hour delivery · No-find guarantee