How Many SMS Messages Is Too Many? The Earnings-Per-Message Data Says More Than You Think

Two founders, same week, same question. One runs a supplements brand and caps SMS at one or two sends a month, because more than that feels rude. The other runs a homewares store, sends six in the welcome flow alone, and is quietly making a few extra dollars per subscriber that the first founder is leaving on the table.
Both think they're being sensible. Only one of them has looked at the numbers.
Here's the thing about SMS frequency. Almost everyone decides it from the gut, and the gut says "don't annoy people". Fair instinct. But it's an instinct, not a measurement, and SMS is one of the few channels where the actual cost and the actual return of each extra message are both knowable. So let's measure it instead of guessing.
The one-cent fact that changes the whole conversation
A single SMS costs roughly a cent to send. Sometimes less.
Sit with that for a second, because it reframes everything. When founders say "I don't want to send too many texts", what they usually mean is "I don't want to feel spammy". That's a brand worry, and it's a valid one. But it gets smuggled in disguised as an economics worry, and on the economics, the bar for an extra message paying for itself is about as low as a bar can get.
If message number six earns you even 15 cents per subscriber, against a one-cent cost, you're well ahead. The question was never "can we afford to send more". You almost always can. The real question is how much each extra message actually earns before the returns flatten out. And that you can put a number on.
The earnings-per-message curve
Here's the framework I'd run, with illustrative figures so you can see the shape of it. Imagine a welcome flow and you split new subscribers into three groups: one message, three messages, six messages. Then you look at earnings per message in each.
- One message: it pulls something like $1.80 per send. That's a fantastic number. One text, almost two dollars, basically free to send.
- Three messages: now you're at roughly $1.30 per message on average. Lower per message, but you sent three of them.
- Six messages: averaging around 90 cents per message.
So the per-message figure drops as you send more. The instinctive read is "see, more messages dilute it, stop at one". That's the wrong read, and it's the most common mistake I see.
The average per message isn't the number that matters. The marginal message is. Don't ask "what does the average text earn". Ask "what did message two and three earn, given message one already fired".
Run that maths on the illustrative numbers and message one is worth ~$1.80. Messages two and three together are worth a bit over $1 each. Messages four, five and six drop off harder, maybe 40 cents each. But 40 cents against a one-cent cost is still a wildly profitable send. You should feel completely relaxed shipping all six.
That's the whole point. Each message is worth less than the last, but "worth less" and "not worth sending" are different things, and most brands quit at the first sign of diminishing returns when there's a long, profitable tail still sitting there. A brand sending two messages is usually doing it because two felt polite, not because message three stopped paying.
Unsub rate is your governor, not your feelings
So where do you actually stop? Not at the point where it feels like a lot. At the point where the numbers tell you you've gone too far.
The signal that tells you that is the unsubscribe rate. People vote with their thumbs. If you genuinely annoyed them, they'd leave, and that shows up as a number you can watch in real time.
What's striking is how much room there usually is. It's common to be able to send somewhere around eight to ten messages per subscriber in a month with no meaningful uptick in unsubs at all. That's almost always more than founders expect. So if you're at two a month and worried about being annoying, the data is quietly telling you that your subscribers haven't even noticed yet.
Watch the first thirty days especially. Bump your cadence up by one message, hold it, and watch what the unsub rate does. When it starts to climb in a way that costs you more than the extra revenue is worth, you've found your ceiling. That's your new baseline. Until you see that climb, you're leaving money on the table, full stop.
There's a clean way to think about the trade. If an extra message earns 40 cents and pushes maybe 2% of people to unsubscribe, you weigh the 40 cents of fresh revenue against the future value of the handful who left. At those numbers it's not close. The send wins almost every time.
Post-purchase should fire sooner than feels polite
Now the bit that genuinely surprises people. The instinct on post-purchase messaging is to wait. They just bought, let them receive the thing, let them fall in love with it, then come back. Feels respectful.
In practice, the moment right after purchase is often the most likely a customer will ever be to buy again. They've just decided they trust you. Every time I've seen a brand move that next offer earlier, closer to the purchase rather than further from it, it performs better, not worse. Keep moving it up until you genuinely can't move it any further.
So the polite instinct is costing you. The window where someone has just pulled out their card and committed is the warmest you'll get, and waddling in three weeks later with "hope you're loving it" misses it. Fire sooner.
One nuance worth holding. This works because a recent buyer is a hot, highly engaged segment, so cranking frequency on them pays. It doesn't follow that you crank frequency on everyone.
Flows and campaigns are not the same lever
This is where a lot of frequency advice goes wrong. It treats "sending more SMS" as one thing. It's two.
Flows are automated and triggered. Welcome, post-purchase, browse, cart. They hit people at the warmest moment, when intent is high, and that's exactly where the earnings-per-message maths is generous. This is where you should be braver than you are.
Campaigns are the batch sends. The new-drop blast, the sale announcement. Here the per-message earnings are usually far lower, sometimes only a few cents a send, and the unsub cost is higher because you're hitting the whole list whether they're warm or not.
So the discipline I'd hold is almost the opposite on each. Push hard on flows, where each message is worth real money and the audience is engaged. Be selective and well-segmented on campaigns, and resist the urge to blast the full list every week. Better to nail people with high-value flow messages while they're hot, then sit back and save the broad campaign sends for the moments that genuinely earn it: a great launch, a real sale, a peak trading day. You re-engage the list when it counts, without burning unsubscribes the rest of the year.
One small cost-saver while you're at it. Plenty of brands send shipping and delivery updates over SMS because it feels like good service. Those non-transactional texts still cost a cent each and rarely earn anything. I'd push the pure logistics updates to email and save the paid channel for the message that actually has an offer in it.
How to run this on your own list
You don't need anything fancy to do this. You need a test and a spreadsheet.
- Pick one flow. Welcome is the easiest place to start, post-purchase the most valuable.
- Split new subscribers into a couple of cadences. Say your current number of messages, and that number plus two or three.
- Track three things only: earnings per message, total earnings per subscriber across the flow, and unsubscribe rate in the first thirty days.
- Look at the marginal message, not the average. What did the extra sends earn on top of what you already had? As long as that's comfortably above a cent and the unsub rate hasn't moved, you have your answer.
- Push the cadence up until the unsub rate tells you to stop. Then hold there as your new baseline and re-test in a quarter.
That's it. The framework is just "the marginal message has to out-earn its one-cent cost, and the unsub rate is the line you don't cross".
Most brands I look at are sending fewer messages than their own numbers would justify, and they're doing it out of a politeness that their subscribers never actually asked for. The data is usually sitting right there in the account, waiting to give them permission to send more.
If you've got a hunch your owned channel is being run on instinct rather than on its own numbers, a Signal/Noise Audit is partly built to surface exactly this kind of thing: the place where the cadence is leaving easy revenue on the floor. No pressure either way. But the question worth sitting with this week is simple. When did you last let the unsub rate, rather than your own sense of politeness, decide how often you text your list?
.webp)





