03 · Power BI · Python
Cashflow and financial risk
A few late payers move the cash position.
A 13-week forecast. Delay the five largest customers by two weeks.
Demo on fictional data — never customer data.
The forecast counts open and expected invoices from live projects. Outflow is the cost run-rate of the last three months.
- Opening
- €15,530,690
- Lowest balance
- €15,662,936
- In week
- 2
Balance by week
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
| Week | In | Out | Balance |
|---|---|---|---|
| 1 | €329,140 | €148,937 | €15,710,893 |
| 2 | €100,980 | €148,937 | €15,662,936 |
| 3 | €360,232 | €148,937 | €15,874,231 |
| 4 | €109,228 | €148,937 | €15,834,522 |
| 5 | €28,733 | €148,937 | €15,714,318 |
| 6 | €402,659 | €148,937 | €15,968,040 |
| 7 | €108,088 | €148,937 | €15,927,191 |
| 8 | €43,234 | €148,937 | €15,821,488 |
| 9 | €402,659 | €148,937 | €16,075,210 |
| 10 | €151,435 | €148,937 | €16,077,708 |
| 11 | €0 | €148,937 | €15,928,771 |
| 12 | €402,693 | €148,937 | €16,182,527 |
| 13 | €322,073 | €148,937 | €16,355,663 |
The five largest open customers are tied to the live projects. The delay pulls €0 out of this window.
balance = opening
for week in weeks:
inflow = sum(invoice.amount for invoice in due(week))
balance += inflow - weekly_outflow