Home›Growth & Analytics›Customer Retention Windows: Read 30, 60 and 90 Days
Growth & Analytics

Customer Retention Windows: Read 30, 60 and 90 Days

Pick a retention window from your own reorder time, then read repeat orders within 30, 60 and 90 days with tested Excel formulas.

Nitish KumarBy Nov 5, 2026  •  8 min read
inXf
Digital Drift cover: customer retention windows, three bars for 30, 60 and 90 days from the first order
Quick TakeA retention window is the number of days after a customer's first order in which you look for a second one. Choose your window from your own reorder time, count only customers old enough for that window, and read repeat orders at 30, 60 and 90 days. No benchmark was sourced, so none is given.

A retention window is the number of days after a customer's first order in which you look for a second one. "30-day retention" asks how many customers ordered again within 30 days of their first order. The window you choose changes the answer, so a badly chosen window can make a healthy store look weak, or a weak one look healthy. This post shows how to pick a window from your own reorder time and how to read repeat orders at 30, 60 and 90 days with formulas you can run in Excel. I searched for a published benchmark for any of these windows and found none with a named source and method, so I do not give one.

What is different about this metric?

Three posts on this blog look at repeat customers from different angles. Keep them apart.

Many guides report one "customer retention rate" for a calendar period. A window measured from each customer's own first order is a different thing, so always say which one you are reporting.

Why the window changes the answer

Take the same 12 customers and ask the same question with three different windows. In the example later in this post, the answer is 27.3% at 30 days, 40% at 60 days and 50% at 90 days. Nothing about the customers changed. Only the length of the wait did.

That has two consequences. First, a number like "retention is 30%" means little until you know the window and the date range behind it. Second, comparing your store with someone else's only makes sense if both use the same window and the same counting rule. Without that, you are comparing two different questions.

Step 1: Find your reorder time

Look at customers who did order a second time and see how many days passed. The middle value of those gaps is your typical reorder time. Pick windows around it. If most repeat customers come back within five weeks, a 30-day window will undercount them and a 90-day window is a better test. If your product lasts a year, even 90 days is too short to say much.

A rough guide: choose one window shorter than your typical reorder time, one close to it and one longer. With a median of 38 days, the 30, 60 and 90-day windows in this post work. With a median of 10 days, you would use 7, 14 and 30 instead. The windows are your choice. Write down why you chose them before you look at the result.

The formulas below calculate it for you.

Step 2: Build the customer table in Excel

Start from an order export. The steps use two columns that appear in Shopify's order export: Email and Created at. Shopify's help page does not show how Created at is formatted in the file, so check it in yours. If Excel treats it as text, turn it into a date in a helper column before you go on. For example, =DATEVALUE(LEFT(C2,10)) may work if the first ten characters are the date, but check a few rows by eye.

Set up two sheets

  1. Orders sheet. Column A is Email and column B is the order date, one row per order. Shopify's help page says an order with several items shows the extra items on separate lines, so use Data, then Remove Duplicates on the order number first to keep one row per order. Then delete cancelled orders.
  2. Customers sheet. Column A is each customer once. Copy the email column from Orders, then use Remove Duplicates.

First order and days to second order

In this example the orders run from row 2 to row 21 on the Orders sheet and the customers start in row 2 on the Customers sheet. Change the row numbers to match your own data. In B2 (first order date):

=MINIFS(Orders!$B$2:$B$21,Orders!$A$2:$A$21,A2)

In C2 (days from the first order to the next order on a later date):

=IF(COUNTIFS(Orders!$A$2:$A$21,A2,Orders!$B$2:$B$21,">"&B2)=0,"",MINIFS(Orders!$B$2:$B$21,Orders!$A$2:$A$21,A2,Orders!$B$2:$B$21,">"&B2)-B2)

Fill both down. Format column B as a date and column C as a number, not a date. Customers with no later order get a blank.

The formula looks for a later date, so two orders on the same day count as one purchase. That is my rule. If you want a different one, change it and keep it the same every time. I believe MINIFS needs Excel 2019 or Microsoft 365, so check your version.

Your typical reorder time is the median of column C: =MEDIAN(C2:C13). Blanks are ignored.

What the table looks like

Example, not real data. Six of the 12 customers ordered again. The other six did not.

Customer First order Days to second order
c1 5 Jan 2026 28
c3 12 Jan 2026 67
c4 1 Feb 2026 24
c6 15 Feb 2026 94
c8 5 Mar 2026 46
c10 1 Apr 2026 30

The median of these six gaps is 38 days, which is the typical reorder time used in the rest of this post.

