Skip to content
CheckMySupply.com
Job Costing and Material Variance

Truck Stock and Job Costing: Why Some Jobs Look Bad

Truck stock wrecks job costing for contractors because unallocated material lands on whichever job was open. Here is how to find it and how to fix it.

By 8 min read

If the same two or three jobs always come back unprofitable and nobody can explain why, check your truck stock before you blame the crew. Truck stock and shop stock are material bought without a job attached, and in most job costing systems that material still has to land somewhere. It lands on whatever job was open when the invoice was coded. The jobs that absorb it look bad. The jobs that consumed it and never paid for it look good. Both numbers are wrong, and the wrong ones are usually the jobs you bid off next.

This is not an accounting curiosity. It is the single most common reason a contractor’s job cost reports and their bank balance tell different stories.

What counts as unallocated material

Anything bought without a specific job on the ticket:

  • Truck stock. Wire nuts, straps, fittings, tape, sealant, fasteners, blades, common breakers. The stuff a van carries so a tech never has to leave a job.
  • Shop stock. Bulk consumables kept on a shelf and drawn from as needed.
  • Restock runs. A tech at the counter grabbing three boxes of connectors because the van is low, on the same ticket as material for the job they are heading to.
  • Returns that never came back as credit. Material bought for a job, not used, thrown in the van, and now functionally truck stock while the job still carries the cost.
  • Job leftovers absorbed into stock. The end of a coil, the extra fittings. Bought on Job A, installed on Job B.

The first three are purchases with no job. The last two are worse, because they are purchases with the wrong job.

The arithmetic of why this ruins job costing

Standard cost accounting splits material variance into two pieces, and unallocated material corrupts both.

Materials price variance is (actual price minus standard price) times actual quantity. Materials quantity variance is (actual quantity used minus standard quantity expected) times standard price.

Truck stock lands squarely on the quantity term. A job charged for three boxes of connectors that went to the van shows an unfavorable quantity variance it did not earn. A job that pulled two boxes off the van and never got charged shows a favorable one it did not earn either. Neither variance tells you anything about how the work was executed, which is the only reason you were computing variance.

Then it compounds. The overrun job gets investigated. Somebody concludes the crew is wasteful, or the takeoff was light on connectors, and the next bid on similar work carries more material. The under-run job becomes your reference for what that work should cost, and you bid the next one too thin. You have now taught your estimating system a lie in both directions.

Foundation Software makes the same point from the commitment side: without purchase orders, contractors risk thinking a job is more profitable than it really is. Unallocated material is the version of that problem that survives even when you do write POs, because truck stock never had a job to commit against.

How to tell whether you have the problem

You can find this in an afternoon with invoices you already have.

1. Look for consumables on job-coded invoices. Pull three months of supply-house invoices coded to jobs. Scan for the SKUs that are obviously stock: wire nuts, tape, straps, screws, blades, common fittings in round-number quantities. Bought by the case rather than by the count is a strong tell.

2. Compare consumable spend per job to job size. If a $9,000 service change carries the same fitting spend as a $70,000 tenant fit-out, one of them is carrying somebody’s van.

3. Look for round quantities. Job material tracks the takeoff and is lumpy. Restock is round: three boxes, two cases, a full carton. Round quantities on a job ticket usually mean stock.

4. Check the pickup pattern. Restock happens on the way somewhere, often first thing in the morning, often at the branch nearest the shop rather than nearest the job. If your suspect lines cluster on early tickets at one branch, you have found the pattern.

5. Look at who signed. Certain people restock. Their tickets are your candidates.

6. Check the same SKU across jobs. If one part number appears on almost every job at similar quantities regardless of scope, it is stock, and it is being allocated by accident.

If two or three of those tests hit, you have the problem. Most shops do. The size varies wildly, and you should measure yours rather than assume a number.

Four ways to handle it, from crude to clean

There is no universally right answer. There is an answer that fits your size.

