{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "A Tutorial Introduction to Valuation for Chemical Engineeers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What determines the value of a chemical process? \n", "\n", "The methods used for process valuation have profound implications for chemical engineering design and operations. For example, it is easy to understand that a process that can use multiple feedstocks should have higher value than one that cannot, but how much should one pay for that flexibility? When does it make financial sense for a process operator 'cut losses' in a challenging market, or continue operations and wait for the market to improve? What difference does it make to operations and design if operating profits are driven by increased demand as opposed to lower raw material costs?\n", "\n", "By process value we mean the price that a profit seeking public corporation or private party is willing to pay for the right to operate the process. The right to operate might be through ownership or lease of the captial assets, and includes all of the normal risks associated with operation including uncertain prices for raw materials, and uncertain demand for products.\n", "\n", "The capital markets, of course, ultimately determine value through a successful negiotiation on the price a buyer pays to willing seller. What we seek here are rational means estimating price through consideration of how the process would be operated to maximize its financial return. A realistic analysis must include both earnings and financial risk, for the price an ower will pay is a sensitive function of both aspects of financial return.\n", "\n", "Chemical engineers are traditionally taught to value processes based on the cost of construction and the profit expected to be returned through normal operations. To determine an acceptable price, the various cash flows are discounted to reflect the time value of money, then combined to determine the net present value (NPV). On the other hand, to determine whether a particular price represents an acceptable investment, the discount rates are adjusted to arrive at an 'internal rate of return' (IRR) which is then compared to a required 'hurdle rate'. These techniques are widely used in the process industries, and standard feature of chemical engineering curricula.\n", "\n", "NPV and IRR, however, have serious conceptual defects for use in an uncertain world. As these notes will attempt to show, naive use of NPV and IRR can lead to poor engineering decisions. In particular, process flexibility, the strategic option to cut losses through interrupting or abandoning process operations, and the ability of an owner to manage financial risk, can offer significant additional value that can be entirely overlooked by traditional NPV/IRR techniques.\n", "\n", "The following notes will review the basic assumptions behind NPV/IRR valuation by interpreting these techniques in terms of 'arbitrage-free' with a 'replicating portfolio' of bonds. Using the notion of 'real options', this approach is extended to the case of uncertain prices using a binary lattice model. The final example will show how uncertain demand can dramatically alter operational decisions and process valuation.\n", "\n", "While no simple model can capture full range of considerations that affect process valuation, these notes will be successful if the reader gains a better understanding of the profound role of uncertainty in process valuation, and the important role for chemical engineers in designing and operating process that create value.\n" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "There's No Such Thing as a Free Lunch" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "References: Heinlein, \"The Moon is a Harsh Mistress\" and Milton Freidman, \"There's No Such Thing as a Free Lunch\", 1975.\n", "\n", "It takes money to money. If you don't have any money to start with, then you're not going to have any money when you finish.\n", "\n", "Suppose there is someone selling a concrete, ironclad promise of money, let's call it $C_1$, to be delivered to you 1 year from now. If you wish to buy that promise, when way to do so is to borrow the money from a bank at an interest rate $r$ with the promise to pay back the loan when the money arrives. So at $t=0$ your portfolio consists of a bank loan in an amount $I_0$ that will be paid back at $t=1$.\n", "\n", "At $t = $ one owns the loan with value $L_0$, the promise which we're trying to value $V_0$. At $t=1$ just after the cash arrives but before settlement of the loan, one owns the bank loan $L_1$, the cash $C_1$, and the residual value of the promise $V_1$. But the value\n", "\n", "$$\n", "\\begin{align*}\n", "0 & = L_0 + V_0 \\\\\n", "0 & = L_1 + V_1 + C_1\n", "\\end{align*}\n", "$$\n", "\n", "Since the cash has been paid, the residual value of the promise is zero, so $V_1 = 0$. by terms of the loan agreement, $L_1 = (1+r)L_0$. This yields \n", "\n", "$$\n", "V_0 = \\frac{1}{1+r}C_1\n", "$$\n", "\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "N = 30\n", "\n", "C = ones(N)\n", "C[1:len(C)] = 1000*rand((len(C)-1))\n", "figure(figsize=(10,3))\n", "bar(range(len(C)),C,color='g')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 43, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nDfrd736nP//5z3r11Vd1+PBhTU1NZdzPcx66WDQ1d7iynF3bt2/XunXrPrItHo+rs7NTZWVl6ujo\noK8vs8XaXKKvZ9NNN92k+vp6SdL69eu1efNmJRIJ+noW/bc2l+jr2fSZz3xGkjQ3N6cPPvhAZWVl\nGffznIcuFk3NDcuy1NzcrLa2Nj3//PO5rk7RuLa/e71eRhkNOXTokBobG9Xb26tUioeiZ8v09LQm\nJiYUCATo64Z82OYfrgZAX8+eK1euaNu2baqsrNS3v/1t2badcT/PeehCbrz++ut68803deDAAT36\n6KP6xz/+kesqFQW+hZoXDod19uxZDQ8P68yZMxoaGsp1lQpSKpXS7t271dfXp9WrV9PXDbi2zT/7\n2c/S17OspKREb775pqanpzUwMKDx8fGM+3nOQ5ff79fk5GT694mJCTU2NuawRsXh5ptvliTV1tbq\n3nvv1QsvvJDjGhUHv9+vZDIpSUomk/L7/TmuUeHbsGGDLMvSmjVr9K1vfUvPPfdcrqtUcC5fvqz7\n7rtPe/bsUWtrqyT6erYt1ub0dTM2btyou+++W7FYLON+nvPQxaKp5l26dCk97PzOO+9oeHiYCZeG\nBINBRaNRzc/PKxqN8gXDgL///e+SpA8++EBHjhzR3XffneMaFRbHcdTZ2anbbrtNe/fuTW+nr2fP\nf2tz+nr2nD9/Xu+//74k6d1339Vvf/tbtba2Zt7PnTwwNjbmeL1eZ9OmTc7BgwdzXZ2C99e//tXZ\ntm2bs23bNqe5udk5fPhwrqtUkB544AHn5ptvdkpLS52qqionGo06Fy9edO69917nlltucVpbW51U\nKpXrahaUD9t81apVTlVVlXP48GFnz549zpYtW5zbb7/deeSRR5x3330319UsKK+99ppjWZazbds2\np76+3qmvr3deeukl+noWLdbmx44do69n0cmTJx2fz+ds3brV2bVrl/Pzn//ccRwn437O4qgAAAAG\n5PzyIgAAQDEgdAEAABhA6AIAADCA0AUAAGAAoQsAAMAAQhcAAIABhC4AAAAD/hdQgCSfRkN0CAAA\nAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 43 }, { "cell_type": "code", "collapsed": false, "input": [ "C[1:10] = 1000*rand(10)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }