Retail inventory ·

Construction inventory management software: what it must do

Most inventory software is designed around a shop or a warehouse: stock arrives, waits on a shelf and leaves through a checkout or on an order, and the software's job is to say how many are left.

A building business works differently. Materials are bought for a particular job, delivered to a site, carried in vans, cut, wasted, borrowed by the next job and sometimes brought back. The question that matters isn't "how many do we have?" It's "what did this job use, what did it cost, and where did the rest go?"

This guide is for contractors and trades (electrical, plumbing, HVAC, building and remodelling) who buy materials for jobs and keep some stock in a yard and in vans. It follows materials from yard to van to site to job, sets out what a stock system has to record at each step, and ends with a trial script for construction inventory management software.

Four kinds of stuff, and only two are inventory

Walk through a contractor's yard and you'll find four kinds of thing. They need tracking in different ways, and a lot of bad software choices start with treating them as one.

KindExamplesUsed up?What you need to knowCost usually goes to
MaterialsLumber, drywall, pipe, cable, conduit, light fixturesYes, built into the workHow many, where, and which job used themThe job
ConsumablesScrews, anchors, tape, sealant, saw blades, glovesYes, a little at a timeEnough on hand to reorder before you run outOverhead, or a set allowance per job
ToolsDrills, saws, laser levels, ladders, crimpersNoWhich one, who has it, when it's coming backOverhead
EquipmentMixers, generators, scaffolding, lifts, excavatorsNoWhere it is, hours used, when it's due for serviceThe job, at a daily or hourly rate

Materials and consumables are inventory: a quantity that goes down when you use it and up when you buy more. Tools and equipment are assets: you track one particular item, who has it, and when it's due back or due for service. That's a different record and usually different software, sold as tool or asset tracking. (Overhead here means the general running costs of the business rather than one job.)

So decide which problem you have first. If drills keep walking off, you need a tool tracker; an inventory system won't fix it. If jobs look profitable until the supplier bills arrive, you need inventory that charges materials to jobs; a tool tracker won't fix that. Some products try to do both, so check which one a product was built around.

Three grey areas to settle up front:

  • Big-ticket items bought for one job, like a water heater, an electrical panel or a run of cabinets, are materials that often never sit in stock. Record them against the job anyway. A serial number for the warranty belongs in the job's records; it isn't a reason to track the item like a tool.
  • Wear parts like drill bits and blades are consumables.
  • Offcuts need a rule: keep anything longer than a set length and scrap the rest, or your counts will never agree.

Where stock lives: the yard, the vans and the sites

A shop has a stockroom. A contractor usually has three kinds of place where materials sit, and each behaves differently.

LocationWhat's thereWho takes from itWhat goes wrong
Yard, shop or warehouseCommon stock, bulk buys, returns, offcutsAnyone heading to a jobThings leave and nobody writes down where they went
Vans and trucksWhat each tech uses every weekThe tech who drives itIt drifts from the list, and restocking is done from memory
Job sitesMaterials delivered for that job, sometimes in a locked containerThe crewSurplus never comes back; weather damage and theft

A fourth place exists only in the records: in transit, meaning materials on a truck between the yard and a site. If your system can't show stock in transit, the records put it at one end while it's actually on the truck. That's harmless for an hour and confusing for a two-day transfer.

Each van is a location of its own. Give every van a stock list: what it should carry, a minimum for each item, and a level to restock it to. Materials used on a job come off the van, and the van is restocked from the yard as a transfer. Done weekly, that's the whole van-stock routine, and it means you know what a van is carrying without walking out to it.

A job site is usually a destination, not a location. If materials go to a two-day job and get used, issue them to the job: they leave stock and land on the job's cost. Make a site a stock location only when materials stay there for weeks and get drawn on over time, such as a lockup (a locked container or room on site) on a long project. Every location you add is one more that somebody has to count.

Eight movements cover everything

Once the places are clear, every change to a contractor's stock is one of eight movements:

MovementFrom → toExample
ReceivedSupplier → yard or vanA delivery against a purchase order
Received to siteSupplier → site, charged to the jobThe drywall delivery for one job
TransferYard → van, van → van, yard → siteMonday's van restock
IssuedYard, van or site → jobCable taken for a job
ReturnedJob → yard or vanThe part coil that came back
Returned to supplierYard or site → supplierUnopened boxes sent back for credit
AdjustedAnywhere → written off, with a reasonDrywall ruined by rain
CountedRecords → what the count foundThree fewer breakers than the records said

Record all eight, each with a date, a quantity, a location, a job where there is one, and a name, and you can answer almost every question in the rest of this article. Record only deliveries and a running total, and you can answer none of them.

Issuing materials to a job

The central movement is the issue: stock leaves a location and is charged to a job. It's a contractor's equivalent of a sale, and it's what makes job costing possible.

