The Hackett Group's 2025 Working Capital Survey put a figure on the cash sitting where it should not: $1.7 trillion in excess working capital across the top 1,000 US public nonfinancial companies, roughly 11% of their aggregate revenue. Days inventory outstanding reached 68.9 days, the survey's highest reading in a decade, as buffers built for disruption became permanent furniture.
Numbers that size invite strategic explanations. Supply chain uncertainty, geopolitical hedging, the cost of resilience. The explanations are real and insufficient. Walk into any large company and ask where, specifically, the excess lives, and it dissolves into something much less grand: parameters.
The anatomy of trapped cash
Working capital is governed, in operational fact, by an enormous population of settings scattered across systems:
- Safety stock levels set during an ERP implementation by a consultant who has since changed firms, for demand patterns that have since changed shape.
- Reorder points and lot sizes tuned for a supplier lead time that improved two years ago, still buying as if it had not.
- Payment terms defaulted from templates: paying this supplier in 30 days because the template said 30, while a peer negotiates 60 for the same commodity.
- Customer credit terms and limits inherited from a tier assignment made when the customer was a different size and risk.
- Invoice and collection timing rules that add days of DSO in batch schedules nobody has questioned since go-live.
Each parameter was a decision once. Then the decider moved on, the context moved on, and the number stayed, exerting its small daily pull on cash. None is individually material, which is precisely why none gets revisited. Together they are the $1.7 trillion.
Why initiatives keep losing to parameters
The standard corporate response is the working capital initiative: a quarter of task-force attention, a consulting deck, a one-time harvest, and a slow relapse as the parameters resume drifting. The pattern repeats because the initiative model mismatches the problem in two ways. The parameters outnumber the initiative. No task force revisits fifty thousand settings. And the parameters outlast it. Whatever is fixed in Q2 begins drifting in Q3, because the force that set the drift in motion (changing demand, lead times and rates meeting static settings) never stops.
A one-time optimisation of a continuously drifting system is a photograph of a river.
Parameters as owned, monitored decisions
The durable version treats every material parameter the way a good operation treats any recurring decision:
- Detect the drift continuously. For each parameter, monitor the gap between the setting and what current data supports: the safety stock against actual demand variability and observed lead times, the terms against the negotiated benchmark for that category, the credit limit against the customer's current profile. Parameter estimation drift is a solved statistical problem; it just needs running against the live population.
- Route exceptions to named owners. Not fifty thousand alerts: the ranked few hundred where the gap is worth money, each carrying the cash impact, the recommended new value and the evidence, addressed to the person entitled to change it.
- Score the changes. Each accepted recommendation is tracked for realised cash effect, so the programme compounds credibility the way the initiative model never could, and the release becomes measurable instead of anecdotal.
Run this way, working capital stops being an annual campaign and becomes what it always actually was: a large portfolio of small predictions and decisions, continuously refreshed. The trillion does not come back in a quarter. It comes back the way it left, parameter by parameter, except this time on purpose.
The cash left through a thousand small decisions. It returns the same way, or not at all.
A place to start this quarter: pick your fifty largest safety stocks and ask when each was last revisited against current demand and lead times. The answer is usually the business case by itself. Prophesee's Operations module runs that check continuously, across the whole population. Find your trapped parameters.