Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo
Description: This program shows how important cashflow is to a business by simulating some key impacts on cashflow.
For Windows, download cashflowSim.exe from Downloads.
For OS X, download the app.zip file
For linux, get the three python files from the code section, save them in the same directory. I used Python 2.7 and tkinter.
When you start the simulator, it defaults to the settings of scenario 0. This business will run out of cash after a few rounds. There is sufficient contribution margin and market demand in the default settings for the business to be successful, but the credit limits are too low and sales don't reach a sustainable level.
If you reset and then increase the customer credit limits to $4000 each, then the business will succeed,although not before cash-on-hand almost falls to zero.
For your third run: reset, put the credit limits to $4000, and try setting the customer payment percentages to 50%. This means there is only a 50% chance that the customer pays an invoice on time. This introduces a random element, but the business will probably fail with these settings.
If you want to simulator a customer going broke, set the percentage to 0%.
(note that you can use the Manage Scenarios button, choose one of the ten slots, make changes and save the scenario for reuse).
Note that the first thing the simulator does is buys stock. The stock level is locked in to one week total demand (in a later version I will although this to be customised). The simulator will buy stock with supplier credit first, and then use cash on hand when supplier credit limits are exhausted.
Each time you click the button, the simulator processes another round. You can think of each round as one week.
Each round, the simulator tries to sell to customers, buy from suppliers and handle cash receipts and payments.
You can watch the cash balance change.
With the default settings, the cash balance becomes negative by the third round. The business is not viable.
(We’ll look at why later: this is just a quick start section).
Click the EXIT/RESTART button, and choose “Yes” to restart.
Before clicking NextRound, click the button at the top “Edit Sim Settings”.
Restarting applies the settings of scenario 0.
Change the starting cash to $11,000, and click OK.
The run the simulation again, using the NextRound button.
Now, cash almost runs out, reaching a minimum in round 4, before rebounding and steadily increasing. The extra cash available at the start has allowed this business to grow.
Customers have a credit terms: this is how many rounds before they need to pay for stock they buy.
Setting this to zero means the customer pays cash.
They also have a Demand per round. This is the amount the customer would buy if he had sufficient credit.
Pay behaviour lets you choose how reliable the customer is at paying his invoices on time.
A setting of 100% means the customer always pay. 0% means the customer never pays. In between values are the chance that a invoice due for payment will be paid.
The target stock level is the total of customer demand. The simulator will first try to buy stock using supplier credit. If this is insufficient, cash will be used. The simulator reports stock at the cost price. Sales and AR are reported at the selling price (see Margin below)
Fixed costs can be changed only before the simulator has run (with the Edit Sim Settings button)
The margin can be changed only before the simulator has run (with the Edit Sim Settings button).
Profit is contribution margin - fixed costs.
The list at the bottom shows the situation per round. Purchases and Sales accumulate. Cash, AP, AR and stock are balances at the end of each round.
Clicking the Show Chart button reveals a chart window.
A 'scenario' is a set of starting conditions. Ten scenarios can be defined. Changes to scenarios are saved locally on the computer running the program. Scenarios can only be modified and selected before a simulation has started.
There is a menu command to reset the scenarios to the values shipped with the software. By default, scenario 9 has a a very large amount of start-up cash, which shows the potential of the business with no working capital constraints.
The simulator will never stop. However, certain settings will end in a steadily decreasing negative cash balance. That’s because fixed costs occur each month. If you run out of stock and have no cash or supplier credit to buy any more, you can’t sell. If outstanding customer debts are not paid on time the situation will not recover.
The payment behaviour settings are randomised (except for 100% and 0%), so you can run the simulator different times with the same starting settings, and get different results.
Using the default setting except increasing starting cash to $11,000 is enough for the business to succeed.
After clicking few a few rounds to get a decent cash business, put one of the customers on stop by changing pay behavior to 0%.
Explain what happens. Let the cash run down to 0, and then reinstate the customer with good payment behavior. The cash balance will build up again. Let it build up to around $5000.
Now change the pay behavior of all the customers to 50% and look at the swings in cash on hand. You will see that the business may even fall to zero cash levels.
Eventually, you may see that the business fails, with no stock meaning no possibility of sales.
If you want to see how payment reliability affects the amount of credit you need to extend to keep sales at a safe level, start the simulation with $11,000. Give the customers large credit limits (double to 8000) but leave demand untouched at $1000 per round. Set the pay behaviour to 50%. The business bumps along; it may fail, depending on luck.
You can even raise the starting cash to $20,000, and sometimes the business will fail.
This shows how important it is to manage unpredictable cash flows. Unpredictable cash flows are difficult to pickup on traditional budget tools.
We use the simulator to show the relationship between working capital, credit management and sales, profitability and cash flow. We also use it to show the benefit of managing suppliers well to reach increased credit levels.