To build a should cost model, break a product down into its real cost building blocks (materials, conversion, packaging, logistics, overhead, and a fair supplier margin), price each block from public commodity and labor benchmarks, and stack the total against the price you actually pay. The gap between the two is your negotiation. To use it, link each cost block to a published index so the model updates itself, then set a trigger: when the modeled should-cost diverges from your paid price by more than a material amount, sustained over a rolling window, you open a renegotiation.
Done well, this turns price talks from opinion ("the market is tough") into arithmetic ("your input moved, it is this share of cost, so the justified change is this, not what you asked for"). This guide shows you how to build the model in one category, make it live, set the trigger, and walk into the negotiation with it. Then it covers the harder problem: doing this across every supplier and SKU you own, not just the handful you can model by hand.
Key Takeaways
- A should-cost model rebuilds a product from its cost elements upward, so you know what it should cost today, independent of the supplier's quote or last year's price.
- Margin erodes quietly because input costs move faster than buyers can re-model, and price increases on the long tail go unchallenged on trust.
- The single most common error is applying a commodity move to the whole product price instead of only to that input's cost share.
- A static spreadsheet is wrong within weeks for volatile categories. Link each block to a public index so the model self-updates and flags the moment to renegotiate.
- The model scales to a few SKUs by hand and stalls there. Protecting margin across the long tail is where the work needs to become a standing capability.
Why margin erodes between reviews
Most category margin is not lost in one bad negotiation. It leaks. A supplier sends a price-increase letter citing "raw material pressure" and "market conditions." You have a thousand other SKUs to manage, the number looks plausible, and there is no time to take it apart, so you absorb most of it. Multiply that across a long tail of suppliers and a year of input volatility, and the category quietly slips, often without anyone seeing it until the annual review.
The root cause is that you are negotiating off the wrong anchor. The supplier's quote and your last price paid both already contain whatever margin and inefficiency were baked in last time. Benchmarking against them just locks yesterday's mistakes forward. And when commodities fall, suppliers pass increases through fast and decreases slowly, so the asymmetry compounds in their favor.
Why the usual approaches fall short
Last-price-paid benchmarking inherits every prior overcharge. RFQ-only discipline assumes a few bids are a market, but a few points show no distribution; they cannot tell you whether the incumbent is in band or far above it. Gut feel cannot survive a confident supplier with a story about geopolitics and freight. And the spreadsheet a diligent buyer builds once goes stale within weeks in a category that moves on a daily commodity clock, so it loses credibility the first time a supplier finds one outdated number.
A should-cost model fixes the anchor. It does not ask what you paid; it asks what the product genuinely costs to make and deliver, then makes supplier margin visible as the residual.
What a should-cost model actually is
A should-cost model is a bottom-up reconstruction of a product's cost, built from first principles rather than quotes. It is a close cousin to clean-sheet costing (modeling the most efficient possible way to make something) and to a cost teardown (decomposing an existing product). A benchmark tells you what others charge; a should-cost tells you what the thing ought to cost. The difference matters in a negotiation, because a benchmark can be dismissed as someone else's situation, while a line-itemed cost build-up has to be argued line by line.
How to build your first model in one category
Pick one category you know well and one representative SKU, ideally a private-label, commodity-linked item like a dairy, bakery, or beverage product. Then work through the cost elements.
-
Start with the bill of materials, and decompose to the traded commodity. This is the dominant block in food private label, so go deepest here. Take the recipe or spec (from the supplier's specification sheet, your own technical file, or reverse-engineered from the ingredient declaration and nutrition panel, where ingredients are listed by descending weight). For each ingredient, capture the quantity per finished unit, then trace it back to its primary traded commodity. A butter block traces to milk butterfat, not "butter." Flour traces to milling wheat plus a milling margin, not finished flour. A chicken fillet traces to corn and soy feed plus grow-out and processing. Treating a finished input as a straight pass-through is a classic error; you must go to the underlying commodity and add the conversion margin, or you mis-attribute every future price move.
-
Add yield and waste explicitly. Cost each ingredient as quantity per unit, times commodity price, divided by usable yield. Build in extraction and process loss (whole-bird to breast yield, butterfat content, dough and bake-off loss, refining loss on oils). Then account for shelf-life waste: a short-life item generates more markdown and dump cost than a longer-life one, so it can be more expensive at a lower invoice price. Treat yield as a negotiable assumption. A spec that tightens tolerance legitimately raises cost, but a yield worse than best-in-class is something the supplier should justify.
-
Model conversion as a clean-sheet of the process. Walk the production steps (mix, form, bake or dry, fill, pack). Assign each a line throughput and a fully-loaded regional labor rate, and model energy explicitly rather than burying it in overhead, because ovens, dryers, and cold storage make energy a large block in bakery and dairy. Remember conversion is volume-sensitive: the same plant spreads fixed overhead over more or fewer units depending on your run length.
-
Cost packaging as its own bill of materials. Primary, secondary, and sometimes tertiary pack, each with its own commodity links: resin to crude-linked indices, aluminium to metals, corrugate to containerboard. Keep packaging separate from the ingredient basket, so when a supplier blames "packaging," you can check it independently against resin and board moves.
-
Add both logistics layers. Inbound freight to the plant, including the basis between the exchange delivery point and the actual sourcing region. And outbound to your DC, including the distributor layer, which naive models miss. Model the distributor by activity (cases per drop, route density, temperature zone, pick complexity, credit terms) rather than accepting a percent-of-product markup, which silently inflates the distributor's take every time commodities rise even when the handling work is unchanged.
-
Layer in the remaining real costs, then expose margin. Add quality, food safety, and compliance as a small justified block. Add tooling and one-time setup charges amortized over the agreed volume, with an explicit end date so the charge drops out once it is paid off (a common tactic is to keep amortizing tooling long after it is settled). Apply a clean overhead and selling-and-admin percentage that does not double-count energy or labor already in the conversion build. Finally, add a reasonable, category-appropriate supplier margin. Now stack the total against your paid price. The difference, decomposed, is the conversation.
Present the result as a credible range, not a single point estimate, and document every assumption. A should-cost is accurate within a band, not to the cent, and the fastest way to lose the room is to defend false precision when a supplier finds one wrong number.
Making the model live
A static model is wrong within weeks. To turn it into a margin early-warning system, link it to indices.
First, decompose to cost shares: establish the percentage each input contributes at the base date. Those shares are your weights. Second, map each share to the most specific public benchmark you can find (narrow commodity series and exchange contracts, not headline all-commodity indices, which overstate movement through multiple-counting). Dairy to milk class and butter benchmarks, wheat to milling-wheat futures plus a milling margin, sugar to its world or domestic contract, resin and board to their assessments, energy and labor to specific producer-price and labor-cost series.
Third, rebase and weight. For each index, divide the current value by its base value, multiply by that input's cost share, and sum to a composite. Apply the composite only to the indexed portion of the price. This is where most models fail: never apply a full commodity move to the entire product price. A large milk move on a product that is only part milk justifies a far smaller change on cost, and less again after fixed conversion and margin. Fourth, set the cadence: volatile commodities monthly or quarterly on a rolling average, labor and overhead annually, with publication lag and true-ups built in. Finally, add guardrails (caps, floors, a deadband, a successor-index clause, and explicit symmetry so decreases flow back), and automate the index pulls so the model self-updates instead of waiting for a quarterly rebuild.
Setting the renegotiation trigger
Frame the trigger around the cost-price gap, not raw index moves. Decompose the gap into tiers: the does-cost gap (recalculating using the supplier's own stated assumptions versus what you pay) is recoverable now; the should-cost gap (your efficient assumptions versus theirs) is recoverable through short-term supplier actions; the could-cost gap (design or spec changes) is longer-term joint work.
A workable materiality rule: a variance inside roughly model error is in band and not worth a fight. A clearly larger gap is a credible negotiation. A very large gap signals either a real overcharge or a flaw in your assumptions you must resolve before challenging. Express the trigger in annualized money (gap percentage times annual spend) so you prioritize by impact, not by percentage. For the commodity-driven portion, add an index trigger with a deadband, so the model only flags when a weighted input moves beyond a material threshold versus the contract base, measured over a rolling window rather than a spot spike. Reserve the most aggressive triggers for high-spend SKUs where you have alternative supply, and softer ones where the supplier holds short-term power.
Walking into the negotiation
When the price-increase letter arrives, refuse the blended number. Ask the supplier to unbundle: raw material with an index reference, freight per shipment, energy, and labor, separately. A number that will not survive the breakout often retreats at this step. Then reconcile against your model: cite the actual index movement over the window, apply it to that input's cost share, and show the justified change against what was requested.
Shift the burden of proof with the open-book posture: "We have costed this with best-in-class assumptions. If you disagree with one (yield, line speed, scrap), give us a better number and prove it is credible, and we will put it in the model. Otherwise we subtract the unexplained difference." Bring corroborating evidence: the teardown with cost shares, the index history, your last several months of actually-paid prices for the exact spec, and a wide alternate quote set on an identical spec, not just two or three. For listed suppliers, their own published margins can quietly contradict a hardship narrative.
Keep it a fact-based partnership, not an accusation. Take the does-cost gap now, agree dated actions to close the should-cost gap with savings auto-deducting on agreed dates, and reserve could-cost for later. The highest-value outcome is converting the relationship to an indexed pricing formula with a defined basket, base, cadence, deadband, caps, symmetry, and a true-up, so future increases are pre-bounded and decreases flow back automatically.
Scaling without adding headcount
Here is the wall. You can hand-build one excellent model. You cannot keep dozens current, watch the commodity inputs daily, and tee up the renegotiation across the long tail of suppliers and SKUs you own. That is precisely where the model stops protecting margin, because the SKUs you cannot model are the ones absorbing increases on trust.
This is the part that has to become a standing capability rather than a heroic quarterly effort. The model only protects margin if it is current, watched, and acted on for the whole category, not the three SKUs you had time for.
Phased rollout
- Weeks 1 to 2: Pick one high-spend, commodity-linked SKU. Build the bottom-up model, decompose to cost shares, and stack it against your paid price.
- Weeks 3 to 4: Map each cost share to a specific public index, set the cadence, deadband, and trigger, and pressure-test the model against your recent history of paid prices.
- Weeks 5 to 8: Run one real renegotiation off the model. Capture what the supplier conceded and where your assumptions needed correcting.
- From there: Widen to the rest of the category, then to adjacent categories, and move from rebuilding spreadsheets to maintaining a live, indexed model set.
How to measure success
Track cost-modeled coverage (the share of category spend backed by a live model, not just the SKUs you got to). Track savings identified versus captured, because a gap you flag but never recover is not a saving. Track time from a cost move to renegotiation, the lag that determines whether margin erosion is caught in weeks or at the annual review. Track negotiation win rate on challenged increases, and the margin protected across the category over time. Watch coverage and time-to-action hardest, because they reveal whether the discipline reaches the long tail or stays stuck on the handful of SKUs you can model by hand.
How Duvo helps
Duvo has should-cost built in. It builds and maintains bottom-up grocery cost models across categories like dairy, bakery, pastry, snacks, confectionery, frozen, beverages, and household, from materials, conversion, packaging, logistics, and supplier margin. It monitors the commodity and raw-material inputs daily and ties them back to specific supplier prices and contracts, so it can flag the moment the should-cost-to-actual gap opens and tee up the renegotiation, including for the long tail of suppliers a team could never get to manually.
It does this through the same screens your team already uses (browser, SAP, supplier portals, spreadsheets, and email), with human approval gates and a full audit trail, and it goes live in weeks with no API build or IT integration project. See how it works, or how Duvo compares to the alternatives. The best way to judge it is on your own data: book a demo and see your own category modeled.
Frequently asked questions
How accurate does a should cost model need to be to use it?
It does not need to be exact. A should cost model is credible as a range, not a point estimate. Present sensitivity bands, document every assumption, and you can negotiate confidently. What you must avoid is defending false precision, because one wrong number lets a supplier discredit the whole model.
What if I do not have the supplier's recipe or spec?
You can reverse-engineer enough to start. Ingredient declarations list components by descending weight, and nutrition panels let you back out the major fractions like sugar, fat, and protein. Combine that with published yield and conversion factors and you have a working first model, which you refine as the supplier engages with your assumptions.
How is should-cost different from just getting more competitive quotes?
Quotes tell you what suppliers will charge today, which still bakes in their margin and inefficiency. A should-cost tells you what the product ought to cost from first principles. The two work together: model bottom-up, then use a wide quote set on an identical spec to validate the model and reveal whether the incumbent is in band.
How often should the model be updated?
As often as the inputs move. For volatile food commodities, a quarterly or annual refresh is too slow; the model is wrong within weeks. Link each block to a specific index on a monthly or rolling-average cadence, update labor and overhead annually, and automate the index pulls so the model maintains itself.
What if the supplier is sole-source and holds the power?
The model still informs you, but it changes what you do with it. Where a supplier holds genuine short-term power through unique IP, sole supply, or capacity scarcity, the practical lever is developing alternative supply, not insisting on the number today. Use the model to size the prize and to justify investing in qualifying a second source.