A-Z Project Finance Modelling On-Line Course

An on-line project finance modelling course is presented through videos, excel files and screenshots on this webpage. This on-line project finance model course is structured to include both theory and practice where the project finance and/or modelling theory and/or accounting is discussed before working through technical modelling issues. The course covers advanced topics related to depreciation, development fees, debt structuring, circular references, multiple debt issues and sculpting and DSRA complications. The course is presented below with a series of videos and associated files as well as a set of power point slides. You can look at the completed files or you go to pages where you must enter various key formulas in the excel file to become comfortable with the analysis.

If you are starting out in project finance modelling and have not yet made a project finance model, the files and videos below are intended to allow you to see the project finance structure, the importance of timing mechanics, the essential nature of separating operating cash flows from financing cash flows and other issues including cash flow waterfalls. I have seen people try to learn modelling by copying various techniques from large actual models. This is a complete B.S. way to learn modelling. The models are often wrong, and worst of all, young people waste time on the format of the models without understanding key principles.

The set of videos and associated files also introduce you to some important and difficult financing issues related to raising funds during construction, evaluating debt size using different approaches, simulating different repayment and re-financing and measuring the effect of credit spreads and interest rate hedging. As soon as you start modelling debt you will hit a wall because of all sorts of circular references that can mess up the analysis.  Instead of using typical copy and paste macros after you hit the wall, the on-line course below uses an advanced user-defined function approach to resolve the circular references.  Using the UDF is the key to advanced project finance structuring analysis.

Learning Project Finance Modelling and TLNV or TLNR

If you want to learn project finance modelling in half an hour you can build some sort of crude model of a solar project.  This may be good enough for your interview or for a simple analysis of a project.  But you will not have any deep understanding of the nuances that arise in both project finance theory and the associated project finance models.  If you want to become a good modeller, you need patience and you cannot watch a few five minute videos from your phone on the metro (as you cannot lean from large actual models).  Because of the complexities in modelling and in understanding the theory, the videos presented below are long. A lot of people tell me about Too Long Not Read (TLNR) or the perhaps the cousin Too Long Not Viewed.  This is  because I am taking you through a complete project fiance model.

After I published my exciting novel on project finance modelling, I made a lot of videos to go along with the subjects in the book. I did not make the videos in a very professional manner — too much dog barking in the videos, music in the background and too much swearing. Most importantly, the videos did were difficult to follow, they did not have any real theory as to why you are following various procedures and they did not have examples of what not to do. I received comments about background music, quality, lack of professionalism etc.. So now I have slowly started to make a set of revised videos.  My friend Fredecrico from the Green Climate Fund told me it was Sh….

There are a few files that are necessary or helpful if you are brave enough to work through the lesson set.  One file is a power point file that is referred to in the videos and that documents the modelling techniques.  The second file is the excel exercise file that goes along with the on-line course where you can try and enter formulas for the blank rows. You can download theses files by clicking on the buttons below.

Power Point Slides that Accompany Project Finance Modelling A-Z Analysis and On-line Course

Excel File for A-Z Project Finance Course that Includes Completed and Blank Exercises Discussed in the Video


The first four parts of the course do not even include debt, but go through the financial modelling, timeline and structure of a model which are essential ideas.

Introduction to Course, Modelling Principles and Key Functions

The first part of the course just reviews some modelling principles of being lazy with excel formulas; looking at some bad practices in other models and discussing some theory.  I also included a couple of files that you can use to prove if certain practices make a file “heavy.”  A “heavy” file may be too big or it may be too slow.  In the file that you can download by clicking on the button below, you can test whether an excel practice of clicking on an entire line slows excel down or makes your file larger.  The answer is that using an entire row or column with LOOKUP and/or INDEX does not.  Files associated with the video that prove the size and the time issues can be downloaded by pressing the buttons below.

Excel File that Tests Size and Speed of Lookup Function Compared to INDEX and MATCH with Entire Lines Input

Excel File that Tests Size and Speed of SUMIF Function with and Without Using Entire Lines Input

Excel File that Tests Size and Speed of LOOKUP Function with and Without Using Entire Lines Input


Part 1: Timelines and Consolidating Periodic Periods into Annual or Quarterly Statements

Developing dates and timelines and putting the timelines at the top of each sheet is a standard part of financial modelling and included in all of the regular old blah blah blah classes that you can get elsewhere.  Formulas for establishing dates and switches (or flags or masks or whatever you want to call them) is very standard.  One issue that is a bit tricky is being careful about annual analysis when moving from monthly to semi-annual cash flows.

For the fiscal year used in the annual page, you want to find the end of the month before the COD.  You can just use EOMONTH function and enter -1 for the month.  Then find the month of this date using the MONTH function.  Once you have the month end for the fiscal year, enter a switch that is true whenever the end month in the main time line is equal to that month.  Finally, make a year counter that increments whenever the fiscal year end is true.



