Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
rastachick1212
Regular Visitor

Revenue Recognition - Circular Dependencies

Hi,

I need help with a circular dependency issue. I have a Revenue Recognition Table that used a declining balance formula to calculate the current month's Revenue to Recognize. In any given month we Defer Service Revenue and recognize the revenue over the life of the service contract. The Service revenue is non-refundable, meaning that if a contract is canceled for any reason we will recognize the remaining balance of the Deferred Revenue related to that specific contract.  Additionally, there are time when the service contract length is extended or made shorter (at no additional cost). The three main drivers for recognizing revenue are Beginning Def Revenue Balance, Length of contract (Longevity) and Rate of Contract Termination (Attrition). In order to calculate the current month's revenue recognition we have to start with the prior month's, because their is a potential that we could have made changes to the contract so we always start with the ending book value of the prior month i.e. we always calculate prospectively instead of retroactively.

 

Things to know about this table:

Service = Name of the Service

Contract Date = Contract Sign date

Primary Key = Service name & Contract Date

Longevity months = Current Total # of months of a given contract (as I mentioned above the contract length can change)

Beginning Month = 1 month after contract date (we start recognizing revenue one month after the original contract date)

Rev Rec Month = EOMONTH(Contract Date, Longevity Months), this would represent the actual months that we have to recognize revenue based on the Longevity.

Total Longevity = This is the Current total number of months that we need to recognize the revenue over

Attrition = This represents the % of service cancelation that we expect on a monthly basis.

SSP = Cost of the Service

Units = # of service contracts

Original Def. Rev = This is equal to the SSP x Units and will not change throughout the life of the contract.

Remaining mths Amort-Longevity = Based on the current months Longevity I.e. in this specific contract the contract length (Longevity ) changed 4 times and since we calculate prospectively we need to be able to account for each change

Months Amort- Longevity = This represent the  Total Months of Longevity (MAX) for that particular month.

 

Monthly Rev Rec = This is where i need your help!

 

Ideally, the formula should be as follows = 

Month 1 = ((DefRev[Original Def. Rev.]*(1-DefRev[Attrition]))/(DefRev[Months Amort-Longevity]-(DefRev[Longevity Months])+1))+(DefRev[Original Def. Rev.]*DefRev[Attrition])

 

Month 2 and beyond = 

((DefRev[Def. Rev. Beg. Bal.]*(1-DefRev[Attrition]))/(DefRev[Months Amort-Longevity]-(DefRev[Longevity Months])+1))+(DefRev[Def. Rev. Beg. Bal.]*DefRev[Attrition])

 

Ideally, I would need to create a new column that calcualtes the Beginning Def Revenue Balance based on subtracting DefRev[Original Def. Rev.] from DefRev{Monthly Rev Rec] in the 1st month and for subsequent months subtracting  DefRev[Def. Rev. Beg. Bal.] - DefRev{Monthly Rev Rec].

 

I would also like a Cumulative Rev. Rec. Column that shows the total cumulative Revenue Recognized to date.

Def Rev Table.JPG

5 REPLIES 5
rastachick1212
Regular Visitor

Hi Ibendlin,

Basically, what I am trying to build a calculation/measure for in Power Pivot/Powey Query - Columns S, T & U are depndent on each other - See excel formulas below. for each row of caclualtion is dependent on the 

 

Formula for S (Rev. Rec. Straight-Line (Declining Balance)) =-((U2*(1-L2))/(Q2+1-O2)+(U2*L2))

Formula for T (Accum Rec. Rev.)=SUMIFS(S:S,A:A,A2,B:B,B2,E:E,">="&E2,G:G,"<="&G2)

Formula for U (Def. Rev. Balance) =SUMIFS(T:T,B:B,B2,A:A,A2,C:C,C2,G:G,(EOMONTH(B2,D2-1)))+R2

 

Below is a screenshot of the Excel table that has the caclualtion.

I'm not sure if I can send you the file tht I am working with becasue I think it would be easier to see the formulas.

Table.JPG

Please provide sample data (with sensitive information removed) that covers your issue or question completely, in a usable format (not as a screenshot). Leave out anything not related to the issue.
https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-...
Please show the expected outcome based on the sample data you provided.

https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447...

lbendlin
Super User
Super User

Amortization expansions usually need to be done in Power Query.  Keep in mind that Power BI does not have a concept of editable variables, so there is a good chance your requirement cannot be met with Power BI.

 

Please provide sample data (with sensitive information removed) that covers your issue or question completely, in a usable format (not as a screenshot). Leave out anything not related to the issue.
https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-...
Please show the expected outcome based on the sample data you provided.

