TL;DR
Most companies compare staffing models on an hourly rate. That comparison is structurally wrong, because the three models do not sell the same unit. An in-house WordPress developer earning the US average costs roughly $85 to $95 per delivered hour once benefits, paid leave, and non-project time are counted. At US agency rates, the point where in-house becomes the cheaper option sits somewhere between 70 and 145 hours of real website work per month. Almost no mid-market company reaches that. The right question is not “what does an hour cost,” it is “what shape is my demand.” This article gives you the arithmetic and a framework, the Four V’s, to answer it.
The Comparison Everyone Runs, and Why It Fails
The standard version goes like this. An in-house developer costs $85,000. An agency quotes $130 an hour. Divide $85,000 by 2,080 working hours, and you get $41 an hour. In-house looks three times cheaper. Decision made.
Every number in that calculation is real. The conclusion is still wrong, for three reasons.
The salary is not the cost. The 2,080 hours are not available. And an hour of one person’s skill is not interchangeable with an hour of a team’s skill.
Fix those three, and the picture inverts for most companies.
What an In-House Developer Actually Costs per Delivered Hour
Start with salary. ZipRecruiter puts the average US WordPress developer salary at $84,542 as of July 2026.
Now add employment costs. According to the US Bureau of Labor Statistics Employer Costs for Employee Compensation release for March 2026, wages and salaries make up 69.9 percent of total compensation for private industry workers, with benefits accounting for the other 30.1 percent. That is a multiplier of roughly 1.43. So $84,542 in salary is about $121,000 in wages plus benefits.
Now subtract the hours you do not get. A 2,080-hour year assumes no vacation, no public holidays, and no sick days. Take a conventional 15 days of paid leave, 11 holidays, and a handful of sick days and you are at roughly 1,830 hours. Take out company meetings, onboarding, training, performance reviews, and general administration, and in projects we have handled the genuinely deliverable figure lands closer to 1,500 hours a year.
$121,000 divided by 1,500 hours is $81 per delivered hour, and that is before you have bought a laptop.
Add the rest. Recruiting costs money: the Society for Human Resource Management’s benchmarking report put average cost-per-hire at $4,129, though that figure is from fiscal year 2015 and should be treated as a floor rather than a current estimate. Add hardware, software licenses, plugin and tooling subscriptions, and the management time to direct the role. Ten to twelve thousand dollars a year is a conservative allowance. That moves the true internal cost to roughly $85 to $95 per delivered hour.
That number is the one to compare against an external rate. Not $41.
If this pattern feels familiar, it is the same accounting error that makes cheap builds expensive. We ran the three-year version of it in The True Cost of a “Cheap” WordPress Site: the invoice is never the cost, and the gap shows up later as maintenance, drag, and rebuild.

