Almost every DTC store runs the same welcome flow: capture the phone number at the popup, fire a text with a discount code, count the redemptions. The discount is usually 10% or 15%, sometimes 20% if the merchandising team is feeling generous. Nobody argues with it because the first-order revenue number goes up and the SMS cost per send is basically a rounding error.
Full disclosure: I work for Ready, an SMS platform. So I spend a lot of time in the per-segment cost weeds. And the thing I keep seeing is that the segment cost isn't the number that should worry you. The discount is. On a small enough order, the combined weight of the discount plus the fulfillment cost plus the fixed cost of getting that first order out the door can erase the entire first-order margin — and then the segment fee is the part that pushes you underwater. Let's put actual numbers on it.
The two costs stacked on your first order
When someone redeems a welcome code, you're carrying two costs that a full-price order doesn't have:
- The discount — a percentage off revenue, so it scales with order size.
- The message — a fixed per-segment cost, so it doesn't scale at all.
On Ready, that message cost is easy to account for because we don't round it into a fuzzy per-message number. Standard tier is $0.02 per outbound segment plus a $0.0045 carrier pass-through, itemized separately — so an all-in of $0.0245 per segment. A one-segment welcome text (under 160 GSM-7 characters, no emoji) is $0.0245. Add a code and a link and you're usually still in one segment if you're disciplined, two if you're not.
That $0.0245 is trivial against a $120 order. It is not trivial against the margin of a $28 order after you've already given 15% away.
Worked math: where the first-order margin goes to zero
Let's build a small store. Say your average blended gross margin is 60% — that's fairly typical for DTC before you touch marketing or shipping. Now assume you eat some or all of the shipping on a first order (common for the "free shipping on your first order" popup).
Here's a single first order at a few different order values, with a 15% welcome discount, a $6 shipping cost you absorb, and one welcome segment at $0.0245:
| Order value | Gross margin @60% | Less 15% discount | Less $6 shipping | Less segment | Net first-order margin |
|---|---|---|---|---|---|
| $25 | $15.00 | −$3.75 | −$6.00 | −$0.02 | $5.23 |
| $40 | $24.00 | −$6.00 | −$6.00 | −$0.02 | $11.98 |
| $60 | $36.00 | −$9.00 | −$6.00 | −$0.02 | $20.98 |
| $18 | $10.80 | −$2.70 | −$6.00 | −$0.02 | $2.08 |
| $12 | $7.20 | −$1.80 | −$6.00 | −$0.02 | −$0.62 |
The $12 order loses money. The $18 order clears two bucks — before you've counted the ad spend that acquired the email/phone in the first place. And notice the segment cost: it's the smallest line on every row. The discount is 150x heavier. The shipping absorption is heavier still.
That's the honest framing: the segment isn't your problem. The segment is what tips a marginal order from barely-positive to negative. Which is exactly the order you want to catch.
The discount floor nobody sets
Most welcome offers have no minimum. The popup says "15% off your first order" and the code works on a $12 order the same as a $120 one. That's the leak. You're handing your deepest discount to your smallest, least-committed buyers — the exact orders where the math doesn't close.
The fix is an AOV-gated offer: the discount only unlocks above a spend threshold that keeps the first order margin-positive after everything, including the send. Using the table above, a floor somewhere around $25–$30 turns every welcome redemption into a profitable first order instead of a coin flip.
You can structure this a few ways:
- Hard minimum: "15% off orders over $30." Clean, but some small-basket buyers bounce.
- Tiered: "$5 off $30, $15 off $60." Rewards bigger baskets, protects the floor, and nudges AOV up.
- Free-ship threshold instead of a percentage: "Free shipping over $35." This kills the shipping-absorption line — the heaviest cost in my table — on every order below the threshold, because now the customer only gets free shipping when the basket is big enough to carry it.
That last one is underrated. Look back at the table: the $6 shipping absorption did more damage than the discount on the small orders. Gating shipping instead of dollars off often protects margin better while feeling just as generous at the popup.
Why clean cost accounting actually matters here
You can only set this floor correctly if you know your real per-send cost to the fraction of a cent. This is where a rounded "per-message" rate quietly lies to you. A lot of providers bundle the carrier pass-through into a single rounded number, so you think you know your cost but you're off by the $0.0045 every time — and that gap compounds across every send in the flow, not just the welcome text. We wrote about that hidden line item in the carrier pass-through breakdown if you want the full picture.
With Ready you see the $0.02 and the $0.0045 as separate line items, so when you plug send cost into a first-order P&L, it's the actual number. That precision doesn't matter much on one text. It matters a lot when you're modeling a welcome flow — three or four messages, some multipart, going to thousands of new subscribers a month.
Which brings up the other cost you should count: the welcome sequence, not just the welcome text.
The flow, not the message
Most stores don't send one welcome text. They send a welcome, a reminder if the code goes unredeemed, and maybe a social-proof follow-up. Say that's three sends, and one of them runs long enough to split into two segments. That's four segments per subscriber:
- 4 segments × $0.0245 = $0.098 per subscriber
Send that flow to 5,000 new subscribers in a month and you're at $490 in send cost. Still small against the revenue those 5,000 first orders produce — but now it's a real line, and it's a line that only pays back if those first orders are margin-positive. A no-floor offer sending your deepest discount to $12 baskets means you're spending $490 to manufacture losing orders. The floor is what makes the $490 an investment instead of a subsidy.
If you cross 50,000 segments in a calendar month across all your flows, Ready's per-segment rate drops to $0.016 automatically (all-in $0.0205) — no plan to pick, it just applies. Worth knowing when you're budgeting a full flow stack, and we ran the blended-rate math here.
Don't over-correct: the floor can be too high
Honesty check — a floor set too aggressively costs you real customers. If most of your catalog sits at a $22 AOV and you slap a $40 minimum on the welcome offer, you've made your best acquisition tool useless for the average shopper. The floor should sit just above your break-even order, not at some aspirational basket size.
The way to find it: take your true first-order margin (gross margin minus discount minus any shipping you eat minus send cost) and solve for the order value where it hits your minimum acceptable dollar margin — not zero, since zero ignores the ad spend that acquired the subscriber. If you want a target, most operators I talk to want the first order to clear enough contribution to at least dent the acquisition cost, not vanish into it. The SMS ROI calculator is a decent starting point for backing into that number.
And once the welcome order lands profitably, the lifetime value math is where SMS actually earns its keep — an opted-in SMS subscriber tends to be worth several times an email subscriber, if you didn't lose money acquiring them.
The practical takeaway
- The segment cost ($0.0245 all-in on Ready Standard) is real but tiny — it's the tiebreaker, not the villain.
- The discount plus absorbed shipping is what erases first-order margin on small baskets.
- Set an AOV floor — hard minimum, tier, or free-ship threshold — just above your true break-even order.
- Model the whole welcome flow (usually 3–4 segments per subscriber), and use a provider that shows you the real per-segment cost so your P&L isn't off by a rounded fraction on every send.
If you want to run these numbers against your own margins before you touch your popup, Ready gives you 2,500 free credits and transparent per-segment pricing to model it cleanly — start here or read the full pricing breakdown. Set the floor first. Then send.