Job costing material counter purchases works if you fix it at the counter, not at month end. Every ticket gets a job number written on it before the truck leaves the supply house lot, every ticket gets photographed the same day, and once a week somebody ties the pile of tickets back to the statement. That is the whole system. It is unglamorous and it is the only version that survives a shop where three guys buy material five days a week.
What does not work is the textbook procurement flow, where every purchase starts as a requisition, becomes a purchase order, and gets matched against a receiving report. That flow assumes a purchasing department. You have a foreman with a phone and a 20 minute window before the counter closes. Any costing system that requires a PO for a $38 box of connectors will be abandoned inside a month, and then you will have no system at all.
This post is about the middle path: real purchase orders where the dollars justify them, disciplined ticket capture everywhere else, and a weekly reconciliation that catches what both miss.
Why counter runs specifically break job costing
Four separate things go wrong, and they compound.
No committed cost exists. Purchase orders let you track committed cost and remaining committed cost by job, cost code, or cost class, and Foundation Software puts the risk plainly: without them, contractors can think a job is more profitable than it really is. A counter run creates no commitment record at all. The material is on the truck, the cost lands in three weeks, and until it does the job report is lying to you in your favor.
There is no receiving document. Three-way matching cross-checks the invoice, the purchase order and the delivery receipt. Stampli notes that two-way matching applies when shipping receipts are unavailable, which is exactly the counter situation: the guy carried it out himself, so there is no packing slip to match. Two-way is the honest ceiling on a will-call, and it means quantity errors have to be caught at the counter or not at all. Count it before you sign it, because the signed ticket is the receiving document.
Pricing falls through more often on will-call. A delivered order usually runs through order entry attached to your account. A will-call can get written as a walk-in ticket, which is one of the ordinary ways you end up on the counter price instead of your negotiated rate. The mechanics are in contract price versus counter price, and the practical consequence for job costing is that the same SKU can hit two jobs at two prices in the same week for reasons that have nothing to do with either job.
The ticket and the statement are two documents for one purchase. Counter tickets often get keyed as charges and then re-presented on a monthly statement or a consolidated invoice. Post both without matching them and you have double-costed the job and double-paid the supplier. That risk is the subject of duplicate supply house invoices, and it is meaningfully higher in a counter-heavy shop than in one buying on delivery.
Set a dollar threshold, and stop apologizing for it
Do not try to PO everything. Set a cutoff and be consistent about it.
Institutional AP policies do exactly this and publish the numbers. The University of Georgia’s published policy uses a two-way match for goods purchase orders at or below $2,499.99 and a three-way match at or above $2,500, with all service POs at three-way. Tipalti describes the same pattern in general AP practice: full matching applied only above a dollar cutoff such as $5,000, and invoices within 2% to 3% of the PO passing automatically.
Those are examples from organizations much larger than a contracting shop, and the specific numbers are theirs, not a rule for you. Borrow the structure, not the figure. A shop doing $40K a month in material might land somewhere like this:
| Purchase type | Control |
|---|---|
| Gear, fixtures, equipment, anything quoted | Purchase order against the quote number, three-way match on delivery |
| Bulk stock deliveries to the site | Purchase order, packing slip signed and photographed |
| Counter run over your cutoff | Ticket with job number, photographed same day, checked against your last unit price |
| Counter run under your cutoff | Ticket with job number, photographed same day, batch-reviewed weekly |
| Anything on a personal card | Should not exist. If it does, receipt plus job number within 24 hours |
The cutoff exists so the small purchases get costed to the right job and reviewed in aggregate, while the big ones get the full treatment.
The ticket rules that make the whole thing work
Everything downstream depends on what happens in the 90 seconds at the counter. Four rules, and they are not negotiable if you want the numbers to mean anything.
Job number on the ticket, at the counter, in pen. Not from memory that evening. Not “the Henderson job” written on Friday for a Tuesday purchase. Most distributor counters will key a job name or release number into the ticket if you give it to them, which is better still, because then it prints on the invoice and your bookkeeper never has to guess.
Count it before you sign it. You are the receiving department on a will-call. Charged for 12 and handed 10 is an ordinary error, and it is unarguable at the counter and very arguable three weeks later.
Photograph the ticket the same day. Paper tickets live in the truck, get rained on, and go through the wash. The capture problem is real enough that it has its own writeup: scanning paper supply house invoices. Crumpled photos are fine. Missing tickets are not.
Never split one ticket across two jobs at the counter. If material for two jobs goes out on one ticket, that ticket has to be split by hand later, and hand splits are where costing accuracy dies. Ask for two tickets. Counters do this constantly.
Over-buying on a counter run is not free to reverse
There is a habit in counter-heavy shops of grabbing extra because you are already standing there, on the theory that you can always take it back. Check what “take it back” actually costs before you rely on it.
Published distributor return policies are stricter than most people assume. Colonial Electric Supply’s posted policy charges a minimum 25% restocking fee, with no returns on wire cuts or non-stock items and a $25 minimum return value. Main Electric’s posted policy likewise sets a 25% minimum restocking fee with a 30 day window and prior approval required. Others publish lower minimums: Electrical Wholesalers of Connecticut posts a 15% minimum with no credit at all on cut wire or made-to-order material, and Yale Electric Supply posts the same 15% terms. The number is a range, and it is a real cost.
For job costing, that changes the arithmetic on over-buying. Grab an extra $400 of material you do not need and return it under a 25% policy and you have burned $100 for nothing, assuming it is returnable at all. Cut wire and special order material generally is not. More on how these policies are structured is in supply house restocking fees.
The costing habit that follows: material bought and not installed sits on the job it was bought against until somebody moves it. If it went to the shop instead, transfer it off the job that month. Otherwise the job carries a quantity overrun it never had, and next year you will re-estimate off a bad actual.
The weekly reconciliation, which is where the money is
Once a week, 30 minutes, with the ticket photos and the supplier’s activity on one screen.
- Count tickets against charges. Every ticket should have a charge. Every charge should have a ticket. A charge with no ticket is either somebody’s un-photographed run or somebody else’s purchase on your account.
- Check the job number made it through. Tickets coded to “shop” or to no job at all are the leak. Chase them while the guy who bought the material still remembers what it was for.
- Spot-check unit prices against your own last purchase of the same SKU. Same part number, same unit of measure, different price is the signal. This is also where you catch a will-call that priced off the counter instead of your agreement.
- Watch for the same ticket appearing twice, once as a charge and again on the consolidated statement.
- Run a tally against any quote you bid off. The old contractor control for this is exactly as simple as it sounds. One poster on the Mike Holt forums, describing gear quoted at bid day landing much higher by the end of a job, put the fix as: “keep a running tally on what has been invoiced and when it hits the quote amount flag it.” That works whether the material arrived on a pallet or in the back of a van.
Weekly beats monthly for one specific reason: fresh billing errors get corrected easily and stale ones get explanations. A ticket questioned this week is a counter conversation. The same ticket questioned in November is an archaeology project.
Month end: turn tickets into a variance you can act on
Once the tickets are captured and coded, you can finally do the thing the tickets were for. Compare what the job spent on material to what it carried, and split the difference into a price piece and a quantity piece. The formulas and the routine are in material price variance versus quantity variance, and that same split is the first step in working out why a job went over budget on material.
Counter-heavy shops usually find the split lopsided in a specific direction. Because will-call purchases price off whatever rule the ERP found that morning, price variance tends to be noisier than in a shop buying on delivery against POs. That noise is not the field’s fault, and blaming a foreman for it is how you lose a good foreman.
One caution on timing: run variance against committed cost plus posted cost, never posted cost alone. In a counter shop the lag between the material leaving the counter and the cost hitting the job can be several weeks, so an interim job report always looks better than the job is.
The short version
- Fix job costing at the counter. Job number on every ticket, in pen, before the truck leaves.
- Count the material before signing. On a will-call you are the receiving department, and there is no packing slip coming.
- Set a dollar cutoff for real purchase orders. Published AP policies use thresholds like $2,500 or $5,000; pick your own and hold it.
- Photograph every ticket the same day. Paper in the truck is not a record.
- Reconcile weekly: ticket to charge, job code, unit price against your own last price, and duplicates between tickets and the statement.
- Do not over-buy on the theory you can return it. Published restocking minimums run from 15% to 25%, and cut wire is usually not returnable at all.
- Run variance monthly against committed cost, not posted cost, or the job will look profitable right up until it is not.
Sources
- Job Costs and Purchase Orders, Foundation Software
- 3-Way Invoice Matching, Stampli
- 3-Way Match, Tipalti
- Purchase Order Matching Thresholds, University of Georgia Business and Finance
- Return Policy, Colonial Electric Supply
- Return Policy, Main Electric Supply
- Return Policies, Electrical Wholesalers
- Return Policies, Yale Electric Supply
- Ethics of sharing competing supply house prices with each other, Mike Holt Forums