Data Visualization, Microsoft Technologies, Power BI

Design Concepts For Better Power BI Reports – Part 2: Preattentive Attributes

Preattentive attributes are visual properties that we notice without using conscious effort to do so. Preattentive processes take place within 200ms after exposure to a visual stimulus, and do not require sequential search. They are a very powerful tool in your data visualization tool box – they determine what your audience notices first when they look at your Power BI report.

Four preattentive visual properties have been defined:

  • Color (intensity, hue)
  • Form (orientation, line length, line width, size, shape, curvature, enclosure, added marks)
  • Spatial Positioning (2-D position)
  • Movement

Below is a short video I found that demonstrates preattentive attributes.



Preattentive Attributes in Power BI

Every chart you build in Power BI uses preattentive attributes, but you must make design choices to use them purposefully. Here are some quick examples.

Preattentive Color Length 1
Preattentive Attributes: Color and Length
Preattentive Color Length 2
Preattentive Attributes: Color and Length

The chart on the top uses a different color for each bar and orders the bars alphabetically by product. The chart on the bottom uses a single color across all bars and orders the bars descending by sales amount. Notice how your eyes jump back and forth between the colors in the chart on the top. When you look at the bottom chart, your eyes more easily follow the length of the bars down and across the categories from largest to smallest.

Here’s another example.

Preattentive Orientation Enclosure 1
Preattentive Attributes: Enclosure and Orientation
Preattentive Orientation Enclosure 2
Preattentive Attributes: Enclosure and Orientation
Preattentive Orientation Enclosure 3
Preattentive Attributes: Enclosure and Orientation

The vertical bar chart on the top has a dark black border. It’s probably the first thing you notice about the chart.

Once we remove the border, as shown in the chart in the middle, we notice that the chart category labels have a diagonal orientation. They stand out because nothing else in the chart is diagonal. It’s a bit distracting and difficult to read.

The horizontal bar chart shows the same information in the same order, but allows the category labels to remain horizontal. Now our eyes focus on the information encoded by the bars.

Click here to see these examples in Power BI.

What Does This Mean For Report Design?

We need to take advantage of the way we process information to create a faster and more natural way of acquiring information through our Power BI reports. Specifically, we can use preattentive attributes to highlight the most important parts of a visual and to create a visual hierarchy of information. Color is probably the most powerful preattentive attribute we have at our disposal, so we should use it strategically.

Here are some things you can do to take advantage of preattentive attributes in your Power BI reports:

  1. Reserve the use of bright colors for items that need attention from your users or those that should be examined first, and use less intense colors for other items on the page.
  2. Don’t use multiple colors for the sake of having several colors. For instance, a bar chart with only one field on the categorical axis generally doesn’t need to have separate colors for each bar.
  3. Don’t settle for rotated axis labels when they won’t fit horizontally. Abbreviate categories and numbers, or switch to a different chart type that supports longer labels if you need to do so.
  4. Start bar charts at 0 to allow your users to accurately evaluate length and differences between bars.
  5. Make sure visuals in a row are exactly aligned. If charts in a row are slightly misaligned by a few pixels, it can be distracting.
  6. Don’t let chart title be the brightest/boldest thing on your page. Let your data in your charts, KPIs, and cards draw the most attention. In many cases, you don’t need a background color on your chart titles.
  7. Avoid adding dark, intense chart borders. Try using whitespace to separate charts rather than adding borders.

There are times when chart borders and background colors on chart titles are appropriate. (I’m currently working on a report where I have a border around a group of charts to indicate that they are all related, but it is light gray rather than black.) But they definitely aren’t appropriate all the time, so I suggest your default be to avoid them and add them when necessary.

Sometimes it’s difficult in Power BI to find a chart that will accommodate even slightly long category labels, since the built-in visuals truncate the values on the axis with no setting to change that behavior. I ask that you lend your votes and comments to User Voice to help change that. You can vote here or here. Until that issue is resolved, you might try the Attribute Slicer custom visual. Although it has some formatting quirks of its own, it has a setting to define the portion of the chart that should be taken up by the bars versus the labels.

