Creating Maintainable Power BI Report Models – Part 2

Power BI Kitchen

In this installment, the user facing aspects of your Power BI report models will be discussed. Much of this is considered fit and finish work. It is important that you take the time to address these issues as enables users to build their own reports and dashboards from your data sets. This finish work will result in less time spent on support and making ad hoc updates.

Hiding data sets and fields in the Power BI Report View

When you are creating a complex report model, you may use transitional data sets or configuration type data sets to create your final data set. These transitional or configuration data is not intended to be used by the end user in creating a dashboard or report. Before releasing a report model, you should determine which of these data sets and fields to hide from the Report view. Doing so will reduce user confusion about this information, allowing them to focus on the data most important to them.

To hide a data set or field in the report view, do the following.

  • In Power BI Desktop, click on the Datasheet icon (1)

Power BI

  • In the Field well, right click on a data set name or on a field
  • Select Hide in Report View (2)


  • The data set or field will appear grayed out (3)



Default formatting

Default formatting has a cumulative positive productivity effect for your users. Setting the default format for numbers and dates frees them from having to spend non-productive time “trying to get the data to look right.” It’s tedious work that can easily be eliminated with a few actions on your part. Your users will be happier and able to be faster at generating views.


In many data sources, dates are stored as datetime values. Project Online stores every date in this format and this makes sense from a transactional perspective. However, in the BI world, most users aren’t looking for time information. The time data creates visual noise instead.

Also, if you are creating content for international users, it is important to use the right formats such that Power BI uses the end user’s regional setting. This way your American and Australian counter parts both know that 3/11/2016 and 11/3/2016 are respectively, the same date. Date and Datetime formats that automatically adjust to the end user’s regional settings are marked with an asterisk *.

To set the default format for a date, do the following.

  • Power BI Desktop, click on the Datasheet icon (1)


  • In the grid, click the heading of the column to format. Only one column can be selected at a time (2)


  • Click the Modeling tab in the ribbon (3)


  • Change Data Type to Date. (4) Note, the format of the selected date column has changed.


  • Click Format dropdown, Date Time, select the first value, which has an asterisk (5)


Now, your date values will appear as follows.



The same process applies to numbers as well. Many systems store numbers in a general decimal number format, leaving users staring at numbers with a variable number of decimals or cost data that isn’t apparent it’s related to money. Variable decimal places creates usability problems as it’s hard to scan the data. Not denoting costs with a currency symbol leaves the number open to misinterpretation.

Decimal Numbers

To format the decimal positions in a number, do the following.

  • In Power BI Desktop, click on the Datasheet icon (1)


  • In the grid, click the heading of the column to format. Only one column can be selected at a time (2)


  • Click the Modeling tab in the ribbon (3)


  • Change Format to Decimal Number (4)


  • Set the number of decimals to show (5)



To format a number with a currency symbol, do the following.

  • In Power BI Desktop, click on the Datasheet icon (1)


  • In the grid, click the heading of the column to format. Only one column can be selected at a time (2)


  • Click the Modeling tab in the ribbon (3)


  • Change Format to Fixed Decimal Number (4)


  • Set the number of decimals to show (5)



The last set of good practices for report models is to categorize specific types of data such that the default behavior in Power BI is more user friendly. This applies currently to location based data and urls. By default, Power BI would treat this information as character data. If a user drags a city or country value to a dashboard, likely they will be interested in a map view rather than the name of the city or country. Categorization allows you to tell Power BI that the City or Country field is location data and that a map instead of a grid should be rendered by default. For URLs,, categorization tells Power BI whether to render the link as clickable or to render the image to which it points.

In all cases, click the column heading of the field to categorize and select the Data Category on the Modeling tab to set, similar to the actions above.

Location Data

You can categorize text data as location related or numeric data if it contains latitude or longitude values. The list of location categories is shown below.


Web URLs

If you want to make the URL clickable, change the Data Category to Web URL.


Image URLs

To render the image accessed by the URL, change the Data Category to Image URL



Following these simple techniques will result in easier to use and easier to maintain report models.

If you want to learn more, check out our Power BI sessions at  Use code take100off to get $100 off of any paid Power BI class.



‘); // ]]>

‘); // ]]>


Creating Maintainable Power BI Report Models – Part 1

Power BI Kitchen

Professional chefs use a French kitchen organization approach called “Mise En Place”, which means literally, “putting in place.” It ensures that the placement of ingredients and utensils are optimally placed for efficient cooking. Power BI report models can require the same type of approach to ensure that your report models are maintainable over time. This applies whether you are doing reporting against Microsoft Project Online, Microsoft Project Server or Office 365.

We’ll focus on three techniques for the report developer’s back end configuration this week. We’ll cover the front end configuration next week as it relates to improving the end user experience.

Fast is not always good

Power BI allows you to accomplish a lot quickly when it comes to transforming data. However, if you aren’t smart about how you approach your back end configuration, you could be creating a maintenance nightmare for yourself.

Do you know what is what in a report model that you haven’t touched in months? These three techniques will enable you to easily understand and work with your transformation code over time.

What was I thinking when I did this?

This is a common problem for any developer who has ever done work in a rush. The reason for doing what you did in the fifteen transformation steps was blatantly clear the day you created the model. However, the sands of time have worn away the memories and now you are doing code archaeology to understand your previous work.

Power BI allows you to make your transformation steps self-documenting.

To make your transformation steps descriptive, do the following.

  • Open the query editor
  • Select a data set in the left pane. The list of transformation steps are shown in the Applied Steps pane on the right.
  • Right-click (#1) on transformation step
  • Rename the step with something descriptive

Power BI Renaming a Transformation

Instead of accepting the default “Grouped Rows” step name, you can rename the step to read “Grouping by Year, Week, Resource to provide weekly work totals.” Doing so creates a coherent story of what is happening and why.

Power BI Self Documenting Transformations

What is this data set again?

Power BI provides a default data set name, based typically on the source of the data retrieved. This may not be desirable as the data set may be an amalgamation of data from several sources and have a different intent than that indicated by the first data retrieved. Secondly, this name also appears to the end user and may have no meaning.

To make your data set name descriptive

  • Open the query editor
  • Select a data set in the left pane
  • On the right side, in the Properties Name box above the Applied Steps, rename the data set to be more meaningful to the user
    • If you are using our Conversation-centric design approach, you should already have some candidate names available
  • To update, simply type over the value in the Name field and click off of the field to save
  • When you save the model, the change will be saved

Below, we renamed AssignmentTimephasedDataSet to Resource Work Summary by Week.

Power BI Naming Data Sets

Where did I put that thing?

Another challenge that you may encounter is trying to find a query data set when you have several in a report model. Power BI allows you to create groups and assign your data sets and functions to a specific group.

If I am working on model that is in production, I can create a Version 2 group, copy the data set, move the copy to the Version 2 group. This way, I have both copies and can ensure I don’t accidentally change the wrong version.

In the example below, I used groups as a way of organizing my demos for a webinar. Each group demo number corresponded to a PowerPoint slide so it was easy to keep my place.

Power BI Using Groups

To create a Power BI query group

  • Right click anywhere on the Query Editor left pane
  • Select New Group…
  • Fill out the name and the description
  • Click OK

The description can be seen when you hover over the group name. It is very helpful for providing additional context.

To move a data set to a Power BI query group

  • Right click on the data set name
  • Select Move to Group
  • Select the Group

These three techniques will help you keep things organized and understandable. Next week, we’ll discuss best practices for enabling a great end user experience.

Chaos Management and the Cubicle Hero

When asked, “What do you want to be when you grow up?” you may have replied, “Firefighter.” If you did, I’m sure you meant one of the awesome individuals who provide medical services, rescues and ride the fire trucks. While, most of us never realized that dream, there are days at the office where you probably feel that “Fire Fighter” should be your job title.

Welcome to the wonderful world of the Cubicle Hero, where fighting fires is part of your job!

Perhaps you ask yourself at the end of each day, “How did I get here?” Many feel stuck in these roles without a way out and are puzzled as to how it happened. I talked about the True Cost of the Cubicle Hero in this previous article, so let’s look at how Cubicle Heroes form.

One reason Cubicle Heroes arise is due to a work environment that isn’t structured to respond well to chaos. If there are no processes for reacting to chaos in a controlled manner, the result is a crisis, which requires some brave person to step in to address. This person is caught in that role going forward, thus evolving into the Cubicle Hero. Chaos is ever present and needed for the organization to evolve and remain competitive. The organization is going to run out of Heroes unless a systemic way of reacting is created.

Internal efforts such as implementing a new HR system creates short-term chaos and long-term impact the organization. If your organization doesn’t have a formal project transition process to production, Cubicle Heroes usually form from the project’s team members who hold the detailed knowledge about the project’s deliverables . A problem related to the project arises. This leads to a project team member solving the issue and then becoming the Hero going forward.

Ad hoc project transformation process creates “human hard drives” out of the project team members, where they must store and retrieve organizational knowledge as needed. This restricts the ability of team members to grow their skills as letting go of that knowledge results in a loss to the organization. A formal transformation process ensures relevant information is captured so that it can be widely used within the organization, freeing the team members to move on.

External events such as a large client with a new, immediate need or a viral photo of a dress of indeterminate color are also chaos sources. Does your company treat these requests as fire drills  or do they have a way to manage them?

The best companies have a deep respect for chaos and put practices in place to manage it and to learn from it. New products and services are sometimes rooted in chaos learnings. Successful chaos management becomes a source of positive change within an organization, as it provides opportunities for people to learn new skills and encounter new situations. As discussed in the earlier article, these new skills and experiences prepare these individuals to be the Explorers that we need.

If your company grows Cubicle Heroes, then the first step in the solution is to address the underlying cultural issues. Adding tools too soon will simply result in chaos at light speed. Addressing this issue is especially problematic in organizations where management has built their careers on their firefighting abilities. Cubicle Heroes tend to prosper in environments which lack visibility into cause and effect. One of my Project Management Office  tool implementations came to a grinding halt when the sponsor, who was a master Cubicle Hero, realized the system would also show that he was also the company’s biggest fire starter .

Your company’s reaction to chaos is a key process necessary to maximizing your long term competiveness and productivity. One way to address chaos is to create processes for categories of chaos. Categories help keep the process manageable without having to address each specific and unique possibility.

One category should also be “other,” as the truly unexpected will happen. One example where this was successful is an organization who assigned a team member to work the “other” category, thereby sparing the rest of the team from being randomized by the unexpected.

I’ll write more on this topic in the weeks to come. For other articles, please visit my blog at

Project Tasks are Your Lowest Priority

Project tasks are the lowest priority work you have on any given day. Wait, what?

It’s true! Strategically, we know project work is the most important future investment for the company. When you break down what you do every day, you’ll see that you are fitting in project work around the other work you have to do. It’s frustrating. You know you could be doing more. It’s frustrating because someone thought you had the time to get this work done.

If you don’t believe the premise, imagine the following scenario. You are staying late at the office to get some project work completed. Your manager’s manager sees that you are in the office, comes over, and asks you to do a task for tomorrow morning. If your answer is “I’m sorry, but I can’t because I really need to get this project work completed.”, their response will determine the relative priority of project work in your environment. For some, rejecting the task would be a career-limiting move.

Perhaps then, we are asking the wrong question when it comes to resource capacity management. Instead of asking whether this resource has free capacity to do the work, shouldn’t we be asking if the resource has enough consolidated free time to work on project work? If they do not, what can we do to remedy this situation?

In my “Done in 40” webinar, we discussed recent research by time-tracking software companies that identified how the top 10% of productive employees work in an agile fashion. These employees typically work 52 minutes and take a 17 minute break away from the work.  This is coherent with ultradian body rhythms studies from the 90’s and 00’s that showed your focus naturally waxes and wanes on a 1.5-2 hour schedule. These work sprints can make you very productive and help reduce mistakes and rework.

I’ve personally tried the sprint approach and I can say, it works well for me. I use a timer app on my Pebble watch to monitor my sprints. Fifty minutes is roughly the time where the mind starts wandering to “Did Joe ever respond to my email?” or “Is there coffee?”. Three sprints enable the top three daily tasks to get done easily.

The catch is you need to have 69 uninterrupted minutes to complete a personal sprint. This leads us back to the question of does a resource have consolidated availability? Yes, they have 3 hours available that day but if it’s in 15 minute increments, that’s not usable.

When a client with project throughput issues engages my services, I find it’s usually not a project management issue. Many times, the lack of consolidated availability is preventing the project work from happening. If you are interrupted every 10 minutes, as are most office workers in the United States, it’s very hard to get work done. If you are having issues getting projects through the pipe, perhaps it’s time to look beyond your projects and to your operational work processes.

We spend the majority of our energy providing oversight and processes to projects, which are a minority of the work instead of doing the same for operational work. McKinsey released a white paper recently that showed most of the operational spend goes to keeping the company running. New projects are a small portion of the overall effort. Yet, we don’t monitor operational work holistically the way we do projects. Perhaps, its time we start.

Project management processes are very helpful and needed. We’ve worked out how to anticipate and reduce risk and how to deliver the reward. We need to apply these approaches to how we manage all work. It’s the operational work that provides the overall context within which we do our project work. If improperly managed, it also constricts our ability to get our project work done. Operational work management improvements could yield the biggest benefit by enabling the consolidation of availability, yielding more usable time for project work.

If you are interested in finding out more about the specific techniques and how to use Microsoft Project to support this need, sign up here and get the recording link to the full “Done In 40” webinar.