The Crossover Point, and Why Most Companies Cross It Too Early
An in-house developer is a fixed cost. External help is a variable cost. Fixed beats variable only after you cross a volume threshold, and that threshold is higher than intuition suggests.
Take the fully loaded annual figure of roughly $131,000. Clutch’s WordPress development pricing guide reports that agencies in the United States, Canada, and Australia typically charge $100 to $149 per hour. Codeable’s 2025 rate breakdown puts senior freelance WordPress developers at $75 to $120 per hour or more, and $80 to $120 on its own vetted platform before the platform fee.
Run the division:
| External blended rate | Hours per year that $131,000 buys | Hours per month |
|---|---|---|
| $75/hour | 1,747 | 146 |
| $100/hour | 1,310 | 109 |
| $120/hour | 1,092 | 91 |
| $150/hour | 873 | 73 |
So the crossover sits between roughly 70 and 145 hours of website work per month, depending on the rate you would otherwise pay. Below that line, hiring in-house is the more expensive option on pure arithmetic.
Here is the uncomfortable part. Most mid-market companies with a single marketing site generate somewhere between 10 and 40 hours a month of genuine development demand once the build is finished. They hire in-house at a quarter to a half of the volume that would justify it, then experience the resulting idle capacity not as waste but as a vague sense that the developer is “busy with other things.”
Why the Arithmetic Still Is Not the Whole Answer
If cost per hour were the only variable, this article would end here. It is not, because website work is not one skill.
IDC’s February 2025 report How Do Software Developers Spend Their Time?, based on 2024 survey data, found that developers spent 16 percent of their time developing applications, with the remainder distributed across writing requirements and test cases (14 percent), security (13 percent), CI/CD implementation (12 percent), application performance monitoring (12 percent), deployment (12 percent), infrastructure monitoring (11 percent), and user experience (10 percent). The report also noted that time spent on security rose from 8 percent in 2023 to 13 percent in 2024.
Read that as a job description, not as a productivity complaint. Running a WordPress property in production means PHP, front-end, database work, hosting and DevOps, security hardening, performance, accessibility, analytics, and design. One hire covers two or three of those well. The rest either get outsourced anyway or quietly stop happening.
That is the structural argument against the single in-house hire that no cost table shows: you are not buying a cheaper hour; you are buying a narrower one.
The Four V’s of Website Demand
Rather than starting with the models, start with the demand. Four attributes determine which staffing model fits. Score each on your own site.
- Volume. How many hours of real website work does your property generate in a typical month, excluding the initial build? Not “how much would we like to do.” How much actually ships. Look at the last six months.
- Variance. How evenly is that volume distributed? A site that needs 30 hours every month has a different shape from one that needs zero for eleven weeks and 120 in one. Variance is what makes fixed capacity expensive: you pay for the peak and idle through the trough.
- Variety. How many distinct disciplines does the work touch? Count honestly: back-end, front-end, DevOps, security, performance, accessibility, integrations, design, analytics. Three or fewer is a person. Six or more is a team.
- Vulnerability. What does one hour of downtime or one security incident cost you in revenue, regulatory exposure, or reputation? A brochure site and a WooCommerce store with $2M in annual revenue are not the same asset, and they do not merit the same coverage. WordPress powers 41.0 percent of all websites according to W3Techs as of August 2026, which is precisely why it is a standing target.
Volume and Variance tell you how much capacity to buy. Variety and Vulnerability tell you what kind.
The Decision Matrix
| Your demand shape | Best fit | Why |
|---|---|---|
| Low volume (under 40 hrs/mo), low variance, low variety, low vulnerability | Freelancer | Fixed capacity is wasted. One skilled person is sufficient. Keep documentation current. |
| Low volume, high variance, any variety | Agency retainer with rollover | You need the ability to surge without paying for the peak year-round. |
| Low to mid volume, high variety or high vulnerability | Agency | You need coverage across disciplines and outside business hours. No individual supplies this. |
| High volume (over 100 hrs/mo), low variety, low vulnerability | In-house | You have crossed the crossover and the work is narrow enough for one skill set. |
| High volume, high variety, high vulnerability | In-house lead plus agency bench | The in-house role owns context and prioritization. The agency supplies depth and coverage. |
| Any volume, and the site is the primary revenue channel | Agency, or in-house team of three or more | Vulnerability overrides volume. A bus factor of one is not an acceptable design for a revenue-critical asset. |
Notice what changes the answer most often. It is rarely Volume alone. It is Variety and Vulnerability, the two attributes that never appear in an hourly-rate comparison.
The Contrarian Position: The Accidental Hybrid Is the Worst Option, and It Is the Most Common
Companies rarely choose a staffing model. They accumulate one.
The pattern is consistent. You hire one in-house generalist because the arithmetic looked favorable. The generalist handles what fits their skill set. Everything outside it gets deferred until it becomes urgent, at which point you call an agency at emergency rates, with no context, no documentation, and no time.
You are now paying full fixed cost for partial coverage, plus premium variable cost for the gaps, plus the tax of onboarding an external team into an undocumented environment every time. On paper, you have both models. In practice, you have the cost structure of both and the reliability of neither.
The deliberate version of the same arrangement works well. The distinction is not the shape of the org chart. It is whether the agency relationship exists before the emergency, with documented access, a tested rollback path, and a standing relationship, or whether it gets created during one. Your website going down at 2 AM is when that difference is priced.
What Each Model Is Genuinely Good At
| In-house | Freelancer | Agency | |
|---|---|---|---|
| Context depth | Highest | Medium | Medium, high with a long retainer |
| Discipline coverage | Narrow | Narrow | Broad |
| Cost at low volume | Poor | Best | Good |
| Cost at high volume | Best | Medium | Medium |
| Surge capacity | None | Very limited | Strong |
| Coverage outside business hours | Limited | None | Contractual |
| Continuity if the person leaves | Company risk | Company risk | Contractual |
| Time to start | 6 to 12 weeks | Days | 1 to 3 weeks |
| Fixed cost exposure | Full | None | Retainer only |
No column wins outright, which is the point. Each model is a different trade-off between cost, coverage, and continuity. Pick the one whose weakness you can survive.

Five Questions to Run Monday Morning
- What is our real monthly hour count? Pull the last six months of tickets, requests, and change logs. Total the hours actually spent. Compare against the 70-to-145-hour crossover band.
- What is our variance? Take the busiest month and the quietest month in that six-month window. If the ratio is above three to one, fixed capacity will be expensive.
- How many disciplines does our work touch? List them. If the count is above five, a single hire cannot cover the surface.
- What is our bus factor? If one person left tomorrow, could someone else deploy, restore a backup, and renew the SSL certificate by Friday? Score it honestly using the Four-Key Continuity Map.
- What does one hour of downtime cost? Revenue per hour, plus the support load, plus the reputational cost. If you cannot answer this, you cannot size coverage, and you are choosing a staffing model blind.
The answers give you a demand shape. The demand shape gives you the model. The hourly rate is the last thing to look at, not the first.
FAQ
Q1. Is an in-house developer ever the cheapest option?
Yes, above roughly 100 hours a month of sustained, low-variance, narrow-discipline work. That describes a product company or a large publisher, not most mid-market marketing sites.
Q2. Does the crossover change if we hire offshore?
Yes, substantially. Clutch reports WordPress development rates of under $25 per hour in India and the Philippines, and $25 to $49 per hour in Ukraine, Poland, and Mexico. Lower external rates push the crossover higher, meaning in-house becomes harder to justify on cost, not easier. Coverage, timezone, and continuity questions still apply.
Q3. We already have an in-house developer. Was that a mistake?
Not necessarily. Run the five questions. If volume is low but Variety and Vulnerability are high, the productive move is usually to keep the role and change its job: make the in-house person the owner of context, documentation, and prioritization, and buy depth externally. That is the deliberate hybrid, and it works.
Q4. How do we compare agency proposals once we have decided on the model?
Rate is the least informative line item. Scope definition, change-control terms, and named responsibilities predict overruns far better. See how to read a WordPress development proposal.
Q5. What should ongoing maintenance cost regardless of model?
It varies with complexity and traffic, but it is a separate line from development work and should be budgeted separately. See WordPress maintenance cost and the monthly retainer model.
Staffing is a capacity decision disguised as a cost decision. Measure the shape of your demand first. The model follows from it, and the arithmetic stops being the argument.
Related reading: The True Cost of a “Cheap” WordPress Site and How to Hire Remote WordPress Developers.