I have provided several guidelines that are not hard and fast rules. The goal of these guidelines is to help you use color, form, and position to guide your users through your report in an efficient manner, to help them process the information your report provides.

Data Visualization, Microsoft Technologies, Power BI, Uncategorized

Design Concepts To Help You Create Better Power BI Reports

I have decided to write a series of blog posts about visual design concepts that can have a big impact on your Power BI Reports. These concepts are applicable to other reporting technologies, but I’ll use examples and applications in Power BI.

Our first design concept is cognitive load, which comes from cognitive psychology and instructional design. Cognitive Load Theory says that when we present our audience with information, we are asking them to use brain power to process it. That brain power (aka working memory) is limited, so we need to be intentional about the information we present to them.

In order to commit information to memory and be able to recall it later, that information must go through sensory memory and working memory and then be encoded into long-term memory.

Image from MindTools Cognitive Load Theory: Helping People Learn Effectively (

This process is not automatic nor guaranteed. There is a major constraint imposed upon us in that our working memory can only hold about 4 things at once.

Cognitive load theory identifies schemas, or combinations of elements, as the cognitive structures that make up an individual’s knowledge base. Schemas allow us to treat multiple elements as a single element in order for us to think and solve problems. For schema acquisition to occur, information delivery should be designed to reduce working memory load. Cognitive load theory is concerned with techniques for reducing working memory load in order to for our minds to build new schemas.

Cognitive load can be categorized into three types:

  • Intrinsic cognitive load refers to the complexity of the information itself.
  • Extraneous cognitive load refers to the way the material is presented.
  • Germane cognitive load is the effort a person must expend to learn and build new schemas.

Here’s a short video I found that does a nice job of explaining cognitive load:

What Does This Mean For Report Design?

We need to design such that our audience can efficiently take in the information we are visualizing, commit that information to memory, and use that information to make decisions. This means we should be aware of our audience and their existing knowledge of the information we are presenting. It also means reducing extraneous cognitive load by keeping our design simple and clutter free.

Here are some things you can do to minimize cognitive load in your Power BI report:

  1. Choose a message/purpose for your report and don’t allow anything on the canvas that can’t be tied back to that message. We can’t just say we are building a financial dashboard for our company and put all of our financial metrics on the page. We need to choose which metrics are important and which ones go together in meaningful chunks.
  2. Create charts that take into account your audience and how they think about the subject of your report. If your audience might not know how to approach the subject matter of your visualization, you may need to add supplemental information (either in the report or as links) so they can begin to build schemas to help them think about the subject. If your audience has existing knowledge, use their terminology and approach to thinking about the subject as much as possible so they are building upon what they know.
  3. Remove clutter. Eliminate things from your report that do not make the information memorable. This could include removing decorative elements that do not support information intake (this doesn’t mean remove all color and images, just extraneous ones that distract more than help). Make sure you aren’t using super intense colors everywhere, which makes your report feel busy and makes it difficult to know where to look first. Also, remove redundant information. If you are direct labeling your charts, you probably don’t need gridlines and axis labels. Descriptive chart titles often eliminate the need for axis titles.
  4. Use consistent designs as much as possible, so users don’t have to refer to a guide for each new report you build. This can be applied by putting slicers in a similar location across reports, or using the same color for revenue in reports that show multiple metrics. This removes the cognitive burden of learning how the report works so users can focus on the information in the report.

In addition to paying attention to actual cognitive load, we should also think about perceived cognitive load – how much effort our users think it will take to consume our report. Our users are constantly being distracted by coworkers and children and cell phones, and Dog Rates. They have limited time and energy to consume our reports. If the report looks busy and complicated, or extremely aesthetically unpleasing, they may perceive that the task is not worth the effort and move on without looking at the report we spent hours building. Remember that we are designing for a specific audience, and it is their information needs and their perception of our report that matters more than our own design preferences.

Conferences, Data Visualization, Microsoft Technologies, Power BI

Data Visualization Panel at PASS Summit

Next week is PASS Summit 2017, and I’m excited to be a part of it. One of the sessions in which I’m participating is a panel discussion on data visualizationMico Yuk will be our facilitator. I’m in great company as the other panelists are Ginger Grant, Paul Turley, and Chris Webb. This session will be on Wednesday (November 1) from 4:45pm – 6:00pm.

We’ll be taking questions on Slack in the #visualization of So if you need advice or have been curious about some aspect of data viz, join us in room 2AB and send us your question via Slack.

If you are curious about my views on data viz, I wrote a sort of beginner’s guide for data viz in Power BI in the book Let Her Finish: Voices from the Data Platform (Volume 1).

I hope to see you at PASS Summit!

Data Visualization, Microsoft Technologies, Power BI

You Can Now Put Values On Rows In Power BI

Back in January 2016, I wrote a blog post explaining a DAX workaround that allows you to put measures on rows in a matrix in a Power BI report. I’m happy to say that you no longer need my workaround because you can now natively put measures on rows in a matrix in both Power BI Desktop and

This is accomplished via a new formatting option for the matrix.

As a quick example, I made a table with years on columns and measures in my values (and nothing on rows). I added three measures: Sales Amount, Total Cost, Gross Margin.

Initially, my matrix puts the measures across the columns.

But I can change that in the formatting options.

Find the Values section on the formatting pane and look for Show On rows. Toggle that switch to On.

And that gives you the three values on rows.



Data Visualization

Free Data Viz Webinar May 17

Data visualization remains an important topic in analytics today, especially with the growth of big data and self-service BI. People with all kinds of roles and responsibilities need to communicate with data in the workplace, but most people don’t have the training to do so effectively.

The brilliant Jason Thomas and I are leading the May webinar for BlueGranite on Communicating With Data Visualization.  The webinar will cover:

  • Understanding data visualization as a form of communication
  • The process of creating a good data visualization
  • Using cognitive psychology to optimize your data visualization
  • Tips to ensure success of data visualizations projects

There will be lots of great tips that we’ve learned from leaders in data visualization such as Storytelling with DataStephen Few, and Andy Kirk. We’ll show several examples built with Power BI, Reporting Services, and Tableau to demonstrate how we apply data viz design concepts. And we’ll share what we have learned from our experiences building and deploying data visualizations as part of BI solutions.

Join us Tuesday, May 17, 2016 from 1pm to  2pm EDT.  Register here.

Data Visualization, Microsoft Technologies, Power BI

Colorblind Awareness and Power BI KPIs

Update: The ability to change the color of a KPI was delivered in August 2016!

Color blindness, or color vision deficiency (CVD) affects 1 in 12 men and 1 in 200 women in the world. The chances are good that you have met someone who is colorblind, but you may not have realized it. I know at least two people in the #sqlfamily who are colorblind. There are many types of CVD, but the most common is Deuteranomaly (red/green color blindness).  Those with deuteranomoly  have trouble distinguishing shades of red and green as well as some shades of gray, purple, and blueish green.

And which colors do we love to use with KPIs? Red and green, of course! Color is a very powerful tool in data viz. We use it to indicate meaning and to draw attention to something important. KPI boxes are used to display key metrics in an efficient manner. These key metrics are usually rather important, and our users need to be able to see their status at a glance.

I quite like the design of the KPI boxes in Power BI, but for some reason they were created without the ability to adjust the color associated with the state (good/bad). Shown below, they use the common red/green color scheme.


This may look fine to you, but if you are a deuteranope (green-blind), it looks like this:

Deuteranope PBI KPI

That makes it much more difficult to tell how things are going. I would have a hard time getting the same quick information from the KPI boxes as a deuteranope. There are some visual clues in the KPI box to help those with CVD: there is an indicator (! for bad and ✓ for good) as well as the percent above or below the goal shown under the value. But both of those elements are rather small, and I have found no way to increase their size within the KPI box. For those without CVD, the color shown immediately communicates the state without me having to concentrate on the text within the KPI box. Color is a preattentive attribute. I notice it without conscious effort.  But I need to be conscious of my audience’s ability to do the same with my color choices.

The video below shows what Power BI KPIs look like through various types of CVD.


If you work at a small company where you know no one is colorblind, or if you use Power BI for personal projects only, you may not care. But if you are an organization that makes data viz for the general public, I encourage you to be aware of what your audience sees and adjust your color choices so you are effectively communicating to your entire audience.

Blue and orange is a recommended palette to avoid common CVD issues. Unfortunately, I can’t change the Power BI KPIs to blue and orange, nor can I change the intensity of the hues to make them more easily distinguishable. If you agree that this functionality should be available in Power BI KPI boxes and would like to make your voice heard, please vote for my suggestion at:

Microsoft watches the suggestions on that site and has already implemented several of them once they were shown to be popular. Please help me out and spare a vote or two for the color vision deficient among us.

Update (25 Apr 2016): Microsoft saw my request and has already committed to getting this functionality into an upcoming release! You can see Miljan Braticevic’s comment below, and the idea is already marked as planned at the link above. That was a quick response!

Data Visualization, Excel

KCStat Chart Makeover

I live in Kansas City, and I like to be aware of local events and government affairs. KC has a program called KCStat, which monitors the city’s progress toward its 5-year city-wide business plan. As part of this program, the Mayor and City Manager moderate a KCStat meeting each month, and the conversation and data are live tweeted.  I love the program as well as all of the open data available on But as a data viz enthusiast, I cringe at some of the charts that are tweeted out from KCStat.  I wish that Kansas City would let me fix their charts – or better yet, let me come and teach a data viz class and facilitate a chart makeover session (if anyone from the city of KCMO is reading this, I would gladly donate my time to do this).

This week, a particular chart from KCStat caught my eye.


There is an interesting back story to this chart. KCMO invited citizens to attend Citizen Work Sessions, in which they organized into small groups and played a game to learn about the city budget and provide feedback. In the first scenario of the game, each group was asked to allocate a $100 budget across the city’s five major goals (as laid out in KC’s Citywide Business Plan) without reference to specific programs within the goals. In the second scenario, they were given a total budget of $1000 allocated to match the current city budget and were asked to identify the top 3 – 5 priority programs under each goal and then cut $50 from individual programs (as opposed to just the broad goals).  The chart from the tweet represents the results of the game.

Chart Design

The table shows the starting allocation and the average final allocation after the $50 cut (averaged because multiple groups performed this exercise). The line in the chart is tied to the starting allocation, and there are several markers that show the values assigned by the individual groups  after the budget cut (which would equal the ending final average amount when averaged together).

For me, this chart is ineffective and cluttered.

  • It’s using a line chart for categorical comparisons. With rare exceptions for multivariate analysis, slope charts, and maybe a few other situations, line charts are best used to show trends over time.
  • The markers are all bunched together to the point that they really aren’t useful, especially given the scale of the y-axis and the size of the markers. It would be nice to see the individual markers if there were any dramatic outliers, but that is not the case with this data.
  • The placement of the table in the middle of the chart between the axis labels and the data points is distracting. If you include axis labels rather than directly labeling, it is because you want to allow users to see the scale and follow a label across to a data point. But the line your eyes follow with this chart is interrupted by the big blue table in the middle of the graph.
  • I believe the table column header for “Ending Average Final (after cutting $50m)” is mislabeled. It should be after cutting $50, since we are dealing with only $1000 to begin with. I thought maybe it was accidentally scaled to the city’s real budget amount, but it looks like the Governmental Activities budget is about $953 million so that didn’t make sense.  Either way, it confused me and then I decided it was mistyped. Especially with this kind of subject matter (budgets and government communication to the public), you want to be as clear as possible and review your charts to remove any possible confusion.
  • The data in the chart is the least emphasized thing in the image. The thing that is most eye-catching is the header row of the table or perhaps the graph title due to the use of bold colors.
  • Goal areas are abbreviated in the table and wrapped on multiple lines in the graph x-axis.
  • This chart could really use some context. I had to dig through the presentation and the city’s open data to understand the situation that explains this chart. A few sentences to go with it would have been nice so readers know what they are looking at.

So I decided to take this image and redo it with better design decisions. I ended up with two different versions. I used Excel to create these makeovers. I’m sure I’ll do future makeovers with Power BI or Tableau, but I think Excel worked just fine for this, and is probably what was used to make the original data viz.

Version 1

KCStat Chart Makeover Version 1 (click to enlarge)

First, I added some explanatory text for context to help communicate my message. If you don’t know about the Citizen Work Sessions, this chart might be confusing. The note about the shift in spending to public safety came from the FY 2016 – 2021 Citywide Business Plan. I thought it was important context to note as city council members and government officials have hard decisions to make when it comes to the budget.

So my data viz communicates two things:

  • explains the allocation of budget across goal areas
  • notes that there was a budget cut and shows the impact on the budget and allocation

You’ll notice in this version I used data bars embedded in my table rather than embedding a table inside of my chart.  Microcharts can be a good way to visually represent data while still providing detailed numbers. While tables primarily interact with our verbal system, graphs interact with our visual system to give us a quick picture of how different data points are related. The data bars form a horizontal bar chart, which is a great way to show a categorical comparison. Here I’m comparing the initial budget amount allocated for each goal area. My rows are ordered by descending value of the budget amounts.

Also, because I now have my labels on rows, I have plenty of room to type the full name of the goal area without abbreviating or wrapping.

I added the percent cut data because after seeing the numbers, I immediately start doing the math of (499 – 515)/515 to understand the difference. So I just saved everyone some time and showed it in my table. The absolute numbers are definitely useful, but it’s also important to understand the impact of the cut to each goal. A 16% cut could be devastating to an already small budget. I used conditional highlighting to help emphasize the impact of the cut, so the largest cut has the most intense color.

KCMO didn’t provide the individual data points for the markers, so I couldn’t use the individual data points in my chart makeover. But I think I might have chosen not to show the individual data points anyway because the value that they add is not worth the space they take up in the visualization. And they’re not core to my message. What I’m trying to show is where people generally made cuts when faced with that decision. I don’t have to show all the data points just because I have them.

The strategic use of color draws your eyes to the important parts of the data (the allocation to goals and the effect of the budget cut) rather than the box around the chart tile or the table column header like it did in the original visualization.

Version 2

KCStat Chart Makeover Version 2 (click to enlarge)

I used the same explanatory text in this version. This time, I created a clustered horizontal bar chart and directly labeled the bars, removing the need to show a table. This chart shows me two things: the allocation of the budgets across goals and the and the difference between the original budget and the average budget after cuts. This time I’m not focusing on the impact of the cut to the total budget for the goal, just visually showing where cuts happened and allowing the reader to make the comparison with the bars.

Again,  I switched to a horizontal bar char so I have a good categorical comparison and my labels have plenty of room and don’t have to be wrapped or abbreviated. I put the legend at the top left so you have that information before going to read the chart (our eyes tend to move across the chart in a “z”).

And again your eyes are drawn toward the color first, which is where the important data is located.

Data Visualization Critiques & Makeovers

Feel free to leave comments on how you would improve my chart makeovers. I would appreciate the feedback.

If you like chart makeovers, there are several sites that critique and redesign data visualizations. Here are some of my favorites: