KPI Indicator custom visual for Power BI explained

Since the creation of the KPI Indicator custom visual (originally submitted to the Power BI Custom Visual Contest) I have been getting a lot of feedback and support from users all around. Therefore, I thought it would be appropriate to give a more extensive description of the different properties that can be customized in this visual.

What you first need to consider is the type of banding you want for your KPI. The banding type describes the way the KPI’s actual value is compared to its target value. Take a look at the following illustration of the three different banding types available:


Banding type “Increasing is better” is used when the KPI is considered better the higher the value is (e.g. Gross Profit). Banding type “Decreasing is better” is used when the KPI is considered better the lower the value is (e.g. Costs). Banding type “Closer is better” is used when the KPI should be close to a target and its equally bad to be far from it, no matter if it’s on the positive or the negative side (e.g. Number of employees).

When customizing the properties for the KPI Indicator the formatting panel looks like this:


Here comes a description of the different properties:

KPI name
This is the name of the KPI Indicator. It is displayed at the top of the visualization. By default (or if left blank), it uses the name of the measure that is used as actual value.

Banding percentage
If the Banding comparison property is set to “Relative” this value should be entered as a percentage number (of the target). If the Banding comparison property is set to “Absolute” this value should be entered as a non-percentage number (that will be added/subtracted from the target instead).

Banding type
The banding types are one of the three banding types described in the illustration above.

Banding comparison
The Banding comparison can either be “Relative” or “Absolute”. If this property is set to “Relative” the banding percentage is calculated as a percentage of the target. If this property is set to “Absolute” the banding percentage is calculated as a subtraction to/from the target.

Chart type
This property decides whether the trend indication should be a line chart or a bar chart.

Deviation as %
The Deviation as % is On by default. This means that the Actual value compared to the Target value will be presented as a percentage deviation. The deviation is presented to the right of the actual value. If this property is switched off the deviation will not be treated as percentage. It is typically useful when Banding comparison is set to “Absolute” and the actual value is not measured in %.

Thousands separator
This property can be used to force the formatting of the actual value to be formatted with thousands separators. This is typically useful when working with larger non-percentage measures.

Basically, that’s the stuff you need to know to fully utilize the KPI Indicator custom visual for Power BI.


  1. Janine Hummel says:

    Hey Fredrik,

    needless to say: our team here in Germany is totally psyched about your KPI Indicator Visual for Power BI. There’s no report or dashboard without including your visual and so far, our clients love to see their data presented like that. Great job!

    I was wondering If you’re open for some suggestions to add to the visual? We where thinking that it would be nice to have

    a date on the achse to make the time range clearer

    maybe include an option to change the font size and character spacing

    We believe these would be great additions to make the visual even more perfect.

    Let me know what you think!

  2. ed says:

    the display value always shows the last month data when displaying the trend over time. i would like the total to display so i can show the performance over the entire data range, and have the trend display the monthly detail. am i doing something wrong?

    • Fredrik says:

      In the latest version you can utilize the “Trend actual value” and “Trend target value” to use separate measures for the trend line and the displayed text value. Put measures that accumulates the values on the “Actual value” and “Target value” properties and use the “Trend actual value” and “Trend target value” properties for monthly values.

      • Henrik says:

        It could be nice if the trend got colored, if it was over or below target, or maybe just a indication of target in the trend line.

  3. Iulia says:

    Hi Fredrik,

    Would it not be possible to have the drill down option with a logical path as for instance with the bar charts?
    We love this visual because it can be reduced to a small size and still be bale to read it but without the drill down it’s unfortunately not that complete as the others however those cannot be reduce in size without loosing the ability to read it. So a bit in a pickle here.


  4. Andrew Brick says:

    Could use an option to display no title whatsoever. Plan is to use a bunch of these on a dashboard, and Power BI already requires dashboard tiles to have a title. Don’t need two titles for each of these tiles.

  5. Anand says:

    We use this visual to show quickly what KPIs need immediate attention and have large dashboards using this visual across multiple programs and timelines. Thank you.

    Taking this further, are there any plans to implement alerting in this visual?

  6. Adam says:

    Hi Fredrick – great visual applying it in the Health Sector – we work in a capped activity environment, would be great if we could have 2-3 more bands i.e. 0% to +/- 2% = on target “Green”, +/- > +-2% to +\- 5% = above below target ” amber” , and great than or leass then 5% = “red” not performing

    • Sandhya Subramanyam says:

      yes KPI indcator visual should have option of setting target ranges for Reb , Amber, Green status. Please let me know if already such option available in KPI indicator visual.

      • Sandhya Subramanyam says:

        Hi Fredrick,

        As said KPI indicator is great visual. It would really great if either of proposed option can be included

        Currently the RAG status is auto decided depending on Target value and Branding type selection.
        Option 1: To provide option to accept the Target ranges for each RAG status that is RED,Amber & Green,
        Option 2: To decide RAG status depending in KPI indicator value. KPI indicator value would be the the value received from input file against each KPI, like 1-Green ; 2-Amber; 3- RED

  7. Dawnya says:

    Hi Fredrick!

    I love this visual, but am struggling with the fact that I can not format the display values! For example, I have able 16 small tiles of this on my dashboard, displaying numbers in the millions, however the size goes so small, and the kpi indicator starts to over lap. I would love to be able to truncate the number format to display as #,##0,,M but I do not see that as an option..

    • Vanessa Shirley says:

      @Dawnya – not sure if you figured it out in the meantime, but I think the correct formatting for million & 1 decimal in the custom format is $,##,,.#M (at least that’s the one I needed).

  8. Charles says:

    Hi Fredrick,

    Enjoying the KPI Visual. Thank you! In our dashboards we always show bad as a negative variance. When you select “Decreasing is better” and you are above that target, the color goes to yellow or red, but the variance stays a positive %. Can that be changed or have you considered flipping the sign as an option?

    Thanks again!

  9. Tony Oerlemans says:

    Hi Fredrick,

    Really nice visual! However I can’t seem to ‘pin’ it to a dashboard, the pin icon just doen not appear when hovering over the visual. I have not experienced this with other visuals. Feedback form other users in earlier comments on this post seems to indicate that they succeeded in getting the tile onto a dashboard.

    Any tips or known issues?

    Thanks, keep up the good work!


  10. Chris says:


    has anybody an idea, how to format values?
    I Need “.” as athousand Seperator and “,” for decimal values …

    What shoud I do?

    Thanks for a Hint

Leave a Reply

Your email address will not be published. Required fields are marked *