Excel Formula - Total subscriptions after Nth years based on monthly churn rates - excel-formula

A business works on a subscription model basis with a expected churn rate (Cancellations) each month during year 1 at 5% & during the following year a churn rate of 2.5% due to the fact these are now established customers (long term).
A new feature or service is launched with a expect increase of subscriptions each month. I need to calculate how many subscriptions would that be in N years based on a 5% churn rate for the first 12 month & a 2.5% churn rate during year 2.
Below is currently how were are calculating this in excel however this is really in inelegant solution when trying to calculate this for say 5 - 10 year impacts.
https://i.stack.imgur.com/yF5Rx.png
Are there any accounting formulas or something mathamitcally I can produce to calculate this in a single cell? Given I would need to set the given churn rates for each year & length of time.
For ease lets say 95% of the time I would be working on a 3 year model of subscriptions & each year will need its own churn rate.
I thought perhaps something with exp & halving the value might work but have not found anything yet.

Here's one way to build the model. I'll make reference to this image:
First we set up the churn model.
Row 1: Since Churn Rates depend on subscription age, Row 1 has the subscription age (in months). This is for reference only and is not used in the calculations.
Row 2: Churn Rates.
Row 3: Since Churn Rates always enter the calculation as (1-ChurnRate), call that term (Single-month) Retention Rate. As an example, in B3 the formula is =1-B2.
Row 4: Since the effects of churn are cumulative over multiple months, we define another term Multi-month Retention Rate (abbreviated MMRR). In the first month this is set to 1; in subsequent months this is the product of previous single-month retention rates. So in C4 the formula is =B4*B3; in C5, =C4*C3, etc.
Row 5: The model as described in the Question indicated a fixed rate of new subscriptions = 100/month. When the subscription rate is fixed, it is convenient to sum up the MMRRs. So in B5 we have =B4; in C5, =B5+C4; in D5, C5+D4; etc.
At this point we're essentially done. If you multiply the values in Row 5 by any fixed rate of new subscriptions (e.g. 100/month in the original Question) we get the number of subscribers in that month. But what if you want to model where the number of new subscriptions varies month to month? Here's how ...
The basic idea is to multiply the monthly subscription rate by its age-appropriate MMRR. Note that Row 8 has varying numbers of new subscriptions (100, 110, 97) in the first 3 months. To get the total subscriptions in Mar-19 for example, we need to
multiply the 100 (Jan-19) subscriptions (that have a 2 month age) by the MMRR for a 2-month old subscription (0.9025),
multiply the 110 (Feb-19) subscriptions (that have a 1 month age) by the MMRR for a 1-month old subscription (0.95),
multiply the 97 (Mar-19) subscriptions (that have a 0 month age) by the MMRR for a 0-month old subscription (1), and
add those three products together.
This could be calculated on the worksheet by entering in D9 the formula =B8*D4+C8*C4+D8*B4. This type of calculation (sum up the pair-wise products of two arrays) is often done with Excel's SUMPRODUCT function. Here we need to take one of the arrays in reverse order, which is not directly supported by Excel. You could enter new subscriptions in reverse order, but that's an ugly kludge. Fortunately, it is do-able with a combination of the OFFSET(), COLUMN() and N() worksheet functions (see here for details). The required formula for B9 is
=SUMPRODUCT($B4:B4,N(OFFSET(B8,0,-(COLUMN($B8:B8)-COLUMN($B8)),1,1)))
This can then be copy/pasted into the rest of row 9.
This model approach is pretty flexible: the churn rates (row 2) and subscription rates (row 8) can both be varied month to month; the total number of retained monthly subscriptions is calculated automatically.

Related

Facing difficulty in Excel when creating a logic for moving average of different variables

So, the point is, in my dataset I have to create a variable "Moving Avg. Amt paid per sq. ft." and the formula or the logic I need is to calculate the last five values as per most recent transactions. i.e. most recent sales by date. but this average should only return value in case it matches the same building and same area variable.
This is what my data looks like
Area ID has three categories. Building number has 5 categories. Date is sorted in ascending order. Now my variable moving average should calculate last 5 averages w.r.t date but for the same building in the same area. e.g. there are buildings 1 and 2 in area 102. I need my Mov Avg. variable to calculate using conditions when it matches criteria of building 1 in 102 for past five sales and when it finds building 2 in the building number variable, it should calculate average of last 5 sales of that building in area 102.
So my approach to this issue was (which is flawed at the moment):
I calculate average of amount paid per sq. foot w.r.t area & building based on dates using the formula
=AVERAGEIFS($N$2:$N$6547,$D$2:$D$6547,D14,$C$2:$C$6547,C14,$B$2:$B$6547,B14)
but I cannot make this formula work, to calculate moving average whenever it meets the criteria. I tried the offset the point as well by 5 but the logic is not right and hence its not working and returning #value in the cells. The formula I used to offset the above condition is
=AVERAGEIFS((OFFSET(N13,5,,5)),$D$2:$D$6547,D13,$C$2:$C$6547,C13,$B$2:$B$6547,B13)
(These formulae are used in column Q of my data)
Need a support from the community as I am badly stuck in making this data useful and I am out of any ideas to make this work.
Edit 1: I am not sure how I can attach my excel file here so you may review the dataset. I have uploaded it on a third party site, for which the link is shared below, so you can view the file in detail.
https://file.io/hlciAHJOHzWA
Expected result is as I have mentioned the instruction said
"Create a variable called "mov. avg amt. paid per sq ft". For each row, this variable should calculate average amt paid per sq ft for the most recent past five sales (by date) for the same building in the same area."
And my approach to build a logic or formula to make this variable calculate moving average w.r.t date for same building in the same area doesn't seem to work because there might be some flaws.
In Office 365 you could use:
=LET(f,FILTER($N$1:N13,($B$1:B13=B14)*($C$1:C13=C14),""),
c,COUNTA(f),
s,SEQUENCE(5,,c-5),
IFERROR(IF(c<5,SUM(f)/c,SUM(INDEX(f,s))/5),""))
If there's less than 5 matches prior to the current sales it'll calculate the average of the count. If 5 or more matches it'll calculate the average of the last 5 prior to the current sale.

Formula to offset a value in excel to a different column?

I am trying to create a formula that offsets an "up-sell" amount 12 periods (columns) in the future.
For background: Each of our customers provides monthly recurring revenue (like a subscription. At the beginning of the model (1/1/18), I have a random number generator from 1-20 that calculates the period in which the customer could be up-sold.
As you can see in the photo and the formula that the IF statement looks at the random upsell period and adds in the additional revenue ($100) into that period and periods after that.
I am trying to create the formula so that once the if statement is satisfied (the random period >= the period that the cell is in) it adds the revenue 12 periods later, not in that period itself.
For example, Customer ABC's random upsell period is 3, instead of adding that revenue in period 3, I want it to add it in period 15 (12 periods later).
The formula that is currently being used is: =IF($B8>E$5,$C8,$C8+$D$3)
Please see attached image for reference, thank you]1
Not sure if that's what you are looking for and only works if your periods increments in 1 even after 12++ (13,14,15...).
Sorry you'll have to redefine the references but that gives you an idea:
In C5 : IF(C$4>12,IF(OFFSET(C4,0,-12)>=$A5,$C$2+$B5,$B5),$B5)

FV and PV formula's in Excel

I'm trying to calculate a lifetime value of a customer. Let's assume a new customer pays $100K per year and stays for 5 years. Let's discount any future years' payments with 10% rate.
This is manual calculation:
Year 1 $100,000.00
Year 2 $90,000.00
Year 3 $81,000.00
Year 4 $72,900.00
Year 5 $65,610.00
---------------------
Total $409,510.00
I can get the same value by using FV with negative rate.
FV(-0.1,5,-100000,0,0) = $409,510.00
What I'm trying to do is to get the same value using PV. And it's not exactly the same:
PV(0.1,5,-100000,0,1) = $416,986.54
I'm not sure what am I missing here. Does MS Office Excel 2010 PV understand discounting differently?
If you calculate out what PV is doing manually, the formula is actually this, for each individual year:
=Base Amount / (1 + Discount Rate) ^ Periods
Vs what FV is doing manually, the formula is this (which you seem to know based on coming to the same answer in your data):
=Base Amount * (1 - Discount Rate) ^ Periods
The reason for the difference in calculation is the mathematical difference between the two items - for background see here: http://www.investopedia.com/walkthrough/corporate-finance/3/time-value-money/future-value.aspx and here: http://www.investopedia.com/walkthrough/corporate-finance/3/time-value-money/present-value-discounting.aspx.
In short, if you have $100k today, and invest it in something which gives you 10% each year, then each year you add 10% of the current balance to get the new balance. ie: in year 1 you add 100k * 10% = 10k, giving a new total of 110k; in year 2 you add 110k * 10% = 11k, giving a new total of 121k, etc. - Mathematically, each year's amount is given by the formula listed above for the FV calculation.
Where this gets tricky is that you are giving yourself a negative interest rate - meaning every year, the value is decreasing each year by 10%. You have attempted to use the FV calculation with a negative interest rate, but that's not quite correct. What you should be using is the PV formula.
For the PV formula, if you know that you will receive 100k each year, you need to determine how much cash you would have needed originally, in order to earn the same amount - that is the present value of the cash flow stream. Now, you need to 'gross-up' the value of each year's income stream. The formula for this gross-up is derived mathematically and results in what I have above there for PV. Think about it like this - if there's a shirt that normally costs $100 and is now 30% off, you can see that you simply multiply it by 30%, to get $70. But if you see of shirt on sale for $70, and it's 30% off, then to determine the original base price you need to take $70 & divide by .3 - which gives us $100.
To prove to yourself that the PV formula is appropriate, take the income stream of, say, year 4 [3 periods of interest later, assuming first payment is received in day 0]: 100k / (1 + 10%)^3 = $75,131. Now, work backwards - if you want to know the future value of a $75k investment held for 3 periods of interest compounded annually with a 10% annual rate, you go: 75,131 * (1 + 10%) ^ 3 = 100k.
This is an important financial distinction, and you should read over the sources I've linked to ensure you understand it.
There is a difference in the calculation. FV takes 100,000 and discounts it by 10% to the number X so that X is 90% of the original value (i.e. X=90,000). PV by contrast discounts it to the number X such that 100,000 is 10% more than X. Quick math says X will be 10/11 of 100,000, i.e. 90909.09.
Indeed, if we apply this calculation 5 times:
Year 1 $100,000.00
Year 2 $90,909.09
Year 3 $82,644.63
Year 4 $75,131.48
Year 5 $68,301.35
---------------------
Total $416,986.5
I don't know if there is a way to make them behave the same way (I don't think there is, as they're calculating different things), but since FV solves your problem why not just use that?

