Skip to main content

Power BI Desktop September 2019 Feature Summary

Headshot of article author Amanda Cofsky

You’ll notice one of our exciting updates right away when creating new reports with the September update of Power BI Desktop, a new, modern default theme! Not only do we have a new default theme, but we’ve more than doubled the number of built-in theme options for your report. If you’re a theme author, potentially more exciting are the updates to our theme JSON format which make it much quicker and easier for you to create your own custom themes that significantly change the look and feel of your report. Thanks to an intern project, we’re also releasing a frequently requested modeling feature: custom format strings. And of course, we have plenty of incremental improvements this month, with some performance improvements, more dynamic formatting options, updates to our personalized visualization pane, and more.

Desktop Download button

As a final reminder, starting this month, we are only releasing our new single .exe installer that has all the languages wrapped into it. If you’re automatically downloading it from the Download Center each month, you’ll need to update your scripts. You can learn more about how to do this in our documentation.

Here’s the complete list of September updates:




Data connectivity

Data preparation

Template apps


For a summary of the major updates, you can watch the following video:


Color and text classes in themes

When writing your own custom theme JSON file, we know it can be quite difficult to build a theme that changes the entire look of your report. For example, if you wanted to create a dark theme that set the page to a dark color and use white text on top, you’d have to change a ton of settings through the visual styles section of the JSON, which can be very time consuming and error prone.

To help with this, we’ve expanded the color classes within our theme file to allow you format many of the colors in your theme without needing to touch visual styles. If you’re already writing theme files, you’re likely already using a few existing color classes: foreground, background, and tableAccent, which update various settings within your report with one line. With this update, we’re adding new color classes to that list, which as a result, means you can color all visual elements in a report just by setting 6 colors.

The color classes you now have available and what they format are:

  • foreground
    • Labels background color (when outside data points)
    •  Filter pane and filter cards font & icon colors
    • Trend line color
    • Textbox default color
    • Table and matrix values and totals font colors
    • Data bars axis color
    • Card data labels
    • Gauge callout value color
    • KPI goal color
    • KPI text color
    • Slicer item color (when in Focus mode)
    • Slicer dropdown item font color
    • Slicer numeric input font color
    • Slicer header font color
    • Scatter chart ratio line color
    • Line chart forecast line color
    • Map leader line color
  • foregroundNeutralSecondary
    • Label colors
    • Legend label color
    • Axis label color
    • Table and matrix header font color
    • Gauge target and target leader line color
    • KPI trend axis color
    • Slicer slider color
    • Slicer item font color
    • Slicer outline color
    • Line chart hover color
    • Multi-row card title color
    • Ribbon chart stroke color
    • Shape map border color
    • Button text font color
    • Button icon line color
    • Button outline color
  • foregroundNeutralTertiary
    • Legend dimmed color
    • Card category label color
    • Multi-row card category labels color
    • Mulit-row card bar color
    • Funnel chart conversion rate stroke color
  • backgroundLight
    •  Filter card background color for applied filters
    • Axis gridline color
    • Table and matrix grid color
    • Slicer header background color (when in Focus mode)
    • Multi-row card outline color
    • Shape fill color
    • Gauge arc background color
  • backgroundNeutral
    • Table and matrix grid outline color
    • Shape map default color
    • Ribbon chart ribbon fill color (when match series option is turned off)
  • background
    • Labels background color (when inside data points)
    •  Filter pane and available filter card background color
    • Slicer dropdown items background color
    • Donut chart stroke color
    • Treemap stroke color
    • Combo chart background color
    • Button fill color
  • TableAccent
    • Overrides table and matrix grid outline color when present

In addition to color classes, we’ve added text classes to make it easier and quicker to set text styles. There are 4 primary text classes that adjust a total of 14 total text classes. You can set the font family, font size, and font color for each text classes. The four main text classes are: “Title”, “Label”, “Callout”, and “Header”.

The Title and Label classes have several secondary classes that are automatically derived from the primary class settings but can be formatted individually. For example, if you set the label class, which for example is used for the values in a table to 10pt, a “Small Label,” which is for example used the search box text in slicers, would be automatically set to 9pt. The goal of the primary/secondary text classes is to make it quick and easy for you to set the text classes, which still maintaining a visual hierarchy to the text.

The below table shows the primary classes with example settings and the secondary classes with the settings that make them unique compared to their associated primary class.

Primary class Secondary classes Class name in JSON Settings Associated visual objects
Callout N/A callout DIN



Card data labels

KPI indicators

Header N/A header Segoe UI Semibold



Key influencers headers
Title title DIN



Category axis title
Value axis title
Multi-row card title *
Slicer header
Large title largeTitle 14pt Visual title
Label label Segoe UI



