Blog / Product Brand Operations

Remind Wholesale Accounts to Reorder

By Keyona Meeks, Founder, ReRev Labs · Oct 31, 2026 · 8 min read

The short answer: For each wholesale account, keep the date of the last order and how many days they usually take to reorder. A formula adds the two to get the next expected order date. Another shows a status: Not due, Due soon, Overdue, Reminded, No orders yet or Set cycle days. A third drafts a short reminder for the accounts that are due. A person sends it and types the date into the Reminded on column. I tested the formulas in LibreOffice with made-up accounts, not in Google Sheets. The cycle length is your estimate. The sheet does not know what is going on at the store.

By the end of this post, you'll be able to:

  • Set up a sheet that predicts when each account should reorder.
  • See which accounts are due soon or overdue.
  • Draft the reminder from the row, and not send it twice.
  • Know what the prediction cannot see.

We sell operations builds for product brands, so weigh this post with that in mind. The sheet below needs no script.

What columns does the sheet need?

Make a tab named Accounts with these headings in row 1:

ColumnHeadingWhat goes in it
AAccountThe store or company
BFirst nameYour contact's first name
CEmailTheir email
DLast orderDate of the latest order
ECycle daysHow many days they usually take between orders
FReminded onThe date you last sent a reminder, blank if never
GNext expectedFormula
HStatusFormula
IMessageFormula

In N1 type Remind this many days before and in N2 type 7. That is a setting, and it is my starting number.

Cycle days is your estimate for each account. You can work it out from their last few orders, or ask them. I do not compute it in the sheet, because a new account has no history and an account that changed its habits needs a person to say so.

Which formulas do the work?

In row 2:

G2: =IF(OR(D2="",E2=""),"",D2+E2)
H2: =IF(A2="","",IF(D2="","No orders yet",IF(E2="","Set cycle days",IF(AND(F2<>"",F2>=D2),"Reminded",IF(TODAY()>G2,"Overdue",IF(TODAY()>=G2-$N$2,"Due soon","Not due"))))))
I2: =IF(OR(H2="Due soon",H2="Overdue"),"Hi "&B2&", it has been "&(TODAY()-D2)&" days since your last order. Want to put together your next one? Reply with what you need and we will confirm availability.","")

Fill them down. What each does:

  • Next expected adds the cycle to the last order date.
  • Status checks in order. An account with no order date says No orders yet. One with no cycle says Set cycle days. If you reminded them on or after their last order, it says Reminded, so you never nag twice for the same cycle. Otherwise it says Overdue past the expected date, Due soon inside your window, and Not due before that.
  • Message appears only for Due soon and Overdue. It names the contact and counts the days since the last order. It makes no promise except to confirm availability.

When the account places a new order, update Last order. The Reminded flag then clears on its own, because the reminder date is now older than the order. That starts the next cycle.

What did the test show?

I tested the formulas in LibreOffice with nine made-up accounts dated around the day I ran it, and a 7-day window. An account 5 days past its expected date showed Overdue, with the draft message reading "Hi Ana, it has been 50 days since your last order." An account 5 days before its date showed Due soon. An account 10 days into a 45-day cycle showed Not due. An account reminded after its last order showed Reminded. An account whose only reminder was older than its last order showed Overdue again. An account with no order showed No orders yet, and one with no cycle showed Set cycle days. A blank row stayed blank. An account exactly 7 days before its date showed Due soon, so the window includes the seventh day. With the window at 3 days, the 5-day account moved to Not due.

I did not test the formulas in Google Sheets.

Who sends the reminder?

A person. The sheet marks the account and drafts the words. You send it from your own email, then type the date into Reminded on. That step stops a second reminder.

I did not build an automatic sender. A wholesale buyer is a relationship, and an automatic nudge that arrives after they just reordered by phone looks careless. Run it by hand for a few cycles and see how often the flag is wrong.

Who gets the message?

The contact on that row. The email column is there so you can copy it. If an account has more than one buyer, decide who should hear from you. That is your call and theirs. Ask before you add anyone to the message.

What can the prediction not see?

  • Seasons. A store that orders heavily before the holidays has an uneven cycle.
  • A store that closed or changed hands. The sheet will keep predicting.
  • An order placed another way. If it was a phone call and nobody entered it, the sheet sees silence.
  • A stockout on your side. If you could not ship, a late order may be your fault.
  • Terms. The sheet does not know minimums, payment status or credit holds.

A person looks at the Due soon and Overdue list and decides who to contact and how. The sheet's job is to make sure no account slips by unnoticed.

Where does an LLM fit in this?

An LLM can help with the messy part: reading an order email thread and suggesting the order date and quantity to enter, or rewriting the draft so it matches how you talk to that buyer. A person checks the date against the order record before it goes in the sheet, because a wrong date shifts every flag after it. The dates, the statuses and the reminder rule are plain rules, and they do the same thing every time. My stance: AI writes the code, plain automation runs it, and an LLM shows up only where the input is messy and a person checks the result. For other jobs worth automating next, see what to automate first, and for the thinking behind follow-ups, see the follow-up engine.

How do you test the sheet?

  1. Enter five made-up accounts: one overdue, one due soon, one not due, one already reminded, one with no cycle.
  2. Check each next expected date with a calendar.
  3. Confirm the right rows say Due soon, Overdue and Reminded.
  4. Type today's date into Reminded on for an Overdue row. It should change to Reminded.
  5. Enter a newer Last order date for that account. The status should return to Not due.
  6. Change the window and watch the flags move.
  7. Read a drafted message for typos.
  8. Delete the test rows and keep the formulas.

Where this has limits

  • I did not use this on live accounts. The formulas were tested in LibreOffice with made-up data, not in Google Sheets.
  • The cycle is your estimate. The seven-day window is my starting number.
  • The sheet knows only what you type. A missed order or a wrong date gives a wrong flag.
  • It sends nothing. A person sends every reminder.
  • It does not handle terms, credit or payment.
  • No ReRev prices and no promises about results. I have no data on how many reorders this brings in.

If you want help turning this into a system that watches your accounts and prepares the follow-ups, see our AI operations service or tell us how wholesale orders come in. Do not send customer lists, order records, passwords or login details.

Frequently asked questions

How do I know when a wholesale account should reorder?

Add their usual number of days between orders to the date of their last order. A formula can do that for every account.

How early should I remind them?

It depends on the account. I start at 7 days before the expected date in the example. Change the setting to fit.

Can the sheet send the reminder for me?

No. It drafts the message and a person sends it.

How do I stop reminding the same buyer twice?

Type the date into Reminded on. The status then reads Reminded until they place a new order.

What if the account orders at different times of year?

Then one cycle number will be wrong. Use a person's judgment for those accounts, or set the cycle for the usual season.

Will it work in Excel?

The functions are standard, but I tested it in LibreOffice, not Excel or Google Sheets.

Read next: The wholesale inquiry form is how the accounts this post reminds get approved in the first place, and the reorder point formula gives the reminder timing a defensible number.