When revenue softens, the instinct is to blame demand: the market, the season, the ads. Sometimes that is right. Often something is broken in a way that produces no error message, and the store has been quietly converting worse for a fortnight. These are the signals worth taking seriously, ordered from fastest-acting to slowest, with the place each one actually hides.
This is the highest-signal pattern in ecommerce and the one most likely to mean something is broken rather than demand-driven. Demand changes usually move traffic and orders together. A gap between them points at the funnel.
The usual causes, in order of likelihood: a payment gateway declining or timing out, a shipping-rate configuration that returns no rates for a region, a discount code that errors, an app script failing on the cart page, a required field that is broken on mobile, or a tax or address validation rule rejecting valid input.
Zero orders during a window that historically has orders is the strongest single signal there is, and it is unambiguous in a way that percentage drops are not. It is also the easiest to miss overnight, when it can run for eight hours before anyone opens a dashboard.
It rarely means demand vanished. It usually means checkout is broken, the store is unreachable for some customers, or a payment provider is rejecting everything.
If revenue holds but margin slips, look at prices before you look at costs. An expired sale that never came down, a repricing app applying an old rule, a bulk edit on the wrong collection, or a currency rounding drift will all sell perfectly well — that is what makes them expensive.
A sold-out product does not stop receiving traffic. Ads keep running, search results keep ranking, and the landing page keeps converting at zero. This is a signal that shows up in ad spend before it shows up in revenue reports.
Most storefront traffic is mobile and most owners browse their store on a laptop. A layout regression, a slow-loading hero image, a cumulative layout shift that moves the buy button, or an app banner covering the header will all hurt mobile only — and will be invisible in the way you personally look at your store.
Core Web Vitals are the measurable proxy: LCP for how quickly the page becomes useful, CLS for whether things move under a thumb, INP for whether taps feel responsive.
Gradual organic decline is usually structural rather than algorithmic: title tags overwritten by a theme update, canonicals pointing at the wrong URL, a noindex left on after a staging deploy, product schema removed by an app change, or a sitemap that stopped updating.
The tell is that it starts on a specific date. Demand-driven decline is gradual from the beginning; a technical cause has an edge you can find in a graph.
One support message about a broken page usually represents many silent visitors who simply left. Treat “it wouldn’t let me check out” as a monitoring finding, not an anecdote — and note the device, browser and country, because it is likely to be specific to one of them.
What Cassian™ actually does
Cassian™ compares order volume against a weighted historical baseline and raises a critical alert for a period that should have orders but has none.
Every plan, including free.
Significant-drop detection flags a period well below its expected volume, and gradual-decline detection catches a multi-hour slide that no single reading would reveal.
Significant drop on Analyst and above. Gradual decline on Protector and above.
Price changes are diffed daily against the previous catalog snapshot, with zero prices and inverted sale prices treated as critical.
Every plan with a connected store.
Core Web Vitals are measured daily for mobile and desktop separately, with 30-day trends — so a regression shows as a step change on a date.
Every plan, including free.
Missing titles, missing meta descriptions, broken heading hierarchy, missing canonicals and missing or incomplete product schema are all detected on every scan.
Every plan.
Broken internal links and missing product images are validated by HTTP request, not inferred — with blocked domains classified separately so they never count against you.
Every plan.
FAQ
Free scan, results in minutes. Zero-order alerts on every plan, including the free one.
We use cookies to keep you signed in and improve your experience. See our Cookie Policy for details.