In a 20-person shop, material cost control has to be owned by one named person, and in practice that person is usually the owner, the operations manager, or a working project manager. Not the bookkeeper, and not “everybody.” The bookkeeper owns the match between the invoice and the purchase order. The field owns receiving. But the person who decides what a part should cost, notices when it stops costing that, and takes it to the rep has to be someone with the authority to change a supplier relationship. That is an owner-level job even when the owner delegates the legwork.
The reason this question comes up at all is that material cost control is four jobs, not one, and they get quietly split across four people. Everybody holds their own piece. Nobody owns the seam between them.
This post lays out the four pieces, who typically holds each one at 20 people, where the seams open, and the honest version of the hire-versus-outsource question.
The four jobs hiding inside “material cost control”
Say them out loud and the ownership gaps become obvious.
Buying. Deciding what to order, from whom, at what quantity, and getting a price before the truck rolls. Usually spread across a PM, a foreman, and whoever is closest to the counter.
Receiving. Confirming that what showed up matches what was ordered, in quantity and in part number. Almost always the field, almost always under time pressure, almost always the weakest link.
Matching and paying. Checking the invoice against the purchase order and the delivery receipt before the check goes out. The bookkeeper or office manager.
Price history and negotiation. Knowing what each part cost the last four times you bought it, spotting drift, and taking it to the supplier. This is the job that has no obvious home and therefore usually has no home at all.
Here is how it typically distributes.
| Job | Who usually owns it | What they need to do it | What breaks when nobody owns it |
|---|---|---|---|
| Buying | PM, foreman, lead tech | A PO number, a quote, current pricing | Counter runs with no PO, no price agreed until the invoice arrives |
| Receiving | Field crew | Packing slip, the original order, two minutes | Charged for 12, delivered 10, discovered never |
| Matching and paying | Bookkeeper, office manager | Invoice, PO, delivery receipt, a tolerance rule | Invoices paid on totals, unit price never checked |
| Price history and negotiation | Owner or ops manager | Twelve months of line-level unit prices | Price creep runs for a year, discovered at the annual review or not at all |
The fourth row is the one to sit with. Three of those four jobs are transactional and get done because a truck is waiting or a vendor is calling. The fourth is analytical, has no deadline, and is therefore the first thing to slide when the shop is busy. Which is exactly when material prices move most.
Why the bookkeeper cannot own it alone
This is the most common assumption and it is the wrong one, though not for the reason people think. It is not a competence question. Bookkeepers are frequently the sharpest people in a contracting business about where money goes.
It is a scope question. Bookkeeping reconciles: totals to statements, statements to bank, bills to jobs. Three-way matching, which cross-checks the invoice against the purchase order and the delivery receipt, is squarely inside that scope and belongs to the bookkeeper. But three-way matching answers “does this invoice match what we ordered.” It does not answer “should we have been paying this price in the first place.” An invoice can match the PO perfectly and still carry a unit price 25% above what you paid in March, because the PO was written off the same drifted price.
Matching also runs on tolerances, and tolerances are set to let small variances through. Common practice is that invoices within 2% to 3% of the PO pass automatically, or that full matching applies only above a dollar cutoff. That is sensible AP design. It is also a doorway: increases that arrive 2% at a time never trip a tolerance rule, which is precisely the shape of material price creep. Set your tolerance deliberately rather than inheriting the default, and understand what it is designed not to catch. The full matching sequence is laid out in three-way matching for contractors.
So the split is clean. The bookkeeper owns matching, credits and the AP calendar. Somebody else owns whether the price was right. If you have your bookkeeper doing both, be explicit that you are asking for two different jobs and give them the data and the hours for the second one, which is line-level purchase history, not a stack of PDFs.
The threshold where a dedicated person pays for itself
There is a rule of thumb floating around the trade, and it comes from a contractor rather than a consultant, which is why it is worth quoting exactly. On the Mike Holt forums, discussing whether checking invoices is worth the labor:
“If you purchase over $300,000 a year in electrical materials from supply houses it is almost worth the expense to have a person go over the invoices and quotes to see where you were overhcarged. At least a part time person for sure.”
(The typo is the poster’s, preserved from the original thread.)
Read that carefully, because the hedge is the useful part. At $300,000 a year in material, the poster says a dedicated person is “almost worth the expense,” and firmly recommends only a part-time one. That is not a green light to hire. It is a marker for where the arithmetic starts to be arguable at all. Below it, the job belongs in someone’s existing week. Above it, you can start making a case.
Whether a 20-person shop clears that line depends entirely on your trade and your mix. A 20-person shop doing service work with high labor content and low material content is a very different buyer from a 20-person shop doing gear-heavy commercial fitouts. Do not assume. Pull your last twelve months of supplier spend from your accounting system before you have any opinion about staffing, because that one number decides the whole question and most owners are surprised by it in one direction or the other.
The same poster describes the specific leak worth checking against: quotes that land at bid and drift by completion. “They may quote the stuff on bid day at say $87,000 but when you add all the total invoices up at the completion of the project they can be from $87,000 to $100,000 or more.” The control he suggests is a habit, not a hire: “keep a running tally on what has been invoiced and when it hits the quote amount flag it.” A running tally against the quote is fifteen minutes a week and it belongs to the PM on that job. That is the shape of most good answers here: a small recurring habit assigned to a named person, not a new headcount.
What the estimator or PM owns: variance, and which kind
The other half of material cost control never touches the supplier. It is about whether your estimate was right in the first place.
Cost accounting splits this cleanly and contractors should too. Materials price variance is (actual price minus standard price) times actual quantity, and its named causes include rush delivery charges, commodity price swings and supplier pricing power. Materials quantity variance is (actual quantity used minus standard quantity expected) times standard price. Those two numbers point at completely different people.
Price variance is a buying and supplier problem. Quantity variance is a field and takeoff problem: waste, theft, rework, or a takeoff that was short. Reporting them as one blended “material overrun” number guarantees the wrong conversation, because the PM defends the takeoff while the actual problem was that copper moved. Split them and each one lands on a desk that can do something about it. And when the price side turns out to be the supplier rather than the market, that becomes a pricing conversation, for which the ground rules are in how to negotiate with your supply house.
Purchase orders are the precondition for any of this. Without POs you have no committed cost, and contractors risk thinking a job is more profitable than it really is because the material still to come is invisible. A shop that will not write POs for counter runs cannot do material cost control at any staffing level, because there is nothing to compare the invoice against.
Three staffing patterns that work at 20 people
None of these require a new hire. Pick the one that matches how your shop already runs.
Owner-led, bookkeeper-supported. The owner keeps price history and the supplier relationship. The bookkeeper runs matching and chases credits. The owner spends one hour a month on the top 20 items by spend. Works well under roughly $500K of annual material spend and while the owner is still close to the field. Fails when the owner gets pulled into sales or estimating full time, because the monthly hour is the first thing cut.
Ops manager owns it end to end. One person owns buying policy, PO discipline, price history and the supplier conversations, as part of a broader operations role. This is the strongest pattern at 20 people because it closes the seam between buying and matching. It requires a real ops manager, not a dispatcher with a new title.
Bookkeeper plus an outside check. The bookkeeper runs matching. The price-history review is handled outside the shop, either by a part-time reviewer (the forum poster’s suggestion) or by a service. This is the pattern for shops where nobody internally has a spare analytical hour. Be honest about which is true before choosing it.
Whichever you pick, write down who owns each of the four jobs, and if the role is new, hand whoever takes it a dated thirty-day plan to get control so the first month has a shape. A one-page assignment beats an org chart. The point is not formality, it is that the fourth job stops being nobody’s.
Give the owner these five things or the role is decorative
Naming an owner without the inputs is how this fails quietly.
- Twelve months of line-level purchase history, per SKU, per branch, with unit of measure. Not invoice totals.
- POs on counter runs, even a scribbled number, so there is something to match against.
- Packing slips that come back from the field. Receiving is where quantity errors are catchable and nowhere else.
- Authority to ask the supplier. If the person tracking price cannot phone the rep, they are a reporter, not an owner.
- A standing slot on the calendar. One hour, monthly, same day. Analytical work with no deadline does not happen otherwise.
The short version
- Material cost control is four jobs: buying, receiving, matching, and price history. The fourth has no natural home, so assign it explicitly.
- The bookkeeper owns matching and credits. Matching confirms the invoice agrees with the PO. It does not confirm the price was right.
- Tolerance rules are designed to let small variances through, which is exactly the size price creep arrives in.
- One contractor’s rule of thumb puts a part-time reviewer at “almost worth it” around $300,000 a year in material. Pull your own annual supplier spend before deciding anything.
- Split price variance from quantity variance. They belong to different people.
- At 20 people the strongest pattern is an operations manager owning buying, history and the supplier relationship, with the bookkeeper on matching.
- Whoever owns it needs history, POs, packing slips, authority and a recurring hour. Without all five it is a title, not a role.