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.
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.
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
#252423
45pt
Card data labels
KPI indicators
Header
N/A
header
Segoe UI Semibold
#252423
12pt
Key influencers headers
Title
title
DIN
#252423
12pt
Category axis title Value axis title Multi-row card title * Slicer header
Large title
largeTitle
14pt
Visual title
Label
label
Segoe UI
#252423
10pt
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
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:
The first update to the personalized visualization pane this month is the ability to unpin any of the default visuals.
Power_BI_Desktop_September_2019_Feature_Summary
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.
Power_BI_Desktop_September_2019_Feature_Summary
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.
Power_BI_Desktop_September_2019_Feature_Summary
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.
Power_BI_Desktop_September_2019_Feature_Summary
Watch the following video to learn more about the personalized visualization pane improvements:
Analytics
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.
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 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.
Target fill color Power_BI_Report_Server_September_2019_Feature_Summary
Data label color Power_BI_Report_Server_September_2019_Feature_Summary
Callout value color Power_BI_Report_Server_September_2019_Feature_Summary
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:
New DAX expressions: REMOVEFILTERS and CONVERT
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.
Visualizations
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.
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.
Power_BI_Desktop_September_2019_Feature_Summary
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.
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.
Power_BI_Desktop_September_2019_Feature_Summary
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.
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 https://powerbi.microsoft.com/en-us/blog/whats-new-for-sql-server-2019-analysis-services-rc1/ 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.