Table and matrix column headers
Matrix row headers
Table and matrix grid
Table and matrix values
Semibold semiboldLabel Segoe UI Semibold Key influencers profile text
Large largeLabel 12pt Multi-row card data labels
Small smallLabel 9pt Reference line labels *
Slicer date range labels
Slicer numeric input text style
Slicer search box
Key influencers influencer text
Light lightLabel #605E5C Legend text
Button text
Category Axis labels
Funnel chart data labels
Funnel chart conversion rate labels
Gauge target
Scatter chart category label
Slicer items
Bold boldLabel Segoe UI Bold Matrix subtotals
Matrix grand totals
Table totals
Large and Light largeLightLabel #605E5C


Card category labels
Gauge labels
Multi-row card category labels
Small and Light smallLightLabel #605E5C


Data labels
Value axis labels

* The font color for these settings is based on the data colors, not the text class settings.

For example, here’s a small theme that sets some of these properties:

 "name": "NewThemeOptions",
 "foreground": "#252423",
 "foregroundNeutralSecondary": "#605E5C",
 "foregroundNeutralTertiary": "#B3B0AD",
 "background": "#FFFFFF",
 "backgroundLight": "#F3F2F1",
 "backgroundNeutral": "#C8C6C4",
 "tableAccent": "#118DFF",
 "textClasses": {
      "callout": {
           "fontSize": 45,
           "fontFace": "DIN",
           "color": "#252423"
      "title": {
           "fontSize": 12,
           "fontFace": "DIN",
           "color": "#252423"
      "header": {
           "fontSize": 12,
           "fontFace": "Segoe UI Semibold",
           "color": "#252423"
      "label": {
           "fontSize": 10,
           "fontFace": "Segoe UI",
           "color": "#252423"

You can still use visual styles to set any specific formatting you want, and that will override any color or text classes that have been set. We expect with these new changes for most users to stick to the color and text classes the majority of the time, and only use the visual styles for non-color/text options (such as turning titles on/off by default).

Watch the following video to learn more about color and text classes:

New default themes

To go along with the new theme JSON options, we are also updating the themes available for reports and changing the default theme for new reports.

Our design and research team spent quite a bit of time developing a new set of themes that have more variety (such as Innovate, a dark theme) and show off more theme-able feature (such as Bloom, with it’s background image).

The new default theme is meant to both align better with Microsoft’s design language and follow best design practices for visuals. We also tested it thoroughly to ensure it’s design is an improvement over other themes, with the goal that the new default makes it easier to create beautiful reports out of the box.

Some visual updates with the new default theme are:

  • Larger, darker, more readable text
  • Smaller bubble sizes for scatter and map visuals
  • Wider line strokes for line and combo charts
  • Updated layout for pie and donut charts to improve readability
  • Expand/collapse on by default for matrices
  • Backgrounds on for visuals by default

You can still find the previous themes under the “More themes” submenu any time you want to reach them. One thing to remember around custom themes is that they always build on top of the default theme. So for example, if you created your own custom theme that just set the data colors and nothing else, if you imported that theme into a report with the new default applied, it would still have expand/collapse on by default, backgrounds on for visuals, etc., so it may look different compared to when you imported it to a report with the old default theme. If you want your theme to look exactly the same way it did previously, you can first set the theme to “Classic” in the theme dropdown, so the default theme has the old settings and then import your custom theme.

Watch the following video to learn more about our new themes:

Personalized visualization pane improvements (preview)

Unpin default visuals

The first update to the personalized visualization pane this month is the ability to unpin any of the default visuals.

Once you unpin a built-in visual, it moves under the dotted line within the pane, and next time you open a report, it won’t show unless you have that visual type used already within the report, in which case, it will show below the dotted line. This means that the only difference in experience between built-in and custom visuals is that the built-in ones show by default initially.

Some reasons you might want to do this include:

  • You never use specific visuals and want to declutter the pane
  • You have strong feelings against specific visual types and don’t want to see it as an option
  • You’re using a custom visual version of a visual type and don’t want to be mistakenly click on the built-in version you never use.

If you later want the default visuals back, you can use an option to restore the original visuals to the pane.

About info for visuals

Another update is that you can now right click on any visual in the visualization pane to see an About dialog with more information on the visual.

You’ll be able to see things such as the visual’s id, version number, where you got the visual from, and the support information.

Watch the following video to learn more about the personalized visualization pane improvements:


Custom format strings

While in the modeling view, you can now enter in a custom format string to customize how the field will show in visuals.

To do this, first select the field in the fields list and select the custom format option in the formatting card of the properties pane.

From there, you’ll be able to select from a list of commonly used format strings.

Or you can use the given an input box to enter in your own format string. Power BI will support most of the VBA style syntax, with a few exceptions. Refer to the full documentation for details.

Once you enter in your custom format string, it will immediately be reflected in the data view and report view.

One of our returning interns, Chelsie Eiden, worked on this feature over the summer. You might remember her from the theme picker that she worked on last year! It’s great to have interns come back to the Power BI team – hopefully you’ll see more of Chelsie again in the future.

Watch the following video to learn more about custom format strings:

Conditional formatting for more visual formatting options

We’re excited to announce more formatting features this month that can be conditionally formatted, moving us ever closer to our goal of everything within the formatting pane being conditionally formattable.

Alt text (General)

Alt text is the first feature that now has conditional formatting. This is really a huge step forward in terms of accessibility. Alt text, which is read off by screen readers whenever the visuals are in focus, can now be dynamically changed based on the current filter state of the visual. You can for example call out in the alt text both the highest and the lowest categories and have confidence it will always reflect the current data in the visual.

Border color (Border)

Border color is the next feature that has this added capability. Just as you can with backgrounds, you can dynamically adjust the border color based on current filter state. This could be a good option to use if you want to color a visual based on a specific KPI but you felt like the background color was too intense of an option.

Gauge colors

Back in June, we added conditional formatting to fill color for gauge, and this month we are expanding that to four other gauge properties as well:

  • Target text color

  • Target fill color
  • Data label color
  • Callout value color

Watch the following video to learn more about the conditional formatting updates:

Drill through discoverability improvement

We’ve heard feedback that end users don’t always know when they can drill through on a visual to another report page. To help with this, we’ve added text to the visual’s tooltip to let them know it’s enabled.

Watch the following video to learn more about the drill through discoverability improvement:


We have two new DAX expressions this month! REMOVEFILTERS is the same as ALL when used inside CALCULATE to remove filters. CONVERT changes the expression to another data type.


PowerApps visual now generally available and certified

The PowerApps marketplace visual allows you to add the power of apps to reports and dashboards. The PowerApps visual brings forms and data editing directly to Power BI by allowing you to embed your own PowerApps right in your report or dashboard. And as of this month, the visual is now generally available and certified, allowing you to use the visual in even more places.

Try out the visual now.

Data connectivity

PostgreSQL connector enhancements

Support for folding over Native Database queries

The PostgreSQL connector has been enhanced with query folding over a native query. You can now paste in a native query when connecting to a PostgreSQL database, with folding capable operations applied on top according to normal Import or Direct Query logic. 

DirectQuery support generally available

We’re happy to announce that the DirectQuery support within the PostgreSQL connect that we announced last month is now generally available.

Data preparation

Copy to clipboard from data profiling

With this month’s release we’re making it possible to export data profiling information by copying it to the clipboard from the Power Query Editor. 

The new Copy option is available from all Data Profiling surfaces as described below.

Data Profiling Surface


Data exported to clipboard

Column Quality Summary

Column Distribution charts

Column Profile Details Pane – Column statistics

Column Profile Details Pane – Column distribution

Watch the following video to learn more about copy to clipboard from data profiling:

Template apps

Template apps are a great way to provide Power BI users with installable, ready to use, actionable – quality applications. These templates contain reports, dashboards, and data models that can connect to the user’s data, creating immediate value and action. Each month, we’re highlighting a recent template app that’s released to the marketplace.

Google Analytics report

This month’s featured template app is one of the more popular template apps  in the AppSource store, which is the Google Analytics report by Havens consulting. The report model was built using the Google Analytics data connector. It can be connected to your own Google Analytics data using your own credentials.

The report itself enables users to do a deep-dive analysis on daily page views with: forecasting and adjustable rolling average, month-over-month traffic gain or loss, top pages visited, traffic source trends over time, and more. Plus, the report contains many great examples of Power BI features and functionality including bookmarks, what-if parameters, advanced conditional formatting, and custom visuals. Overall this report provides a fantastic out-of-the-box Power BI experience and is a great way to supercharge your Google Analytics data.

You can install the app right in the Power BI service and set its parameters to your google analytics view ID. Once you install it, the report is now yours, so you can customize and share as much as you want.

Microsoft partners can create their own template apps to publish in the marketplace. If you’re interested in this, be sure to check out our documentation to get started.

Download this app from AppSource.


Performance improvements for multi-dimensional models

This month we’ve done work that gives users of Analysis Services 2019 multi-dimensional users general performance improvements. When using the new Release Candidate of SQL Analysis Services 2019 (see for details), you’ll see more performant queries and optimization of measure execution. This improvement, which some may know as “Super DAX”, helps reduce the chattiness between Power BI and Analysis Services. Some other features that come with this is multi-dimensional support for expand/collapse on row headers, cross-highlighting support across different tables, and high density sampling for visuals that support it. You will need to enable this setting in Analysis Services to take advantage of it in Power BI.

Query performance improvements for DirectQuery models

This month, we’ve also introduced runtime constant folding to improve query performance for some DirectQuery models. The amount of performance improvements you’ll see will vary depending on the DAX expressions you’re using, the model structure, speed of the DirectQuery source, etc. However, with some early users, we’ve seen some quite significant performance gains.


That’s all for this month! We hope that you enjoy these updates for the month. Please continue sending us your feedback and don’t forget to vote for other features that you’d like to see in the Power BI Desktop. For any preview features, you can always give us your feedback in our active community. You can also download the .pbix file I used, and if you’re looking for a similar design for your reports, I was using the Microsoft layout from PowerBI.Tips.

Desktop Download button