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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
PaulCo
Helper II
Helper II

Weighted NPS Score

I am trying to create a measure that will calculate the weighted NPS score based on contract value (ACV).

 

I have a list of customers with their survey scores, null survey scores means there has not yet been a response. 

 

I have added a column to find out each customers average score. I want to use this average score to work out the number of detractors and promoters and then factor in the ACV as part of the measure. 

 

Promoters: 9-10

Detractors: 0-6

 

CustomerScoreAverage ScoreACV
A1010           90,720
B 10           69,738
B1010           69,738
C 6.7         122,580
C 6.7         122,580
C56.7         122,580
C76.7         122,580
C86.7         122,580
D88           16,800
E 10           39,120
E1010           39,120

 

In the above data table, the promoters are Customers A,B and E based off their average score.

The Detrator is Customer C.

 

The measure I want to show is:

 

(Promoter ACV - Detractor ACV) / Total ACV

 

((90,720 + 69,738 + 39,120 - 122,580) / 338,958)*100

 

22.7

 

Note that each customer ACV should be counted only once.

 

Thanks

1 ACCEPTED SOLUTION
Ashish_Mathur
Super User
Super User

Hi @PaulCo,

 

I believe the detractor average scroe should be 0-7 (not 0-6).  You may refer to my solution in this file.

 

Hope this helps.

 

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

View solution in original post

10 REPLIES 10
Ashish_Mathur
Super User
Super User

Hi @PaulCo,

 

I believe the detractor average scroe should be 0-7 (not 0-6).  You may refer to my solution in this file.

 

Hope this helps.

 

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

Thanks, this got me there in the end.

 

Much appreciated.

You are welcome.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

Thanks Ashish but the link to your file seems to be broken. Are you able to repost?

Hi @PaulCo,

 

The link works just fine.  Here it is again - https://1drv.ms/u/s!AnsG4LrWCkhUn75DCxXQX3mBOvLliA.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
parry2k
Super User
Super User

Are you calculating average score in PowerBI or it is coming from your data source. Reason I asked, it will be easier if we remove un-wanted rows from table using query editor:

 

- filter rows where score is blank

- remove score column

- get distinct rows customer|avg score|acv

 

once above is done, you will have only rows which we are interested to work on, add following measures:

 

promoter acv =
Calculate(Sum(Table[ACV]), Filter(Table, Table[AvgScore]>=9))

detractor acv =
Calculate(Sum(Table[ACV]), Filter(Table, Table[AvgScore]<=6))

total acv =
Calculate(Sum(Table[ACV]), AllSelected(Table))

NPS = DIVIDE( promoted acv - detractor acv, total acv, 0) * 100


Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

I thought about doing it this way but there are also comments in the surveys that we want to display in a table and if we only keep one record for each customer then we would lose the comments.

Gotcha,

 

- add new index column in your original table

- you can create another table as suggested in data model, reference original table and keep the original table as it is. set relationship on both tables on this index column

 

It will get you comments from original table. 



Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

I think that should work.

 

However, I calculated the average score using the following expression under the New Column feature on Power BI Desktop.

 

Average Customer Score = 
	CALCULATE(
		AVERAGE('Table'[Survey Score]),
		ALLEXCEPT('Table','Table'[Customer])
		)

 

How do I recreate this in the query editor so that I can use the field when once I have removed the duplicates? 

This is a DAX expression and not to use in Query Editor. Once you are done in query editor, add new MEASURE.

 



Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.