Why your engineers shouldn't see material prices
Most electrical contractors hit the same problem as they grow: the people raising purchase orders on site are not the people who negotiate the prices. An engineer needs to order 32 metres of 2.5mm twin-and-earth and a box of dry-lining boxes. They do not need to know what you pay for it — and the moment they do, you have a margin problem and an HR problem at the same time.
How visible pricing erodes your margin
When engineers can see trade prices, three things tend to happen. First, the numbers get talked about — on site, in the van, in the pub. Your carefully negotiated rates become common knowledge, and common knowledge has a way of reaching your competitors and your customers. Second, engineers start making commercial decisions they were never meant to make: substituting a cheaper part to 'save you money', or over-ordering because the line item looked cheap. Third, and most corrosive, is the awkward conversation when an engineer works out roughly what you charge the client versus what the materials cost. Margin is not profit — it covers vans, insurance, office staff, bad debt and the gaps between jobs — but it rarely looks that way from the back of a Transit.
None of this is about distrust. Good engineers are not trying to undercut you. The point is that pricing is simply not their job, and exposing it creates friction with no upside.
Policy is not the same as enforcement
Plenty of firms 'solve' this with a rule: don't discuss prices. But a rule that depends on a spreadsheet being hidden, or a PDF not being forwarded, is not a control — it is a hope. If the data exists on the device, it leaks. The only reliable approach is to make sure the price never reaches the engineer's phone in the first place.
That is the difference between hiding a column and enforcing price-blindness. Hiding a column is cosmetic. Enforcing it means the server simply never sends unit costs, line totals or order values to an engineer's session — so there is nothing to screenshot, nothing to forward, and nothing to argue about.
How ApexSpark enforces price-blindness server-side
In ApexSpark, pricing is an admin-only concept. Engineers raise purchase orders by picking materials from your catalogue by name and SKU, set the quantities they need, and submit. What they never see is the money:
- Unit prices and line totals are stripped from every engineer API response — not hidden with CSS, removed from the payload.
- Purchase order totals and committed spend are visible to admins only.
- Supplier rates, rebates and discount bands live entirely in the office view.
- Goods-in receiving on a phone confirms quantities and condition, never values.
The result is that an engineer can do everything they need to do — order the right materials, against the right job or plot, and receive them in the bay — without ever touching a number that belongs to you and the supplier.
What the office still gets
Price-blindness for engineers does not mean less visibility for you. Admins see committed spend the moment a PO is raised, received spend as goods come in, and the gap between the two. Per-job and per-plot material cost rolls up automatically, so the people who should be watching margin can watch it in real time — while the people on site stay focused on the work.
If your current purchase order process leaks prices to the field, it is worth seeing how a purpose-built system handles it. See how ApexSpark procurement works →