This is a guest post written by Paramdeep from Pristine. Chandoo.org runs Financial Modeling School program in partnership with Pristine Careers. Visit Financial Modeling School to learn more and sign-up for our newsletter.
Who is not interested in buying a new house? Owning a (at least the first one) house is like a dream come true for most! If you have ever bought (or thought of buying) a house in a building that is yet to be constructed, you would realize that there are clearly two parts of the business for the developer – the construction period (which is when the building is being built for the first 2-3 years) and the operations/ sales period (after the construction, they would sell or lease the building).
As we discussed last time, one of the key aspects of any Infrastructure/ Real Estate Project is the long gestation period of the project. Typically in the construction period the project would utilize all the cash and when the operations/ sales period starts, the costs are almost zero as compared to the revenue being generated from the project.

So what’s the big deal about the cash flow structure?
One of biggest concern in the construction period (Lets say it runs for 3 years) is that it consumes all your cash. If my total cost of building the project is going to be USD 30 Million (Spread equally over the three construction years), my Profit and Loss Statement would look something like:
P&L (all figures in USD Mi)

But my building is not yet built (hence I cannot sell it), so I can take this as a Work In Progress (WIP) to my balance sheet (more about this can be learnt from accounting books and we would also be delving into this concept in detail in our training). But one thing is for sure, I would have a cash deficit of USD 10 Mn in the first year and a similar situation would continue for the first three years (till the point construction is complete and you start selling/ operations).
Typically, these projects also have a large amount of debt. For example, if I am expecting to construct the building for USD 30 Mn, I would try to take a bank loan of at least USD 20 Mn.
If you were a bank, the decision making of whether to lend money is taken on the interest and principal repaying capacity. If as a bank I analyze your P&L, I find that you have no cash to pay me my interest and principal! Traditional bankers lend you money ONLY if you can EASILY pay me back my money (typically look at a ratio of (interest + repayment) amount to the cash generated – called coverage ratio). If you can’t do that – I will not lend!
So how do Banks view this?
As a banker, I understand that you are going to construct for 3 years and that is when you need my money (And would not be able to pay me interest). So I agree to not take interest and principal repayment as cash each year. But I cannot let go of this money!
Think of it as – I let you take additional loan to fund this payment! For example, let us assume:
Interest Rate prevailing: 10% per year
Loan amount in first year: USD 10 Mn
- So Interest on this loan: USD 1 Mn
- Now you can’t pay me back, so take additional loan (In first year itself) of USD 1 Mn
- That means total loan: USD 11 Mn (10 that you originally took and 1 that you took to pay the interest)
- That means interest is actually USD 1.1 Mn (Instead of the original 1 Mn)
- That means that effective loan: USSD 11.1 Mn (11 that we had calculated earlier and 0.1 to fund this gap)
- So interest: USD 1.11 Mn
- So effective Loan amount: USD 11.11
… and so on
There is a clear circular logic in this concept – My loan changes interest and interest changes loan
Interpreting the circular logic
Summarizing our thoughts:
- When an asset is developed, and there is a considerable period between the start of a project and its completion, the interest costs related to the construction are generally included in the cost of the asset, that is, the interest cost is capitalized
- The capitalization period ends when the asset is ready for use
- While modeling in excel, Interest During Construction (IDC) introduces a circular loop into the sheet due to the circular references explained below (1-2-3-4)
o Equity and Grant commitments can be either a specific amount, or a certain percentage of the total project funds required (that is, a fixed percentage in the capital structure)

[Tip: Learn more about Excel Circular References.]
The Case – Modeling Interest During Construction in a typical Real Estate Project
Let us consider the construction period of a project at place X, where government wants to build a hospital.
The costs of the project are stated below:

The government is ready to provide a grant of USD 50 Mn in the project and the project builder has to infuse equity of USD 100 Mn in the project

The shortfall in the funds can be funded through debt.
A complete model for financing has to be prepared for the construction period.
The Concept
The basic concept behind the model is pretty simple
Total cash outflow in a year = Total Cash Inflow in the year
- So the first step is to calculate the cash outflow in all the years. This cash outflow also includes the cost of paying the interest (which we would not know in the first pass).
- As a next step, we find the amount available to us through the equity and grants.
- We know that cash inflow has to be equal to cash outflow for all years.
- Whatever is the shortfall, we raise debt to fund it.
- Calculate the cumulative debt
- We calculate the interest on this debt.
- Whatever is the interest on the debt, we plug it back in the project cost (and hence introduce the circular logic in the model)
Step I: Getting the Cash Outflow (Project Costs)
Based on the case, calculate the cash required in each year.