Part 2: Volumes and Capacity and use of the Interpolate Function

In a model, whether an agriculture model, a model of a toilet paper factory in Jamica, a model of an airport or an electricity project, do not start with any thing that has money (Euro, USD, CFA etc.) Instead, start with the capacity and volumes and what the machine or the project is really doing.  This is the subject of the second part of the course.

In this section the INTERPOLATE UDF function is introduced to illustrate how to make volumes, capacity factor or other items gradually increase or decrease (a simple way to interpolate is not in excel).  You can download a file with the interpolate function below so that you can add the function to any of your models and do interpolate really fast.

Download Excel File with the Function for Interpolation Using Either Compound Growth or Linear Interpolation


Part 3: Pre-Tax Operating Cash Flow

The third part of the course begins with some equations that involve money.  In any project from a PPP for a University, a toll road, a co-generation plant or any electricity project, you should start with EBITDA and Capital Expenditures (and, maybe working capital).  These items define the pre-tax project IRR of the project.  With the pre-tax project IRR you have the essential information on the project.  In this page I use the IRR even though I believe there are a number of problems with the IRR.  To see a discussion of problems with the IRR you can go to my separate page that deals with the subject.

Part 4: Depreciation and Taxes to Compute Project IRR After Tax

The second set of videos complete the model with no debt and begin adding debt to the models. The last video in this section begins to add a circular resolution template to the model. This is an important idea in project finance where you would like to maintain flexibility in the face of natural circular references.

In adding on-going depreciation on future capital expenditures, I have included a function that enables you to select the entire line of future capital expenditures and remaining lives.  With these data items and the lifetime of the equipment, you can derive the depreciation on future capital expenditures.  The future depreciation is either from standard depreciation if the lifetime is greater than the remaining life.  Alternatively it is computed from the remaining life when the remaining life is less than the asset life.  A file that contains the function is available for download by pressing the button below (note that you have to press Shift, CNTL, Enter instead of enter and you cannot use the entire line).  The file also contains a function that is more flexible and will simulate variable declining balance depreciation.


Spreadsheet that Includes Functions for Computing Depreciation on Future Capital Expenditures (Use ALT F8 to Transfer)


The screenshots below illustrate how to use the function with straight line depreciation.  The first screen shot demonstrates how to function works in the case where the remaining life is greater than the asset life and the asset can be fully depreciated over the remaining life. In this case, the capital expenditure occurs in year 20 and the remaining life is 34 years. Note that two capital expenditures are entered and the depreciation stabalises at a level of 150.  After the first asset is retired in period 24, the depreciation will fall to 100. The second screen shot shows the case where the remaining life is less than the asset life. In this case the depreciation is computed over the remaining life of the asset.  The inputs for this function include the remaining life, the capital expenditure array and the asset life as shown in both screen shots.




The video below works through various depreciation and issues related to future capital expenditures and explains why the problem of future capital expenditures and depreciation would be very messy without a function.  You would have to make one of those diagonal matrices and adjust for situations where the depreciation would expend beyond the life of the project.



The VBA code for the depreciation function is available for download below. Because this is a function, you must copy the code into your model rather than simply having the file with the VBA code open (with regular old macros you can do this). You can get this function with the VBA code into your project finance model in three different ways:

  1. The first way is to open the file above and press ALT, F8.  Then edit the VBA page with the subroutine named A_Depreciation_functions.  Copy the entire contents.  After that, go to your sheet and press ALT, F8 again.  Then create a blank VBA subroutine and copy the contents above that routine.
  2. The second way is to copy the function that is on the form that appears when you open the file.  You just copy the code, go to your sheet, press ALT, F8, create a dummy macro and paste.
  3. The third method is similar to above, but you just copy the code from below.
Option Base 1

'''''''''''''''''''''''' Depreciation Functions

Sub A_Depreciation_Functions()

End Sub
Function depreciation_remaining_life_2(capital_expenditure, remaining_life, max_life) As Variant ' When the output is an array define as Variant

cap_exp_periods = capital_expenditure.Count ' See how many capital expenditure periods are modelled

Dim Depreciation_Expense(5000) As Single ' Make a new array variable that is the output
Dim remaining_life1(5000) As Single

' Determine whether to use remaining life or something shorter

For vintage = 1 To cap_exp_periods ' make a second loop to evaluate asset by asset
  If remaining_life(vintage) >= max_life Then
  remaining_life1(vintage) = max_life
  remaining_life1(vintage) = remaining_life(vintage)
End If

Next vintage

For model_year = 1 To cap_exp_periods ' loop around each period and make a square with columns and rows

  For vintage = 1 To cap_exp_periods ' make a second loop to evaluate asset by asset

    age = model_year - vintage + 1 ' calculate the age of each expenditure (the diagonal)

    If (age > 0 And remaining_life1(vintage) <> 0 And remaining_life1(vintage) >= age) Then ' Only when asset is alive

      Depreciation_Expense(model_year) = _
      capital_expenditure(vintage) / remaining_life1(vintage) + Depreciation_Expense(model_year)
    End If

  Next vintage ' Note that the vintage is used for the capital expenditure

Next model_year

depreciation_remaining_life_2 = Depreciation_Expense

End Function


Part 5: Balance Sheet and Verification

The balance sheet is a good (but not perfect) way to check your model.  A few years ago a student in my class told me that he puts a balance sheet into the model very early on in the process. At first I did not see the value in this. With complex models and solving circular references I think that suggestion was exactly on the mark.  So much so that I put a test right at the top of the model and believe the saying on the t-shirt below from my friend Hedieh (you can order this t-shirt or a mug if you want. Just send an e-mail to edwardbodmer@gmail.com).

You can put the balance sheet into the model after you have modelled the depreciation expense.  The balance sheet should just collect closing balances from other sections of the model. The video below describes the process of balancing the balance sheet before any debt had been put into the model.


Entering Debt in the Model and Unavoidable Circular References

After you have structured the model without debt and without circular references, you can begin to enter debt into the model. If you are structuring the debt — finding the debt size, computing different debt repayments, trying different methods of funding debt, putting in different cash flow sweeps or even changing fees and interest rates, you will most probably run into circular references.  From a theoretical perspective the circular arises because the model drives the negotiation of debt terms, but the debt terms drive the model.  For example, the model drives the amount of Interest During Construction and is necessary to evaluate the total debt. But the total debt percent is driven the term sheet.  In explaining the structure of debt draws, debt repayments and interest in a project finance model I suggest that you create the model without circular references.  The file that you can download below that accompanies the discussion does not have circular references — I just left blanks for things like the DSRA flows, the accumulated IDC and the tax effect of interest on CFADS.


Part 7: Setting-up Debt Assumptions and Debt Schedules

I have taken a long time to add the debt issues to this A-Z lesson.  When you add debt to a project finance model you will run into circular reference issues.  These circular references come from both funding and and repayment issues. In working through the various debt structure subjects I show how to set-up the model without circular references.  Then, in the next section, I show you how to use UDF’s which will enable you to check your work and to create nice flexible dashboards.  I hope you will stop being a copy and paster in all areas of your life.

Before starting to go though the various mechanical debt financing subjects, you should download the two files that I am using for this exercise. I am sorry, but these files are different from the files above as I have tried to focus on tricky debt sizing issues. These file connected to the buttons below use the case of a wind farm with different debt sizing possibilities (from P99, P50 and debt to capital), multiple debt sizing issues and multiple re-financing possibilities.  You can download the files that are used for completing exercises and a completed version of the files by clicking on the buttons below.


Structure of Inputs and Assumptions

The manner in which you can set-up assumptions when you have multiple debt issues is illustrated in the screenshot below.  You should understand that some parameters apply to all debt issues.  You cannot have more than one overall debt service coverage ratio (you can have a senior DSCR and a total DSCR — not a subordinated DSCR).  You cannot not have more than one overall debt to capital ratio.  The DSRA that protects lenders is generally on the overall debt service.  Other parameters such as the interest rate, the debt tenure and the repayment pattern of debt can be defined on an individual debt issue basis.  The screenshot below illustrates how you can set up the debt assumptions with one debt issue.  The first screenshot illustrates how there can be multiple overall debt sizing constraints and how the the funding of debt is driven by a parameter for up-front equity funding.



The screenshot below illustrates inputs and assumptions that should be input on an issue by issue basis. The first input is for the percent of the total debt that is represented by the debt issue.  I have labeled this issue as a not capture issue.  This is because if there are multiple debt issues and sculpting, there must be one issue that captures the rest of the debt service and assures that the total debt service is met.  I find the whole idea of sculpting for multiple debt issues complex and there I have included a separate page that deals with the multiple debt issue sculpting subject.  The debt tenure is entered by issue and if the debt with the longest tenure should generally be the debt capture issue.  You can enter a grace period near the tenure and you can put in specific dates for the start and end of the repayment.  Note that I have used the generic macros file to colour the various things (please just try this).  As with my general philosophy I hope you keep the structuring of the debt issues consistent — the size, the funding, the repayment, the interest rate and fee and the protections.



Structure of Debt Size and Summary Sources and Uses of Funds

Once the inputs are established, I suggest structuring the whole model without circular references, meaning that you enter the titles and make various calculations.  Structuring the whole model without the circular references means that you can leave some items like IDC in the periodic sources and uses funds blank.  You may also make some errors on purpose like not subtracting taxes in computing CFADS In other cases, like for the debt IRR, you may want to just enter a fixed number.

