Skip to main content
Returning Customer CM1 is the gross margin, in dollars, from repeat orders: everything a customer buys after their first order, minus discounts, refunds, and product cost.

Formula

RC CM1 = RC Net Revenue − RC COGS − RC Other COGS

Formula Components


How It Works

For every Shopify customer, Upstack finds the earliest non-cancelled order it has on record. That one order is the new customer order. Every other order from that customer is a returning customer order, including a second order placed the same day. Orders with no customer attached are in neither group. RC CM1 sums gross revenue, discounts, refunds, product cost, and COGS-category order fees across those returning orders. Subscription renewals that come through as Shopify orders for the same customer count here too. Upstack recalculates the flags on all of a customer’s orders whenever it processes new orders for that customer.

Example

A beauty brand with an active loyalty program, one month: RC net revenue is $151,360. New customers produced $109,600 of net revenue and $41,000 of CM1 the same month. So returning customers bring 58% of net revenue but 68% of gross margin. Repeat buyers are where this store’s margin comes from.

How to Interpret It

RC CM1 is gross margin you didn’t have to pay to acquire this period. Its size relative to NC CM1 tells you how dependent the business is on new customer acquisition.
  • Growing faster than RC net revenue means repeat buyers are trading up to higher-margin products or receiving smaller discounts.
  • Flat while returning orders grow points at loyalty discounts or a shift to lower-margin replenishment items.
  • Falling after a promo usually means sitewide discounts went to customers who would have bought anyway.
For acquisition decisions, RC CM1 is the payoff side of the equation. Compare the RC CM1 a cohort generates over time with what you paid to acquire it.

Common Pitfalls

  • Missing history. If Upstack doesn’t have a customer’s earlier orders, their next order is classified as a first order and RC CM1 is understated. This is most visible right after setup.
  • Missing product costs inflate RC CM1. Set Default COGS % in Cost settings as a fallback.

FAQ

Any order from a Shopify customer that isn’t their earliest non-cancelled order in Upstack. It doesn’t matter how long ago the first order was or whether it falls in your selected range.
No. Shipping and payment fees come off at RC CM2, and ad spend at RC CM3.

See all Contribution Margin metrics →