https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447...

Hi,

 

Hopefully I did it right this time. I only included the columns that are relevant to the calculation. 

The following columns are the ones that have would have calculations and 

Rev. Rec. Declining Balance - This column is calculates the monthly Revenue to be recognized. Formula = -(Def. Rev. Balance x (1-Attrition Rates))/( Months Amort-Longevity2+1-Remaining Mths Amort-Longevity)+( Def. Rev. Balance x Attrition Rates))

Accum Rec. Rev. – This column is the cumulative sum of the Rev. Rec. Declining Balance Column as of the current months date

Def. Rev. Balance – This is the column formula =  Original Def. -  Rev.Accum Rec. Rev. for the current month.

I included what the result should be in the calcualtion columns:

Rev. Rec. Declining Balance

Accum Rec. Rev.

Def. Rev. Balance

 

ServiceContract DatePrimary KeyBeginning DateDef Rec Start DateAttrition RatesRemaining Mths Amort-LongevityMonths Amort-Longevity2 Original Def. Rev.  Rev. Rec. Straight-Line (Declining Balance)  Accum Rec. Rev.  Def. Rev. Balance 
Service110/31/2008Service1-10-31-200811/30/200811/30/20081.00%15         1,044,900.00-217,339.20-217,339.201,044,900.00
Service110/31/2008Service1-10-31-200811/30/200812/31/20081.00%25         1,044,900.00-213,096.91-430,436.11827,560.80
Service110/31/2008Service1-10-31-200811/30/20081/31/20091.00%18         1,044,900.00-82,184.55-512,620.65614,463.89
Service110/31/2008Service1-10-31-200811/30/20082/28/20091.00%28         1,044,900.00-80,602.30-593,222.95532,279.35
Service110/31/2008Service1-10-31-200811/30/20083/31/20091.00%38         1,044,900.00-79,043.48-672,266.44451,677.05
Service110/31/2008Service1-10-31-200811/30/20084/30/20091.00%48         1,044,900.00-77,507.78-749,774.22372,633.56
Service110/31/2008Service1-10-31-200811/30/20085/31/20091.00%58         1,044,900.00-75,994.89-825,769.11295,125.78
Service110/31/2008Service1-10-31-200811/30/20086/30/20090.50%113         1,044,900.00-17,867.60-843,636.70219,130.89
Service110/31/2008Service1-10-31-200811/30/20087/31/20090.50%213         1,044,900.00-17,694.40-861,331.10201,263.30
Service110/31/2008Service1-10-31-200811/30/20088/31/20090.50%313         1,044,900.00-17,522.49-878,853.59183,568.90
Service110/31/2008Service1-10-31-200811/30/20089/30/20090.50%413         1,044,900.00-17,351.85-896,205.44166,046.41
Service110/31/2008Service1-10-31-200811/30/200810/31/20090.50%513         1,044,900.00-17,182.48-913,387.92148,694.56
Service110/31/2008Service1-10-31-200811/30/200811/30/20090.50%613         1,044,900.00-17,014.38-930,402.30131,512.08
Service110/31/2008Service1-10-31-200811/30/200812/31/20090.50%713         1,044,900.00-16,847.52-947,249.81114,497.70
Service110/31/2008Service1-10-31-200811/30/20081/31/20100.50%813         1,044,900.00-16,681.91-963,931.7297,650.19
Service110/31/2008Service1-10-31-200811/30/20082/28/20100.50%913         1,044,900.00-16,517.53-980,449.2580,968.28
Service110/31/2008Service1-10-31-200811/30/20083/31/20100.50%1013         1,044,900.00-16,354.38-996,803.6364,450.75
Service110/31/2008Service1-10-31-200811/30/20084/30/20100.75%1113         1,044,900.00-16,272.61-1,013,076.2348,096.37
Service110/31/2008Service1-10-31-200811/30/20085/31/20100.75%1213         1,044,900.00-16,031.22-1,029,107.4631,823.77
Service110/31/2008Service1-10-31-200811/30/20086/30/20100.75%1313         1,044,900.00-15,792.54-1,044,900.0015,792.54

In preparation for my attempt I slightly refactored your query for Rev. Rec. Declining Balance but can't get to the same result.

 

[#" Def. Rev. Balance "] * ([Attrition Rates] +  ([Attrition Rates] - 1)  / ([#"Months Amort-Longevity2"] + 1 - [#"Remaining Mths Amort-Longevity"]))

 

Can you please validate?

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.