Now let’s move to the modelling of debt size, debt funding, debt repayment, interest and fee costs, and credit protections.  One way or another I suggest that you put in a summary sources and uses of funds statement with the total amount over the construction period.  If you are setting up your model, you will not be able to enter the IDC (I Don’t Care, or interest during construction), the DSRA, and the fees.  You will generally also not be able to enter the amount of the debt.  But just enter a placeholder for the debt and leave the IDC, DSRA and fees blank.  Then your summary sources and uses of funds should look something like the screenshot below.  This is the first step of the analysis and this is related to the debt sizing.  Note how I have put options for debt sizing from debt to capital or from input debt or from sculpting to the right of the debt amount and these are not yet filled-in.  The fact that these items are not entered yet should be giving you anxiety about circular references.  When you have to go downstairs to find stuff, circular references are an issue.



Cash Flow Statement Number 1 – Sources and Uses During Construction

Now let’s turn to funding of the debt during construction given the amount of debt and equity from the summary sources and uses of funds statement. I am using the Hedieh method of entering the equity up-front as an input variable. I think this is brilliant.  If you want everything to be pro-rata, you can enter zero as the equity up-front percent. If you want to use all up-front funding, you can enter 100% for the input. Of course you can enter anything between.  Given this input for which I used 50%, which implies that some of the funding is equity up-front and some is pro-rata. In the screenshot above, in the section below the sources and uses of funds I have computed the percent of funding that comes from pro-rata debt and pro-rata equity.  To make this calculation compute the 50% of equity up-front first.  Then you can derive the total pro-rata funding.  The debt percent of pro-rata is the total debt divided by the pro-rata funding and the equity is the remainder.

Once you have the pro-rata percentages you can enter the sources and uses funds statement on a period by period basis.  You should think of this as a cash flow statement before COD.  Before COD there is no EBITDA and no cash inflow, so everything is about finding cash to fund the various needs which include capital expenditures and can include IDC, fees, DSRA funding, Development costs, Development fees and so forth.  An example of cash flow statement before COD (the sources and uses of funds) is illustrated in the screenshot below. Note that the numbers are not filled-in.  This is again because of the circular reference nightmare.



To compute either equity-up front or pro-rata funding, you can begin by evaluating the equity up-front.  I have seen many ways to do this, but I start by computing the amount of remaining equity that can be used to fund equity that will be used in the MIN function.  I do this by first computing the total equity commitment an then subtract the amount of equity already used which is the opening balance.  Then, I compute the opening and closing balance of the equity. The amount of funding is computed with the MIN function where you compute the minimum of the funding needs or the remaining equity.

Equity Funding = MIN(Remaining Funding, Cash Needs)

Structure of Debt Schedules with Multiple Issues

After the first cash flow statement — the sources and uses of funds by period — is established, you can enter the debt schedule.  The debt schedule simply presents the opening balance, additions and closing balance. I cannot imagine a project finance model that does not have a debt schedule.  In the example below, I have left out the repayment which is addressed in the next section.  As you can see, the debt schedule also includes interest rates and fees with a separation of interest between IDC and interest expense.  This is pretty standard with maybe the exception that the debt draws are computed from the percent of total debt that is gathered from the sources and uses of funds statement.


I have also included a screenshot with the summary of all of the debt issues below.  This just adds up all of the interest cost and the IDC and the fees using a SUMIF function.  Of course I apply the lazy principle and use the SUMIF with the entire columns of data.  As with the debt schedule, this is just a long and painful process.  Note that after the total fees and the total IDC is computed, I have not placed the amount in the sources and uses of funds.  When you put the IDC and the fees into the sources and uses of funds, a dreaded circular reference occurs.


Structure of Repayment with Multiple Sculpting

In this A-Z exercise I have included repayment schedules where multiple debt issues are used to sculpt.  On another page in the advanced project finance section I explain this process in detail.  Please note that you can compute this by temporarily pretending that CFADS is the same as EBITDA.  You will change this when you implement the UDF below. In brief, if you want multiple sculpted issues that produce both the target DSCR and the correct allocation of debt, you can do the following:

1. Compute the aggregate amount of debt with the aggregate CFADS using a debt IRR.  To compute the debt IRR you will have a circular reference because the amount of aggregate debt is used to apportion the debt, compute debt service and ultimately arrive at the debt IRR itself.

2. Compute the debt service for the capturing debt issue.  This capturing debt issue is computed similar to the aggregate debt, but the interest rate on the debt issue is used and the debt service on the other issues are subtracted.  The screenshot below illustrates computation of the capturing debt issue and the aggregate debt.

3. Compute the LLCR for the non-capture debt issues.  Do this by first computing the debt balance associated with the debt issue where the balance is the total amount of the debt from the NPV of the aggregate debt service in step 1.  This is multiplied by the target debt percent.  Once you have the debt balance for the non-captured issues, this is the denominator of the LLCR used for sculpting.  The numerator is the PV of CFADS at the relevant interest rate.  The LLCR that is shown in the second screenshot is computed using the formula:

LLCR = NPV(CFADS)/Debt from Aggregate Debt Balance * Percent Debt

4. The final part involves computing the debt IRR from the total debt service. To calculate this, add the debt service from the different issues.  Then put the total debt issued at the COD as the negative investment.  With the cash flow on debt, compute the debt IRR.  Note that there are two circular references from this process.  The first is the IRR and the second is the debt balance.  We are setting-up the schedules so do not worry about these yet.




Structure of DSRA Account

The DSRA account can be structured once the debt service is established from the debt schedule.  I used to get very worried about the DSRA and the circular references.  I have gotten over this fear by beginning with the structure of the DSRA that is illustrated below.  Always start with the debt service and then derive the required debt service reserve account.  This is illustrated in the screenshot below.  I often use the OFFSET function, but I just used 1/2 of the next year’s debt service in this case.  If you are using the OFFSET function, use adjust the column with a negative sign for the periods that you want to move from the future as illustrated below:

Debt Service Requirement = OFFSET(Debt Service, 0, – DSRA Periods)

In the above formula, the zero in the middle means that you do not adjust the rows. After you have established the amount of required reserve, compute the amount of required funding or allowed extinguishment. This is the total requirement less the opening balance of the DSRA account.  Finally, after computing the required reserve, compute the balance of the DSRA account.  This is a normal account with an opening and closing balance.  When computing the required funding, separate the funding between the funding during construction which will go into the sources and uses of funds (cash flow statement 1) and into the cash flow waterfall (cash flow statement 2). This funding can be split using TRUE and FALSE switches.

In the screenshot I have not included interest income, the possibility of using a letter of credit instead of a cash DSRA and finally, letter of credit fees.  These issues can be painful, especially from the perspective of circular references.  I have included these issues in the advanced project finance modelling section.



Profit and Loss Statement with IDC and Fee Depreciation and Amortisation

After you have finished the debt parts of the model you need to go around an compute the CFADS. The difficult issue in computing CFADS is that taxes, interest income are part of the CFADS calculation. But these items depend on the debt which in turn depends on the CFADS.  There can also be an issue with changes in the DSRA which can potentially affect the CFADS and is driven by DSRA and debt.  When setting-up the model to get ready for the circular reference, you should go all the way to the cash flow statement where CFADS is computed.  This requires computation of taxes in a profit and loss statement and setting-up a cash flow waterfall (cash flow statement number 2).

In structuring the profit and loss statement you must include some kind of amortisation or depreciation on financing elements that have been capitalised. I insist that you keep the depreciation expense is separated between amounts that are finance related and base amounts that are associated with capital expenditures, development costs and other items. The base depreciation is necessary for computing the operating taxes and if you mix up the IDC depreciation that is influenced by financing, your project IRR will be wrong.  Therefore, I suggest putting the depreciation on IDC and fees near the profit and loss statement where you will compute the taxes paid after financing.  This is illustrated in the screenshot below where depreciation rate on IDC and fees is assumed to be the same as the depreciation rate on base assets.

The rest of the profit and loss statement is standard as shown in the screenshot below.  The IDC depreciation and the fee amortisation are included as separate items. As in so many other models, the a net operating loss is computed with MIN and MAX functions. The MAX function is used to test whether the EBT is positive or negative.  The MIN function is used to test whether the balance of the NOL can be used when there are positive taxes.  The one thing that this does not have is expiration of NOL’s. This is a difficult problem addressed in the corporate finance section of the website.



Cash Flow Waterfall and DSCR Calculation

The final statement that you can develop for the structuring section is the cash flow waterfall and the DSCR calculation.  The DSCR should be the same as the DSCR that you entered as an input. To avoid circular references I have made an error on purpose and not subtracted the taxes in computing the CFADS.  This is shown in the screenshot below.  Note that in the screenshot, the DSCR is the same as the DSCR input. The only confusing thing is where to put the changes in DSRA.  I put the change in the DSRA after the CFADS so it does not affect the DSCR and sculpting and debt sizing.  I address the issue of either putting the DSRA in the CFADS or as an adjustment to debt service in the advanced section. Now we have to deal with circular references.



Videos on Structuring



Part 7: Using Parallel Model/UDF for Solving Circular References

It is nice to say that there should not be circular references when you enter debt, but this is arrogant.  You have to create quite a lot of stuff that is fixed to avoid circular references even if you use a model for credit analysis.  The rest of this A-Z course deals with subjects that create circular references.  If you don’t want circular references, you will hit a wall.  The wall you hit does not only involve figuring out a way to deal with circular references, but the programming is more painful because you will end up going up and down a whole lot.

