Materials are usually the second-largest cost on a construction project after labour, and the easiest to lose without trace. Not because anyone is stealing — but because a material passes through four separate events before it becomes built work, and most companies record exactly one of them: the invoice. So the project ends knowing precisely how much was paid, and having no idea where any of it went.
Key takeaways
- Material cost is a chain of four events — request, order, receipt, issue — and recording only the invoice documents the payment, not the consumption.
- A material request is a control, not paperwork: whoever asks is not whoever approves, and that split alone separates seeing a shortage from committing money.
- A goods receipt has to be captured at the gate as the truck unloads — a note filled in three days later is usually copied from the very invoice it exists to check.
- Stock belongs to a site, not to a company: one company-wide balance across three sites hides a surplus in one and a stoppage in another.
- Issue against a task, not just against a balance, and correct by reversal rather than deletion — a deleted error takes its own evidence with it.
Material cost is a chain, not a number
Every bag of cement entering a project passes through four separate events, each with a different owner and a different moment. Recording some and not others leaves gaps that cannot be closed afterwards:
| Event | Who records it | What it proves |
|---|---|---|
| Material request | Site engineer or storekeeper | That an approved need existed before money was committed |
| Purchase order | Procurement | What was agreed with the supplier in price and quantity |
| Goods receipt | Storekeeper at the gate | What actually arrived — the only independent number |
| Issue against a task | Store or foreman | Where inside the project the material was consumed |
Note that the invoice is not in that table. An invoice is a supplier's claim for payment, not evidence that anything arrived or was consumed. When it is the only record kept, every later question has no answer: did the full quantity arrive? at which site? against which line was it used? Nothing in an invoice answers any of them.
A material request is a control, not paperwork
In many companies buying materials starts with a phone call: the engineer rings procurement, procurement issues an order. Nothing is wrong with the speed, but what gets lost is that nobody approved the need before the money was committed. When the account arrives at month end there is no record of who asked for that quantity, when it was needed, or whether anyone agreed to it before it was spent.
A material request separates two roles that must not merge: whoever sees the shortage, and whoever commits the money. The storekeeper watching the balance run down sees the need first — and is exactly who should raise the request — while approval belongs to whoever owns the spending decision. Merging both into one person makes the request a formality someone signs to themselves.
- Site engineer, foreman and storekeeper: raise the request with quantities and the date it is needed.
- Account owner, site manager or procurement: approve or reject it.
- Only after approval does the request become a purchase order with a supplier.
- The status stays visible throughout: pending, approved, rejected, or ordered from the supplier.
Receipt: the only independent number
Of the four numbers, the goods receipt is the only one describing physical reality: what actually came off the truck. The purchase order is an intention, the invoice is a claim, the request is a need. Which means the quality of the entire materials record is decided in one moment — the moment of unloading at the gate.
The practical problem is well known: the storekeeper is busy receiving the truck, the book is in the office, and the entry gets deferred. Three days later the note is filled in from the only paper available — the supplier's invoice. At that point the receipt has lost its function entirely: it has become a copy of the number it was supposed to check, so the three-way match agrees every single time and detects nothing, ever.
And when receipt is tied to a purchase-order line, partial delivery becomes an ordinary case instead of an exception handled off to the side: 60 tonnes received against 100, the line stays open for 40, and the gap surfaces in the purchase-order report rather than being forgotten until closeout.
Stock belongs to a site, not to a company
A company-level balance is a reassuring and useless number: 400 bags of cement "in the company" may mean 350 at a site that does not need them and 50 at a site that stops in two days. Stock is a quantity in a place, and the place is part of the information, not an extra detail.
| Site | On hand | Reorder level | The reading |
|---|---|---|---|
| Site A | 350 bags | 100 | Surplus — a transfer candidate, not a purchase |
| Site B | 50 bags | 120 | Below level — urgent request |
| Site C | 0 | 80 | Out — work stopped or about to be |
| Total | 400 bags | — | A number that says none of the above |
Value needs a definition too: the same material gets bought at different prices across the months of a project. Valuing stock at the latest purchase price makes the stock value jump with every delivery; valuing it at the first ignores reality. A moving weighted-average cost — recomputed on each receipt — gives a stable value reflecting what was actually paid for what is actually there.
Issue against a task, and correct by reversal
Issuing material out of the store with no destination lowers a balance and adds no information. Issuing it against a task answers the question project cost is built on: where was this quantity consumed? The difference between "40 bags went out" and "40 bags issued to the second-floor slab pour" is the difference between a stock movement and a cost on a line.
Then comes what happens in every store: an entry error. A doubled quantity, the wrong material, an issue recorded twice. The instinctive response is to delete the row, and it is the worst option available — the error disappears and takes its own evidence with it, so nobody can later tell whether the balance dropped through consumption or through a correction.
The same logic applies to receipts: a delivery booked with a wrong quantity, or goods returned to the supplier, is reversed with its row intact — so the log shows both the receipt and its reversal rather than looking as though it never happened.
Reorder level, and the waste that appears on no invoice
A reorder level is one number per material per site, and it is the simplest operational control available: below this, order now. Its value is turning purchasing from a reaction to stopped work into something that happens beforehand. Setting it is not guesswork either — it comes from the consumption rate and the usual lead time from that supplier.
Waste, by contrast, appears on no invoice at all, because it is not something bought — it is something bought and never used: over-ordered concrete on a pour, steel cut wrong, bags ruined by rain because they were stored in the open. The only way to see it is to compare the quantity issued to work done against the quantity that work should have consumed per the bill of quantities.
- Issued clearly exceeds the theoretical quantity for the line: waste, or issue booked to the wrong line.
- Issued clearly falls short: unrecorded issues, or consumption from stock that never went through the store.
- The same material off across several projects: a storage or estimating problem, not a site problem.
None of those comparisons is possible without tying issue to work. Which brings the value back to the previous step: issuing against a task is not extra bureaucracy, it is the precondition that makes measuring waste possible at all.
How this works in muqawil
The material cycle in muqawil is recorded as all four of its events, and each event leaves its mark on both stock and cost.
- A material catalogue with bilingual names, unit, category, SKU and a reference price — and retired materials disabled rather than deleted, so their history stays intact.
- Numbered material requests with a status and a needed-by date, raised by the site team and the storekeeper, approved by whoever owns the spend.
- Receipts recorded with quantity and cost, linked to a purchase-order line where one exists, with partial delivery and rejection supported.
- Stock per site with quantity, reorder level and a moving weighted-average unit cost recomputed on every receipt.
- Issue against a task, with a void that credits the quantity back to stock and keeps the original movement in the log.
- The priced stock list limited to the owner, site managers, procurement, the storekeeper and finance — and a site manager sees only their own sites, because purchase prices are commercial information rather than something shown to everyone who walks onto a site.
Frequently asked questions
What is the difference between a material request and a purchase order?
A request is an internal need approved before money is committed; a purchase order is a contractual commitment to a supplier at a price and quantity. The request precedes and justifies the order, which is why the two are approved by different roles.
Do we need a separate store per site in the system?
Stock is inherently per site: the same material carries an independent balance at each site, because a quantity sitting at one site is of no use to another without a documented transfer.
How is stock valued when purchase prices differ?
On a moving weighted-average unit cost, recomputed on each receipt. Issuing does not change the average, so stock value = quantity × average stays consistent with what was actually paid.
What do we do about a delivery booked with the wrong quantity?
Reverse it rather than delete it: the stock movement and the received quantity on the purchase order are backed out, and both rows — the original and its reversal — remain visible in the log.
Can a foreman see material prices and stock value?
No. The priced stock list is limited to the owner, site managers, procurement, the storekeeper and finance, and a site manager sees only their own sites. A foreman works on tasks and material usage rather than on the priced list.
How do we measure material waste?
By comparing what was actually issued to executed work against the theoretical quantity for that line in the bill of quantities. That comparison requires issue to be tied to a task, not merely deducted from a balance.
Know where the materials went, not just what they cost
Record material requests, receipts and issues against tasks in muqawil, and read each site's stock by quantity and by value.