We know the costs of each of the items and what should be the contribution in each year. Multiply the values to get the amounts in each year!
In the same step, we add all the costs (Including the Interest During Construction, though we don’t know it right now)

Step II: Getting the Cash Available (through Equity and Grants)
Based on the equity and grant infusion schedule, we calculate the cash inflows

Step III: Cash Inflow = Cash Outflow
Since the cash outflow has to be matched with cash inflow, we make the total project cost in all years equal to funding in the year

Step IV: Fund the shortfall through debt
Since the only source to fund the shortfall is debt, lets raise the debt as the total fund needs less whatever is available through equity and grants

Step V: Calculate the total debt outstanding
Since there is no way that we can pay the debt in the construction time, we make the outstanding debt as the cumulative debt raised (See me use a trick to accumulate!)

Step VI: Calculate the interest on the debt
Since we have taken money from the bank, we need to pay an interest on it. The interest rate is given to us, let us link the amount to the interest to calculate the interest.

Step VII: The Circular Logic (Plugging back the interest in the project cost)
Since the interest is also a cost of the project (and we are not paying it back to the bank each year), we take it to the project cost.

Out here, if you notice, excel starts a circular calculation and updates all the values! This can be verified by looking at the bottom left of excel and noticing this sign of “calculate”

Beware! Circular References can be dangerous!
What we have achieved in this tutorial is one of the most intricate concepts in project finance -Interest During Construction (IDC). We have also used a fairly advanced function in excel – Circular loops. But please note that circular loops in excel is a dangerous tool. If by chance your excel sheet gets an erroneous value, the error would propagate through the model and there is no way for the model to recover back from the error, unless you know where the circular loop is and you delete and go back from there. For example, if I change 10% interest to “ten”,

I figure that my model is corrupt (It was expecting a numeric input and I gave a string!). But I can go back to 10%, my model does not go back!!

I leave it as a homework for you to figure out, how to go back to a stable state!! 🙂
I will give you a trivial solution (close the sheet and open it again) :). You figure out, where the circular loop is and delete those lines and break it to come back!!
In the meanwhile, happy modeling!!
Project Finance Modeling – Templates to download
I have created a template for you, where the assumption numbers are given and you have to link the complete model!
You can download the same from here. You can go through the case and fill in the yellow boxes. I also recommend that you try to create this structure on your own (so that you get a hang of what information is to be recorded).
Also you can download this filled template and check, if the information you recorded, matches mine or not! 🙂
I am just doing that for the single sheet model and recommend that you do the same for multi-sheet model as a homework problem. If you face any issue, post your excel with the exact problem and we can discuss the way to move forward.

Next Steps
This series gives you a flavor of how project finance modeling is done and an idea about specific nuances in modeling for long gestation projects. I do hope to see you in the financial modeling school.
Join our Financial Modeling & Project Finance Classes
We are glad to inform that our new financial modeling & project finance modeling online class is ready for your consideration.
Please click here to learn more about the program & sign-up.
For any queries regarding the cash impact or financial modeling, feel free to put the comments in the blog or write an email to paramdeep@edupristine.com
