I have been working on a comprehensive model that resolves all of the items that cause circular references with user defined functions for a few years now. I have used the file to illustrate how you can resolve all circular references and allow you to make effective scenario analysis. You can go to the circular reference section of the website to see how this works. Please see clearly that if you use this method, you can just add the parallel model in minutes.

Example of Project Finance that Resolving Circular References Using UDF and Parallel Model from Template

Addition of Parallel Model


Modelling of Debt at P99 and Tariffs at P50


Part 8: Structuring Mezzanine Debt and Shareholder Loans in the Model

Including mezzanine debt and shareholder loans is mainly a pain.  These debt or quasi debt issues affect taxes and add to the circular reference pain.  You also may have separate sculpting for the total debt that includes mezzanine debt and model a waterfall. In the case of shareholder debt, you do not want to distort any of the debt statistics, cash sweeps or other debt terms by the shareholder debt.  The only effect of the shareholder debt is on the tax and possibly on the project cost because of the recording of IDC on the shareholder debt.

Part 9: Structuring Multiple Re-Financing in the Model

First enter one re-financed issue and make sure it works.  Then enter multiple issues with the ability to change assumptions.



It is like you add a sheet to your model and then use the Sum function or any other function that is not related to anything in your model.  That is the starting point.

Dislike template models. Try to put everything in the world. But agreed. Put in imaginable things.

Then collect a few inputs that you have a fixed amount for.  This is the only connection.

You don’t even have to connect if you want to use the parallel model for checking, for sensitivity analysis and for advanced project finance concepts like sculpting with DSRA, adding balloon payments, re-financing etc.

How many minutes does it take to implement the parallel model.

Some points:

  1. How to copy the template into your file
  2. Using the debt schedule to find inputs for debt issues
  3. Understand where to start and end
  4. Understand the debug option
  5. Understand the manual and the CNTL, ALT, F9
  6. Benefit of spreadsheets starting from visicalc was that you could see everything

Sales Points

  1. Not just another VBA program
  2. Not as a Sale Program
  3. Biggest Point is Circular Reference
  4. People will Resist



  • This is magic and a black box
  • This is like a password protected macro
  • This is just another add-in gimick
  • History of UDF

Last thing I wanted to do is to program financial model

Circular reference questions and problems with copy and paste


Implementing the UDF Model

Use of Manual Calculation and CNTL, ALT, F9

Explanation of the debug switch

Copying Debt Issues

Interpretation of Output

Changing the Output Structure

Benefits of Parallel Model and UDF Other Than Circular Reference

  • Verify Model
  • Consistent Way to Check
  • Compute Sculpting Repayment in Complex Situations
  • Run Alternative Scenarios
  • Evaluate Issues that may be Difficult to Program
  • Easy to Read Reports
  • See Equations for Difficult Sculpting, DSRA and Other Structuring Issues

Circular Reference Resolution — Let’s say you want to make an analysis with where P90 drives debt size but P50 drives price target.

Anybody who has worked in a serious way on project finance models should know about how much the classic solutions to circular references — copy and paste or iteration button — can ruin a model.  The problem with copy and paste macros is that your model is suddenly stopped.  No goal seeks.  No data tables. No simple spinner buttons for sensitivity. No effective summary pages where people can try different scenarios.



Model Verification

Example of mistakes in model that are difficult to verify

Running Alternative Structuring Options without Programming


Complex Issues that You May Not Want to Program, But Make a Quick Analysis

You can verify the model and then say you want to do some more complex things like:

  • Debt Sizing Using Alternative Methods
  • Balloon payments
  • DSRA as L/C with fees
  • DSRA moves in CFADS for DSCR calculation
  • DSRA moves in Debt Service for DSCR Calculation
  • Multiple Issues with Sculpting
  • Equity Bridge Loan
  • Portion of Equity as Up-Front and Portion as Pro-Rata
  • Optimising DSCR for Sculpting with Average Loan Life Constraint and Debt to Capital


Adding/Changing UDF

Put in the output — work backwards

Create a public variable

Construct a model in excel. Can be a simple model

Replicate your excel analysis

By documenting your calculation, you can check it a lot easier

Soon you will realise that it is not much different than making a model; which can be good or bad.

Verification of UDF

Make tests outside of the model

Balance sheet must balance like any model

Debt must be paid off like any model

Check of totals and things like sources and uses


Workings of UDF

Any program (including excel) has inputs, outputs and calculations





These files are from the wikispaces website.  I am in the process of uploading all of the files. But in the meantime you can send me an e-mail to edwardbodmer@gmail.com to get the resource library. The files will be located in the project finance section of Chapter 1.

A-Z Part 2 Circular Exercise.xlsm

