# Cart Abandonment Revenue Calculator and Recovery Margin Model

> Model a suppression-aware cart-recovery sequence, distinguish reachable carts from gross abandonment, calculate recovered orders and collected revenue, subtract every declared cost, and compare low, base, and high scenarios without describing abandoned opportunity value as guaranteed lost revenue.

- **Canonical page:** [https://emailbump.com/tools/cart-abandonment-revenue-calculator](https://emailbump.com/tools/cart-abandonment-revenue-calculator)
- **Interactive tool:** [Open the cart abandonment revenue calculator](https://emailbump.com/tools/cart-abandonment-revenue-calculator)
- **Primary funnel:** cart starts → completed orders → abandoned carts → contactable carts → delivered messages → recovered orders
- **Economics:** AOV, discount, COGS, processing, fulfillment, messaging, and fixed program cost
- **Sequence rule:** recovered carts leave every later send audience
- **Scenarios:** low, base, and high step-rate multipliers
- **Exports:** recovery brief, next actions, sequence CSV, and analysis JSON
- **Privacy:** aggregate funnel and cost inputs remain in the browser

## What this calculator answers

The tool answers:

1. How many carts were abandoned inside one reporting scope?
2. What percentage of started carts did not complete?
3. How many abandoned carts can enter the recovery sequence?
4. How many message attempts and deliveries does each step produce?
5. How many carts does each step model as recovered?
6. How many recovered orders remain after suppressing earlier recoveries from later sends?
7. What gross sales and collected revenue do those orders represent?
8. How much value is removed by discounting?
9. What product, processing, fulfillment, messaging, and fixed costs apply?
10. What net contribution remains?
11. How many recovered orders are needed to cover program cost?
12. How sensitive are orders and contribution to lower or higher step rates?

It does not prove:

- that every abandoned cart would otherwise have purchased;
- that modeled recovered orders are incremental;
- that email caused a later order;
- that the declared step rates will persist;
- that contactability, delivery, AOV, margin, or cost is stable;
- or that a generic abandonment benchmark applies to the business.

Use a randomized or defensible comparable holdout to estimate causal lift.

## An abandoned cart is not booked revenue

A cart can be abandoned because of:

- comparison shopping;
- price or shipping cost;
- unavailable payment methods;
- trust concerns;
- account creation;
- checkout errors;
- inventory;
- delivery timing;
- distraction;
- cross-device behavior;
- duplicate sessions;
- bot or internal activity;
- low intent;
- or a decision to return naturally later.

Multiplying abandoned carts by average order value produces gross opportunity value.

It does not produce a defensible “lost revenue” claim.

The calculator does not use gross abandoned opportunity as the primary result. It moves through reachability, delivery, sequential recovery, and cost before reporting contribution.

## Funnel input contract

### Reporting window

Cart starts, completed orders, current recovered orders, and program costs must describe the same time window.

Examples include:

- 7 days;
- 28 days;
- 30 days;
- a calendar month;
- or a campaign-specific launch window.

Do not compare a 30-day recovery plan with a seven-day current count without normalization.

### Cart starts

A cart-start definition can mean:

- first add-to-cart event;
- cart page view;
- checkout started;
- checkout identity captured;
- or another analytics event.

Choose one and preserve it.

Bots, duplicates, staff traffic, restored sessions, and cross-device behavior can change counts.

### Completed orders

Completed orders must use the same:

- time window;
- identity rule;
- currency scope;
- market scope;
- device policy;
- attribution timing;
- and test-traffic exclusions.

The interface rejects completed orders greater than cart starts.

### Abandoned carts

```text
abandoned carts = cart starts - completed orders
```

### Cart abandonment rate

```text
cart abandonment rate =
  abandoned carts / cart starts
```

The calculator compares this rate with a user-declared house review line.

That line is an internal decision rule, not an industry certification.

Segment the rate before acting.

Useful dimensions include:

- mobile versus desktop;
- browser;
- acquisition source;
- geography;
- new versus returning;
- product category;
- basket value;
- shipping method;
- payment method;
- coupon use;
- checkout error;
- inventory state;
- and logged-in versus guest.

## Contactable carts

Not every abandoned cart can or should receive a message.

The contactable percentage should reflect:

- identity capture;
- consent;
- suppression;
- unsubscribe state;
- bounce state;
- jurisdiction;
- frequency policy;
- channel eligibility;
- and operational exclusions.

```text
contactable carts =
  abandoned carts × contactable percentage
```

The calculator starts the sequence with this population.

It does not assume that unknown or ineligible carts can be recovered by email.

## Delivery

Each step applies the declared delivery rate to its attempted audience:

```text
delivered at step =
  attempted at step × delivery rate
```

The model applies the same delivery rate to every step.

If steps or segments have materially different delivery performance, use separate plans or replace the assumption with a weighted estimate.

Delivery is not inbox placement.

A delivered message can still land in spam, be filtered, arrive late, or remain unseen.

## Sequential recovery

Each message has:

- a name;
- delay in hours;
- and recovery rate among delivered carts still unrecovered.

For each step:

```text
step recovered orders =
  step delivered carts × step recovery rate
```

Then:

```text
next attempted audience =
  current attempted audience - step recovered orders
```

This creates suppression-aware sequence math.

A cart recovered after the first reminder does not remain in the second or third modeled audience.

That prevents one modeled order from being counted at every step.

Operational systems should also suppress on:

- completed order;
- unsubscribe;
- complaint;
- hard bounce;
- invalid address;
- inventory change;
- cart expiration;
- consent change;
- and customer-service resolution where applicable.

## Step recovery-rate definition

The rate belongs to delivered carts that:

- reached the step;
- remained unrecovered;
- and were still eligible.

It is not:

- open rate;
- click-through rate;
- conversion rate among clicks;
- recovery rate among all abandoned carts;
- or causal incremental lift by default.

Preserve the denominator with every step.

If reported platform metrics use a different denominator, convert them before using the model.

## Scenario multipliers

The base case uses every step rate as entered.

The low case multiplies each step rate by:

```text
low multiplier / 100
```

The high case multiplies each step rate by:

```text
high multiplier / 100
```

The resulting rate is capped at 100% for a step.

These are sensitivity scenarios.

They are not:

- confidence intervals;
- probability distributions;
- forecasts;
- or evidence of statistical significance.

Use a range that reflects uncertainty in the actual program.

## Recovered orders

Total modeled recovered orders equal the sum of step recoveries.

```text
recovered orders =
  sum(step recovered orders)
```

Recovery rate among contactable carts is:

```text
recovery rate =
  recovered orders / contactable carts
```

This rate remains a model input transformation unless the step rates come from comparable observed data.

## Average order value

Gross recovered sales are:

```text
gross recovered sales =
  recovered orders × average order value
```

AOV should match the recovered-order population when possible.

Recovered carts can differ from all orders by:

- basket size;
- product mix;
- coupon use;
- shipping;
- tax;
- geography;
- and customer type.

If the recovery population has a different AOV, use that value.

Be consistent about whether shipping and tax are included.

## Discount cost

```text
discount cost =
  gross recovered sales × discount percentage
```

```text
collected revenue =
  gross recovered sales - discount cost
```

The model applies one average discount to every modeled recovered order.

If only later steps use a discount, this simplification can overstate cost for early full-price recovery or understate discount dependency for late recovery.

Create separate plans or use a weighted average when the difference matters.

Discounting can:

- improve conversion;
- train customers to wait;
- reduce full-price behavior;
- change returns;
- alter product mix;
- and attract low-quality orders.

Monitor more than immediate revenue.

## Gross margin and product cost

Gross margin percentage determines product cost:

```text
COGS =
  gross recovered sales × (1 - gross margin percentage)
```

COGS is applied to the undiscounted merchandise value because a discount changes collected revenue, not the underlying product cost.

Confirm whether the declared gross margin already includes:

- pick and pack;
- payment fees;
- shipping subsidy;
- returns;
- customer service;
- warehousing;
- duties;
- or other variable costs.

Avoid double-counting.

## Payment processing

```text
processing cost =
  collected revenue × processing percentage
  + recovered orders × fixed processing fee
```

The rate may vary by:

- payment method;
- market;
- card type;
- currency;
- platform;
- subscription status;
- and refund behavior.

Use a weighted realized rate when practical.

## Incremental fulfillment

```text
fulfillment cost =
  recovered orders × incremental fulfillment cost per order
```

Use this field for variable cost not already included in gross margin.

Examples can include:

- extra pick and pack;
- packaging;
- shipping subsidy;
- fraud review;
- or incremental customer-service handling.

Set it to zero if those costs are already included elsewhere.

## Messaging and fixed program cost

Message attempts fall as earlier carts recover:

```text
message attempts =
  sum(step attempted audiences)
```

```text
messaging cost =
  message attempts / 1,000 × message cost per 1,000
```

Program cost is:

```text
program cost =
  messaging cost + fixed program cost
```

Fixed program cost can include:

- creative;
- engineering;
- QA;
- analytics;
- operations;
- approvals;
- localization;
- experimentation;
- or allocated platform cost.

Do not include costs already represented elsewhere.

## Product and order costs

```text
product and order costs =
  COGS
  + processing cost
  + incremental fulfillment cost
```

## Net contribution

```text
net contribution =
  collected revenue
  - product and order costs
  - messaging cost
  - fixed program cost
```

Contribution margin on collected recovery revenue is:

```text
contribution margin =
  net contribution / collected revenue
```

This is not company net income.

It is an incremental planning contribution based only on declared inputs.

## Program ROI

The interactive result reports:

```text
program ROI =
  net contribution / program cost
```

This ratio can be large when messaging cost is small.

Preserve the denominator and do not compare it with a platform metric that uses a different investment definition.

The discount, product cost, processing, and fulfillment are already removed before contribution is divided by program cost.

## Unit contribution

Unit net sales are:

```text
unit net sales =
  AOV × (1 - discount percentage)
```

Unit product cost is:

```text
unit COGS =
  AOV × (1 - gross margin percentage)
```

Unit processing cost is:

```text
unit processing =
  unit net sales × processing percentage
  + fixed processing fee
```

Unit contribution before program cost is:

```text
unit contribution before program =
  unit net sales
  - unit COGS
  - unit processing
  - incremental fulfillment per order
```

If this value is non-positive, more recovered orders cannot cover the fixed and messaging program cost under the declared economics.

## Break-even recovered orders

When unit contribution is positive:

```text
break-even orders =
  ceil(base-case program cost / unit contribution before program)
```

Break-even share is:

```text
break-even share =
  break-even orders / contactable carts
```

Messaging cost itself depends slightly on earlier recovery because recovered carts leave later steps. The model uses base-case program cost for the displayed break-even approximation.

For high-stakes decisions, solve the full sequence iteratively at the target step rates.

## Current recovered-order comparison

The tool subtracts a declared current recovered-order count from the base modeled orders.

```text
modeled order change =
  base modeled recovered orders - current recovered orders
```

This is descriptive.

It is not causal lift because:

- demand can change;
- traffic mix can change;
- seasonality can change;
- natural returns can change;
- other channels can contribute;
- attribution windows can change;
- and measurement can change.

Use a holdout.

## Incrementality and holdouts

A strong experiment randomly assigns eligible abandoned carts to:

- the recovery sequence;
- or a no-message or business-as-usual control.

Keep:

- eligibility;
- time window;
- attribution;
- inventory;
- pricing;
- and checkout experience comparable.

Measure:

- incremental completed orders;
- incremental collected revenue;
- incremental contribution;
- unsubscribes;
- complaints;
- delivery;
- returns;
- repeat purchase;
- and cross-channel effects.

Do not call every order after a message incremental.

## Sequence timing

Delay hours are documented and exported, but the calculator does not optimize timing.

Timing should account for:

- product consideration cycle;
- perishability;
- inventory;
- urgency;
- timezone;
- customer expectation;
- cross-channel contact;
- quiet periods;
- and support availability.

The fastest message is not automatically the best message.

## Invalid and edge cases

### Completed orders exceed cart starts

The funnel definitions do not reconcile.

### Zero cart starts

Abandonment rate has no usable denominator.

### Zero contactable percentage

The sequence produces no attempts or recoveries.

### Zero delivery

Attempts can occur but no delivered-cart recovery is modeled.

### Step recovery above 100%

The input is invalid.

### High multiplier creates a rate above 100%

The scenario caps that step at 100%.

### Discount exceeds gross margin percentage

This does not automatically prove negative contribution because the percentages have different bases and other inputs matter, but it is a strong review signal.

### Zero fixed and messaging program cost

Contribution remains interpretable. Program ROI has no cost denominator.

### Negative contribution

The model can show recovered sales and negative contribution at the same time.

That is a feature, not an error.

### Reversed low and high multipliers

The tool calculates them as entered and reports a warning.

## Recommended operating workflow

1. Define the cart-start event.
2. Reconcile completed orders in the same window.
3. Exclude bots, tests, and known duplicates.
4. Calculate abandonment.
5. Segment the funnel.
6. Define contactable and eligible carts.
7. Record delivery performance.
8. Add sequence steps in operational order.
9. Use recovery rates with documented denominators.
10. Verify suppression after order, opt-out, complaint, bounce, and inventory change.
11. Add AOV and gross margin for the recovery population.
12. Add discount, processing, fulfillment, messaging, and fixed program costs.
13. Review unit contribution.
14. Review break-even.
15. Set low and high sensitivity cases.
16. Export the assumptions.
17. Run a comparable holdout.
18. Measure incremental orders and contribution.
19. Monitor customer and deliverability outcomes.
20. Update the model with observed evidence.

## Questions for a recovery review

- What event defines a started cart?
- Are completed orders in the same scope?
- How are duplicate and cross-device carts handled?
- Which carts are contactable and consented?
- Does the sequence suppress immediately after purchase?
- Are step rates based on delivered remaining carts?
- Which steps use discounts?
- Is recovery AOV different from overall AOV?
- Which costs are already inside gross margin?
- Are returns and fraud material?
- What is the holdout design?
- What attribution window is used?
- How are email, SMS, ads, and natural return separated?
- Which customer outcomes could make the program harmful?

## Related tools and guidance

- [Email frequency calculator](https://emailbump.com/tools/email-frequency-calculator.md)
- [SaaS email ROI calculator](https://emailbump.com/tools/saas-email-roi-calculator.md)
- [Email list growth calculator](https://emailbump.com/tools/email-list-growth-calculator.md)
- [Email unsubscribe rate calculator](https://emailbump.com/tools/unsubscribe-rate-calculator.md)
- [Email deliverability score](https://emailbump.com/tools/email-deliverability-score.md)
- [Email A/B test calculator](https://emailbump.com/tools/email-ab-test-calculator.md)
- [Email automation definition](https://emailbump.com/glossary/email-automation.md)
- [Segmentation definition](https://emailbump.com/glossary/segmentation.md)
- [Suppression list definition](https://emailbump.com/glossary/suppression-list.md)