24 Responses
I’d suggest simply using the subtotal function and filtering the data using the Win/Loss column. You get the same results and the formula is more comprehensible.
@John
That is one option.
There are times however when you want to see the whole data table or a filtered subset and still want to produce summary reports against an unfiltered field.
Is there a particular reason why you are using a comma and the unary (–) operator for the second array in the SUMPRODUCT formula? It seems to work the same if you were to string the arrays together using the asterisk (*). The advantage is that SUMPRODUCT treats the entire string of arrays as a single array.
@Mathew
Your correct, There is no difference.
I thought it may have been easier to explain this method.
Is there a way to do this on a large set of data? As in ~100,000 rows? When I try I get an error because the formula becomes too long. It says the max length of a formula is 8,192 characters. Excel 2010.
How do I incorporate a specific text within a cell for the second array. For instance, – -(C7:C13=”Apple”)
when I chose a specific text the formula does not work.
@RB
I am not sure what is the issue as if I use the sample data in the post the following work fine
Count:
=SUMPRODUCT(SUBTOTAL(3,OFFSET(C7:C13,ROW(C7:C13)-MIN(ROW(C7:C13)),,1)), –(C7:C13=”L”))
Sum:
=SUMPRODUCT(SUBTOTAL(3,OFFSET(C7:C13,ROW(C7:C13)-MIN(ROW(C7:C13)),,1)),(C7:C13=”L”)*(D7:D13))
You may want to check that there are no leading or trailing spaces in your list of Apples
I should have given a better explanation. Heres my situation. I have a column with cells filled with names like Column 1, Column 2, Pier 1, Pier 2, etc. If the cell just contained Pier and searched for that it works. But because it has other characters in the cell its not recognizing the pier. So how can I extract specific characters of a string of text in this formula?
Hopefully this was a better explanation
Hello-
This formula works pretty well for me except that it slow down excel and prevents some of my macros from working. I was wondering if there was a way to program this in VBA so that excel isn’t always trying to recalculate it. I would like to use a push of a button to get it to run then paste in a cell.
Thanks!
I am trying to sum filtered data in a column, but would want to ignore the negative values in the column. How to go about doing this?
@Akshay
Why not just add a filter to that column to only show the values greater than zero?
The negative values are required for reporting purposes, but their effect on the total is distorting the required output. Please advise.
@Akshay
I’d suggest making a post in the Chandoo.org Forums
http://forum.chandoo.org/
Attach a sample file to simplify the task
I have this working for counting and summing, however, I have a list and for the second array, I need a criteria. That is, I’m looking for b13:b200=”01.??.??” or =left((a1,2) or something like that. These types of criteria matches do not appear to work as I get a blank as a result.
Thanks!
@Bob
As your formula b13:b200=”01.??.??” looks like you are trying to check the first day of the month of the range
What about trying Day(B13:B200)=1
Hai Experts,
i understood this formula well and working fine in MS Excel 2013
but when the same am trying to place in google Spreadsheet it shows error as
“SUMPRODUCT has mismatched range sizes. Expected row count: 1. column count: 1. Actual row count: 2014, column count: 1.” and as a result #VALUE! Appears in cell.
Can anyone please help me how would i get it done in Google Spread sheet
or is there any other formula as a substitute for this.
Thank you very much.
thanks for providing this.. but why does excel keeps on prompting Circular referencing in cell D3?
@Vivek
I don’t know
I just downloaded the file and it is working fine and not showing that error
Goto the Formulas, Calculation Options Tab and check that Calculation is set to Automatic
What version of Excel and Windows are you using ?
I know that this forum is for MS Excel, but I am trying to help someone who is working in Google Sheets. The below formula works in Excel but Google Sheets returns:
“SUMPRODUCT has mismatched range sizes. Expected row count: 1. column count: 1. Actual row count: 39000, column count: 1.” and as a result #VALUE! Appears in cell.
This is the same problem asked by Srichirin above. Does anyone know if there is a formula for Google Sheets that will replicate what MS Excel does?
=SUMPRODUCT(SUBTOTAL(3,OFFSET($C$6:$C$39500,ROW($C$6:$C$39500)-MIN(ROW($C$6:$C$39500)),,1)),- -($C$6:$C$39500=H1),($D$6:$D$39500))
Trying to find a SUMPRODUCT formula that counts the word Closed by date for the last 7 days in a filtered list.
=COUNTIF(M:M,”>”&TODAY()-7) works ok for unfiltered count Column M contains Closure dates (blank if open) and Column L is Status Open or Closed
@ Terry
Please ask the question at the Chandoo.org Forums
https://chandoo.org/forum/
Please attach a sample file to ensure a quicker more accurate answer
I used this formula and worked like a charm! But, now I’ve been requested to use it but adding not one but two criteria in the same formula. For instance the sum I was doing added negative and positive numbers. I’ve been asked to use the exact same formula but adding that only positive numbers were considered… any idea on how to do this?
How exactly do you do sum filtered cells when two criteria are need not just one?
Thank you so much brother literally I have been struggling since morning to get the sum of the filtered category, however, after reading your blog attentively i got my solution, so thanks a lot once again.