Circular Mirror Template.xlsm


The third set of videos continue on tricky issues associated with debt. The first video in this set complete the model with no debt and begin adding debt to the models. The last video in this section begins to add a circular resolution template to the model. This is an important idea in project finance where you would like to maintain flexibility in the face of natural circular references.


If you fill in all of the exercises and send me the files along with a small fee, I will publish your name on my website so you can show it to your boss or your future employer. I will also get you an official badge. An illustration of how the models work is shown below. The yellow tabs in the excerpt show the items to fill in. The completed sheets are next to the yellow tabs (I hope I did not make mistakes).


A-Z Exercise with Selected Existing Titles for Solar Model

I was asked to prepare an exercise where people could quickly make a model that evaluates bid prices and other model aspects and can get you most of the result without spending too much time on some of the horrible details that can make project finance modelling so difficult.  I was told that making a relatively simple project finance model could not be taught in a single day.  This is not true.  You can see the essentials of making a model including describing inputs, establishing operating cash flow, computing depreciation and project IRR, incorporating debt, making a cash flow waterfall and computing some key financial ratios in a morning.

The file available for download does this for a simple solar case.  To make it really simple I have not even included a construction period and made the model and annual model.  For some items I have not included titles so that you can do the really important part of a model which is to structure the model.  For other parts, I have included titles so that you do not have to waste a lot of time typing.  The exercise hopefully applies some of the fast modelling religion, meaning that it is flexible (except for the one period construction), it is accurate — the balance sheet balances and the debt is paid off; it is structured, where you start with physical operations and then move to revenues, expenses and capital expenditures and then to depreciation which allows you to compute operating taxes and project cash flow.  After project cash flow you incorporate debt with a sources and uses of funds statement, and a debt schedule.  Only after the debt schedule do you create the financial statements.  To download the file, press on the button below.


Excel File with Exercise to Create Basic Solar Project Finance Model Demonstrating Structuring Issues

Part 1: Operating Data

In the first part, you go to the operating data.  You use the INDEX function so you can select one of the scenarios.  Also put the developer tab in your excel and make a spinner box with the windscreen wiper method to use the form in other sheets.  The first part is illustrated in the screenshot below.


Part 2: Timing

In the second part make a timing switch and use the EDATE function (FETCHA.MOIS) to compute the annual dates.  I have put some summary outputs at the top of the page.  Use the ALT and –> to group the rows and choose to not show the outputs.  In English you can use ALT, E, I, S to get the model started for 40 years.  With the GENERIC MACROS open, you can use the ALT, S combination.  The timing parts of the model are shown on the screenshot below.



Part 3: Define Inputs

After setting up the time line, pull the relevant inputs from the model from the operating page and from the debt page. The inputs should be discussed and you should see how to change the scenarios with your spinner box.  You should understand that the inputs are arranged in a proper order that separates operation from financing; that begins with physical operations; that includes ways to back into the contract price and that includes logical differentiation of the debt parts of the model.  When you have linked the outputs, use the CNTL, ALT, C sequence from the GENERIC MACROS to show the location of the inputs and to illustrate the structure of the model. The input section is shown on the screenshot below.


Part 4: Construct the Operations Section of the Model

In the first part of the model I have not provided the titles.  You are supposed to get to the volumes produced in MWH which is the basis for revenues.  To do this you need to know how much the solar capacity factor or yield will be.  I suggest you enter the driver of the formula in a left hand column, that you put in the units in a left hand column and that you use SHIFT, CNTL, R to quickly copy things to the right. You should also compute an index for degradation that begins in year 1 by taking the prior period and multiplying it by (1+degradation). Then you can divide the capacity by degradation and compute the capacity after degradation.  You can use whatever method you want to insert the rows.  You can create your own short-cut key for the underline.



Part 5: Revenues, Expenses, Capital Expenditures and Free Cash Flow

In any corporate finance model, M&A model, real estate model or project finance model, you will need revenues, expenses and capital expenditures.  The assumptions that create these three items (along with working capital) will drive all of the rest of the analysis.  In the next section you are to compute revenues, expenses and capital expenditures from the inputs.  I think it is a really good idea to put the drivers of each formula in a left hand column so you can be transparent (I hate looking around for where the numbers came from).  In this part of the analysis I have given you the titles as shown on the screenshot below. Once you have computed the project IRR you can use a goal seek and a macro to evaluate the required price.



Part 6: Depreciation, Operating Taxes and After Tax Free Cash Flow

If there were no taxes and you did not want to show a profit and loss statement you could eliminate this part of the model. With taxes, the shield from depreciation is an important item. Compute the depreciation by setting up an account with the balance of plant as shown below.  When you compute depreciation you can use the MIN function to make sure the depreciation does not exceed the net plant balance. Once you have the depreciation you can compute the EBIT, the taxes on EBIT, the after tax project cash flow and the project IRR.  The screenshot below illustrates this part of the model.



