How GHL Agencies Actually Make Margin Reselling SMS

Most GHL agencies treat rebilling like a checkbox. They flip on the markup slider, set a multiplier somebody recommended in a Facebook group, and move on. Then six months later they look at the wallet credits flowing through their sub-accounts and realize the rebilling line is either trivially small or — worse — losing money once the carrier pass-through is added in.

Full disclosure: I work for ReadySMS, so I have a horse in the "underlying provider" part of this race. But the math below works regardless of who you use. The point isn't to sell you a switch. It's to make sure you actually know your margin per text before you decide anything.

What rebilling actually is in GoHighLevel

When you rebill SMS, your sub-account clients buy "wallet credits" from you. You pay your underlying provider for the texts they send, and you mark that up. The spread is your margin.

The mistake agencies make is reasoning about this in vague multiples — "I charge 3x" — without nailing down three separate numbers:

  1. The per-segment cost you pay your provider.
  2. The carrier pass-through fee — the per-message fee carriers charge for the registered 10DLC route. This is separate from the provider's per-segment price.
  3. What your client pays per segment in their rebilled rate.

If you only track #1 and #3, the pass-through quietly eats your spread. I've seen agencies "charging 3x" who were actually netting closer to 1.6x once they accounted for it. Let's run real numbers.

The worked P&L: a 5-sub-account agency

Say you run 5 sub-accounts, each sending roughly 8,000 SMS segments a month. That's 40,000 segments across the agency — enough to land you on the Basic tier at ReadySMS: $0.0074 per segment, plus the flat $0.0045/segment carrier pass-through that's billed transparently and separately.

So your all-in cost per segment is:

$0.0074 + $0.0045 = $0.0119 per segment

Now suppose you rebill your clients at a round $0.03 per segment — a common, defensible number that still looks cheap to a client used to the built-in GHL rate.

LinePer segment40,000 segments/mo
Client pays you$0.0300$1,200.00
Your provider cost$0.0074$296.00
Carrier pass-through$0.0045$180.00
Your gross margin$0.0181$724.00/mo

That's $724/month in pure rebilling margin, or roughly $8,700/year, on volume you were going to send anyway. Margin ratio: you're keeping about 60 cents of every dollar billed.

Notice how visible the pass-through is in that table. Because ReadySMS itemizes the $0.0045 separately instead of baking it into the per-segment price, you can do this math without guessing. If your current provider folds everything into one blended number, you're flying blind on exactly the line that erodes margin. The GHL SMS pricing breakdown digs into why that blending is so common and so misleading.

Where the multipart and unicode trap hits margin

Your P&L above assumed one segment per message. It rarely is.

A segment is 160 GSM-7 characters. Go one character over and you're billed in 153-character multipart chunks. Drop a single emoji or curly quote in and the limit collapses to 70 characters (67 for multipart).

Here's why that matters for rebilling. Suppose one client writes promo copy like this:

"🎉 Flash sale! 30% off everything this weekend only — use code SAVE30 at checkout. Reply STOP to opt out."

That's ~105 characters with an emoji, so it's unicode-encoded at 67 chars per segment. 105 ÷ 67 = 2 segments. Your client thinks they sent 8,000 messages; they actually sent 16,000 segments, and you're billed on segments.

If your rebill rate is per-segment, this works in your favor — but only if your client understands it. If they don't, you get the support ticket: "Why is my wallet draining twice as fast?" The fix is to bill per segment (you should), explain segment math up front, and nudge clients toward GSM-7 copy under 160 characters. A plain-text version of that promo would be one segment, not two — half the cost, same conversion.

The honest part: the spread shrinks when you raise client prices

The instinct, when you want more margin, is to raise the rebill rate. Sometimes that's right. But there's a ceiling: the moment your per-text price gets visibly expensive, a savvy client googles it, finds they can register their own number cheaper, and starts asking questions.

So the quiet lever — the one that doesn't touch the client relationship at all — is your underlying cost.

Look back at the table. You're paying $0.0074 per segment on Basic. What happens if your agency grows into higher volume? At Standard tier (50,001–250,000/mo) you drop to $0.0064, and at Pro (250,001–1,000,000/mo) you're at $0.0049. Same $0.03 you charge the client. Wider spread. Let's redo it at Pro-tier scale, say 300,000 segments/month across a bigger roster:

LinePer segment300,000 segments/mo
Client pays you$0.0300$9,000.00
Your provider cost$0.0049$1,470.00
Carrier pass-through$0.0045$1,350.00
Your gross margin$0.0206$6,180.00/mo

Your margin per segment went up — from $0.0181 to $0.0206 — purely because your cost dropped as you scaled. The client never saw a price change. That's the lever most agencies leave on the table because they negotiated their provider rate once and never revisited it.

Switching the underlying provider without touching client prices

This is the move that actually widens margin: keep your rebill rate exactly where it is, and lower what you pay. If you're currently on a reseller-style CPaaS that marks up carrier cost, moving to a thinner layer over the same carrier infrastructure cuts your input cost while deliverability stays on the same registered 10DLC routes.

A few honest caveats before you go ripping out your stack:

  • Don't switch mid-campaign. Migrate between billing cycles so wallet reconciliation is clean.
  • You'll re-register 10DLC on the new provider. Brand + campaign is roughly ~$10/mo per brand and ~$20/mo per campaign, with approval usually landing in 1–3 days. Budget for the gap.
  • Two-way sync has to actually work. A cheaper provider that breaks your conversations inbox isn't cheaper. ReadySMS connects to GHL via OAuth with two-way inbound/outbound sync mapped per location, so each sub-account stays isolated — which is the whole point for an agency.

If you're weighing the move specifically as an LC Phone replacement, the LC Phone alternative guide walks through the tradeoffs, and the agency buyer's guide covers what to actually evaluate beyond price.

Compliance is a margin item too (most agencies miss this)

Here's the line that doesn't show up in the spreadsheet until it shows up catastrophically: a single TCPA violation can run $500–$1,500 per text. One bad bulk send to a litigator-laden list wipes out a year of rebilling margin and then some.

So treat compliance as part of the unit economics, not a side quest:

  • Automatic STOP handling that propagates the opt-out across campaigns, so a contact who unsubscribes from one client can't be re-messaged.
  • Quiet-hours enforcement based on the recipient's local time — sends are held outside permitted hours.
  • Litigator / DNC scrubbing. A standalone scrub runs $0.005 per contact, checking each number against known TCPA-litigator and DNC-complainer lists and suppressing matches before send. On a 5,000-contact list that's $25 to avoid a five-figure exposure. That's not a cost; that's insurance with absurdly good odds.

You can pass scrub costs through to clients or absorb them as a value-add — either way, it protects the margin you just built. If you rebill SMS, you're effectively the messaging compliance vendor for your clients whether you signed up for it or not. The opt-out handling guide covers the mechanics.

A quick checklist before you set your rebill rate

Run through this before you touch the markup slider in GHL:

  1. Know your all-in cost — provider per-segment plus carrier pass-through, not just the headline rate.
  2. Bill per segment, not per message — and explain unicode/multipart math to clients so wallet drains don't surprise them.
  3. Set a rate that's defensible if googled — $0.03/segment reads as fair; pushing toward $0.05+ invites scrutiny.
  4. Revisit your provider tier quarterly — as volume grows, your cost should drop. If it isn't, you're leaving margin behind.
  5. Bake compliance into the model — STOP handling, quiet hours, and a $0.005 scrub are cheaper than one violation.
  6. Confirm two-way sync survives any migration — per-location isolation is non-negotiable for agencies.

The practical takeaway

Rebilling margin isn't about charging more. It's about knowing your true per-segment cost — pass-through included — and shrinking it as you scale while the client price stays put. The agencies making real money on SMS aren't the ones with the highest markup. They're the ones who can show you a clean P&L line where the spread widens every time they add a sub-account.

If you want to sanity-check your own numbers, the cost calculator lets you plug in volume and see the all-in figure, and the pricing tiers show exactly where your costs drop as you grow. Start with your current monthly segment count, run the table above, and see what your actual margin ratio is today. You might be pleasantly surprised — or you might find the pass-through has been quietly eating your lunch.