Approach How it works Best for Cost of getting it wrong
Overhead absorption All stock material posts to overhead, never to jobs Very small shops, one or two vans Jobs look cheaper than they are; margin must be set to cover it
Standard per-job allowance A fixed dollar or percentage consumables line in every bid, posted to each job Most shops Allowance drifts out of date as prices move
Stock account with issue tracking Material posts to a stock account, then is issued to jobs as used Shops with a real shop and someone in it Requires discipline; abandoned issue logs are worse than no logs
Per-tech van inventory Each van is an inventory location, restock posts to the van, consumption posts to jobs Larger service shops with software for it Heavy; will not survive without buy-in

The middle two carry most contractors. What matters is picking one, writing it down, and no longer letting the coding clerk decide case by case.

The standard allowance, done honestly

This is the workhorse, so it is worth doing properly.

Measure your actual consumable spend over a quarter, total, across all jobs. Divide it by total job material spend or by total labor hours, whichever correlates better in your work. That ratio becomes your allowance. Every job carries it. Every restock purchase posts to a stock or overhead account and never touches a job.

Then re-measure. Consumable prices do not sit still. BLS producer price data shows the underlying inputs moving hard: copper and brass mill shapes ran 645.990 in January 2025 to 747.384 in January 2026 and 803.275 in June 2026 (preliminary), plastics pipe went from 171.280 in January 2026 to 182.609 in June 2026 (preliminary), and plastics pipe fittings and unions went from 334.420 to 354.724 (preliminary) over the same months. An allowance set two years ago against fittings and pipe is not the allowance you need now. Re-derive it annually at minimum.

The returns trap, and why leftovers end up on the van

There is a specific reason job material becomes truck stock rather than going back: returning it often is not worth it.

Published distributor return policies are more restrictive than most contractors keep in mind. One published policy requires returns to be undamaged in the manufacturer’s original carton with a minimum 25% restocking fee, no returns on wire cuts or non-stock items, and a minimum return value of $25. Another sets a minimum 25% restocking fee with prior approval required, non-stock and special order items final sale, and a 30-day window from delivery. A third sets the minimum at 15%, with no credit on cut wire or made-to-order material, which is why the restocking minimum is a range rather than one number.

Every one of those terms is defensible from the distributor’s side. Restocking covers real handling cost, and cut wire genuinely cannot be resold. But read them from the truck: a half-box of connectors is under the minimum return value, a cut length of wire is not returnable at all, and the 30-day clock started before the job finished. Of course it goes on the van.

So plan for it rather than fighting it. Decide in advance where leftovers land. The two workable answers are crediting the job at cost when material moves to stock, or simply accepting the loss and covering it in your allowance. What does not work is leaving it charged to the job and calling that job’s variance a performance measure. If returns are a large enough number to matter for you, the full picture is in supply house restocking fees.

What to actually do next week

  1. Pick one month of supply-house invoices and mark every line you believe is stock rather than job material. Total it. That is your unallocated number, and it is probably the first time anyone in your shop has seen it.
  2. Pick your handling method from the table. Write it in one paragraph. Tell the person who codes invoices.
  3. Get restock onto its own transaction. The single highest-leverage change is asking techs not to mix restock and job material on one ticket. Two tickets at the counter costs thirty seconds and removes most of the problem. That is the same discipline covered in coding supply-house invoices to jobs.
  4. Re-derive your consumables allowance against a real quarter of spend, not against a number somebody set years ago.
  5. Re-run last year’s three worst jobs with stock material stripped out. Frequently they were fine. That is worth knowing before you refuse to bid that kind of work again.
  6. Keep your unit price history separate from all of this. Stock or job, the price you paid for a box of connectors is still worth tracking, and it is still where material price creep shows up first.

The short version

  • Truck stock and shop stock are material with no job on the ticket, and job costing has to put it somewhere.
  • It corrupts the quantity half of your material variance in both directions: some jobs get charged for material they never used, others use material they never got charged for.
  • The damage is not the report, it is the bidding decision you make off the report.
  • Find it by scanning job-coded invoices for round-quantity consumables, early-morning tickets at the branch near your shop, and the same SKU on every job.
  • Pick one handling method and write it down: overhead absorption, a standard allowance, a stock account, or van inventory.
  • Split restock onto its own ticket at the counter. It is thirty seconds and it fixes most of this.
  • Re-derive your allowance annually, because fitting and pipe prices have not held still.

Sources