Skip to content
← All posts

Published · 4 min read · By the

WooCommerce abandoned cart report: what to measure before you add recovery emails

Most advice about abandoned carts starts with the email. Install a recovery plugin, set a discount, send three messages. That skips the question that decides whether any of it is worth doing: how many carts are you actually losing, at which step, and for how much? WooCommerce already holds most of the answer. This article shows where it is and what to measure before you spend on recovery.

What WooCommerce records, and where

WooCommerce does not have a cart table you can report on. What it has is orders in statuses that mean “the shopper got this far and stopped”. The order status documentation defines them:

  • Pending payment: “The order has been received, but no payment has been made.” The shopper reached the payment step and did not complete it.
  • Failed: “The customer’s payment failed or was declined, and no payment has been successfully made.” The shopper tried to pay.
  • Cancelled: cancelled by an admin or the customer. With the Hold Stock setting on, unpaid pending orders are cancelled automatically after the time limit, so many cancelled orders are pending orders that aged out.
  • On hold: “The order is awaiting payment confirmation”, typical for bank transfer. Some of these will be paid; some never will.
  • Draft (checkout draft): “temporary checkout records used by the block-based checkout before an order is submitted”. The block checkout creates one when the shopper clicks Place Order, holds stock according to your Hold Stock setting, shows it only under the Draft sub-tab, and deletes inactive drafts in a daily cleanup.

Two consequences. First, the built-in Analytics reports exclude pending, cancelled and failed orders from totals by default, which is correct for revenue and useless for carts: the orders you want to count are precisely the excluded ones. Second, checkout drafts are deleted daily, so if you want a shipping-step abandonment figure for last month you need something that copied those records before the cleanup ran.

What WooCommerce cannot see at all is the shopper who added a product to the cart and never opened the checkout. No order exists. That step needs a script on the storefront.

The four numbers to measure first

1. Open carts and their value, by step

Count unpaid orders older than an hour (younger ones may still be paying) and sum their totals. Split them by step: cart (added, never reached checkout; needs the storefront script), shipping (a checkout draft abandoned before payment) and payment (pending, failed, cancelled, on hold). The split tells you what kind of problem you have. A pile at the shipping step is usually a delivery price or an address form; a pile at payment is a gateway, a declined card or a missing wallet option; a pile at the cart is price, trust or a coupon hunt.

2. Abandonment by hour and day

Carts abandoned at 11pm on a phone are not the same as carts abandoned at 10am on a desktop. If most of your losses happen in a narrow window, you can look at what is different then: a shipping cut-off, a support chat that is offline, an ad that brings cold traffic.

3. Products most often left behind

Rank the products in abandoned carts by count and by value. A single product that appears in a large share of abandoned carts and rarely in paid orders has a page problem, a price problem or a shipping-class problem. This is the fastest fix on the list and needs no email at all.

4. Recovery that already happens

Some shoppers come back on their own. Count paid orders from an email address that had an unpaid, checkout-started order in the previous seven days, and sum their revenue. That is your baseline recovery rate before any email. A recovery tool has to beat this, not zero.

Deciding whether a recovery email pays

With the four numbers you can do the arithmetic that plugin landing pages skip. Take the monthly value of carts abandoned at the shipping and payment steps where you captured an email address (cart-step shoppers usually have not given one). Subtract the baseline recovery that already happens. What remains is the pool an email can work on. Multiply by a recovery share you consider realistic for your store and by your margin, not your revenue: a recovered order at a 15 percent discount on a product with a 35 percent margin keeps much less than its price suggests. Compare that with the plugin’s cost, the discount cost on orders that would have come back anyway, and the time to set up the sequence.

For many stores the result is that fixing the step wins before the email does. A shipping surprise at checkout loses carts every hour; a recovery sequence gets a fraction of them back a day later. Measure first, fix the step, then measure again, and add the email when the remaining pool justifies it.

How FCAnalytics reports carts

FCAnalytics imports orders of every status through the read-only WooCommerce API every 15 minutes, including checkout drafts before the daily cleanup removes them, and reports the four numbers above on the Abandoned carts dashboard: open carts and value, the split by cart, shipping and payment step, abandonment by hour, the products most often left behind, and recovered orders and revenue using the seven-day rule. The cart step needs the optional tracking snippet; without it the screen says so and shows checkout abandonment only. The exact rules are on the methodology page.

FCAnalytics does not send recovery emails. It emails you a cart digest so you know what was lost and recovered, and leaves sending to the email tool you already use. For the recovery side, including what a sensible sequence looks like, read abandoned cart recovery for WooCommerce stores; for the screen itself, the features page.

Related guides

Written by the FCAnalytics team, the people who build the product. Definitions and formulas in this article are the ones FCAnalytics uses in its dashboards; see how net profit is calculated and the FAQ.

See this in your own store.

Connect your WooCommerce store and the numbers in this article show up with your real orders. 14-day trial, no card required.