Part 7: Sources and Uses Prior to COD

Once you have completed the operating cash flow and operating taxes you can move to incorporating debt in the model.  In every project finance model there should be a sources and uses of funds for evaluating cash flows during the construction period.  You can think of this as a way to evaluate debt sizing.  In the example, you can fill in items on the sources and uses of funds from the inputs and items above the sources and uses.  Note that this is not realistic as items such as interest during construction and fees come from below not above and you get a circular reference.



Part 8: Debt Schedule

The debt schedule must have calculations for debt repayment, interest expenses and fees.  Repayment is often the most difficult aspect of a model.  There are alternative methods demonstrated to compute the repayment including flat repayment, mortgage repayment and inflated repayment that matches the cash flow when inflation is applied in the price.  Use the INDEX Function to select one of the three methods of repayment.  A screenshot is shown below.



Part 9: Profit and Loss Statement and Cash Flow Statement

Now you are to the easy part.  The only reason that an income statement is necessary in a project finance model is to compute taxes and to compute net income for purposes of balancing the balance sheet.  The cash flow statement can be more complex if there are cash sweeps, covenants and other items.



Part 10: Balance Sheet and Financial Ratios

The final part of the exercise is to put together a balance sheet and compute a couple of financial ratios. The balance sheet components should all come from items in the model and the equity balance should be computed.  Ratios like IRR, DSCR and LLCR come from the cash flow statement.






Exercise that Includes Construction Period

I was asked to prepare an exercise where people could quickly make a model that evaluates bid prices and other model aspects and can get you most of the result without spending too much time on some of the horrible details that can make project finance modelling so difficult.  I was told that making a relatively simple project finance model could not be taught in a single day.  This is not true.  You can see


Excel File with Exercise for Creating Combined Cycle Model with Timing and Construction Issues


Case Study Exercise on How You Can Evaluate and Existing Model

Some unlucky people have to create models and deal with circular references and many horrible details like withholding taxes on four tranches of debt.  More people have to interpret and use models that is arguably even more disagreeable because of the way models have become cumbersome and overly detailed.

This case study and exercise is designed so that you can more efficiently evaluate models created by other people including dissecting cash flow in the models, computing alternative financial ratios, adding your own scenario analysis, dissecting the model with sensitivity analysis, creating an summary page the conveys the transaction, making effective graphs the illustrate risks and finally formatting the model with nice colours and titles. My hope is that this exercise will be practical for you and that you can use some of the ideas in your current job immediately.

The file that I have used for this case is the completed case from the above model.  But it could be just about any project finance model, corporate model, M&A model or other financial analysis that has a few inputs and outputs.  The base model that I have chosen for this exercise is available for download by clicking on the button below.


Introduction to the Model Review Assignment

I have structured this assignment by attempting to explain the details of how to complete the excel stuff.  Then I have included questions that should be completed with only one or two sentences where you tell me the implications of the modelling tasks.  I have also provided titles for many of the items so that you do not have to waste a lot of time typing stuff and the exercise will not take too much time.  I strongly suggest that you do not do this exercise on an Apple computer; that you open and use the GENERIC MACRO file, the LOOKUP INTERPOLATE file and the SCENARIO REPORTER file to make the case go faster.  These three files are available for download below.


Generic Macro File that Allows you to Copy to the Right (Shift, CNTL, R) and to Colour and Format Sheets (CNTL, ALT, C)

Download Excel File with the Function for Interpolation Using Either Compound Growth or Linear Interpolation

Scenario Reporter File - With this File, you Open the File, then Copy the Scenario Sheet to Your File and Use the Buttons


Part 1: Dissecting Cash flow

Use the SUMIF function to get the data to annual amounts. When you use the SUMIF, click on the entire row.  Question – how does the IRR on the project and equity compare to overall stock market returns. Do you think this is realistic.



Part 2: Computing Alternative Financial Ratios

I hope that you learn to look at ratios other than the DSCR.  In this case you can examine the LLCR and the PLCR.  The only calculation you have to make for this is to use the SUMPRODUCT function below the cash flow statement with the interest rate index and to find the debt at COD from the sources and uses. Explain how to interpret the DSCR, LLCR and PLCR.


Part 3: Adding your Own Scenario Analysis

Use the scenario manager to add a scenario. In this case could you invent a few cases with different inputs.  Change the following: the project cost, the life of the plant, the availability.  Then open the scenario reporter and create a scenario report.


Part 4: Dissecting the Model with Sensitivity Analysis


Part 5: Making Effective Graphs the Illustrate Risks


Part 6: Creating an Summary Page the Conveys Key Aspects of the Transaction


Part 7: Formatting the Model with Nice Colours and Titles