Step 3: Read repeat orders within 30, 60 and 90 days

A customer whose first order was last week has not had 30 days yet. If you count them as "not retained", every window looks worse than it is. So for each window, count only customers whose first order is at least that many days before the day you exported the data.

Put the export date in F1, a window length in E4 (30), and use:

Customers eligible: =COUNTIFS($B$2:$B$13,"<="&($F$1-E4))

Retention within the window: =COUNTIFS($C$2:$C$13,">0",$C$2:$C$13,"<="&E4,$B$2:$B$13,"<="&($F$1-E4))/COUNTIFS($B$2:$B$13,"<="&($F$1-E4))

Repeat for 60 and 90 by changing E4.

I tested these formulas on a small sheet, and they match a separate count. Example, not real data: 12 customers, an export date of 27 October 2026, and 20 orders.

Window Customers eligible Ordered again within the window Retention
30 days 11 3 27.3%
60 days 10 4 40.0%
90 days 10 5 50.0%

The base changes from 11 customers to 10 because one customer's first order, on 20 September, is too recent for the 60 and 90-day windows. Compare the three rows with that in mind, or use only the 10 customers eligible for all three windows. For those 10, the counts are 3, 4 and 5.

Step 4: Read the shape

The three numbers together show how your repeat orders arrive over time.

  • Most of the 90-day number is already there at 30 days. Customers who return, return fast. Your reminders and offers belong early.
  • The number keeps climbing between 60 and 90 days. Your reorder cycle is slower than a month. A reminder at day 30 would be too early.
  • The three numbers are almost the same. If you sell something that lasts, this is expected. For a product that should run out, it means few customers return at all, and the cause is worth looking into.

In the example, 3 of the 5 customers who came back within 90 days did so within the first 30 days. The other two came in the second and third months. That would suggest a reminder just before the 30-day mark and another before day 60. It is a small example, so do not read more into it than that.

How many customers do you need?

I found no sourced minimum, so I will only show the arithmetic. In the example, one customer moves the 30-day rate by about 9 points and the 60 and 90-day rates by 10 points. A real store with a few hundred customers per window will move much less per customer, but a window with very few eligible customers can swing a lot from one order.

Two habits help. Always write the eligible count next to each rate, as in the table. And if a window has only a handful of eligible customers, treat its rate as a rough hint, not a result.

Step 5: Act on what you see

I cannot give you an effect size for any of these actions, so test one at a time.

  • Time a reminder before your typical reorder time. Message people only if they gave you permission. On WhatsApp, Meta requires opt-in first, as I describe in COD Order Confirmation on WhatsApp.
  • Do not judge the window by sale months. Customers acquired in a sale may behave differently. Split your result by first-order month with the free Customer Cohort Analysis Tool, or read the cohort table in Customer Cohort Analysis for Ecommerce Growth.
  • Re-measure after a change. Compare customers whose first order came after the change with those before it, using the same window and the same eligibility rule.

Common mistakes

  • Counting recent customers as lost. Use the eligibility rule in Step 3.
  • Choosing the window that looks best. Pick it from your reorder time before you look at the result.
  • Mixing windows with different bases. Note how many customers each row is based on.
  • Leaving duplicate rows in. A customer with three items in one order would look like three orders.
  • Leaving dates as text. If the days column shows errors or odd values, the dates are probably text.
  • Treating the example as a benchmark. The numbers above are made up to show the formulas.

Customer retention windows: frequently asked questions

What is a customer retention window?

It is the number of days after a customer's first order in which you look for a repeat order, such as 30, 60 or 90 days.

What is a good 30, 60 or 90-day retention rate?

I found no benchmark with a named source and method, so I do not give one. Compare your own windows over time and by first-order month.

Which window should I use?

Choose it from your own reorder time, which is the median days between first and second orders among customers who reordered.

How do I get this from Shopify?

Export your orders as in Step 2 and use the formulas here. I did not check whether any Shopify report shows retention by window.

Your action checklist

  • Export your orders and keep one row per order, without cancelled orders.
  • Build the Customers sheet with first order date and days to second order.
  • Work out your median reorder time.
  • Choose your windows from it.
  • Count only eligible customers for each window, and write the count beside each rate.
  • Read the shape, then test one change.

Your next step: Work out your median reorder time today, and choose your 30, 60 or 90-day windows only after you have seen it.

Sources: Shopify Help Center, exporting orders; Meta, get opt-in for WhatsApp.

Comments

No comments yet. Be the first to share your thoughts!

Leave a comment

Rate this article

Comments are reviewed before they appear.