Inside a Fortis Scan: 28 findings, $46K in annual recoverable amount, 48 to 72 hour delivery.
This page walks through a sample Fortis Scan report so you can see what the deliverable looks like before you book yours. The brand and the numbers are illustrative for a jewelry store in the GCC region at $1 to $3M in annual revenue. The structure, methodology, and finding format match what you receive after a real engagement.
Issues found
28
Estimated annual recoverable
$46,000
Turnaround
5 days
Context
The store sells jewelry online to a GCC customer base. The brand has been on Shopify for three years and grew primarily through organic channels: SEO, content, and social. The team uses Klaviyo for email. Meta Ads were tested for the first time in the trailing 12 months at a small budget. The founder reached out after a six month plateau on revenue. Organic traffic kept growing but the topline would not move past a specific monthly number. The early Meta test was promising on paper but the team could not tell whether the reported ROAS was real. The founder suspected the limit was not at the top of the funnel but somewhere inside the store.
The store sits in a $1 to $3M ARR bracket. We were given read only access to Shopify, Klaviyo, Meta Ads Manager, and GA4. NDA was signed before any access.
How we estimate. Every dollar figure below comes with the method behind it. We use one of four phrasings: estimated from baseline benchmarks, estimated from the store's own data, estimated from industry deltas, or observed gap with no projection. We never write "we would recover" or "we would lift". We cite what we observed and the formula that turned the observation into a range. Read the full methodology.
Finding 01
$11,400/yr · Checkout had seven steps on mobile
What we observed
The mobile checkout flow took the buyer through seven distinct screens between Add to Cart and Order Confirmed. The cart screen, the shipping address screen, the shipping method screen, the billing address screen, the payment selection screen, the payment method screen, and the confirmation screen. Baymard Institute documents that mobile checkout completion drops sharply as the number of steps rises beyond what is standard for the vertical.
Estimated annual recoverable$11,400
How we estimated it
Estimated from industry deltas. We took the gap between the store's observed mobile checkout completion rate and the Baymard documented baseline for mobile checkout completion, then applied it to the 12 month mobile session volume. Mobile sessions were 68% of total traffic in the trailing 90 days. The specific Baymard figure used is cited inside the finding so the calculation can be re checked.
Fix
Move to Shopify Checkout Extensibility on the latest API version.
Collapse shipping and billing address into one screen with the standard "same as shipping" checkbox.
Move shipping method selection to the same screen as the cart.
Expose Apple Pay and Google Pay as one tap purchase options on the cart screen, gated to mobile.
Finding 02
$8,700/yr · Klaviyo flows installed but never activated
What we observed
The Klaviyo account was active and billed at the tier above the free plan. Eight flows were installed in the account: welcome series, abandoned cart, browse abandonment, post purchase, winback at 30, winback at 90, replenishment at 45, and a VIP early access flow. Every flow was in Draft status. Zero of them were live. The flows had been sitting in Draft for at least four months based on Klaviyo's audit log.
Estimated annual recoverable$8,700
How we estimated it
Estimated from baseline benchmarks. Klaviyo publishes email attributed revenue benchmarks by industry. When an active account is in the published band and the store reports 0%, the gap is applied to the 12 month revenue baseline from Shopify, using the conservative low end of the band. The exact band cited and its publication date are named inside the finding so the calculation can be re checked.
Fix
Move every drafted flow to live in this order: welcome, abandoned cart, browse abandonment, post purchase.
The other four can wait. Welcome series alone tends to carry half the email attributed revenue for stores at this stage.
Set sending limits per flow to avoid double touching the same buyer.
Finding 03
$4,200/yr · Flat shipping rate eroded margin under the AOV
What we observed
The store charged a flat $4.99 shipping rate to every GCC destination. Outbound shipping costs to UAE addresses ran at $7.20 on average, based on the last 90 days of fulfillment receipts. Outbound to Saudi addresses ran at $9.10. Orders below an $80 cart total were losing margin on the shipping line itself before any other cost.
Estimated annual recoverable$4,200
How we estimated it
Estimated from the store's own data. We took the weighted average shipping margin gap per order in the under $80 bracket, then multiplied it by the number of orders in that bracket over 12 months.
Fix
Move shipping pricing to weight or cart total tiers.
Set a free shipping threshold at $90 to nudge AOV above the loss zone.
Reprice the under $80 bracket at $7.99 to break even.
Keep the $4.99 rate only for cart totals above $120 where the margin recovers from the product line.
Finding 04
$3,600/yr · Meta purchase pixel fired twice on confirmed orders
What we observed
We reproduced a duplicate Purchase event firing on a single confirmed order in Meta Events Manager. The first event fired client side from the Shopify thank you page script tag. The second event fired server side from the Meta Conversions API integration, with a different event ID. The deduplication key was not being set consistently across the two paths. Reported ROAS on the Meta test was inflated by 22% based on a sample of 17 reproducible orders.
Estimated annual recoverable$3,600
How we estimated it
Estimated from the store's own data, framed as protective rather than recovery. The team planned to scale Meta spend over the next two quarters based on the test ROAS. We took the 22% inflation, applied it to an assumed scaling budget consistent with the test trajectory, and reported the projected misallocation. With the pixel fixed before scaling, the figure stays on the table instead of leaving it.
Fix
Standardize on Meta Conversions API only.
Remove the client side Purchase pixel from the Shopify thank you page.
Set the event ID at the order confirmation level so any duplicate firing path can be deduplicated downstream.
Verify the fix in Meta Events Manager Test Events for at least 20 reproducible orders before scaling spend on top performing campaigns.
Findings beyond the top four
Twenty four more findings landed in the report. They covered post purchase upsell offers absent on the order confirmation page, a Shopify "Out of stock" handling pattern that kept hiding variants instead of showing back in stock dates, a Klaviyo sign up form that captured emails but did not pass the consent timestamp, OG tags missing on three product collection pages, a privacy policy page that had not been updated since the GDPR deadline, and twenty other items spread across image weight, schema markup, cart attribute persistence, and tax setup.
Each one was documented in the full report with the same four block structure as the four above. Each one carried a fix and a revenue figure or an explicit "no projection" label when no defensible number could be estimated.
What you get
The deliverable is the same on every Scan engagement.
A PDF report listing every finding ranked by estimated annual impact, each one with an annotated screenshot of the problem on the store and the reasoning behind the estimate.
A written proposal with three options: Scan only at $1,500, Seal at $2,500 to implement every in scope fix in 7 business days, or Scale at $2,500 every four weeks plus 10% of Meta attributed sales for ongoing media buying after the fixes ship.
No call required at any point. Everything is delivered by email.
Book a Fortis Scan.
The Fortis Scan at $1,500 runs 200 plus checks across your stack and produces a report like the one above, with a recoverable amount attached to every finding. Full PDF report delivered in 48 to 72 hours after read-only access.
About this page. This walkthrough is illustrative and not a real client engagement. The numbers are representative ranges for a jewelry brand at this scale, not amounts pulled from a specific store. Real anonymized client case studies will land on this site as engagements complete and as explicit permission is granted. Numbers do not transfer one to one between stores. The brackets hold across the category, the specific values depend on the data inside each store.