Skip to content
whitelabelthemes

Pricing teardown · 13 min read

Profitable on paper, broke in the bank: where the retainer margin leaks

Your model says the retainer clears fifty-something per cent. The operating account says otherwise. This is the teardown of the gap between the margin you quote yourself and the margin you actually bank, with the arithmetic, the five leaks in the order they cost you, and the fix for each.

Priya Nandan

Delivery Lead

Published

marginpricingagency operationsgohighlevel

The spreadsheet said it was your best quarter. Eight retainers, an average margin north of fifty per cent, a pricing model you had tuned for two years. Then you moved money into the operating account to cover payroll, and there was less sitting there than the quarter you ran five clients. The margin on the page was real. It just never showed up. That distance, between the margin you quote yourself and the margin you actually bank, is the most expensive number most GoHighLevel agencies never bother to calculate.

This is a teardown of that gap. Not the theory of it, the arithmetic of it: where the money goes, in what order, on a single ordinary retainer, and what each leak costs you a month. Every figure below is illustrative and every input is stated, so you can drop in your own rate, your own hours and your own book size and watch your version of the same thing happen.

Two margins, and only one of them pays you

There are two margins on every retainer and they are almost never the same. The modeled margin is the retainer price minus the costs you can see: the platform bill, the build, and the hours you meant to spend. It is a forecast, and you make it the moment you set your rate. The realized margin is what is left after everything the forecast leaves out. It is a result, and you find it out weeks later, on the bank statement.

The trouble is that you run the whole business off the first number. You price against it, you decide whether a client is worth taking against it, you decide whether you can afford to hire against it. If the modeled margin says fifty-two and the realized margin is nineteen, you are not making a small rounding error. You are pricing, staffing and growing a business as though it earns nearly three times what it does.

A specification-sheet diagram with two horizontal bars on a relative scale: a long mid-graphite bar labelled quoted and a much shorter cobalt bar, roughly a third of the length, labelled banked, with a thin bracket across the difference labelled the leak.
Fig. 01Most agencies price, hire and take on clients against the quoted bar. The banked bar is the one that actually pays them, and the bracket between the two is where this teardown spends the rest of its time.

The model is built from two halves, and this site has pulled each of them apart on its own already: what a GoHighLevel client actually costs you to deliver on the cost side, and how to price a white-label retainer on the revenue side. This piece is about neither half in isolation. It is about the space between the forecast those two produce and the money that lands, which is a different problem with different causes.

The model everyone builds

Here is the model, on one client, for one month. It is the one nearly every agency carries in its head, and it is not wrong so much as incomplete. The retainer is illustrative at $1,200. Swap in your own and the structure is identical.

LinePer client, per monthWhere the figure comes from
Retainer billed$1,200Your rate card. Illustrative here
HighLevel plan, allocated$37The Unlimited plan is $297 a month (gohighlevel.com/pricing), one bill for the whole agency, spread here across eight clients
Snapshot build, amortised$71A one-off build cost spread over the months it serves. Near zero once a bought snapshot is reused across a book
Delivery labour, budgeted$468The hours you expected to spend, at your loaded internal cost. Your largest controllable line
Modeled margin$624 (52%)What the spreadsheet promises before a single invoice goes out

Fifty-two per cent. That is the number you price against, quote to a delivery partner, and use to talk yourself into taking the next client. It is also already optimistic, because three of its four cost lines are estimates, and an estimate you made while you were keen to win the work leans one direction. The platform figure is the only one that is fixed. Every other line is a hope.

The HighLevel price itself is worth pausing on, because it is the line agencies over-weight. At $297 a month the Unlimited plan covers unlimited sub-accounts, so it is a fixed base spread across the whole book, not a per-client cost. Across eight clients that is about $37 each, and it falls as the book grows. Agencies obsess over the platform bill precisely because it is the one cost printed on an invoice they can see, and it is the smallest lever on the page.

Where the fifty-two becomes nineteen

The gap is not one big hole. It is five small ones, and none of them feels like a decision at the time. Each is a favour, a rounding-down, a thing you will sort out next month. Here they are on the same $1,200 retainer, in the order they cost you, as points of margin off the number you contracted for.

A horizontal waterfall chart stepping down from a tall mid-graphite bar labelled modeled margin at 52 per cent, through five light-grey decrements labelled scope creep, support absorbed, usage overage, discount to close and unbilled admin, ending in a short cobalt bar labelled realized margin at 19 per cent.
Fig. 02The same retainer, from the margin the model promises to the margin that survives a real client. The decimals are illustrative. The shape is the point, and the shape holds when you substitute your own figures.

Leak one: scope that never becomes a line item

The symptom is a month where you did noticeably more than the retainer describes and billed exactly the retainer. A landing page for a promotion. A new pipeline stage because the client changed how they sell. A workflow tweak that turned into rebuilding three of them. None of it was in the agreement, and none of it was invoiced.

The cause is that scope creep on a retainer never arrives as a request for extra work. It arrives as a quick question, a small favour, a can-you-just. Saying no to any single one feels petty, so you say yes to all of them, and the sum is a second job you are doing for free. On our $1,200 client this is the largest single leak, and it is entirely made of yeses that felt like nothing.

The fix is a written scope and a change order that costs nothing to send. The retainer lists what is included; anything outside it gets a one-line quote before the work starts, not an invoice after. Most clients say yes to the quote, which means the work was always billable and you were the only one treating it as free. The ones who balk have just told you the work was not actually urgent.

Leak two: the support you eat instead of bill

The symptom is a calendar full of fifteen-minute calls that were meant to be five, and a support inbox you answer at night because it feels rude not to. It never shows up as a cost because no single instance is large enough to notice. The aggregate is a part-time salary you pay yourself for.

The cause is that support has no natural stopping point unless you give it one. A managed retainer implies you are reachable, and reachable with no boundary becomes on-call. This is also the exact place agencies inherit a bad habit from their suppliers, an assumption that help is a free inclusion.

It is not, and on the products this site sells it deliberately is not: an agency receives a build and a written handover, with installation offered as a paid add-on rather than baked in as unlimited free hours, precisely because pretending support is free is how a supplier hides a cost you then inherit and repeat with your own clients.

The fix is a support tier with a stated response time and a stated cap, and a rate for anything past it. You are not charging for being helpful. You are refusing to run an unbounded service on a bounded fee.

Leak three: the usage you absorb

The symptom is a HighLevel usage bill that grew as the client got busier, while the retainer stayed flat. SMS, email volume, phone minutes and the AI features all meter, and a client running a real campaign burns through them. If your fee does not move with their usage, every extra message they send comes out of your margin.

The cause is a flat retainer sitting on top of a variable cost. It works while the client is quiet and quietly inverts the moment they are successful, which is the worst possible time for it to happen, because a client who is winning is a client you least want to reprice mid-flight.

The fix is to stop absorbing usage and start rebilling it, which is exactly what the platform’s SaaS mode is built to do: it lets you meter and mark up the client’s consumption under your own brand, so their heavy month is their line item and not your loss. Even without full SaaS mode, a usage allowance written into the retainer with a per-unit rate above it converts this leak from a cost you eat into revenue you collect.

Leak four: the discount you gave once and pay for every month

The symptom is a client on your books at fifteen per cent under rate because of a number you said in the room to close the deal eighteen months ago. The discount was a one-time concession in your head. On the ledger it is a permanent haircut you take every month the client stays, and it compounds, because you deliver at full cost for a fee you cut.

The cause is treating price as the lever you pull when a prospect hesitates. It is the easiest lever to reach and the most expensive to have pulled, because unlike a leak you can close with a process, a rate you set low is a rate you now have to renegotiate upward with a client who has no reason to agree.

The fix is upstream of this client, in how you handle the next one: hold rate and move something that is not price, an onboarding fee waived, a faster start, a bolt-on for the first quarter. When a standing discount does need unwinding, it belongs in a planned conversation, which is what the Q4 renewal and rate-increase window exists for, not an apologetic email in the middle of a random month.

Leak five: the unbilled admin between the work

The symptom is a working week that felt full and a billable log that does not agree. The reporting nobody reads but everybody expects. The context-switch tax of holding eight clients in your head at once. The status update, the invoice chase, the tool you spent an afternoon evaluating. None of it is on a retainer line and all of it is on your calendar.

The cause is that admin scales with the number of clients, not with the size of any one of them, so it is invisible in a per-client model and brutal in aggregate. It is the smallest leak on a single account and one of the larger ones across a book, which is exactly why the per-client view hides it.

The fix is partly to bill for it, folded into the rate rather than itemised, and partly to cut it: templated reporting, autopay to kill the invoice chase, and a hard limit on how much bespoke process each client is allowed to invent. Admin you cannot eliminate you should at least price in.

Two leaks the per-client model cannot show

The waterfall above runs on one client, which is how you should think about pricing but not how you should think about profit. Two of the worst leaks only appear when you look at the whole book, and both of them are invisible on any single retainer.

The client who eats the book

Averages lie in your favour, which is why you like them. A blended margin across eight clients can look healthy while one account inside it runs at a loss, because the profitable seven carry it. That one client is usually the loudest, the most-changed and the least-systematised, and it consumes the hours three ordinary clients would. In an averaged view it disappears. In reality it is eating your week and your margin at once.

The fix requires the one number most agencies do not track: hours per client. Log delivery time against each account for a single month and the eater is obvious. Then you have three honest options, in this order: systematise the account so it costs less to serve, reprice it to what it actually costs, or let it go. Keeping it unpriced and unmeasured is the only wrong answer, and it is the default.

Earned but not collected

This is the one that puts the word broke in the title. A retainer can be genuinely profitable and still not be in your account, because profit is a fact about invoices and cash is a fact about payments, and the two run on different clocks. A net-30 retainer that a client pays on day fifty-two is real revenue you cannot spend. Stack a few slow payers and a growing agency can run out of cash while its profit-and-loss statement looks fine, which is how solvent businesses fail.

The fix is billing discipline, and it is boring and it works: charge in advance, not in arrears; put every client on autopay at signing; and pause delivery the day a payment fails rather than the month after. None of this raises your margin by a point. All of it moves the margin you already earned from the client’s bank account into yours, which is the only place it counts.

The realized profit and loss, rebuilt

Put the five per-client leaks back against the model and the retainer looks like this. Same client, same month, same $1,200, with nothing added that was not always going to happen.

LinePer client, per month
Modeled margin$624 (52%)
Scope creep, unbilledminus $102
Support absorbedminus $86
Usage overage eatenminus $83
Discount to closeminus $70
Unbilled adminminus $55
Realized margin$228 (19%)

What actually closes the gap

The leaks are not equally worth your attention, and the order matters, because the biggest lever is not the one agencies reach for first. Ranked by what they return for the effort:

One, lower the cost of delivery, because it is the largest controllable line and it shrinks two leaks at once. A build you buy already made and reuse across a book collapses the amortised-build line toward zero and cuts scope creep, because a client is far less likely to ask for bespoke changes to a system that already fits their trade. This is the entire economic case for a rebrandable white-label snapshot over rebuilding per client, and for turning variable delivery hours into a fixed line through white-label fulfilment when it is your own hours that have become the constraint.

  1. Fix billing before you touch price. Autopay, bill in advance, pause on non-payment. It moves earned margin into your account this month and costs nothing.
  2. Meter and rebill usage, so a client’s heavy month is their line item and not your loss.
  3. Put scope in writing and quote every extra before you do it. The work was always billable; you were the only one treating it as free.
  4. Measure hours per client for one month and deal with the eater. Systematise it, reprice it, or release it.
  5. Only then reconsider your rate, from a position where you actually know your realized margin rather than your modeled one.

The order is deliberate. Closing leaks is nearly free and needs no client to agree to anything; raising rates is expensive and needs everyone to. If delivery capacity itself is the ceiling rather than any single leak, the trade-off between subcontracting fulfilment and hiring a builder is the next teardown to read, and the fixed monthly cost of running the agency is the base every one of these figures sits on.

Three things you are already arguing back

I cannot just raise prices in this market

You do not have to, and that is the point of doing the leaks first. Recovering fifteen points of margin by closing scope creep and rebilling usage is a change your clients barely feel, because you are charging for work and consumption that were always theirs. A fifteen per cent price rise is a change every client feels and some refuse. The margin is the same size. One of the two routes you can do this week without a single difficult conversation.

Buying a snapshot will not fix my labour problem

Correct, and worth being honest about, because it is the thing this site sells and it is not a cure-all. A bought build lowers the amortised-build line and reduces scope creep, since a system already fitted to the trade invites fewer bespoke asks. It does nothing for the two leaks that are about discipline rather than cost: if your gap is uncollected cash or a standing discount, no snapshot closes it, and buying one instead of fixing your billing is treating the wrong wound. Buy the build to lower cost of delivery. Fix the process to stop the leaks the build cannot reach.

My clients would leave if I metered usage or capped support

Some might, and you should look closely at which ones. A client who leaves over twenty dollars of rebilled SMS or a response-time cap was not a profitable client; they were a subsidised one, and the subsidy was coming out of your margin. Losing the accounts that only work while you eat their costs is not churn to fear. It is the book correcting itself toward the clients who pay for what they use, which are the only ones a nineteen-per-cent business can afford to keep.

If the honest read on your own book is that cost of delivery is the leak you can move first, the fastest lever is a build you do not have to make: the white-label snapshot catalogue is priced so the per-client cost falls with every account it serves, with the full pricing, installation and add-ons laid out before you commit to anything. Close the leaks first, then decide what to buy.

Quick answers

Related questions

Keep reading

Next in the series

Decision · 11 min

White-Label Fulfilment vs Hiring a GHL Builder

A hire is fixed capacity you have to keep busy. A partner is variable capacity you pay for when you use it. The break-even between them is a number you can work out this afternoon.

Next step

Put your name on the build.

Pick a snapshot, hand us your brand kit, and have a rebranded system in your agency in 72 hours. Or hand us the whole delivery queue.

  • No retainer lock-in
  • 30 days notice
  • Your client never sees us