A 12-Month Gross vs Net Retention Reconciliation Walkthrough For A €5M Shopify Store

Metricuno
October 23, 2026
6 min read
A 12-Month Gross vs Net Retention Reconciliation Walkthrough For A €5M Shopify Store — A 12-month worked example reconciling gross and net retention on a €5M Shopify store — cohort math, delta attribution, and the receipt your CFO wants.
Quick answer

Step-by-step reconciliation of 12-month gross and net retention on a €5M Shopify dataset, with the delta attributed to AOV expansion, cross-category purchases, and discount depth.

Quick answer

On a €5M Shopify store, compute 12-month gross retention from cohort order counts (how many of last year's buyers bought again) and 12-month net retention from cohort revenue (how much revenue those same buyers produced vs last year). The gap between the two numbers is explained by AOV expansion, cross-category purchases, and discount depth — and once you attribute every point of delta to one of those three, both numbers are provably right.

Definition
Retention analytics

12-Month Gross vs Net Retention Reconciliation (€5M Shopify)

A worked procedure for computing, comparing, and reconciling 12-month gross and net retention on a mid-size Shopify store's cohort data.

A reconciliation walkthrough takes last year's buyer cohort on a €5M Shopify store and runs two parallel calculations: gross retention from order counts (buyer-level repeat rate) and net retention from revenue (euros this year ÷ euros last year, same cohort). The two numbers almost never match. The walkthrough's job is to close the gap by attributing each point of delta to a specific commercial lever — basket expansion, cross-category buying, or deeper discounting — so finance can trust both figures and treat the delta itself as a signal, not a rounding error.

Also known as
GRR/NRR reconciliation
cohort retention bridge

The scenario: a Berlin-based apparel store on Shopify, €5.1M in trailing-12-month revenue, roughly 42,000 orders, no subscription SKUs, standard refund rate around 6%. The 2023 buyer cohort is 18,400 unique customers who placed at least one order between Jan and Dec 2023.

You want to know how that cohort behaved in 2024 — both as bodies (did they come back?) and as euros (did they spend more or less?). Below is the full reconciliation with real-feeling numbers.

Step 1 — Pull the two cohort tables

You need two tables keyed on the same cohort of 18,400 customers: an order-count table (how many of them placed ≥1 order in 2024) and a revenue table (gross merchandise value they generated in 2024 vs 2023, net of refunds). Shopify's Customers export plus the Orders API gets you there without a warehouse — see pulling 12-month cohort tables from Shopify for the exact query.

Decide upfront how refunds and chargebacks flow through each number. The convention most finance teams use: refunds reduce revenue (so they hit NRR directly) but a refunded order still counts as a retained buyer for GRR. If you don't lock this policy in before you start, the two numbers will drift against each other for reasons that aren't commercial.

Separate subscription cohorts first

If any portion of the €5M comes from recurring SKUs (even 10%), split subscription buyers out and reconcile them separately. Subscription cohorts have mechanically higher GRR and NRR and will mask whatever the one-time-buyer cohort is actually doing.

Step 2 — Compute 12-month gross retention

Of the 18,400 customers in the 2023 cohort, 6,440 placed at least one order in 2024. Gross retention = 6,440 / 18,400 = 35.0%. That's the buyer-level repeat rate: a little over one in three came back within 12 months.

For a €5M apparel store with no subscription, 35% is roughly in line with the 28–38% band most Shopify fashion brands land in. Beauty and consumables tend to run higher (45–55%); furniture and one-off purchases run lower (12–20%).

GRR has a hard ceiling of 100% by construction — a customer either came back or didn't. It cannot expand. That's the whole reason you also need NRR.

Step 3 — Compute 12-month net retention and the delta

Benchmark

The reconciliation receipt — 2023 cohort, measured through 2024

Line itemValueContribution to NRR
Cohort size (unique 2023 buyers)18,400 customers—
2023 revenue from the cohort€2,760,000baseline (100.0%)
Returning buyers in 20246,440 customersGRR = 35.0%
2024 revenue from the cohort (net of refunds)€1,215,000NRR = 44.0%
Base retention effect (GRR × prior AOV)€966,00035.0%
AOV expansion on returning buyers (+18%)+€174,000+6.3%
Cross-category purchases (new SKU lines)+€112,000+4.1%
Discount-depth drag (promo-funded revenue)−€37,000−1.3%
Reconciled NRR€1,215,00044.0% ✓

The delta between 35.0% GRR and 44.0% NRR is 9 percentage points. The receipt attributes +6.3 points to returning buyers spending more per order, +4.1 points to those buyers purchasing from categories they didn't touch in 2023, and −1.3 points of drag from the fact that a chunk of that incremental revenue was bought with promo codes. The components sum to +9.1, which rounds back to the observed 9.0-point gap. The numbers tie.

Step 4 — Attribute every point of the delta

Attribution is the step that turns a reconciliation into a decision tool. AOV expansion is easy: compare returning buyers' 2024 AOV (€95) to their 2023 AOV (€80.50). Cross-category is harder — tag each 2024 order with the SKU categories bought, then flag orders containing at least one category the customer didn't buy from in 2023.

Discount depth is the one most teams skip. Sum the discount amount applied to every returning-buyer order in 2024, divided by that cohort's gross 2024 revenue. On this store it's 11.2% — meaning roughly €136k of the €1.215M was discount-funded. Our receipt only booked the incremental promo-funded revenue (−€37k) as drag; the full picture lives in the discount-depth-drag breakdown.

Step 5 — Read the number as a CAC signal

An NRR of 44% on a 35% GRR means your returning buyers are worth about 1.26× what they were last year, per retained buyer. That's a meaningful tailwind — enough to lift the paid CAC ceiling by roughly the same ratio on acquisition cohorts you expect to behave similarly. The playbook for turning this into a bid cap is in reading the reconciled delta as a CAC signal.

Hand the one-page reconciliation receipt to finance before you touch the media plan. The CFO version strips the methodology and shows only the attribution line items, the delta, and the implied LTV multiplier.

Frequently asked

Frequently asked questions

They're the same metric when measured on the same cohort over the same window. If they disagree, you're almost certainly using different cohort definitions — repeat purchase rate is often computed on all-time buyers rather than a specific annual cohort. Lock the cohort first, then the two numbers tie.

Standard practice: refunds reduce NRR (they're real euros out the door) but a refunded buyer still counts as retained in GRR. The exception is full-order cancellations before fulfilment, which many teams exclude from GRR entirely. Pick a policy and document it on the receipt.

It's roughly average. Mid-size fashion stores typically land between 38% and 55% on 12-month NRR without subscription. Beauty and consumables run 60%+ because of natural replenishment. The absolute number matters less than the GRR-to-NRR delta — a 9-point positive delta is healthy.

SaaS NRR benefits from automatic renewal and seat expansion — the customer has to actively churn. In e-commerce every repeat purchase is a fresh decision, so NRR above 100% requires both high repeat rates and significant AOV expansion. See why SaaS 120% NRR doesn't translate to DTC for the full breakdown.

No. Shopify's Customers CSV export plus a Google Sheet handles a €5M store cleanly. You'll want the Orders API only if you need line-item category tags for the cross-category attribution step. The pulling 12-month cohort tables guide walks through the no-warehouse version.

For a 2023 cohort reconciliation, only their 2023 behaviour defines them as cohort members. Their 2022 spend is irrelevant to this calculation. If you want to analyse multi-year loyalty, run a separate cohort analysis — don't mix the two.

AOV expansion is a returning buyer spending more within categories they already bought from. Cross-category is a returning buyer purchasing from a category they didn't touch last year. You need SKU-to-category tags on every order to distinguish them — otherwise all the delta collapses into AOV.

Annually is the right default for a €5M store. Monthly cohort reconciliation adds noise (small cohorts, seasonal distortion) without adding insight. If you want trending, run a 12-month rolling reconciliation that advances one month at a time, not a fresh monthly cohort.

Treat the incremental promo-funded revenue (revenue that wouldn't have happened at full price) as drag on NRR, because it inflates the top-line number without reflecting commercial strength. Baseline promo activity that matches last year's intensity is neutral. The discount-depth drag page covers the quantification.

A one-page receipt with four blocks: cohort definition, GRR calculation, NRR calculation, and the attribution bridge showing how the delta decomposes into AOV, cross-category, and discount-depth components. The one-page reconciliation receipt template is the format most finance teams accept without pushback.

See Metricuno on your data

Bring your stack — Google Analytics, Stripe, a CRM, anything — and we'll walk through the metric tree that turns your funnel into one number.