You are here

Model entry

Project evaluation in cyclical markets - Model catalogue - Simulistics.com

Search Simulistics Model catalogue Listed by keyword Listed by ID Listed by title Listed by date added

Project evaluation in cyclical markets

Model : npv1
Simile version : 4.0
Date added : 2004-10-21
Keywords : System Dynamics ; Business model ; Simile techniques ;

Description

Many markets for agricultural products and other commodities are locked in a cycle of boom and bust. Over-investment when prices are high leads to an excess of capacity and a price slump. Low prices lead to shut-downs, a withdrawal of capacity and eventually a new wave of high prices.


Stock prices of companies in cyclical markets follow the same ups-and-downs.


At first glance, this appears irrational. Why should investors be willing to sell shares at a low price in bad times, when they surely know that in a few years, the good times will come again? And why should investors be willing to pay high prices for shares in good times, when they surely know that in a few years time, another slump will follow?


Rational companies make investment decisions on the basis of the project’s net present value (NPV). Projects with a positve NPV are undertaken; projects with a negative NPV are rejected. The net present value is calculated as the sum of all future cash flows from the project, net of expenses, discounted for the fact that cash is received at different points in time. Cash received today is more valuable than the same amount of cash received next year, because in the meantime one can invest it, earning interest. When calculating the net present value, the future payments are discounted to the equivalent value that would be the same as a payment received today.


The formula for discounting a payment P received at time t is:


P/(1+r)t


where r is the discount rate. The discount rate is the risk-adjusted real interest rate applicable to the project. It is often about 10 per cent.

This model implements this simple formula to calculate the net present value of a hypothetical project in a cyclical market. The assumed net cash flows from the project follow a sinusoidal curve, typical resulting from boom-and-bust commodity prices and fixed expenses.


The model contains one slider, which is used to adjust the point of the cycle at which the project begins. It is thus possible to compare projects begun during the slump in prices with projects begun during the good times. Since these are the same hypothetical project, differing only in start date, the duration of the project and the net cash received over its entire life are the same whenever it starts.


Files

Model file

Click on the icon to download the model file. (You will need Simile to examine and run the model. A free evaluation version is available from the products page.)

Some browsers may attempt to display the model file, rather than open it in Simile; in this case, use the browser back button to return to this page, and use the context menu (invoked by right-clicking on the link) to save the target file to disk.

npvcycle.sml Base model

Equations

The sinusioidal variation of net income with time is given by:


(1+sin(time()/10+(offset_to_cycle*pi())))


where offset_to_cycle is controlled by a slider to vary between 0 and 1.


The summation of discounted income is performed by the compartment representing NPV. Each period the discounted income flows into the compartment. The discounted income is calculated from the real income using the formula:


income/((1+discount_rate)^time())


Results

|

Each model run simulates a single project, with a particular start date. To compare the effect of choosing a different start date, at a different point in the cycle, it is necessary to run the model again. To get a complete picture, it is therefore necessary to run the model several times. The most convenient way to do this, is to use SimileScript.


     similescript::ModelWindow mw
     mw Open "../Examples/npvcycle.sml"
     mw Run
     similescript::RunControl rc
     set table {}
     foreach i {0.0 0.25 0.5 0.75 1.0} {
      rc SetValue "/offset to cycle" $i
      rc Reset
      rc Start
      lappend table [rc GetValue "/NPV"]
     }
     put $table


The interesting thing to note about the results, is how dependent the project’s NPV is on the stage of the cycle at which the project is begun. The highest NPV (and hence the most attractive time to invest) is just before the peak of the cycle. This rationalises the empirical observations of cyclical markets discussed in the opening paragraph of this example.


|