The Bottom Line
Most boards run this decision by putting a technician's salary next to a vendor's quote. At Magnolia those two numbers are $56,160 and $55,080, and the comparison says "contract." The real numbers are $83,180 and $116,640, and they say the opposite. Never compare a salary to a quote. Compare the full cost of employing someone to the full cost of buying the same work, and strike anything identical on both sides. The decision then turns on one number almost no board computes: the break-even work-order volume. For Magnolia it is about 513 work orders a year.
Never compare a salary to a quote
The error is almost universal, and it is structural rather than careless. A board asks two questions — what would a maintenance technician cost, and what does the porter vendor charge — gets two numbers back, and puts them side by side. At Magnolia Recreational HOA the technician's wage would be $56,160 a year. The porter service quotes $4,590 a month, or $55,080 a year. The contract wins by $1,080, the board votes, and the file closes.
Magnolia Recreational HOA is a composite illustration built for the FOAM series. The community, its vendors, and its financial institutions are fictional; the structures and the arithmetic are real.
Cost accounting has had a name for this failure for decades. It is the make-or-buy analysis, and the discipline it imposes is that you may only compare avoidable costs on one side to incremental costs on the other — everything the decision actually changes, and nothing it does not. A wage is not the cost of an employee. A quote is not the cost of a contract. The wage omits every dollar of employer overhead that arrives with the person, and the quote omits everything the scope of work does not cover, which at Magnolia is most of the work.
The assumptions, stated plainly
Every figure below is derived from a small, explicit assumption set, and the set is more important than any single number in it. A model whose assumptions are stated can be argued with. A model whose assumptions are buried cannot, which is why vendors prefer them buried.
| Assumption | Value | Basis |
|---|---|---|
| Total work orders per year | 720 | 60/month across two pools, courts, playgrounds, amenity center, lakes, trails, 1,200 lots |
| Requiring a licensed trade regardless | 180 (25%) | Electrical, HVAC, pool equipment, structural — contracted under either option, so excluded from the comparison |
| In scope for this decision | 540 | Routine repairs, upkeep, amenity turnarounds, light irrigation, minor plumbing |
| Split of the 540 | 324 batchable / 216 same-day | 60% can wait for a scheduled visit; 40% cannot |
| Technician wage | $27.00/hr × 2,080 hrs | Texas metro, experienced generalist |
| Management company markup on the role | 25% of salary | Hiring, supervision, and management of the position, billed on top of payroll |
| Handyman call-out rate | $285 per call | $65 trip charge + 2-hr minimum at $95/hr + $30 same-day premium |
| Parts and materials | Excluded from both columns | Bought at cost either way — see below |
| In-house cost escalation | 3.0%/yr | The stack is salary-driven, and the markup is a percentage of salary, so it moves with the wage |
| Contract escalation | 5.0%/yr | Trade labor reprices harder than wages, and vendors reprice annually |
Parts and materials are excluded from both columns on purpose. The association buys the valve, the seal, and the gate hinge at cost whether an employee installs it or a vendor does, and a cost that does not differ between the alternatives cannot change which one is cheaper. Garrison's relevant-cost rule says to strike it from both sides rather than carry it on both.
Neither column carries a line for the general manager's hours, and that symmetry is deliberate. On the in-house side, hiring, supervising, and managing the position is bought explicitly: it is the 25% markup, $14,040 a year, and it arrives on an invoice. On the contract side, sourcing the vendor, scheduling the visit, and matching the invoice to the work order sit inside the $6,000 management fee the association already pays. Charging manager hours to one side and not the other is precisely the asymmetry this article exists to warn against, so the model prices supervision where it is bought and stops there.
Work-order volume is held constant at 540 on both sides for all five years. That is a deliberate choice, and it is deliberately conservative against the in-house option — a technician who walks the property every day catches failures earlier, diagnoses them faster, and gets fewer of them wrong. We are leaving that benefit out of this model on purpose, so that nobody can accuse the arithmetic of being rigged. It is worth roughly $96,000 over five years, and a companion article puts it back in.
What the position actually costs
The fully loaded cost of employing the technician is $83,180 a year, or 1.48 times the wage. Every layer below is a real cash outflow, and every one of them exists because the position exists.
| Layer | Annual | Basis |
|---|---|---|
| Base wage | $56,160 | $27.00/hr × 2,080 hrs |
| Payroll taxes | $5,050 | Employer share — FICA at 7.65% ($4,296) plus federal and state unemployment |
| Workers' compensation | $2,530 | ≈4.5% of wage at a maintenance classification |
| Health and benefits | $5,400 | $450/month |
| Management company markup, 25% of salary | $14,040 | Hiring, supervision, and management of the role |
| Fully loaded annual cost | $83,180 | 1.48 × the wage |
The line that boards resist is the markup, because the general manager's hours are already paid for inside the $6,000 monthly management fee and supervising a technician can therefore look free. It is not. Recruiting, screening, running the payroll, handling the reviews, and standing behind the work is a service, and it is priced at 25% of salary. The virtue of the markup is that it makes the cost of supervision explicit instead of leaving it to be absorbed silently by the manager's week. A cost you can see is a cost you can negotiate.
What the contract actually costs
The contract costs $116,640 a year, and only $55,080 of that is the quote. The rest is what the scope of work does not cover.
| Layer | Annual | Basis |
|---|---|---|
| Porter service contract (the quote) | $55,080 | 324 batchable work orders on a scheduled route, ≈$170 each |
| Same-day call-outs | $61,560 | 216 × $285 ($65 trip + 2-hr minimum at $95 + $30 same-day) |
| Fully loaded annual cost | $116,640 | $216.00 per in-scope work order |
The call-out line is where boards flinch, and it is the most defensible number in the table. The porter contract buys a route, not a response. Two hundred and sixteen times a year something breaks that cannot wait for the Tuesday visit — a pool gate latch before a swim lesson, a blocked drain, a sprinkler head spraying the street — and each is a separate transaction at a separate price. The vendor does not charge $285 because the repair is worth $285. It charges $285 because sending a truck across town costs money whether the job takes twenty minutes or two hours, and the minimum is how it recovers that.
These are what we call silent costs: recurring, predictable expenses that the contract does not name, the budget does not carry as a line, and the general ledger files somewhere else. They are not surprises. A trip charge is not a surprise. A two-hour minimum on a twenty-minute repair is not a surprise. They are the vendor's business model, and they are perfectly legitimate — the association's error is not that it pays them but that it does not count them.
Five years, both columns
Over five years the contract costs $644,510 and employing the technician costs $441,614. The difference is $202,896 — about $169 per lot, or roughly $34 a lot a year.
That last point deserves emphasis, because boards go looking for a payback year and there isn't one. The in-house option does not "pay back" a large upfront investment; it substitutes a fixed cost structure for a variable one. Whether that trade is cheaper depends almost entirely on how much work there is to do — and not at all on how long you wait.
The number your board actually needs: break-even volume
Strip both options down to their structure and the whole decision fits on one line each. The in-house option costs $83,180 a year and not a dollar more, no matter how many things break. The contract costs nothing at all if nobody calls, and $216.00 every time somebody does. One option is entirely fixed; the other is entirely variable. Set them equal and solve.
Below about 513 total work orders a year, contract. Above it, hire. That single sentence is worth more to a board than the entire five-year model, because it converts an argument about philosophy into a question the manager can answer from the work-order log in twenty minutes.
It also shows how much the answer depends on the volume assumption, and boards should test it before they act. If Magnolia's true in-scope volume is 350 rather than 540, the contract wins and the hire is a mistake. Near the line, the escalation differential takes over: at exactly 385 in-scope work orders the two options cost the same in Year 1, and because the contract reprices at 5% while the employment stack reprices at 3%, the in-house option is cheaper in every year after that. Near the line, patience favors hiring. Far below it, nothing does.
Where the textbook stops being useful
The make-or-buy framework has one step that does not survive the trip into an association, and it is worth naming because consultants lean on it. In a factory, choosing to buy frees up floor space and machine hours that were being used to make the part, and those can be redeployed to something that earns. That forgone alternative use is an opportunity cost, and it gets charged against the "make" column — which is frequently what tips a textbook problem toward "buy."
An association has nothing to redeploy. Contract the porter work out and you free a maintenance shed, a parking space, and a storage cage. None of them will ever earn a dollar, because the declaration does not permit it and no one would rent them anyway. So the opportunity-cost charge on the in-house side is close to zero here, where in the textbook cases it can be substantial.
The mirror of that is also true, and it points the other way. In a factory the equipment and the space already exist, so the make option gets to lean on capacity the firm has already paid for, and its incremental cost looks small. Magnolia has no technician and no one to supervise one. Every dollar in the in-house column is a new dollar, including the supervision. There is no spare capacity to absorb, which is the real adjustment, and it tilts the arithmetic toward buying relative to Garrison's examples. The net of the two adjustments is that the freed-capacity step does almost no work in an association, and the comparison collapses to what it should have been all along: what the association pays to employ someone, against what it pays a vendor to do the same work. A model with fewer lines is not a weaker model. It has removed everything that cannot change the answer.
What the arithmetic cannot price
Three things sit outside the model and the board must weigh them anyway. The first is response time. A same-day call-out at Magnolia means a truck arrives within eight hours if the vendor is not busy, and within two days if it is; an onsite technician means the broken pool gate is fixed before the afternoon swim lesson. The model prices the repair identically. Residents do not experience it identically.
The second is quality control. A vendor is accountable to its scope of work. An employee is accountable to the association. Those are different relationships, and the second one is easier to correct and harder to escape. The third is the resident experience of being known — a technician who recognizes a homeowner and the homeowner's fence is worth something in a community where the board's hardest job is not spending money but keeping the peace.
What to do with this
- Pull three years of the work-order log and count. Total closed work orders, and the share that required a licensed trade. That gives you the in-scope volume, which is the variable the whole decision turns on.
- Get the management company's markup in writing. Ask what it charges to recruit, supervise, and manage an onsite employee, as a percentage of salary and as a dollar figure. That number belongs in the in-house column.
- Build both columns to the same standard. Every avoidable cost on one side; every incremental cost on the other. If a line appears on one side and not the other, be able to say why. If a cost is identical under both, strike it from both.
- Compute your own break-even volume. Divide the fully loaded annual employment cost by the fully loaded cost per contracted work order. Compare the answer to your actual count.
- Re-run it at 80% of your work-order volume. If the answer flips, the decision is not robust and you should say so out loud in the minutes.
- Take the employment questions to counsel and the insurance broker before you take the arithmetic to a vote. Wage-and-hour classification, workers' compensation, and employment-practices coverage are not board judgment calls.
- Read the companion piece on fixed-cost risk before you vote. This model says hire. It is not the whole argument.
Sources and further reading.
- Garrison, Noreen & Brewer, Managerial Accounting, 16th ed. (McGraw-Hill, 2018), ch. 12 — make-or-buy analysis, the discipline of comparing avoidable to incremental costs, and the relevant-cost rule that a cost identical under both alternatives must be struck from both; ch. 1 — opportunity cost and the distinction between committed and discretionary fixed costs.
- Garrison, Noreen & Brewer, ch. 6 — "omission of costs," the mechanism by which a real expense belonging to one function is reported against another, which is why a contract can look cheaper than it is.
- Quiry, Dallocchio, Le Fur & Salvi, Corporate Finance: Theory and Practice, 4th ed. (Wiley, 2014), ch. 50 — a predictable, statistically regular loss is a cost rather than a risk, and belongs in the budget as a line.