A back-in-stock alert is the most polite message in ecommerce. Someone wanted a thing, the thing was gone, they raised their hand, and now you get to tell them it's back. High intent, near-guaranteed open, often a same-day conversion. Easy yes.
The problem isn't whether to send it. The problem is that the cost is demand-shaped. A cart-recovery flow fires on a number you can roughly forecast — you know your weekly cart volume. A back-in-stock alert fires on however many people happened to want the one SKU that sold out, which can be 40 or 4,000, and you find out the size of the bill at the exact moment the restock hits. That's a budget you can't plan around unless you build the controls in advance.
Full disclosure: I work for ReadySMS, so I think about per-segment cost more than is healthy. But this particular spike burns people on every platform, and the fix is mostly architecture, not pricing.
Why the spike is sneaky
Most SMS spend is steady-state. You send abandoned-cart texts, shipping updates, the occasional promo. You can graph it and it looks like a heartbeat. (If yours doesn't look steady, that's usually a workflow problem — worth reading the GHL double-text audit.)
Back-in-stock subscriptions accumulate silently while the product is out of stock. Nobody's getting messaged. The subscriber list just grows in the background. Then inventory lands, the trigger fires, and the entire accumulated list gets pinged in a single burst. You went from $0/day on that SKU to a four-figure send in one click.
And the items most likely to sell out — the hyped drop, the seasonal bestseller, the influencer-tagged thing — are exactly the items that accumulate the biggest waitlists. The cost and the virality scale together.
Do the segment math before you press send
The fix starts with knowing what one send actually costs, character by character. SMS is billed per segment, not per message:
- 160 GSM-7 characters = 1 segment. Longer messages split into 153-char segments.
- Add a single emoji or any unicode and the limit drops to 70 characters (67 per part in a multipart message).
So message length quietly multiplies your bill. Here's a back-in-stock template most stores would write without thinking:
Good news 🎉 The Midnight Hoodie is back in stock! Grab yours before it sells out again: shop.example.com/midnight-hoodie
That's ~120 characters and it has an emoji, so it's unicode. At 70 chars per segment, that's 2 segments.
Now run it across a 4,000-person waitlist on ReadySMS Starter pricing ($0.0155/segment + $0.0045 carrier pass-through = $0.0200 all-in):
`` 4,000 contacts × 2 segments × $0.0200 = $160.00 ``
Drop the emoji and trim the URL with a branded short link, and you fit under 160 chars — 1 segment:
The Midnight Hoodie is back. Grab yours before it's gone: rdy.sh/hoodie Reply STOP to opt out.
`` 4,000 contacts × 1 segment × $0.0200 = $80.00 ``
Same alert, same conversion, half the bill — for one restock. Do that across a season of drops and the emoji habit costs real money. (One catch: bare bit.ly-style links also get you carrier-filtered, which is its own revenue problem — see why your link shortener gets texts blocked.) Run your own numbers on the cost calculator before you settle on a template.
Cap the blast so it can't surprise you
The single most useful control is a hard cap. Before a restock alert fires, you should be able to answer: what is the maximum this can cost me today?
Set the ceiling at the message-design stage:
- Lock template length to one segment. No emoji, branded short link, STOP language included. This is the lever with the biggest leverage because it's a flat 2× multiplier on everything.
- Decide a per-SKU send cap. If 8,000 people waitlisted a $30 item, ask whether texting all 8,000 makes sense or whether you message the most recent 3,000 subscribers first and watch sell-through.
- Know your inventory-to-waitlist ratio. If you restocked 200 units and have a 5,000-person list, you're going to disappoint 4,800 people and pay to do it. Message in waves sized to roughly what you can fulfill.
That last point is the one operators skip. A back-in-stock alert to 5,000 people for 200 units isn't generous, it's expensive and frustrating. The people who click and find it sold out again are now annoyed, and some of them will reply STOP — which is a permanent loss of a high-intent subscriber you paid to acquire.
Batch by inventory, not by list size
The cleaner architecture is to treat the waitlist as a queue you draw from, not a list you flush.
| Approach | What fires | Cost behavior | Risk |
|---|---|---|---|
| Flush-all | Entire waitlist on restock | One unpredictable spike | Oversell-disappointment, opt-outs, budget shock |
| Inventory-matched waves | Batch sized to units in stock | Predictable per wave | Slower, needs queue logic |
| Tiered by recency/value | Most-recent or highest-LTV subset first | Lowest spend per restock | More setup |
Inventory-matched batching looks like: restock 300 units, send to the first 600 waitlist subscribers (assume ~50% click-and-buy on a hot item), hold the rest. If it sells out, the held subscribers roll into the next restock automatically — and you never paid to text people who couldn't have bought anyway.
For the highest-demand drops, tier by value. Your repeat buyers and high-LTV segment get the alert first; the long tail gets it only if inventory survives. You're spending the same per-segment rate either way, but you're spending it on the contacts most likely to convert. If you're already running drops, the product-release SMS playbook pairs well with this.
Quiet hours: the spike you don't want at 2 a.m.
Restocks don't land on a schedule. Your warehouse marks inventory available at whatever hour the receiving dock finishes, and if your automation fires on that event, you can blast a few thousand people at 1:47 a.m. their time.
That's bad two ways. It's a TCPA exposure problem — texting outside permitted local hours is the kind of thing that ends up in a demand letter. And it's a conversion problem: a 2 a.m. text gets buried under morning notifications and converts worse than the same message at 11 a.m.
ReadySMS enforces quiet hours automatically based on the recipient's area, so a restock that triggers overnight gets held and released inside permitted local windows instead of going out the moment your dock scans the pallet. You get the deliverability and the compliance posture without building a scheduler. For the broader rules, the ecommerce compliance walkthrough covers consent and timing together.
The line items you should see on the bill
Part of why restock spikes feel scary is that on a lot of platforms you can't see what drove the number. The send cost and the carrier fee are baked into one blended per-message price, so a spike is just a bigger blob.
ReadySMS itemizes the $0.0045/segment carrier pass-through separately from the per-segment send rate, so when a restock costs $160 you can see it's 8,000 segments at a known rate plus a known carrier line — not a mystery surcharge. Why that pass-through exists and who hides it is worth understanding: the $0.0045 line item explained.
Billing is prepaid credits, which is its own soft cap — a runaway restock can only spend what you've loaded. There are worse safety nets than "the system literally can't overdraft your budget."
A simple pre-restock checklist
Before any back-in-stock automation goes live, confirm:
- [ ] Template is one segment — no emoji, branded short link, STOP included
- [ ] Per-SKU send cap set, sized to roughly inventory × expected conversion
- [ ] Waitlist batched by inventory or tiered by recency/LTV, not flushed whole
- [ ] Quiet-hours enforcement on so overnight restocks release in-window
- [ ] Prepaid credit balance checked against your worst-case waitlist size
- [ ] Worst-case cost written down:
max contacts × segments × all-in rate
That last calculation takes thirty seconds and turns "I have no idea what this will cost" into a number you approved on purpose.
The takeaway
Back-in-stock alerts are some of the best-converting messages you'll ever send — the intent is already proven. They're also the one flow where cost is set by demand instead of by you, which means the control has to be designed in, not discovered after the bill.
Lock your template to a single segment, batch sends to match inventory instead of flushing the whole list, and let quiet-hours enforcement keep an overnight restock from going out at 2 a.m. None of it slows the alert down in a way customers notice, and all of it keeps a viral restock from turning into a surprise.
If you want to see exactly what a restock of any size would cost at your message length and tier, the cost calculator does the segment math for you — and the 20 free test sends plus the $25 credit when you register are enough to test a real batch before you commit.