Calculate PMT from multiple principals in Excel

I am preparing a cashflow statement where I take a loan every month - all at the same interest rate and duration. Thus, I need to forecast EMI, interest, and principal for each month from all the loans taken so far.
In reality, I figured out PMT. I calculated PMT for $1 and multiplied that by the sum of all principals that are active (using OFFSET formula to determine whether a period is within loan duration). Something like...
=SUM(OFFSET(AMOUNT_HEADER, MAX(1, Curr_Period-(DURATION*12)+1), 0, MIN(Curr_Period, DURATION*12), 1))*-PMT(Interest/12,DURATION*12,1)
Now, while I was able to crack EMI, mainly because it is "equal" every month, I am unable to figure out how to split the principal and interest.
Can anyone suggest something that is accurate or an approximation of Principal and Interest each month?
Check out the Excel functions PPMT and IPMT which calculate the principle and interest, respectively, for any period over the duration of the loan. To get the sum of interest payments for any period you can use the ARRAY formula (CTRL-ENTER):
=SUM(IPMT(Interest/12,ROW(OFFSET(AMOUNT_HEADER,Curr_Period+1,0,1,1))-ROW(OFFSET(AMOUNT_HEADER,1,0,Curr_Period,1)),DURATION*12,-OFFSET(AMOUNT_HEADER,1,0,Curr_Period,1),0,0))
This formula assumes that their is a column of loan amounts with the column header AMOUNT_HEADER. The first loan is assumed to occur at Period=0. Curr_Period is assumed to be 1, 2, 3, ... The ROW(...)-ROW(...) portion of the formula is used to generate a series of ages for each loan, so if Curr_Period = 5, this part of the formula generates {5;4;3;2;1}. These ages are used as the per argument in IPMT.
Note: This formula doesn't guard against exceeding Curr_Period exceding the duration of any of the loans, but could be modified to do so. It could also be modified to sum up principle payments instead of interest

excel formula for randomizing sales based on percentage

I am creating a cash flow model. I have 28 properties which I want to calculate their monthly costs for.
I would like to sell 10% of the properties in year one (during a random month), 15% in year 2, 25% year 3, 30% year 4, 12% year 5, 8% year 6.
All entries per month have a base cost (maintanance fees), and if the property is sold will generate a profit minus a sales tax.
Is there any formula i can use to automate this? Im doing monthly cashflows for 84 months so it would take a while to input by hand.
Thanks
If always rounding to the nearest whole number one property would remain after six years, so rounding 8.4 up to 9 to avoid that and adding some property values net of sales taxes for an example, a formula such as:
=IFERROR(IF(MATCH(ROW()-1,J$5:J$13,0),J$4*COUNTIF(J$5:J$13,$A2),""),"")
in B2 copied across and down to G13 may save some labour, assuming J5:O5 has been filled with =RANDBETWEEN(1,12) and that formula has been copied down to the number of cells shown in J3:O3:

Resources