Cold-chain spoilage as a line item, not an afterthought
Spoilage rate, perishability profile, and Q10 sensitivity are part of the landed cost — not a footnote. Here's how Qootna folds them into a single defensible number.
Most cost calculators treat spoilage as a risk disclosure: "your perishable product may lose value in transit". That's true. It's also useless for procurement.
A national food-security planner buying chilled dairy from Europe needs the spoilage number in the landed cost, not in a tooltip. If 4% of the cargo is going to arrive degraded under current routing conditions, the budget line should reflect that this morning, not after the QC report.
The shape of the calculation
Qootna's cost engine treats perishability as a first-class input. For each product class we maintain a loss profile: typical perishability, sensitivity to temperature excursions, Q10 coefficient (how fast spoilage accelerates per 10°C deviation), and the loss curve over transit time.
The compact-cost engine then folds this into the landed line. A simplified view:
landedCost = baseFreight × fuelAdj
+ tariffDuty
+ insurance
+ handling
+ spoilageLoss(productClass, transitDays, coldChainProfile, scenario)
The spoilage component is not a flat percentage. It reads the product's perishability class, the transit-time distribution for the routing (median and P90), and the active cold-chain assumptions. A Q10 short-circuit prevents the engine from compounding spoilage for products that genuinely don't perish on the relevant timescale — dry grain doesn't degrade like fresh tea, and the math reflects that.
Why this matters for planning
Two scenarios with the same nominal freight cost can have wildly different landed costs once spoilage is folded in. A 6-day chilled corridor and a 14-day chilled corridor for the same product can swing the landed number by double-digit percentages — even before you factor in the higher P90 risk on the longer route.
A planner who plans against freight-only numbers will pick the wrong corridor for perishable cargo. A planner who can see the spoilage component decomposed line-by-line can defend the corridor choice to a budget committee in one screen.
What we won't do
We don't ship a single opaque "spoilage score". The component renders with its inputs: which loss profile fired, what transit-time distribution we used, which crisis scenarios modified it, and what the source kind was for each (verified contract, benchmark, fallback). The number is the result of the calculation, not a vibe.
The same defensibility property holds for spoilage as for freight, tariff, and insurance: every input is decomposable, every source is labelled, every confidence tier is visible. The cost-per-MT line is what you commit to. The decomposition is what you defend.
Where the loss profiles come from
Public sources do a lot of the work. FAO loss factors by commodity and chain segment. National cold-chain studies. Carrier published cold-chain SLA data where it's available. Where the public dataset is thin, we maintain a benchmark layer with explicit confidence labelling and we tell the user when a fallback is in play.
The honest answer to "what's the spoilage on this lane" is sometimes "the public data is sparse, here's our benchmark, treat it as such". That's the answer Qootna gives. It's also the answer a sovereign buyer needs in order to ship a defensible budget line.
Perishability isn't a footnote. We render it accordingly.