September 5, 2026 · 7 min read
Product Costing Automation: Keeping Prices Current as Inputs Move
By Anna, co-founder, build and content
Product costing automation means a system that holds the bill of materials for every product you sell, watches the price of each input underneath it, and recalculates the built-up cost per unit whenever one of those inputs changes. The output is a current cost, a current selling price, and a flag saying whether the number is fresh enough to quote.
It does not decide your margin and it does not send the quote. We run one across our own group, where the same three people who cost products also buy them, make them and ship them.
The reason it exists is arithmetic. In the 12 months to July 2026, the US Bureau of Labor Statistics measured processed goods for intermediate demand, the input basket manufacturers actually buy, up 9.9%, while final demand producer prices rose 4.7%. That is a 5.2 percentage point spread between what producers paid and what they charged, in federal establishment survey data published on 13 August 2026. A cost sheet built at the start of that window and left alone was wrong by a wide margin at the end of it.
A cost sheet is a snapshot, and it starts aging the same day
The usual cadence for recosting is quarterly, or “when someone notices”. Both are slower than the inputs.
Read the World Bank’s Commodities Price Data, the Pink Sheet, published 2 September 2026 with August data. Cocoa went from $4.40 per kg in June 2026 to $5.95 in August, up 35.2% in two months, calculated from the World Bank’s own table. Copper averaged $9,947 per metric ton across 2025 and stood at $14,326 in August 2026, up 44.0%. Coconut oil went the other way, $2,480 per metric ton in 2025 down to $1,853 in August 2026, a fall of 25.3%.
That last one matters as much as the rises. Costs falling and prices staying up loses the order to a competitor who recosted. Costs rising and prices staying down loses the margin on the order you win.
Monthly is not fast enough either. The FAO Food Price Index for August 2026, published 4 September 2026, put the sugar sub-index at 106.4 points, up 11.9% in a single month, its highest reading since June 2025. The cereals sub-index hit 116.3, the highest since May 2024. Anyone quoting a sugar-bearing formulation on a cost built four weeks earlier quoted a number that no longer existed.
The break is in the nesting
A finished product is rarely one level deep. A powder feeds a blend, the blend feeds a capsule, the capsule feeds a retail pack, and the retail pack is what the customer asks the price of. A bill of materials line can point at a raw material or at another product that has its own bill of materials underneath it.
That structure is why manual recosting fails quietly rather than loudly. When one ingredient price moves, a person updates the sheet for the product they were asked about. They do not walk the graph. Four other finished goods that contain the same ingredient two levels down keep their old cost, and nothing announces it.
Automating this is worth doing because the work is graph traversal, which is the kind of thing software has always been good at and people have always been bad at. Our system recalculates in dependency order, raw components first, finished goods last, so a single price change ripples through every product above it in one pass.
Freight and currency move after the cost sheet is finished
Landed cost is not the factory gate cost. Two of its components move on their own schedule, and neither respects your quote validity.
Take one week of ocean freight. On 3 September 2026, Drewry’s World Container Index assessed Shanghai to Los Angeles at $7,185 per 40ft container, up 5% that week, while Shanghai to Genoa sat at $4,368, down 10% in the same week. Drewry builds this from weekly assessments submitted by a panel of freight forwarders and carriers across Europe, North America and Asia, and does not publish the panel size.
Two lanes moving 15 percentage points apart in seven days is the argument against a flat freight uplift applied across a catalogue. Freight belongs to the lane, not to the price list.
Currency is faster still. Using the European Central Bank’s published euro reference rates, EUR/JPY was 186.99 on 30 July 2026 and 180.73 on 3 August 2026, a move of 3.35% in four calendar days. Across the 90 days to 4 September 2026, EUR/USD traded in a 3.17% range. A 30-day quote validity is longer than a currency’s memory, and on a food ingredient margin, 3% is most of it.
How ours works, and the three places it stops
The system holds a materials master with a price, an effective date and a primary supplier for every raw and packing material, plus the per-product facts that turn materials into a cost: batch output quantity, process yield loss, and the layered components for packing, labour, machine time, utilities, overhead, admin and transport.
Recalculation is triggered three ways: a scheduled supplier price refresh cycle, a manual edit to a material or a cost component, and an incoming price reply from a supplier. Every material price carries a validity window. When it lapses, the price is marked stale rather than silently reused.
Three of those stopping rules are deliberate, and we would argue for all three.
It does not auto-apply an outlier. A supplier price that moves beyond a set threshold goes into an approval queue and a person decides before it can reach a quote. It does not send the ask. Price refresh requests to suppliers are drafted by the agent and released by a human. It does not guess a cost. When an LLM proposes a cost for a new product from category defaults, that proposal waits in a review queue and is never applied on its own.
There is a fourth stop, downstream. A stale material price marks the finished price as not quotable, which forces the sales side to requalify rather than fire an unverified number at a customer. Refusing to answer is the correct behaviour when the honest answer is “this cost is from six weeks ago”.
Spreadsheet, ERP module, agent
| Spreadsheet | ERP costing module | Costing agent | |
|---|---|---|---|
| Recalculates nested bills of materials | Manually, one product at a time | Yes, on a run you trigger | Yes, on every input change |
| Knows a price is stale | No | Sometimes, by date field | Yes, and blocks quoting on it |
| Chases suppliers for new prices | No | No | Drafts the request, human sends |
| Handles per-lane freight and FX | Pasted in, when remembered | Depends on the modules bought | Yes, as costed components |
| Cost to install | Nothing, plus the errors | Licence plus implementation | Fixed sprint price, you own it |
What actually breaks
Proof over promises means publishing the failures too, so here are ours.
The link between a cost component and its source material is name based. Rename something on either side and the link orphans. The system flags the line rather than dropping it, so nothing is silently mispriced, but a person still has to reconcile it. Ingredient rows with no clear source or type get flagged as skipped for the same reason.
The push of finished prices into the sales-facing system is on demand, not scheduled. Someone has to run it. That is a real gap between “the cost is current” and “the salesperson sees the current cost”, and it is the next thing we fix.
Neither of these is exotic. Every costing automation has an equivalent seam where the data model meets the humans who name things, and any vendor who tells you theirs has none is describing a demo. The same instinct is why we built an ad-spend truth engine for our own D2C brand instead of trusting the dashboard: numbers that nobody can reconcile against the ledger are decoration.
What it costs to install
One costing agent is an AI Workforce Sprint: from $9,500, scoped in writing before anything starts, four to six weeks, built on your GitHub, your Supabase and your Netlify, handed over with documentation and a recorded walkthrough. You own the repository and the data. If we vanish, it keeps running.
What gets installed is one tomte, our word for one production agent with one defined job. As of July 2026 our own fleet stood at 41 registered agents with 5,450 runs across the 13 days measured and zero failures. Costing sits directly downstream of supplier sourcing and directly upstream of quoting, and it shares its ledger discipline with purchase order posting, so most groups build these in sequence rather than at once.
Send us one product’s bill of materials, the date it was last recosted, and the list of inputs whose prices you cannot currently see. You get a written fixed-price scope and a plain statement of what the agent will and will not do on its own, inside one business day. No meeting. Start async.