A winback text costs you $0.0245. A dormant trial user who signed up 40 days ago and never came back is, statistically, mostly gone. So the temptation is to blast every lapsed account on your list — it's pennies, right? What's the harm?

The harm is that "pennies per send" quietly turns into real money once you multiply it by a segment full of people who are never coming back, and once your reactivation rate drops below the point where the recovered revenue covers the spend. There's a dormancy threshold past which every text you send is subsidizing dead accounts. Below I'll show you where that line is with actual numbers.

Full disclosure: I work for Ready, an SMS platform. I'm going to use our pricing in the math because it's what I can cite precisely — but the framework holds no matter who you send through.

The unit you actually care about: cost per reactivation

Cost per send is the wrong number to optimize. The number that decides whether a winback campaign is worth running is cost per reactivated user — total send spend divided by the accounts that actually come back and stay.

Here's the chain:

`` Cost per reactivation = (segments sent × cost per segment) ÷ users reactivated ``

And reactivation isn't a single text. A real winback flow is usually 2–3 touches over a couple weeks. So the send cost per contact you attempt is higher than one segment.

Let's price a three-touch flow on Ready's Standard tier ($0.02/segment + $0.0045 carrier pass-through = $0.0245 all-in, transparent and itemized):

  • Touch 1: "We miss you — here's what's new" (1 segment)
  • Touch 2: "Your data's still here, jump back in" (1 segment)
  • Touch 3: "Last call — 20% off if you reactivate this week" (1 segment)

Three segments per contact = $0.0735 per contact attempted, assuming plain GSM-7 text under 160 characters each. Add an emoji and each message drops to a 70-character limit — a 90-character line with a 🎉 splits into two unicode segments and doubles that touch's cost. For winback copy, keep it clean text; you don't need the emoji tax here.

Recoverable LTV is the ceiling — not your headline LTV

The other half of the equation is what a reactivated user is actually worth to you, and this is where most teams overstate the case. Your blended LTV might be $600. But a reactivated dormant user is not an average user. They:

  • Reactivate at a discount (that 20% off you dangled)
  • Churn again at a higher rate than your baseline
  • Often only stick for a few billing cycles

So the number you should plug in is expected recoverable margin per reactivation, not headline LTV. A rough, honest way to build it:

`` Recoverable value = (monthly margin) × (expected months retained) × (survival probability) ``

Say your plan is $40/mo at 80% gross margin = $32/mo margin. A reactivated dormant user, realistically, stays maybe 4 months and has a ~50% chance of sticking past the first bill:

`` $32 × 4 × 0.5 = $64 recoverable margin per reactivation ``

That $64 is your ceiling. As long as cost per reactivation stays comfortably under it, the campaign prints money. When it crosses it, you're lighting cash on fire — slowly, at $0.0245 a segment, which is exactly why it's easy to miss.

Where dormancy breaks the math

Reactivation rate is a decaying function of dormancy. The longer someone's been gone, the less likely a text brings them back. There's no universal curve, but the industry-approximate shape for opted-in SaaS trial and lapsed users looks something like this (treat these as illustrative, not gospel):

Days dormantRough reactivation rateCost per reactivation (3-touch @ $0.0735)
7–14 days~8%$0.92
15–30 days~4%$1.84
31–60 days~2%$3.68
61–90 days~0.8%$9.19
91–180 days~0.3%$24.50
180+ days~0.1%$73.50

Against a $64 recoverable ceiling, every one of these rows is technically still profitable — even the 180+ day segment at $73.50 is only slightly over. That surprises people.

But watch what happens when your recoverable value is lower. If you're a $15/mo product with a 3-month expected retention and 40% survival, your ceiling is more like $15 × 0.8 × 3 × 0.4 = $14.40. Now the cutoff is brutal:

  • 7–60 days: profitable
  • 61–90 days ($9.19): still fine
  • 91–180 days ($24.50): underwater
  • 180+ days ($73.50): a bonfire

So the dormancy cutoff isn't a fixed number of days. It's the day your cost per reactivation crosses your recoverable margin, and that depends entirely on your price point and retention. Cheap product = short winback window. Expensive product with sticky users = you can afford to chase further.

The ecommerce version of this problem has the same shape, and if you want to see it worked from the retail angle, the 90-day-lapsed-buyer cost ceiling post runs parallel math.

Tier your winback so the spend follows the value

The mistake is treating your whole dormant list as one blast. Segment it by dormancy and spend accordingly. Ready's automations let you build tiered flows keyed off last-active date, so you're not sending the same three-touch sequence to a 12-day user and a 300-day user.

A sane structure:

  1. 0–30 days dormant — Full three-touch flow. These convert best; spend freely here. This is closer to onboarding recovery than winback; the trial nudge timing map covers the earliest cliffs.
  2. 31–90 days — Two touches, no discount on the first (protect margin). Reactivation's lower but still well under most ceilings.
  3. 91–180 days — One touch, and only if your recoverable value clears the cost. For low-ticket products, skip it.
  4. 180+ days — Don't send. Not because it's expensive per text — because the reactivation rate makes cost-per-reactivation exceed almost any recoverable margin, and you're also risking spam complaints from people who forgot you exist.

That last point matters beyond money. Texting long-dead accounts hurts deliverability and invites STOP replies. Ready honors STOP automatically and propagates the opt-out across campaigns, so a burned contact stays burned — good hygiene, but it also means you permanently lose the channel for that person. Don't spend it on someone who's 300 days gone.

The reach argument (and why SMS still wins the winback)

Here's the counterpoint to all this caution: the whole reason winback SMS works at all is that dormant users don't open email and never log back in. Roughly 70% of churned free users never return to the app, and email winback open rates for lapsed audiences are grim. SMS reaches the phone directly.

So even at a $3.68 cost per reactivation, if the alternative is a 0.2% email winback rate, SMS is often the only channel that recovers anyone at these dormancy depths. The point of the cost ceiling isn't "don't send" — it's "know where sending stops paying." If you want the reach argument in full, why in-app upgrade prompts miss the 70% who never log back in makes the case.

Compliance-wise, winning back trial users means you're texting people whose consent may be stale. Capture opt-in attestation, enforce quiet hours, and if your list is old and you're worried about litigator exposure, Ready's standalone TCPA & DNC scrub runs at $0.005 per contact — cheap insurance against a single $500–$1,500 TCPA claim from someone who never wanted the text.

The takeaway

  • Optimize cost per reactivation, not cost per send.
  • Your ceiling is recoverable margin — expected months retained × margin × survival probability — not headline LTV. It's usually lower than you'd guess.
  • The dormancy cutoff is wherever cost per reactivation crosses that ceiling. Low-ticket products should stop early (often by ~90 days); sticky, higher-ARPU products can chase further.
  • Tier the flow by dormancy so spend tracks value. Don't blast the whole list.
  • Around 180+ days dormant, the math almost never works — and the deliverability cost of trying makes it worse.

If you want to run these numbers against your own price point, the transparent per-segment pricing is on the ReadySMS page, and you can start with 2,500 free credits — no card — to test a tiered winback flow on your 0–90 day segment before you commit spend. Sign up here and build the flow that stops at your ceiling instead of past it.