Job costing means adding up what each job actually cost (materials, labour, equipment and subcontractors) and comparing it with what you priced it at. Cost codes are labels for the parts of a job, so you can see which part went over. An electrician might use rough-in (wiring before the walls are closed up), trim-out (devices and fixtures once the walls are finished) and service; a builder might use foundations, framing, drywall and finishes. You don't need cost codes to start. A job number on every issue gets you most of the way.

Here's a week of materials on one electrical job:

ItemQtyFromJobCost codeUnit costValue
12/2 NM cable (ft)500YardJ-118Rough-in0.40200.00
Old-work box, single gang30Van 2J-118Rough-in0.8525.50
20A receptacle, tamper-resistant14Van 2J-118Trim-out3.4047.60
20A single-pole breaker4YardJ-118Trim-out11.5046.00
12/2 NM cable (ft), returned−160Back to yardJ-118Rough-in0.40−64.00

The job's materials come to 255.10. Without the return on the last line, J-118 would carry 64.00 of cable it never used, and the yard would have 160 feet of cable nobody could explain.

The unit cost an issue carries decides whether job totals can be trusted. If a job's materials are worked out by multiplying quantities by today's cost, every price rise quietly re-prices every past job, including ones you've already invoiced. A sound system records the cost on the issue when it happens. Stock in the yard is money you still have; stock issued to a job is money that job has spent, and that figure shouldn't change later.

Materials are only one part of a job's cost. If you're tracking the whole job (budgets per cost code, committed purchase orders and subcontracts, change orders), construction management in Excel builds that tracker. This article stays with the materials.

Returns, and why everyone over-orders

Crews take more than they need, and that's usually the right call. Running out mid-task means a crew standing around or a trip to the supplier, and either costs more than a spare box of fittings. Estimators build the same instinct into their quantities as a waste allowance: a percentage added to the measured amount to cover cuts, breakage and mistakes.

Over-ordering isn't the problem. The problem is the surplus, which has four possible futures, each recorded differently:

What happens to the surplusWhat should be recordedIf it isn't
Back to the yard or a vanA return from the job: the job is credited, the stock goes backThe job looks more expensive than it was, and the yard has stock nobody can explain
Straight to the next jobA return from the first job and an issue to the secondThe first job carries cost the second job used
Back to the supplierA supplier return against the original order, and the creditYou pay for material you no longer have
Left on site, thrown out or taken homeAn adjustment with a reason, if anyone knowsIt disappears

Make bringing materials back as easy as taking them, or they come back physically and never on paper. A simple habit helps: whoever closes out a job lists what came back.

Returns are also where units bite. A crew takes a 250-foot coil and brings back 90 feet. If you stock that cable by the coil, there's no honest way to record the return; stock it by the foot and it's one line. Stock each item in the unit you issue and return it in, even when you buy it in another. The section on pack sizes below covers the conversion.

Supplier returns depend on each supplier's terms. Unopened standard stock can often go back, sometimes with a restocking fee; special orders often can't. Check before you rely on returns as the safety valve for over-ordering.

Waste, theft and shrinkage on site

Shrinkage is the gap between what your records say you have and what's physically there. On a building business it has four sources, and only one of them is a thief:

  1. Waste: cuts, breakage, a pallet of drywall left out in the rain.
  2. Unrecorded use: materials that went into a job and were never written down. Rule this out before you blame theft.
  3. Recording mistakes: the wrong item, the wrong quantity, a delivery booked in twice.
  4. Theft: from open sites, from vans, and sometimes from inside.

You won't stop all of it, but you can make each kind visible:

What you seeLikely causesThe record that catches it
A job used more material than estimatedWaste, a bad estimate, or material leaving the siteIssues to the job compared with the estimate
The yard comes up short, but jobs look cheapMaterials went to jobs without being issuedA job or a reason on every movement out
A van is short every monthUnrecorded use, or theftA van count at each restock
Stock turns up that shouldn't existUnrecorded returns, or a delivery booked twiceReturns recorded against jobs; deliveries checked against orders

Four habits help:

  • Deliver close to when it's needed. Material sitting on an open site for three weeks is exposed to weather and theft for three weeks.
  • Record damage and theft as adjustments with a reason, not as a quiet correction at the next count. "Damaged, weather" on the same site every week is a pattern worth seeing.
  • Count what's worth stealing more often. Copper and cable are worth stealing for scrap; a box of screws isn't.
  • Limit who can adjust stock. If anyone can type a number over a shortfall, the shortfall stops being visible.

Buy per job, or keep it in stock?

Contractors buy two ways, often for the same job: to the job, ordered for it and often delivered straight to site, and from stock, common items kept in the yard and vans. Getting that split right keeps a yard from filling up with dead stock, meaning items nobody has used in months.

Keep it in stock when…Buy it per job when…
Most jobs use it: fittings, cable, fasteners, standard studsThe client chose it: a particular tile, fixture or finish
Running out costs more than holding itIt's bulky, so handling it twice costs more than a delivery: drywall, lumber, block
Your supplier is slow or unreliable for itIt's expensive and only a few jobs a year need it
You use a steady amount every weekThe quantity comes from that job's takeoff

A takeoff is the list of quantities measured off a job's drawings. If the quantity depends on the drawings, buy it for the job.

Supplier pack sizes

Buying per job still creates stock, because suppliers sell coils, cartons and bundles, not the 180 feet or seven lengths you need. The leftover lands in the yard whether you meant to stock it or not. The fix is two units per item, the one you buy in and the one you issue in. For example:

ItemSupplier sellsYou issueOn receipt
12/2 NM cable250-ft coilFeet1 coil becomes 250 ft
Old-work boxesCarton of 50Each1 carton becomes 50
Drywall screws5-lb boxBoxNo conversion: issue whole boxes

Reordering then takes two numbers per item, per location. A reorder point is the level at which you order more; an order-up-to level is how far you restock to. A sensible reorder point covers what you'll use while you wait for the delivery, plus a buffer, and the order rounds up to the supplier's pack:

Old-work boxes in the yardQty
Use while you wait for delivery (40 a week, 1-week lead time)40
Plus a buffer20
Reorder point60
Order-up-to level150
On hand today (nothing on order)55
Needed to reach the order-up-to level95
Suggested order, rounded up to cartons of 50100

Count what's already on order before reordering, or you'll order the same thing twice. And give each van its own reorder points: that's what turns a van stock list into a restock run.

Delivery straight to site

A lot of material never touches your yard. The lumber package, the drywall and the fixtures for one bathroom go straight from the supplier to the site. Treat those deliveries as outside the stock system and the surplus later turns up in the yard with no history, while the job's material cost exists only as a pile of supplier invoices.

Put the job on the purchase order. A purchase order (PO) raised for J-118 and delivered to the site gets checked on site: someone confirms what arrived, notes anything short or damaged, and the cost lands on J-118. Partial deliveries are normal (two drops, a short line, a cracked sheet), so receiving has to work line by line, and the order stays open until everything has arrived or been cancelled.

Counting a yard

Counting a yard is harder than counting a stockroom. Lumber sits in part bundles, pipe in lengths and offcuts, cable in part coils. Some of it is outside, unlabeled or buried under something else, the vans are out all day, and materials keep leaving while you count. A count people trust follows a few rules:

  1. Give everything a fixed, labelled place: a bay, rack or bin, with a barcode if your system scans. A count becomes a walk instead of a hunt.
  2. Count one location at a time, and count vans when they're back, ideally on restock day.
  3. Freeze movements in that location while it's counted, or an issue made mid-count gets counted twice or missed.
  4. Hide the expected quantity from the counter if you can. Someone who can see the number they're meant to find is tempted to find it.
  5. Review the differences before they're posted, recount anything expensive, then post each difference as a movement with a reason, never by typing over the old quantity.
  6. Apply your offcut rule. Below the cut-off it's waste, not stock.

You don't need to count everything at once. Counting a slice of the stock on a rolling schedule is called cycle counting, and it can catch a problem months before an annual count would:

WhatHow oftenWhy
VansMonthly, or at each restockSmall and quick, and where unrecorded use shows first
Copper, cable, anything with scrap valueMonthlyThe most expensive to get wrong, and the most tempting to steal
Site lockups on long jobsBefore the job closes outSo the surplus is returned, not abandoned
The whole yardOnce or twice a year, and whenever your accountant needs a stock valueThe full reset
Cheap consumablesAt the full count onlyCounting screws costs more than losing a few

What a spreadsheet handles, and where it breaks

For a small contractor (one yard, a few vans, one person keeping the records), a spreadsheet is a perfectly good construction inventory system, as long as it's built as a log of movements rather than a list of quantities people type over. Inventory management in Excel explains that design and the general ways spreadsheets fail.

Our free inventory spreadsheet template is built that way and suits a trade business as it comes: up to five locations (a yard and four vans, say), an "Issued to job" movement type with a column for the job number, returns, transfers between locations, a reorder list that allows for stock already on order, purchase orders that track what has arrived, and a stock count sheet you run one location at a time. It opens with example plumbing and electrical stock.

Where any spreadsheet runs out on a building business:

1. Records get made on Friday

Materials move in vans and on sites; the spreadsheet lives on the office computer. Issues get scribbled on delivery tickets and typed in at the end of the week, if at all. Every day between the movement and the record is a chance to forget it.

2. Old jobs get re-priced

The easy way to total a job in a sheet is each issued quantity times the item's cost, but that's today's cost. Update it after a price rise and every past job changes. The workaround, copying the unit cost onto each issue row as it happens, works until someone forgets.

3. Pack sizes live in someone's head

With one unit per item, someone converts coils to feet in their head at every delivery, and suggested orders don't round up to the supplier's pack.

4. Vans and sites outgrow the columns

A stock-by-location view usually means a column per location, and our template has five. Six vans and two long jobs means rebuilding formulas.

5. Deliveries to site skip the sheet

Whoever takes a delivery on site isn't at the spreadsheet, so short lines get reported by phone, if at all, and the order is marked received in full because that's what the invoice says.

Add the general failures (two people saving over each other, a history anyone can edit), and the signal to move is usually the vans: once the people moving stock can't record it where it moves, the spreadsheet stops being the truth.

What construction inventory software must do

Turn all of that into a trial script. Run one real job through each product you're considering, from purchase order to close-out, and check:

It must…Test it by…
Hold stock per location: the yard, each van, sites when neededSetting up the yard and two vans, and checking each van's stock on its own
Transfer between locations, with stock in transitSending stock to another location: the yard should drop at once, the other end only when it's received
Issue to a job from any locationIssuing from a van, on a phone, standing next to it
Take returns against the jobReturning part of an issue, and checking the job's cost goes down
Show materials cost per jobChanging an item's cost, and checking last month's job total doesn't move
Receive a job's purchase order in partsReceiving half a PO and noting a damaged line
Order in supplier pack sizesChecking that suggested orders round up to the pack
Hold reorder points per locationSetting a van minimum, issuing below it, and finding it on the reorder list
Count on a phone, with differences reviewed before they postCounting a van, and checking nothing changes until you approve
Record every change with who, when and whyTrying to type over a quantity, and seeing what it leaves behind
Let staff issue and count without seeing costsLogging in as a tech
Export everything, history includedExporting the movement history, not just the item list

Half a day of that tells you more than any comparison table. If tools and equipment matter too, test them separately (check-out, due dates, servicing), because a product that handles materials well may not track tools at all.

Which kind of software fits

Inventory management software for the construction industry isn't one category. It's several kinds of product, each covering part of the job. We don't rank vendors; the examples are there to show what each kind looks like, and what we say about them comes from their own websites as of October 2026.

KindBuilt aroundFits whenOne example
Construction accounting with an inventory moduleThe books and job costingYou run, or are moving to, that accounting systemFOUNDATION: receives inventory to warehouses, trucks or worksites, tied to job costing
Job management for the tradesEstimates, jobs and invoicingYou want quoting, jobs, invoicing and stock in one placeKnowify: assigns parts from storehouses and vans to project phases or service jobs
Materials purchasing platformsBuying: orders, suppliers and invoicesBuying and supplier invoices are the bigger messPly: inventory across warehouses, trucks and job sites, plus purchase orders, invoice matching and supplier payments
Tool trackersIndividual toolsTools go missing and servicing gets missedShareMyToolbox: check-in and check-out, overdue alerts, maintenance reminders
General inventory appsItems, locations and stock movementsYou want stock, buying and counts done properly without changing how you quote or keep the booksOurs is one; see below
A spreadsheetRows you controlOne yard, a few vans, one person recordingOur template, above

Whichever kind you look at, check two things: whether inventory is included in the plan you'd actually buy (in some products it's an add-on or a higher tier), and whether the product was built for materials or for tools, because it will be better at the one it was built for.

We're building one of the general inventory apps ourselves: an inventory app that starts from your spreadsheet, in early access and not for sale yet. It's our product, so weigh it like any other. Contractors and trades are one of the groups it's built for, and the parts of its first version that matter here are several locations (a warehouse or yard, vans, sites) with transfers between them, issuing stock to a job with returns and the cost of what each job used, a full stock history, reorder points per location, purchase orders in each supplier's pack sizes with partial receiving, stock counts on a phone, barcode scanning, and CSV import and export. Its price and location limit are on the same page.

What it doesn't do: tool check-out with due dates, tool maintenance, equipment tracking, estimating or takeoff, serial numbers, or QuickBooks and other accounting sync. There's no native mobile app or offline mode either; it runs in the phone's browser and needs a connection, which matters on sites without signal.

Where to start

Whatever you end up using, the setup is the same:

  1. Split tools and equipment out, and track them separately or later.
  2. Make the yard and each van a location. Add a site only where stock stays for weeks.
  3. Put a job number on every issue and every purchase order, and record returns against the job.
  4. Set reorder points for the items you use every week, and a stock list for each van.
  5. Count the vans monthly and the yard once or twice a year, and post every difference with a reason.

If that runs comfortably in a spreadsheet, stay in the spreadsheet. When the people moving the stock can't record it where it moves, that's when software earns its price.