Plain-language questions
Ask for working capital per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.
KPI · Finance
Working capital is the difference between current assets and current liabilities. It is the amount needed to fund day-to-day operations: stock and receivables minus what you still owe suppliers and other short-term creditors. Positive working capital means short-term debts are covered by current assets.
Current assets − current liabilities
At the end of 2025 Acme Groothandel had €3,300,000 of current assets and €2,200,000 of current liabilities. Working capital is €3,300,000 − €2,200,000 = €1,100,000. With revenue of €12,000,000, that is just over 9% of revenue.
Fictitious figures for Acme Groothandel, a sample wholesaler.
More working capital gives more of a buffer, but also means more cash is tied up and cannot be used elsewhere. If working capital grows faster than revenue, look at stock and receivables. Track working capital as a percentage of revenue over several periods to see whether operations are becoming more or less efficient.
SQL & DAX
Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.
WITH months AS (
SELECT (date_trunc('month', d) + interval '1 month - 1 day')::date AS month_end
FROM generate_series(date_trunc('month', current_date) - interval '11 months',
date_trunc('month', current_date), interval '1 month') AS d
)
SELECT m.month_end,
SUM(g.amount) FILTER (WHERE g.account_group IN ('cash', 'receivables', 'inventory', 'other_current_assets')) AS current_assets,
SUM(g.amount) FILTER (WHERE g.account_group = 'current_liabilities') AS current_liabilities,
COALESCE(SUM(g.amount) FILTER (WHERE g.account_group IN ('cash', 'receivables', 'inventory', 'other_current_assets')), 0)
- COALESCE(SUM(g.amount) FILTER (WHERE g.account_group = 'current_liabilities'), 0) AS working_capital
FROM months m
JOIN gl_entries g ON g.entry_date <= m.month_end
GROUP BY m.month_end
ORDER BY m.month_end;Balance = CALCULATE(SUM(GL[Amount]), FILTER(ALL('Date'), 'Date'[Date] <= MAX('Date'[Date])))
Working Capital % of Revenue =
VAR WorkingCapital =
CALCULATE([Balance], GL[AccountGroup] IN {"cash", "receivables", "inventory", "other_current_assets"})
- CALCULATE([Balance], GL[AccountGroup] = "current_liabilities")
VAR Revenue365 = CALCULATE(SUM(GL[Amount]), GL[AccountGroup] = "revenue", DATESINPERIOD('Date'[Date], MAX('Date'[Date]), -365, DAY))
RETURN DIVIDE(WorkingCapital, Revenue365)In ENABLE
Ask for working capital per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.
Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.
Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.
With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.
FAQ
Subtract current liabilities from current assets. With €3,300,000 of current assets and €2,200,000 of current liabilities, working capital is €1,100,000. Take both amounts from the balance sheet on the same date.
Working capital covers all current assets and current liabilities, including cash and bank overdrafts. Operating working capital looks only at stock plus receivables minus payables, the part that comes directly from operations. For managing processes, operating working capital is usually more useful.
Not always: negative working capital means current liabilities exceed current assets. For businesses that are paid upfront and hold little stock, that can be normal. For others it can signal short-term payment problems.
In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.