Working Capital Optimizer
When to use
Use whenever cash is tied up in receivables, inventory, or payables and needs to be freed, or when the cash conversion cycle needs computing for a board update or lender conversation. Especially use to replace a working capital initiative that names the problem ("we have too much cash trapped in the balance sheet") without a ranked, sized list of specific actions to fix it.
What it does
Computes DSO, DIO, and DPO from the balance sheet and income statement via a bundled calculator, derives the cash conversion cycle, and ranks a set of candidate levers (specific actions on receivables, inventory, or payables) by the actual dollar amount of cash each would release — so the output is a prioritized action list, not just a diagnostic number.
Method
- Compute DSO, DIO, and DPO from actual balance sheet and income statement figures — accounts receivable against revenue, inventory against COGS, accounts payable against COGS — using the standard formulas, not estimates.
- Run the bundled calculator (
scripts/working_capital.py) to get the cash conversion cycle (DSO + DIO minus DPO) and, if levers are provided, the ranked cash-release impact of each.
- Name specific, executable levers, not generic goals: "reduce DSO by 10 days via faster invoicing," not "improve collections." Each lever needs a stated days-impact and which of the three components it affects.
- Read the ranked output by dollar impact, not by days impact alone. A 15-day improvement in DPO and a 10-day improvement in DSO release different dollar amounts depending on revenue and COGS scale — the ranking should reflect actual cash released, which the calculator computes directly.
- Check DPO-extending levers against supplier relationship risk separately from the pure cash math — extending payment terms releases cash but can damage a relationship or pricing if pushed too far or done without negotiation.
- Sequence the levers by ease of execution alongside impact — a lever with slightly less cash impact but immediate executability may be worth doing first, building momentum before tackling a harder one.
- Recompute the cash conversion cycle after executing levers, not just projecting it — confirm the actual DSO, DIO, and DPO moved as expected, since the plan and the result don't always match without follow-through.
Inputs
- Annual revenue and COGS
- Current accounts receivable, inventory, and accounts payable balances
- Candidate levers with a specific days-impact and which component (DSO, DIO, or DPO) each affects
- Config saved as JSON matching the format documented at the top of
scripts/working_capital.py
Output format
DSO, DIO, DPO, and the resulting cash conversion cycle; ranked lever list by dollar cash released, with the days impact and which component each affects; total cash release potential if all levers execute; the resulting cash conversion cycle after all levers.
Example
A business with an 82.8-day cash conversion cycle sets three levers: faster invoicing (10 days off DSO), supplier renegotiation (15 days added to DPO), and reduced safety stock (8 days off DIO). The calculator shows faster invoicing releases the most cash ($493K) despite having the smallest days-impact number, because it's applied against the much larger revenue base rather than COGS, a ranking that wouldn't be obvious from the days-impact numbers alone.
Common pitfalls
- Ranking levers by days impact instead of actual dollar cash released, which can favor the wrong lever when revenue and COGS scale differently.
- Setting DPO-extension targets without considering supplier relationship risk, treating it as a pure math exercise.
- Naming a working capital goal without specific, executable levers behind it, leaving the initiative with nothing concrete to act on.
1---2name: working-capital-optimizer3description: Computes the cash conversion cycle from DSO, DIO, and DPO via a bundled calculator, then ranks specific cash-release levers by actual dollar impact, turning "improve working capital" into a prioritized, sized list of concrete actions. Use whenever the user wants to free up cash trapped in the balance sheet, needs to compute or improve the cash conversion cycle, or has a working capital initiative with no ranked, dollar-sized list of what to actually do.4---56# Working Capital Optimizer78## When to use9Use whenever cash is tied up in receivables, inventory, or payables and needs to be freed, or when the cash conversion cycle needs computing for a board update or lender conversation. Especially use to replace a working capital initiative that names the problem ("we have too much cash trapped in the balance sheet") without a ranked, sized list of specific actions to fix it.1011## What it does12Computes DSO, DIO, and DPO from the balance sheet and income statement via a bundled calculator, derives the cash conversion cycle, and ranks a set of candidate levers (specific actions on receivables, inventory, or payables) by the actual dollar amount of cash each would release — so the output is a prioritized action list, not just a diagnostic number.1314## Method151. **Compute DSO, DIO, and DPO from actual balance sheet and income statement figures** — accounts receivable against revenue, inventory against COGS, accounts payable against COGS — using the standard formulas, not estimates.162. **Run the bundled calculator** (`scripts/working_capital.py`) to get the cash conversion cycle (DSO + DIO minus DPO) and, if levers are provided, the ranked cash-release impact of each.173. **Name specific, executable levers**, not generic goals: "reduce DSO by 10 days via faster invoicing," not "improve collections." Each lever needs a stated days-impact and which of the three components it affects.184. **Read the ranked output by dollar impact, not by days impact alone.** A 15-day improvement in DPO and a 10-day improvement in DSO release different dollar amounts depending on revenue and COGS scale — the ranking should reflect actual cash released, which the calculator computes directly.195. **Check DPO-extending levers against supplier relationship risk** separately from the pure cash math — extending payment terms releases cash but can damage a relationship or pricing if pushed too far or done without negotiation.206. **Sequence the levers by ease of execution alongside impact** — a lever with slightly less cash impact but immediate executability may be worth doing first, building momentum before tackling a harder one.217. **Recompute the cash conversion cycle after executing levers**, not just projecting it — confirm the actual DSO, DIO, and DPO moved as expected, since the plan and the result don't always match without follow-through.2223## Inputs24- Annual revenue and COGS25- Current accounts receivable, inventory, and accounts payable balances26- Candidate levers with a specific days-impact and which component (DSO, DIO, or DPO) each affects27- Config saved as JSON matching the format documented at the top of `scripts/working_capital.py`2829## Output format30DSO, DIO, DPO, and the resulting cash conversion cycle; ranked lever list by dollar cash released, with the days impact and which component each affects; total cash release potential if all levers execute; the resulting cash conversion cycle after all levers.3132## Example33A business with an 82.8-day cash conversion cycle sets three levers: faster invoicing (10 days off DSO), supplier renegotiation (15 days added to DPO), and reduced safety stock (8 days off DIO). The calculator shows faster invoicing releases the most cash ($493K) despite having the smallest days-impact number, because it's applied against the much larger revenue base rather than COGS, a ranking that wouldn't be obvious from the days-impact numbers alone.3435## Common pitfalls36- Ranking levers by days impact instead of actual dollar cash released, which can favor the wrong lever when revenue and COGS scale differently.37- Setting DPO-extension targets without considering supplier relationship risk, treating it as a pure math exercise.38- Naming a working capital goal without specific, executable levers behind it, leaving the initiative with nothing concrete to act on.