Power BI: Building a Recipe Dashboard
Can Power BI help us out with keeping up with our recipes? Sure it can!
I wanted to try and make a 'cool' recipe search tool. Something with interactive elements that you don't see very often on cooking websites.
In the above dashboard, you can search for any recipe or ingredient and the Recipe list will update accordingly. You can filter by number of steps or cook time on the right side. Clicking on any word in the WordCloud will also filter the recipe list to recipes only containing those words.
Selecting any recipe will show you the cook time, number of ingredients, number of servings, and number of steps to complete the dish. The graphs show you a comparison to the average as well. At the bottom, a URL appears for more details about the recipe.
I got the data by going through cookpad.com and allrecipes.com, and filling out a data table one by one. There's only 18 recipes, but if you'd like me to add your recipe, let me know! I'd be glad to host it on the dashboard.
I'll need the following:
Number of steps to complete
Number of servings
Total time to complete
URL (if any)
A list of ingredients including:
Amount (oz, lbs, a pinch, etc.)
Any other detail (chopped, diced, etc.)
How I built this dashboard
My goal was to create a tool that allowed me to easily look up any and all recipes by any search value I gave it. I decided to go with the WordCloud custom visual as it quickly shows me what words are valid to search for, and at the same time which words are most common in the data set. I think this is the main thing that distinguishes itself from the rest of the tools on the web.
This visual contains ALL words, meaning, the recipe name, ingredients, and other ingredient details. In order to accomplish this, I simply concatenated all the columns together into one column (separated by a space so WordCloud can then again separate it for us in the visual). I used this newly created column as the main value for the WordCloud. To read more, check out my other blog specifically covering the WordCloud custom visual.
Word Cloud = Ingredients[Ingredient] & " " & Ingredients[Other Description] & " " & RELATED(Recipes[Recipe Name])
In order for the WordCloud to work on this particular dashboard (for filtering purposes), I needed to change the Cross Filtering direction to Both. You can do this via the relationship tab.
Next, I used 4 different column charts each to represent the time, number of ingredients, number of steps, and number of servings. I went with four separate graphs because otherwise, having them all on one would result in the different values scaled accordingly. I wanted to avoid that so I went the separate route.
The title here changes from either "Select a recipe..." or the selected recipe name. To acheive this, I created a new measure called "Selected Recipe", using the SELECTEDVALUE() forumula:
Selected Recipe = SELECTEDVALUE(Recipes[Recipe Name],"Select a recipe...")
This formula returns a single value if there is only one distinct value in the column you choose for the first parameter (Recipes[Recipe Name] in my case). If there are more than one distinct values, it'll return the second parameter you give it."
On the left hand side is a recipe list, and a search box. The list is just a standard table with an increased row padding level. The search box is a custom tool imported from the marketplace. This one allows me to enter any value to return all results containing that value (a wildcard search).
The URL at the very bottom is a card, with the same function as the Recipe name card. I'm using the DAX forumula SELECTEDVALUE() to return the URL of the selected recipe, otherwise it defaults to "URL will show here..."
The Dashboard Design
While not entirely a simplistic design, I tried to implement some of the principles I went over in my Google Design blog.
I sectioned off the report into three areas. The recipe side bar, the WordCloud area, and the Column chart/ingredient list area. Except for the WordCloud area, I increased the section title font far greater than the detail font to make them stand apart. I also made sure they were all consistent type of font.
I originally had the four column charts the same color, but it looked too plain. I think it looks more exciting with separate colors. What do you think? Do you have any tips for my design? I'd love to hear some feedback and suggestions! Feel free to use play around with the dashboard at the top of the page, or open it in a separate browser at PowerBI.com.
If you want to submit your own recipe, please let me know in the comments or send me an email!
If you are interested in my other designs, please check out my dashboard collection!
Building an Access database? Check out my ebook on Amazon!