The PASS Summit 2018 schedule has been published, and I’m on it twice! On Monday, November 5, I am giving a full-day pre-con with Melissa Coates on Designing Modern Data and Analytics Solutions in Azure. We’ll have presentations, hand-on labs, and open discussions about architecture options in Azure when building an analytics solution. If you’ve been wondering how your architecture should change when moving from on-premises solutions to PaaS solutions, when to use SSIS versus ADF V2, options for data virtualization, or what kind of data storage technology to use, we would love to have you attend our pre-con.
I also have a general session at PASS Summit: Do Your Data Visualizations Need A Makeover?. I’ll share the signs that your data visualizations aren’t providing a good experience for your users, explain the most common reasons why, and give you tips on how to fix it. Data visualization is a skill that must be learned and that we all should continue to sharpen. We’ll have some fun discussing common mistakes and looking at examples. This session is scheduled for Wednesday, November 7 at 4:45pm.
If you are on the fence about attending PASS Summit, I highly recommend it, especially if you have never been. There are so many benefits for data professionals:
Microsoft product and customer advisory teams have a large presence at the conference, so you can ask them questions and get advice.
The wide array of content allows you to go deeper on topics with which you are already familiar or to get an intro to a topic that is adjacent to your current knowledge that just wasn’t clicking for you by reading blog posts or books.
You get to meet data professionals from all over the world. You can make new professional contacts and friends with whom you can keep in touch afterwards.
If you are looking for a new job, it’s a great place to make connections.
You can talk to the speakers whose blogs you read and conference sessions you attend! If you spot your favorite speaker at PASS Summit, it is a great place to introduce yourself or ask a question.
There are lots of community events, including happy hours, game nights, and more.
There is always something to do for dinner, between receptions, sponsor parties, and friendly groups to tag along with.
SQL Karaoke is happening somewhere pretty much every night.
These benefits are most definitely real, not just over-hyped advertising. I have friends and colleagues of many years that I first met at PASS Summit. I first met Melissa Coates at PASS Summit, and now I work with her and present with her. And I got to help edit the Power BI whitepaper she wrote with Chris Webb (whom I also first met at PASS Summit – I fan-girled a little and asked for his autograph on his Power Query book the year it came out). I got job interviews after letting colleagues at PASS Summit know that I was looking one year. I had a blast singing karaoke with a live band at an evening event last year. I could continue this list for quite a while, but I think you get the picture.
It’s hard to please everyone, especially when everyone means several dozen speakers and thousands of audience members at a tech conference. And especially when it comes to presentations to an international audience. So I get that it can be difficult to make a presentation template that stays on brand and promotes the best presentation of information. But I see a continuing trend that conferences optimize templates for marketing and forget that we are trying to communicate to audiences of varying skills and abilities, many of whom have paid to attend the conference to learn the information in our presentations. I’m not here just to argue aesthetics, although I definitely have opinions on that. I want people to realize that we are unintentionally excluding many of our audience members with our horribly inaccessible slide templates. Accessibility refers to the ability for everyone, regardless of disability or special needs, to access, use, and benefit from everything within their environment. Yes, in many cases use of the conference template is not required, but many speakers will still use it. So the designer of the slide template should be thoughtful about their design more than just staying on brand with colors and conference logos. Basically, we can do better. We should be designing with accessibility in mind.
I’m going to pick on a template that I’m currently working with because it is from a conference that is near and dear to my heart, and it serves as a good example of how we can (and should) improve. Concrete examples seem to have more impact than just providing guidelines. While this year’s PASS Summit template is not the worst conference presentation template I’ve seen, it leaves a lot to be desired in the areas of effectiveness and inclusiveness. I’m writing this publicly to help educate our SQL Family about making better presentations that actually work for our audience. While it is criticism, it is said with love and hope that we can improve for future conferences. The speakers and organizers of PASS Summit are good people who strive to deliver a great conference. I know we can do better.
So what’s wrong with the template?
Let’s start with the title slide.
The title text is 36pt Segoe UI Light, the subheading text is 24pt Segoe UI, and the speaker info text is 14 pt Segoe UI.
Those font sizes alone make it very hard to read from the back of even the smaller rooms at the conference.
In addition to being too small, the gray text for the speaker info doesn’t have enough contrast from the white background. We want to get a contrast ratio of at least 4.5:1 (but 7:1 would be better). The contrast ratio for these colors is 4.0.
While sans serif fonts are generally thought to be easier to read in presentations, it’s better to use fonts with a stroke width that is not too thin – not necessarily wider characters, but thicker lines that make up each letter. So Segoe UI Light would not be my first choice for a title font, but Segoe UI or Segoe UI Bold might be ok.
Also, the red used on the right half of the slide is VERY bright for an element that is purely decorative, to the point that it might be distracting for some people. And the reason we need to squish our title into two lines of too-small text is because that giant red shape takes up half the page. What is more important: a “pretty” red shape to make our slide look snazzy or being able to clearly read the title of the presentation?
Here is the speaker bio slide.
This slide also suffers from the font being way too small.
Speaker name: 32pt (Segoe UI Light)
Title/Company: 20 pt (Segoe UI)
Social media handles: 11pt (Segoe UI)
Biography Point One: 14pt (Segoe UI)
Biography Point body text: 10.5pt (Segoe UI)
Again, there are issues with color contrast, which make the slide difficult to read – especially when shown on a projector that will probably wash out some of the color. The blue font on white background has a contrast ratio of 2.2. The red font on white background has a contrast ratio of 3.67. The dark font color on light gray background is actually ok from a color contrast perspective.
Here is a standard content slide.
What I appreciate about this slide is that it is free from unnecessary decorative shapes/backgrounds and doesn’t use needless bullet points everywhere. And the PASS logo is small in the lower right hand corner, not taking up too much room or being super distracting. But again, font sizes are way too small and the color contrast from the background is not high enough.
The difference in heading styles is a bit distracting. While they should probably differ in size, they don’t need to also differ in capitalization and font and color and boldness. One or two properties would be fine to denote difference, and having so many differences is a bit distracting.
More important than that, if you have three layers of headings on your slide, you probably have too much text. It would have been better not to even suggest that we would need to do such a thing. Putting it in the template passively gives presenters permission or encouragement to do just that.
What’s wrong and why should you care?
Conferences need to consider that some attendees may have varying abilities to see, hear, and understand the presentations. But those attendees paid to attend the conference and shall we say… connect, share, and learn? How can they learn when they can’t read the slide? How can they connect when the speaker contact information is tiny and hard to distinguish from the background? When we use slide templates that don’t work for those attendees, we are basically saying that they don’t matter and aren’t our “real” audience. Do we really want to be just another conference that discriminates against these people and makes them feel unwelcome? No one is purposefully doing this, but our ignorance/thoughtlessness about accessibility still creates that experience for them, whether or not we meant to do so.
Attendees don’t have to have a diagnosed “official” disability to benefit from slides that present information clearly. How many of us just have aging eyes? We can all appreciate when we end up seated at the back of a large conference room and can actually read the slides. Non-native English speakers may appreciate being able to clearly and quickly read slide content as they have to take more time/effort to process information written in English. We all get distracted by our phone/laptop/tablet/watch/neighbor during conference sessions, and it’s nice to be able to refocus on the presentation by focusing on the visual content while we listen to the speaker. But we can’t do that when the speaker’s slides are distracting us from the good information or are just plain hard to read. Slide templates are just one part of the presentation, but they can help set a standard that provides a good, inclusive experience for all attendees.
And what’s going to be better marketing for a conference: slide templates that are hard to read but use the right colors and logos, or attendees that have a great experience and learn a ton and tell their friends and coworkers all about it?
How do we fix it?
There are several basic things we can do to fix our templates to make them more accessible and more engaging (and still on brand for the conference). Here is a (non-comprehensive) list that organizations that create conference slide templates could start with to create accessible templates.
Even better, don’t require/request use of a slide template. Just give speakers a few intro/exit slides with necessary information and let them do what is best to communicate their intended information. It would then be the speaker’s responsibility to create accessible content, but hopefully they care enough about their presentations to do that. PASS Summit requires the use of the title and speaker bio slides (and a few other conference-related slides), but it allows speakers to design their own slides for the rest of the content.
If you have tips or opinions about creating accessible presentation content for conferences, please leave them in the comments.
Using layout images in Power BI has become a popular design trend. When I say layout images, I’m referring to background images with shapes around areas where visuals are placed. This is different from the new wallpaper feature that became available in the July release, which can be used to format the grey area outside your report page and extend the main color of background images.
Layout images can help with spacing and alignment within a report and can help create consistency across reports. They can also help create affordances, using consistent layout and design to make it obvious how users should interact with our reports.
I use layout images in some of my reports, but I don’t think they are necessary on every report. There are a couple of things to consider when using layout images.
Don’t let your layout image take the focus away from the data. This can happen due to lack of color contrast or because the color(s) used in the layout image are much more intense than the visuals on your report page.
While we may strive for consistency in report design, especially in larger organizations, we can’t let a layout keep us from creating the most effective visual to communicate the information in our data. If we start with a layout and limit ourselves to only visuals that fit that layout, that constraint may prevent us from creating a better report. If you have identified the chart type you need to communicate your information, but it doesn’t fit in your 3-column layout because the visual needs to be a bit wider, get a new template that accommodates your visual. I would rather see slightly different templates than ineffective chart types or the right chart types but the visuals squished into a space where they don’t fit (hard to read, truncated labels, etc.).
You can make your own layout images or choose one that someone else has created. PowerBI.Tips offers Power BI layouts in the form of Power BI Templates (.PBIT files) with background images set on the report pages where you replace the data source and repopulate the visuals. The templates also contain report themes.
Frederik Hedenstrom has a grid generator where you can set the width, height, columns, spacing, and colors. Then you can download your image and set it as your page background.
When I make my own layouts, I typically just use PowerPoint. Usually, the layout is the last thing I add rather than the first, but you can do what works best for you. This is the process I use to make layout images:
Take a screenshot of my report page and paste it onto a blank PowerPoint slide.
Draw shapes (usually rectangles or rectangles with rounded corners) over the screenshot where the visuals are placed.
Delete the screenshot from the slide.
Format the slide background and the shapes (alignment, colors, outline, shadow effects, etc.).
Export the slide as an image.
Import the image as the page background. Adjust the image fit and transparency as needed.
Doing it myself is a bit of work, but it means I get exactly the effect I want. And I’ve gotten pretty quick at it now that I have done it several times. But again, you can take shortcuts using the resources mentioned above. Once I have my background layout image set, I check that it isn’t too distracting by asking myself these questions:
Is the background more intense than the visuals to where I look at it before I look at the data visualizations?
Do my visuals no longer stand out because the background color is too similar to the colors in my visuals?
Can I still clearly read my charts, including all titles and labels now that the background image is in place?
To help illustrate my points, take a look at this example report I have been working on.
In Version 1, there is no layout image. Some might think the report looks a tad bare. While there is a layout of 3 rows, it’s not immediately obvious.
In version 2, I have applied a layout image. It is subtle, using a light gray background color and a soft shadow around the shapes. It emphasizes the 3 rows, which makes sense in this report. In the top row I have the title and some summary numbers. In the middle row, I’m slicing number of reviews and % recommended by high-level categories. In the bottom row I have one visual that slices average and median ratings by a more detailed category.
In version 3, I changed the background to a dark gray/light black. With that background, the dark color is the thing in the report that stands out most to me, but it provides no information and doesn’t enhance the user experience more than the subtle light version of the layout image.
Layout images can be useful. You can save time by using images created by others, but don’t let a layout needlessly constrain your data visualization or distract from the information in your report.
I’m happy to announce that we will be holding pre-cons at SQLSaturday Denver 2018. Our SQLSaturday will be held on September 15, and full-day pre-cons will be the day before on Friday, September 14. It took us a bit longer to organize because we had to find separate space for the pre-cons. They will be held at the Parker Library (20105 Mainstreet, Parker, CO 80138) in Event Halls A & B from 9:00 am to 5:00 pm. Lunch will not be provided, but there are several restaurants within a couple miles of the venue. You can also use Grubhub, Postmates, or Uber Eats to have food delivered. Pre-con registration will be $125.
If you would like to be considered to deliver a pre-con at SQLSaturday Denver, please complete this form by July 15.
In many cases, some small changes can go a long way in making your Power BI reports more accessible for users with different abilities. The checklist below lists considerations you should make in your report design to create more inclusive reports. I’ll update this post as new features are released.
Ensure color contrast between title, axis label, and data label text and the background are at least 4.5:1.
Avoid using color as the only means of conveying information. Use text or icons to supplement or replace the color.
Replace unnecessary jargon or acronyms.
Ensure alt text is added to all non-decorative visuals on the page.
Check that your report page works for users with color vision deficiency.
If you have a collection of several slicers on your report pages, ensure your design is consistent across pages. Use the same font, colors, and spatial position as much as possible.
Ensure color contrast between font and background are at least 4.5:1.
Is key information only accessible through an interaction? If so, rearrange your visuals so they are pre-filtered to make the important conclusion more obvious.
Are you using bookmarks for navigation? Keyboard users can’t select images to go to a hyperlink or bookmark. Try navigating your report with a keyboard to ensure the experience is acceptable for keyboard-only users.
Have you purposefully set the sort order of each visual on the page? The accessible Show Data table shows the data in the sort order you have set on the visual.
Don’t use tooltips to convey important information. Users with motor issues and users who do not use a mouse will have difficulties accessing them.
Do add tooltips to charts as ancillary information. It is included in the accessible Show Data table for each visual.
Avoid video that automatically starts when the page is rendered.
Ensure your video has captions or provide a transcript.
Avoid audio that automatically starts when the page is rendered.
Provide a transcript for any audio.
Avoid using too many decorative shapes. They are announced by the screen reader when reading the page.
When using shapes to call out data points, use alt text to explain what is being called out.
When using images to call out data points, use alt text to explain what is being called out.
Avoid using too many decorative images. They are announced by the screen reader when reading the page.
Check the accessible Show Data table for custom visuals. If the information shown is not sufficient, look for another visual.
If using the Play Axis custom visual, ensure it does not autoplay. Make it obvious that the user must press the play/pause button to start/stop the changing values.
Color is a powerful attribute in data visualization. In a good visualization, it can focus attention and enhance meaning and clarity. When color is used poorly, it creates clutter and confusion. Power BI has a default color palette, but it isn’t always optimal or even appropriate for many reports. Luckily, Power BI allows you to use any color that can be defined by a hex code where visuals allow colors to be changed. With so many choices, choosing a color palette can be overwhelming. Below are some tips to help you choose a good color palette for your Power BI reports.
A color palette is simply a collection of colors applied to the visual elements in your report. What we typically refer to as color is a combination of three main properties: hue (base color on the color wheel), intensity (brightness or gray-ness) and value (lightness or darkness). You can build an engaging and professional looking report with just 6 colors. It’s possible to have fewer colors or more colors, but 6 should cover many common visualization needs. If you are using more than 6 colors, you might want to check that you are optimizing engagement and cognitive load.
Main color – default color on graphs
Color 2 – used when multiple colors are needed in a graph or report
Color 3 – used when multiple colors are needed in a graph or report and Color 2 has already been used
Highlight color – a color used to highlight important data points to make them stand out from other points on the page
Border color – a light color used for borders on tables and KPIs where necessary
Title color – color used for visual titles and axis labels as appropriate
While your title and border colors don’t have to be variations of gray, gray is a practical color for these purposes when using a white background. You could also use brown, blue, purple, etc. You just want to ensure that your text color has sufficient contrast from its background and that it isn’t more intense than your data colors. I tend to make my border color a tint of the title color.
This is a good place to define a few terms. A hue is a base color without black, white, or gray added, which you might find on a basic color wheel. A shade is achieved by adding black to any pure hue, making it darker. A tint is achieve by adding white to a pure hue, making it lighter. A tone is achieved by adding gray to a pure hue, making it less saturated and more muted.
I think it’s easiest to start your color palette by choosing the main color. This could be inspired by your corporate color palette or logo, your favorite color, or a color associated with the subject matter of your report. Be aware that color has cultural meaning and conveys emotion, and you want to choose a color that conveys the appropriate tone of your report. This can get tricky, so just try to make sure you don’t choose a main color that has a lot of cognitive dissonance with your subject. For instance, if you are creating a report for a U.S. audience about our gun violence problem, you probably wouldn’t use a light, happy, pastel green as your main color. But you could be fine using a bright red, dark blue, orange, black, or several other colors.
You will want to choose a main color that has a medium intensity. If it is too bright or too dark, you won’t have any room to use a more intense version of that color to focus attention. And since you want your main, secondary, and tertiary color to be the same intensity, it would feel as if everything on the page were yelling at you if all three colors were bold. If you are starting from a corporate color palette, be aware that most brand color palettes were designed for websites and print collateral, not data visualization. They are usually too intense or bright to serve as your main data visualization colors. But you can use a tint or tone of your corporate colors so your reports stay on brand.
Once you have chosen your main color, you need to decide what type of color scheme you would like to use. Common options include:
monochromatic – tints and shades of a single hue
complementary – colors that are opposite each other on the color wheel
analogous – colors that are next to each other on the color wheel
split complementary – a base color plus two colors that are adjacent to its complement on the color wheel
triadic – colors that are evenly spaced on the color wheel
My current favorite tool for choosing colors is ColorHexa. It provides hex colors, color schemes (as shown above), tints, shades, and tones.
Once you have made some initial color choices, test it out on a few charts to ensure you can answer yes to the following questions:
Are all colors easily distinguishable from each other? If you were to use the main, secondary, and tertiary color in a line chart, could you easily follow the lines as they cross each other?
Is your color palette color blind friendly? You can use ColorHexa or Coblis to check this. It’s not always obvious when you have people with color vision deficiency in your intended audience, so it’s better to use colors that are easily distinguishable by those with red-green color blindness (deuteranomaly, deuteranopia, protanomaly, and protanopia).
Does your highlight color have high contrast from your other colors so it is obvious that it is being used to draw attention to a trend or data point?
If you are using a non-white background color, do your colors stand out sufficiently from your background?
When you look at your color choices, do you find the combination generally appealing, balanced, and not overly jarring? This is a bit subjective, but if you look at your colors and have a negative reaction then your audience will probably have a similar reaction.
Finally, be aware that colors display differently on different screens and surfaces. You can put a lot of time and effort into choosing the perfect colors, then share a report with someone and have it look rather different on their monitor or when viewed on a projector screen. If you can, review your colors on the equipment that your intended audience will most commonly use to make sure it looks good for them.
If you are still having trouble choosing colors, you can check out the Power BI Report Theme Gallery for some inspiration. Not every example in the gallery shows good color choices, but you can still use it to get ideas.
Once you have your color palette, you can reuse it in future reports by making a report theme. And if you aren’t a fan of manually writing JSON for your report theme, check out the Report Theme Generator from PowerBI.Tips. If you define your colors in a report theme, Power BI will create tints and shades of your colors for you, saving you the trouble of having to look them up yourself.
If you have advice to help others choose colors, leave a comment on this post or tweet me.
I worked on a Power BI embedded POC where a report with an in-memory Power BI model as the dataset was embedded into an application in an “app owns data” scenario. This means that the application handles all authentication and access, and users do not need to be Active Directory users or have Power BI licenses. This can be a good fit when you want analysts to be able to change the reports as needed and immediately see the changes in the application
High-Level Components and Steps
The following items are needed for embedding Power BI content into an ISV/app owns data application:
Azure Active Directory tenant
Power BI Pro account
Power BI dashboard, tile, or report
Power BI workspace
Power BI embedded capacity (for testing/production)
An application in which to embed the Power BI content
While there is pretty good documentation for this, the steps weren’t immediately clear to me because the app owns data and user owns data scenarios are mixed and matched in some parts of the documentation from Microsoft. I found there are 8 main steps to embedding content with row-level security enabled in an app owns data scenario.
Create the Azure Active Directory account to be used by the embedding application. Assign a Power BI Pro license to the account.
Create an app workspace in PowerBI.com. Set the workspace to private. Set the analyst who owns the report as the workspace admin. Set the service account (created in step 1) as a workspace admin.
Update the Power BI report with row-level security roles and filters. Ensure that usernames and corresponding roles are available to the application.
Publish the Power BI report to the app workspace.
Register the application that will show the report in Azure Active Directory.
Add code to the application to get the Active Directory access token.
Provision the appropriate Power BI embedded capacity in Azure and assign the app workspace containing the report to the embedded capacity.
Interestingly, row-level security works just the same as it does on PowerBI.com. You do nothing different in your PBIX file. You just don’t populate the role members in PowerBI.com. Instead, your pass the effective user in your embed token.
Unlike using the Publish To Web feature, Full Screen mode is not available in an embedded report. You can, however, add a button on the page where you embedded the report that allows it to go full screen.
As of March, you can hide visual headers on all visuals in a report in Reading View. This looks much cleaner and alleviates the issues that arise when menus at the top of one visual overlap the bottom of another. But this also means that users won’t be able to access menu options such as In-Focus Mode and Export Data. If these are important, you will want to leave your visual headers visible. If you have some pages where you would like users to export data and others where it isn’t important, consider splitting out the report so you can turn the visual headers on for one report and off for the other.
After making changes and testing your report, make sure to clear any slicer values before publishing, if you have row-level security on a field shown in a slicer and you leave values selected. The selected values will be shown to users when they view the report. For example, let’s say you have created a row-level security role that can only see Product A, but you can see everything, and you left Product A and Product B selected and deployed the report. A user who views the report next and is a member of that RLS role will see the two selected values in the slicer, even though they can’t see the data for Product B on the page. This may not be a big deal for an internal report. But now imagine this is for clients. You don’t want clients to see other clients in the list. This behavior is consistent in the Power BI web service and isn’t specific to embedding. It’s just important to remember this.
By default, a report will load the page that was shown when the user last saved it. This happens in PowerBI.com as well. In embedded solutions, the page of a report can be specified in the embedding code, essentially specifying a default page within the report when viewed through the application. If a user hits the refresh button on their browser while looking at the report, the report will be loaded to the default page rather than the page the user was last viewing.
My POC proved out that Power BI provided the functionality to add great visuals to an application page that a non-developer analyst could manage. It also helped us understand our formatting options. You can get started with Power BI embedded without having to provision the embedded node in Azure, so it’s a no/low dollar commitment to give it a try.
If you have done a Power BI embedded project, please comment and let me know what you liked and didn’t like, or if there are any ideas to which I should add a vote.