A partner quotes you $6,000 for the build. You send the client $12,000, which feels like a healthy number, and you book it as a 50 percent margin.
Four months later the project closes. Two revision rounds went through that nobody scoped, your senior developer spent a day and a half on reviews, and somewhere in there you bought a $400 plugin licence that never made it onto an invoice. The margin was never 50 percent. It was 28.
Nothing went wrong on that project. That is the uncomfortable part. White-label WordPress markup fails quietly, in the gap between the number you quoted and the work you actually did.
Is 30% markup the same as 30% margin?
No, and that difference is where a lot of agency profit goes missing.
Markup is calculated against what you paid. Margin is calculated against what you charged. So a 30 percent markup leaves you a 23 percent gross margin, a 50 percent markup is a 33 percent margin, and reaching a 50 percent margin takes a 100 percent markup. You have to double the partner’s price to keep half the client’s money.
| Markup | Client price | Gross margin |
|---|---|---|
| 25% | $7,500 | 20% |
| 50% | $9,000 | 33% |
| 75% | $10,500 | 43% |
| 100% | $12,000 | 50% |
| 150% | $15,000 | 60% |
Agency owners who quote on instinct tend to think in markup and report in margin, which flatters every project by about ten points. Pick one and stay with it. Margin is the more useful number, because it tells you what fraction of the client’s money you actually keep.
What typical white-label WordPress markup percentages look like
Published figures put the common range at 30 to 50 percent where an agency passes through hourly work, and 50 to 100 percent on fixed-price builds. Retainers and small high-value jobs such as performance passes tend to carry more.
Treat those as reported ranges rather than industry data. Most trace back to agency blogs quoting their own experience, which is worth something and is not a benchmark. What they do tell you is that a 30 percent markup sits at the floor of what anyone considers viable, and it produces a 23 percent gross margin before one of your own hours comes out of it.
Why the same WordPress build quotes at $800 and $9,000
Send the same brief to three places and the quotes will differ by an order of magnitude. The spread is not skill. It is scope.
At $800 you are buying hands. Someone implements what you send, exactly as sent, and anything you failed to specify gets guessed at or left out. At $9,000 you are buying a delivered project: proper scoping, accessibility and performance checks, a review process, revisions inside an agreed limit, and someone who picks up on the Tuesday after launch when a form stops sending.
Both are legitimate purchases. They are not the same purchase, and pricing one as though it were the other is how an agency ends up doing the missing $8,200 of work itself, unpaid, the week of the deadline.
Your markup is a budget, not profit
The gap between the partner’s invoice and your client’s invoice is not profit. It is a budget, and two things have a claim on it before any of it reaches you.
Your own hours come first. Pass-through costs come second. Whatever survives both is the margin you actually earned, and it is the only number worth putting in a quarterly review.
Agencies that skip this are not pricing a project. They are marking up an invoice, which is a different and far less reliable activity.
The unbilled agency hours that come out of your markup first
Walk through what your agency does on a white-label build that the partner does not.
The discovery call and the follow-up. Writing a scope document good enough to work from. Briefing the partner. The Thursday email thread when the client changes their mind about the hero section. Reviewing what comes back. Managing the revision round. The launch-day check. The invoice, the chase, the retro.
Real hours at your real loaded cost, and none of them appear on anybody’s invoice. Twenty to twenty-five agency hours on a mid-sized build is normal. At a loaded internal cost of $75 an hour, that is roughly $1,700 of your $6,000 budget spent before you count a single licence.
Track them on your next three projects. Most owners are surprised, and the surprise always runs the same direction.
How to calculate your real margin on a white-label project
Take the client price. Subtract the partner invoice, your own hours at loaded cost, and every pass-through expense. What remains is your margin.
On the $12,000 build from the opening:
| Part | Amount |
|---|---|
| Partner cost | $6,000 |
| Agency hours, 23 at $75 | $1,725 |
| Pass-throughs for licences, stock and staging | $650 |
| Profit | $3,625 |
- Client price: $12,000
- Partner invoice: $6,000
- Agency hours, 23 at $75: $1,725
- Pass-throughs for licences, stock and staging: $650
- Real margin: $3,625, or 30 percent
Thirty percent is a respectable outcome. It is also not fifty, which is the number that went on the quote and into the quarterly review. Add back the two unscoped revision rounds from the opening, two agency hours each at $75, and the same project lands at 28.
What quietly eats your white-label WordPress margin
Two things, mostly. Neither announces itself.
Scope creep and the change order nobody wrote
No agency loses a margin to one large request. They lose it to eleven small ones.
A tweak to the contact form. Then the footer. Then could the testimonials rotate, and while we are in there. Every single request is too minor to invoice without looking petty, so each gets absorbed, and somewhere around the eleventh you have given away a week. Your partner bills you for part of it. You bill the client for none of it.
Discipline will not fix this, because discipline fails at 4pm on a Friday before a launch. A written threshold will. Agree it at kickoff: anything under thirty minutes is absorbed, anything over generates a change order at a stated rate. Clients rarely object. What they object to is being surprised by an invoice, and the threshold is precisely what prevents that.
How to price plugin licences, hosting and stock assets
Pass-through costs are small, forgettable, and they renew.
A premium plugin bundle, a stock image set, a staging environment, an SSL certificate on the client’s own hosting. Four hundred dollars on one build will not decide your year. Four hundred dollars a year across forty client sites, never re-billed after the first invoice, is $16,000 walking quietly out of the business.
Bundle them into the project price rather than itemising. An itemised line invites a negotiation about an $89 plugin that costs more in your time than the plugin costs in money, and it frames you as a reseller instead of the agency delivering the work. Then write the annual renewals into the care plan on day one, because year two is where this money actually disappears.
How to price backwards from the margin you need
Stop starting from the partner’s quote. Start from the margin.
Decide what net margin the project has to deliver. Add up what it will genuinely cost: the partner invoice, your estimated agency hours at loaded cost, the pass-throughs. Divide that total by one minus your target margin. The client price falls out of the arithmetic instead of out of habit.
Run the earlier project through it. Real cost of $8,375, a 30 percent target, and the price comes to $11,964. Call it $12,000. Same figure the agency reached by instinct, except now it has a reason behind it, and you know exactly which assumption to revisit when the client pushes back.
Whether you structure that as a fixed project or an hourly pass-through changes how much of the risk you carry, and that choice deserves its own treatment rather than a paragraph here.
How to quote when you do not have the partner’s number yet
The client wants a figure on the call. Your partner needs two days to scope it. This is the moment most margins are decided, and almost no pricing guide mentions it.
Do not invent a number. Do not promise to send one tomorrow and then spend tomorrow hoping. Quote a band, and make the band come from your own history rather than your nerves.
Keep a one-page rate card built from your last ten or fifteen builds: brochure site, ecommerce on an existing theme, custom WooCommerce, migration, performance pass. For each one, the partner cost, your agency hours, and the price you landed. It takes an afternoon to assemble and it turns a nervous guess into a defensible range.
Then the sentence is easy. Based on what you have described, this sits between X and Y, and two days with the detail will tighten it. Clients accept this constantly. What they will not forgive is a confident number that moves by 40 percent a week later.
Why the 2x markup rule is right once and wrong everywhere else
Double the partner’s quote, says the common advice. It works inside the narrow band where it happens to be correct, and it fails on both sides of it.
Your agency hours do not scale with the partner’s invoice. A $1,500 landing page still needs a discovery call, a scope, a review and a launch check. Call it ten hours, so $750 of your time against a $1,500 build. Double the quote to $3,000 and you keep about $650, a 22 percent margin on work you almost certainly described to yourself as high margin because the number was small and the job was easy.
Now the other direction. A $20,000 build does not need thirteen times the management of a $1,500 one. Forty hours, perhaps, so $3,000. Double the quote to $40,000 and you hold a 40 percent net margin, which is comfortable, and you are also about $5,000 above what you needed to charge. On a competitive pitch that is the difference between winning the project and coming second with an excellent margin on work you did not get.
Small projects need a bigger multiple than the rule suggests. Large ones need less. The multiple is an output, not an input.
How to justify your rate without revealing what you paid
Agency owners get strange about this one.
There is a quiet feeling that charging $12,000 for something bought at $6,000 is not quite honest, and that feeling is why white-label work gets under-priced more often than any other line an agency sells. It rests on a wrong premise. You are not reselling hours. You are selling the thing that makes the hours safe.
Your client is buying a scoped project rather than a developer. They are buying the fact that someone qualified reviewed the work before it reached them, that a revision process exists, that the build will not depend on a plugin abandoned in 2021, and that when the checkout fails on a Saturday they call one number and reach a person who already knows their site. None of that sits in the partner’s invoice. All of it is what the markup pays for.
Practically: never itemise a partner’s cost to a client. Not because it is a secret, but because presenting yourself as a line item plus a fee invites them to question the fee, and then to wonder whether they could go direct. Quote the project. At Coderlift we work under the agency’s name and branding so the question never comes up.
Why the cheapest white-label partner costs you the most margin
A cheap partner does not lower your costs. It moves them to your side of the ledger.
Briefs have to be more detailed, because less gets inferred. Review takes longer, because more comes back wrong. Then a rework round, then a second one. Your senior person, whose time is the scarcest thing in the building, spends three days on a build that should have taken half of one. Every one of those hours comes out of your markup, and no invoice will ever show it to you, because invoices only count money that moved.
There is a second cost underneath the first. Those three senior days were not just $1,800 of loaded time. They were three days not spent on the pitch that would have won the next project, and that number never appears anywhere at all.
Price a partner on total delivered cost rather than their rate. A partner charging 30 percent more who needs half the management is the higher-margin choice on almost any build, and the gap widens as volume grows, because management time is what caps how many projects you can run at once.
Frequently asked questions
How much does a white-label WooCommerce build cost?
Published partner rates for WordPress builds run roughly $2,500 to $20,000 depending on scope, and WooCommerce sits in the upper half because payment, tax, shipping and inventory logic all need testing rather than just implementing. A simple store on an existing theme is a different job from a custom checkout with subscriptions and an ERP integration behind it. Get the integration list before you quote anything, because that is where most of the variance lives.
Should I tell my client I use a white-label partner?
You are not obliged to volunteer it. Do not deny it either, because being caught in a direct denial costs far more than the disclosure ever would, and the question only gets asked once a client is already suspicious about something else. The workable position is that you take full responsibility for delivery, your team scoped and reviewed the work, and how it is resourced internally is your business, in the same way a law firm does not tell you which associate drafted the contract. If a client ever pushes hard on it, answer plainly and move the conversation to who is accountable, because that is the thing they actually wanted to know.
What markup should I use on a maintenance retainer?
Retainers tend to support a higher multiple than builds, with reported ranges running 50 to 100 percent over the partner’s monthly rate. They hold up because clients are buying response time and peace of mind rather than hours, so the price anchors to the risk being removed instead of the work performed.
Is white-label cheaper than hiring in-house?
Structurally yes, because it is a variable cost that falls to zero in a quiet month while a salary does not. Per hour it usually costs more, which is why the comparison only works across a full year including the months with no development work at all.
What are standard markup percentages for web development agencies generally?
Across agency services, 30 to 50 percent markup on subcontracted work is common, and 100 percent is typical on anything the agency scopes, manages and warranties itself. What decides it is usually how much of the client relationship the agency owns rather than the discipline involved. The more you are accountable for, the more the market supports.
How to start pricing white-label WordPress work for profit
Do one thing this month. Take your last three white-label builds, add up the agency hours nobody billed, and work out what you actually earned.
The number will be lower than the one on the quote. That is not a sign you are bad at this. It is a sign you were pricing an invoice instead of a project, which is what nearly everyone does, because it is what nearly every guide tells them to do.
Once you know your real hours, the rest is arithmetic. Pick the margin. Add every cost including your own. Let the price fall out. Then pick your partner on delivered cost rather than rate, because the cheap quote is usually the expensive one and the expense lands in a column nobody is looking at.
If you want development priced so there is something sensible to mark up, our white-label WordPress services page covers how the delivery works.
Margin is not something you add at the end. It is something you defend from the first call.
Leave a reply