12-07-2022 12:33 PM
"How is my company doing?"
It's a question we hear often. It seems simple enough, but answering it is a complex process. This report is designed to answer the question in a clear and straightforward manner, while providing enough detail to take some action.
If we wanted to further develop this story, we would build on the outcomes of our Sales Scorecard by adding additional reports with more granular data. Each of these report tabs would answer one specific question that arises from use of our Sales Scorecard.
A report is most valuable when it's actionable. We started by identifying which components of the process we can influence:
We then determined the report's focus: areas that are not performing well. We used color to highlight these problem areas, and leveraged a matrix with conditional formatting to give us granular insights that could prompt strategy changes. Finally, we included comparisons of profit and sales against prior years to put the performance into perspective. We leveraged basic Power BI elements (cards, shapes, tree maps, and DAX) to develop a KPI section in the top right of these charts to provide additional context.
From this report it's clear that we should evaluate our training programs. We may want to pick up the phone and follow up with William, who seems to be struggling in several areas, most notably in OSHA supplies which is a profitable area for all other sales staff.
We might also want to look further into the strange profit behavior in Mar 2013, where we saw a large dip compared to the prior year.
A report like this is the first step into answering the question "How is my company doing?"
Pushing the Boundaries
Every so often you have a clear vision of how to communicate something, but you aren't quite able to realize that vision with the default tools or options. Custom visuals is one method to help realize your vision, but I'm not a D3 expert and I like a challenge, so sometimes I'll attempt to repurpose default tools in non-standard ways to achieve the same effect.
I had a vision for what I wanted my KPI visualization to look like:
The main elements are:
I started with a card for my main value, the % Growth Year over Year. I then created 2 dax measures to format my Current Year and Prior Year values nicely for display (using FORMAT to add "CY: " or "PY: " in front of the value for context). I put each of those into separate cards and arranged them next to my % Growth card.
Finally, I created the indicators. I made a triangle shape, colored it grey, and oriented it upwards. I made a second triangle shape, colored it red, and oriented it downwards, and aligned it directly under the upward triangle. I then created 2 dax measures called KPI Red and KPI Grey.
KPI Red = 1 when % Growth is Positive and 0 when % Growth is Negative.
KPI Grey = 0 when % Growth is Positive and 1 when % Growth is Negative.
I then put each of those into individual tree maps, changed the data colors to match the background, and arranged the tree maps over the tops of the triangles. Now when % Growth is negative, KPI Red is 0 and the tree map disappears and shows the red triangle underneath, while KPI Greyis 1 and the tree map covers the grey arrow.
Wrapping it up
The method above worked pretty well and got me what I wanted. However there are a few oddities - light white lines that outline the tree maps, the arrows are in different locations if they are up or down (because they're 2 different triangles), and the CY and PY are centered rather than left aligned since they're in cards.
Ultimately, this got us where we needed to go for now. However, as a next step I would begin investigating how to turn this into a custom visual to make future use much simpler. For now, it's great to know that we can leverage basic Power BI elements like triangles to create custom KPIs. It just takes a bit of thinking outside the box, plus some creative use of DAX and willingness to use standard visuals (tree maps) in non-standard ways (covers to hide something).
4/12 Update: Simplify using UNICHAR
I just discovered the UNICHAR function in DAX, and used this to simplify my process! Currently we have 2 elements for each indicator, for a total of 8 elements. This method cuts the elements in half!
With this method, we are using the UNICHAR to display UNICODE arrow characters. Since we're doing this in DAX, we can us IF statements to hide/show the arrows based on our measures, which means we no longer need to use the tree maps as covers, cutting our number of elements in half! Less elements = easier to maintain.
Jared Knutzen | Visualization Consultant
Decisive Data | www.decisivedata.net
This is exactly what I was looking for! Amazing work. It would very helpful if you could share .pbix at email@example.com
Thank you in advance
Amazing work! Could you please send the pbix file to firstname.lastname@example.org
Very nice Work
Can you please send it to me on email@example.com
Great dashboard! Please could you also share the .pbix file to firstname.lastname@example.org
it is really a great report. I am in a learing fase, starting my journey with Power BI.
It will be very helpful for me if you send me email@example.com this pbix file.
Thank you a lot in advance!
Great dashboard. Can you share your pbix file. email - firstname.lastname@example.org
Great dashboard. Can you share your pbix file. email - email@example.com..
Please Share PBIX file of this report on email - firstname.lastname@example.org
thanks in advance
Great dashboard and DAX formula. Can you forward me the .pbix please to email@example.com?
I like your dashboard, its really amazing...!!
Can you please share the .pbix file with me? *firstname.lastname@example.org*
Hi ! Greast Dashboard!
Highly appreciate if you can share to email@example.com
Hi ! Greast Dashboard!
Highly appreciate if you can share to firstname.lastname@example.org
Thanks for kind sharing, and may you forward me with a copy of pbix. to further study this topic.
can you share with me the pblix file, my email is: email@example.com
Hi, great dashboard. Could you please share your pbix file? My email address is firstname.lastname@example.org