There's a salon owner I talked to who ran the same reactivation campaign twice. First quarter: 800 postcards to lapsed clients, "We miss you — 20% off your next cut." Second quarter: the same offer, same list, sent as a text. The postcard batch cost her roughly $520 all-in and booked 14 appointments over the following three weeks. The text batch cost her under $20 and booked 22 — most of them within 48 hours.
That's not magic. It's the difference between a channel that gets opened in minutes and one that sits in a stack of mail until Saturday, if it survives the walk from the mailbox to the recycling bin. Let's do the actual math, because the gap is bigger than most local owners assume — and there's one real situation where the postcard still wins.
Full disclosure: I work for Ready, an SMS platform. I'm going to show you Ready's real per-segment pricing below and I'm not going to pretend direct mail is useless. It isn't. It just loses on cost-per-visit for reactivation, and I'll show you exactly where.
What a postcard actually costs
The "40 cents to print" number is the honest floor, and it's only the printing. Here's the full stack for a standard 4x6 mailed postcard, using round industry numbers:
| Line item | Per piece (approx) |
|---|---|
| Print (4x6, color, both sides) | $0.15–$0.40 |
| Postage (USPS postcard rate) | $0.56 |
| List / mail-house handling | $0.05–$0.15 |
| Design (amortized over the run) | ~$0.05 |
| All-in per piece | ~$0.85–$1.15 |
So a 800-piece drop lands around $680–$920 before you count a single response. If you self-print and hand-stamp to save money, you're trading your own hours for the postage you didn't save. Call it $0.85 per piece as a fair blended figure for a small local run.
Then there's the lag. A postcard mailed Monday hits mailboxes Thursday-to-Saturday, gets noticed maybe Sunday, and books an appointment sometime the following week — if the offer is still front-of-mind. Response rates for reactivation mail to a warm-ish house list often land somewhere around 1–3%, and I'm being generous.
What a reactivation text actually costs
A Ready segment is $0.02 plus a $0.0045 carrier pass-through, billed separately so the bill is legible — $0.0245 all-in per 160-character segment on the Standard tier.
Here's a real reactivation message:
Hi Dana, it's Bloom Salon — we've missed you! Book by Sunday and take 20% off your next cut. Reply BOOK or call us. Reply STOP to opt out.
That's 140 characters — one segment. Send it to 800 lapsed clients:
- 800 × 1 segment × $0.0245 = $19.60
Twenty bucks against $680. And texts to an opted-in list get read — open rates for SMS sit in the high 90s versus maybe 20–40% of postcards that actually get looked at. Response on a warm reactivation list often lands around 10–20% when the offer's decent and the timing's tight.
Add an emoji and you'll pay for it, so know the rule: any unicode character drops the segment limit from 160 to 70 characters, which can double or triple your segment count. A 140-character message with one 🌸 becomes two 70-char unicode segments — so that same blast jumps to 800 × 2 × $0.0245 = $39.20. Still under 6% of the postcard cost. But that's why we keep reactivation texts plain-text.
Cost per booked visit — the number that matters
Cost per piece is a vanity metric. Cost per visit booked is what pays your rent. Let's compare on identical assumptions: 800 lapsed contacts, a 20%-off offer.
| Postcard | Reactivation text | |
|---|---|---|
| Cost per piece / segment | $0.85 | $0.0245 |
| Send cost (800) | $680 | $19.60 |
| Response rate (est.) | ~2% | ~12% |
| Visits booked | ~16 | ~96 |
| Cost per booked visit | ~$42.50 | ~$0.20 |
Even if you hate my response-rate estimates and cut the text response to a pessimistic 5% — 40 visits — you're still at $0.49 per booked visit by text versus $42.50 by mail. The postcard would need to convert at an implausible 20%+ to touch the text's cost-per-visit.
The lag compounds this. Text bookings cluster in the first 48 hours, so you can fill this weekend's empty chairs. Postcard bookings dribble in over two weeks, which is fine for brand-building and useless for filling Tuesday.
Where the postcard still wins
Here's the honest part. SMS beats direct mail on cost-per-visit only when you have a phone number and valid consent to text it. Mail wins outright in three situations:
- No phone consent. You can mail anyone whose address you have. You cannot legally text someone who hasn't opted in — TCPA exposure runs $500–$1,500 per unsolicited text, and that math destroys any cost advantage fast. A dropped postcard to a cold list is legal; a cold text blast is a lawsuit waiting to happen.
- Cold prospecting by geography. Want every household within 2 miles of a new location? An EDDM (Every Door Direct Mail) postcard reaches people you have no relationship with. SMS can't touch them.
- Physical-object offers. A magnet, a loyalty punch card, a fridge-worthy calendar — mail delivers a thing that sits in someone's kitchen for months. A text is gone after it's read.
So the real playbook isn't "mail or text." It's: mail to acquire the number, text to reactivate the relationship. Put a "Text JOIN to 55555 for 15% off" call-to-action on the postcard, capture consent, and every reactivation after that costs you two cents instead of eighty-five. And make sure your in-store opt-in actually holds up — a handwritten number at the register isn't valid consent by itself.
The consent and compliance piece you can't skip
The reason the SMS math works is that you're texting people who asked to hear from you. To keep it legal and deliverable:
- Register your 10DLC. Ready handles brand + campaign registration in-app — roughly ~$10/mo per brand and ~$20/mo per campaign in carrier fees, approval usually in 1–3 days. Unregistered traffic gets carrier-filtered, so this is table stakes. Here's the full 10DLC explainer if you're new to it.
- Get a dedicated number. Sharing a number with hundreds of other businesses means their spam complaints tank your delivery too — here's what that actually costs you.
- Honor STOP automatically. Ready processes opt-outs and propagates them across campaigns so a person who unsubscribes can't be messaged again. Quiet-hours enforcement holds sends outside permitted local hours.
- Scrub if you're unsure about your list. Ready's standalone TCPA/DNC litigator scrub runs $0.005 per contact and suppresses known litigators and complainers before send. On an 800-person list that's $4 — cheap insurance against a $1,000 mistake.
None of this makes you lawsuit-proof — consent is ultimately the sender's responsibility — but registered, opt-in, quiet-hours-respecting sends are the difference between a clean campaign and a filtered one.
The practical takeaway
For reactivating clients you already have a relationship with — the lapsed gym member, the salon regular who ghosted, the customer who hasn't booked in 90 days — SMS wins on cost-per-visit by roughly two orders of magnitude, and it fills chairs this week instead of next month. Direct mail keeps its place for cold geographic acquisition and physical offers, and the smartest local operators use it to capture the phone numbers they'll text later.
If you want to run the numbers on your own list, Ready gives you 2,500 free credits to start, no card required — enough to test a couple hundred reactivation texts and see what actually books. You can see the pricing and set it up here, or sign up and send your first batch. Keep the postcards for the mailbox. Put the reactivation in a text.