One Multi-tabbed, Filterable Dashboard (2021-US-30MP-803)
Jul 6, 2021 01:05 PM
| Last Modified: Oct 13, 2021 02:51 PM
Kevin Doran, Senior Staff Engineer, Intel Corporation
Data collection teams within companies amass amazingly large amounts of information. And while these data are very valuable, it is not often tranlated into a format that is usuable by the recipient. Further compounding the problem is that different business units consume the information in different ways, which, unfortunately, often meants that valuable information is never consumed or utilized.
How does one best translate the needed information into an easy-to-use format? Furthermore, can statistically significant information be communicated through one interface? This paper describles the creation of one multi-tabbed, filterable dashboard to communicate computer laptop systems data to both architecture and engineering organizations.
Okay recording is now started you understand that this is being recorded for use in the JMP discovery conference and will be available publicly in the JMP user community do you give permission for this recording and use.
Yes, I do.
Hello, my name is Kevin Doran, and I am a systems engineer for the mainstream laptop computer segment for Intel Corporation.
And i'd like to share with you today my journey that resulted in a filterable, multi-tabbed dashboard that has changed the way that I communicate with my organization and how JMP was an incredibly important part of that journey.
So, to begin with, if I can leave you with with one message that you take away from today, and that is a filterable multi-tabbed JMP dashboard
is an excellent way to communicate an amazing amount of information
in a clear and efficient manner. So, as you work on your projects in the future, I really want to encourage you to think about using a multi-tabbed dashboard. To begin with, at the beginning, at the start of your project,
rather than oftentimes people think about dashboard and using it at the end of the project, or maybe a last option. This is something I really think that can really affect how you communicate and make it much more effective.
So many of us have the job of architect in the future, whether that's defining or designing products and services
to meet the perceived needs and wants of future customers. That you know what progress is my customer trying to make, and how can I fulfill that? And so oftentimes when we architect the future we want to look to the future. We're forward looking.
The challenge with the future is that it hasn't happened yet, and there's no data there to support any type of decisions you want to make.
So, since we don't have that information and we love looking at data as engineers and scientists, we then look to the past.
The challenge with the past is while it has data, it means that it's actually already happened and it's and it's finished with. So, in many and various means we try to build bridges between the past
to the future, because I think it's really important for us to understand the past in order to develop a better future.
I do you think that probably most people would agree that not all bridges are built the same. This is a picture of the Tacoma Narrows bridge back in 1940.
It comes to a very dramatic ending. So, if you'd like to go look up Tacoma Narrows Bridge in 1940 on YouTube you can kind of see the the ending of how this all finishes up. But,
the reason why I bring up the bridge analogy and apply it towards JMP is the fact that this bridge had a solid foundation to it.
And I think the foundation of a bridge as your JMP data table. You have to have that that solid data that can that complete data there in order to set your foundation. If you don't have that, you don't have a strong bridge to begin with.
I didn't think of the bridge structure itself as the JMP user interface that you make. In this case the bridge looked beautiful,
until the wind started to blow. And so, as you build your user interface, you may have a certain way of wanting to have that
user interface being used or manipulated, it may not always happen that way. There might be people who have different usage models and you want to try and build something robust not like the Tacoma Narrows. Everything was great to the wind started to blow and then bad things happened.
And then, finally, the transit across the bridge to me is how many people and how easy it is for people, then, to use your interface.
So, this didn't work out very well for them, but what I wanted to do with my organization was to build a bridge that look like this, something that had a strong foundation.
Something that had a very robust user interface, and something that was very easy to traverse. So, previous in my organization, we would use,
you know, best known methods. We would try and look at different computer board files. We would try and make our best guesses based on experience.
What I wanted to actually do is bring a user interface, that we can make statistically significant decisions,
and have that information searchable across multiple segments and filterable by important metrics. So, that would make not only having a firm database, but then also a solid bridge and something that was easy to use, so this was the goal of my journey.
So, I wanted to start with the past database bridge. Now, this was a bridge that was built a number of years ago. It met the needs at the time.
But, after several re-orgs, it no longer met the needs of my organization. The thing that's important here is that, while the interface was not very helpful anymore.
The actual data, the foundation, the data table that was behind this was very useful and it was very important. And so, I had a strong foundation to work with. My goal, then was, how do I build that new bridge, that new user interface into my organization and make it helpful for them?
So I'd like to take you a little bit on that journey and give you an idea on on the path that I took to make sure that people can consume my information both easily and accurately.
So I had this this database. I had my strong foundation, and then I started letting folks know in my organization that had this information.
As the mainstream system engineers or any way I can help them and set up some year over year visions.
And so, at that point, I started getting some questions and I went into JMP I create some tables or graphs or different types of reports.
And I'd answer their questions. And, then what would happen is those people would come back with some more questions and the new people would ask me questions.
And the challenge I ran into is the fact that I had so many snips that I was sending out, I felt like I was snip boy half the day and I go in and answer all these questions and send information out more would come in. And it just was
an untenable situation for me to sustain so I had to find a different way to communicate this information.
The answer to that for me was learning dashboarding.
I do think that dashboarding in general, my opinion seems to be an underutilized platform within JMP. So, again, if you haven't read into dashboarding please look into that.
But what I was able to do was learn dashboarding and put all of these pictures into one interface that I can provide to people. So, I was getting questions...I'll give an example of a display.
Hey, Kevin can you go ahead and tell me the screen sizes and the display resolutions in your mainstream segment from a year over year perspective.
And so, eventually, what started as snips turned into a dashboard. So, I was able to give information out about display and answer people's questions that way.
the challenge with the dashboard as I had created it is it didn't allow any further manipulation. So, it was a static display and then people start coming back saying well, what about this case and what about this situation.
And what I really needed to do at that point was provide a little more interactive feel for my dashboard.
And this actually was something that was very critical in my journey that I really want to share with you, and that is
You know first thing I did was add a local data filter. So, I think most people are very familiar with that and I was able to then have people manipulate the dashboard.
But something else really critical happened here and I really wanted to kind of impress this idea, and that is the fact that the data table that I had, that foundation,
had more than just my information in it. It had information in it about entry notebooks and high performance notebooks and premium notebooks and things like that.
And what I realized at that point is hey I can not only provide this dashboard,
not only for my mainstream segment, but I can then increase my scope or my purview,
increase my influence, and my networking, if I also provided this information for all of those other computer segments. So, at this point is a really important piece that
I took and subset at all the other segments, and then added that in as a filterable option in my dashboard. So, this was a really important piece that when you're going through this. If there's something in your data table
that allows you to expand your influence, I really want you to take a look at that and maybe use dashboarding and to help communicate that that expanded role.
Now, I had that and that was going really well. The challenge, then at that point was I was still confined to one dashboard, one topic. All of this was basically around the display platform attribute that I was, I was addressing.
And so, I then started getting questions about hey Kevin, can you tell me about RAM or what about graphics or what about platform mechanical metrics?
And so I thought, well, I can go ahead and take this display dashboard and then create that same infrastructure for all of my other platform metrics that I was being asked about.
At that point, then I had created multiple dashboards so when people would want an update on information,
I would end up sending them four to five JMP files and say hey all the information is here. You just need to open up four or five different files.
You need to go in and filter each one and good luck with that sort of thing and and that created another problem, because I was not making it easy
for my customer at all. I was sending out all these files, I had to go in and out and that just wasn't very easy.
So, at that point, I was at the end of my JMP knowledge, and so I contacted JMP support and gave them the idea of what I wanted to do. I really wanted to take all these multiple dashboards that were on my screen
and actually bring them together into one multi-tabbed dashboard and, to my knowledge, this has not been done before. And, thankfully through
the help of JMP I was able to go ahead and receive a JMP script that actually gave me that capability. And, now I'm able, through all of this, to try and send out one file
that gives people all the answers or hopefully gives them all the information that they need.
So that was really the piece of this. And the reason why I wanted to share this journey is to hopefully save you months of time that you can immediately go to that end state that is very effective and very efficient.
So, I do want to show you what the JMP script looks like I will be the first to admit that I am a script hacker. [self-deprecating laughter] I'm not a coder.
But, I can do a good job making tables and making graphs and then I save the script to the data table or I save it to a script window and I append them all together.
So, at this point, I really want to give a big shout out to Nick Holmes at JMP support he's the one who I gave him my problem statement we work through several iterations of this.
And, he came up with this script that has done an amazing job for me. And so, what I want to do to make it easy for you as well, and help you in your role,
is not only upload my presentation, but i'm going to also upload this script for you as well as long as you don't have any you know variable word
conflicts or anything else, like that you should have multiple scripts or multiple dashboards on your table
open and you should be able to run the script and it will combine it all for you, without needing to do anything without needing to change any of this code. So I hope that can be very helpful for you.
So I have wanted to then show you now that I had the script, I want to show you at least a screenshot of my dashboard.
This was able again to transform a lot of detailed information behind it. And, what I was able to do here on this very simple database or a simple interface
was I could segregate by segments. So, that's up in the top left that was the increase in my scope and my influence. So, you can go ahead and filter by mainstream or entries are high performance systems.
Then I had a bunch of filter level metrics that were important to my organization.
And then the real value of this is on the top, I have a tab by attribute I have five tabs up here right now that showed display RAM, graphics, CPU and platform information. And, all the user has to do is scroll through the tabs or scroll through the
filters and get an amazing amount of customization and very detailed data all from this this interface.
And, I think that there's a real beauty in simplicity here. Because something that looks I would say relatively this simple,
actually, has over 1 million rows of data behind it. So, I think again that's part of the beauty here is that I can take something that I think created, it was created fairly robustly,
and be able to provide a whole variety of scenarios and information to my user all through something that looks very simple to use. And I think that's something that's really important is to make it easy to use, for your for your customer and your organization.
So, I spend enough time in PowerPoint it's time to go the dashboard. I think that there's a lot of value to watching people on these these webinars to actually manipulate some of the JMP interface
and go through push buttons. I see a lot of value in that. So, I want to spend the rest of my time actually in JMP and showing you what I did.
I do want to start with the folks that have not dashboarded before. There are plenty of videos that actually show you how to go through that. I at least want to show you
a very brief example how I did it and least kind of give you an idea if you have not dashboarded before. So,
I have here four reports open. One table and three graph builders. And, what I want to now do is just put that into a dashboard. So, all you have to do is come to your data table,
and say File, New, Dashboard. And, it will come up with a number of different templates. Most of my stuff that i've done so far is just a two by two template.
You can pick any template or you can actually pick a template and modify it. So, what i'm going to do is i'm going to actually pick my two by two dashboard.
And you'll see I have my four reports and it's literally just a drag and drop. I'm going to go ahead and bring in my different reports.
Just into those boxes.
And now I have basically the template of my dashboard put together. Now I mentioned earlier that I also have a local data filter associated with this. And so, you'll see that there are these little thin lines around these different boxes here, and you can drag and drop different
boxes in here, and what I'm going to do is I'm actually going to drop the local data filter on as far left as I can go. Meaning that it will affect the
all four of these boxes. So, you can see that this local data filter will now apply to all four of these.
And I simply have to go to the hotspot or the red triangle and say run dashboard.
And it'll take just a few seconds, but what you'll see is then finally a dashboard with all of those features together.
You can then go ahead and change the heights and the aspect ratios and different things like that.
You have to manually at that point, and your local data filters and when that is ready to go ahead and be put into a script,
all you have to do is go to this hotspot, Save Script and I'm going to just save it to a script window. And then you get a very long
and detailed script that then you can simply cut and paste into your existing scripts. So, that's really all I did is I would create a dashboard.
I would say the save the script to the script window. And then what I would do is is select all copy it and then paste it into an existing
an existing script that I was appending. So that's how you go create a dashboard. Let me now spend a minute and show you how I created a JMP dashboard with a multi-tabbed dashboard. So, I'm going to go ahead and close all this out.
And so, give me just a second to do all that.
The system tray is not visible right now, so I can't close everything out
all at one time, but let me go ahead and do all this manually here.
Okay, so i'm going to open up my dashboard now.
And while that is loading, I want to make sure that as I'm communicating this, that part of that customer orientation that I think is very valuable
is to actually go through, and make it very easy for your customer to create the dashboard itself. So, what you'll see here in my dashboard is, I have one script
called Create CSA dashboard and I literally tell my customers.
Open this open this JMP file all you have to do is press the little green triangle. Don't worry about anything else. It will all be created automatically for you. So, that's something that can make it very easy. Don't make it complicated for your customer.
This takes about two minutes to create so what I thought would be valuable is actually go into my script that I created and kind of walk you through that. At least show you some things that I found to be very helpful.
This script is fairly long but it's broken into basically six parts. I have one part each for my five different dashboards.
And then my sixth part of this is then the base of the code that I shared with you from JMP support and it wraps it all together into one dashboard.
So what I chose to do here is, again, I have four reports with each dashboard and I need to go off and create each of those reports. So, what I did here is I named each report.
This is the display dashboard that i'm giving you an example for, and so I named it Display and it was a tabulate function.
And then you'll see my code that created the JMP table. And again, all I did here was I went ahead and created the table. I saved the script to the script window. And I copied it in here. That's all I did.
One other thing that I did as well that has been helpful for me is to actually save this final report to my data table.
And I really did this for two reasons. The first is that I still get
one off sort of questions that I need to manipulate a specific report and then send them back that custom information. So,
by creating or saving the script to the data table this allows me then just quickly go to that script press the button very quickly get my information manipulate it and send it back.
The other reason why I do this is actually for my customer. I occasionally get some questions about hey Kevin can you change the title on this on this display or this report can you change the color of this? And, if they're.
you know advanced enough within JMP to know how to do that, all they have to do is go ahead and manipulate that themselves. They get the information without even contacting me. So, it's sort of teaching that person how to fish.
They can go ahead and change those things by themselves. So I've tried to enable them for that as well.
So this is the report. Then what I do is I build my second report and do the same thing.
I build my third reports build the do the same thing here.
Build the fourth report. Do that so now I have all four reports put together.
And then, much like as I showed you previously with creating the dashboard, I literally just copied and pasted all of that script information into this script here to create the dashboard.
And then, what I did is I put a name to it to make sure that I knew all the names were different on each of the dashboards.
So, and then at the bottom after i've done that five times, I will show you down at the bottom, down here,
create the tab dashboard, and this is literally the the code that I showed you in the presentation and the code that will upload to the website as well. So, you'll have all this information here.
Now invariably you are going to need to change something. You're going to forget a title of something your want to change a color.
There's two ways to go and do that. One is you have to recreate the report itself the way you want it.
And then you could manually go in and recreate the entire dashboard, because the coding here actually has that report embedded in it. So, you can manually create it. Or what i've chosen to do that's been more
efficient for me is to actually go in create the new report and then change it into areas inside the script and then you're good to go. That way you keep all of your formatting your window sizing and all that the same as you'd like it.
So, say, for example, I'll go back to this table function – say I wanted to go off and create a different table or modify that table. All I would do is regenerate that report.
I would copy it into this area again to make sure the report gets regenerated. But then what I also have to do is take the same code
and then replace it in the JMP dashboarding scripts. So, I'll show you there's the little trick with, that is, you have to go out and look for, Ctrl-F, and you have to look for a
code called platform open paren. So, if you kind of see the table data here what I will do is I will look for the platform open paren.
And then you will see here inside the display dashboard the same code is in here. And so, you simply have to replace it there as well. So,
just remember if you're modifying something that's already existing you want to change it up in your report section, then you'll also want to change it in your in your dashboard section. Okay, so I now have my combined multi-tabbed dashboard.
You can see that it is a segregated or I have a filter on the segments. Again, I can pick mainstream, or entry, or high performance.
I have all my filters that are very important to me and my organization and then again there was something that's the real value with this
is the different tabs that are here. I have a tab on Display and, in this case, I have a table in here.
I have information on RAM so I get a treemap. That's a different way to display this. There's a lot of different variations of things you can put in here, and this is just some of my examples.
I can look at graphics information. There is CPU information and then something that I like within the platform is i'm real fan of the parallel plot.
That allows you to look at the variations, or at least the relationships between different X variables and then you'll see some box plots in here.
So, this is an example of a dashboard again there, there are a million rows or more than million rows of data behind this and I I think that's a fairly robust platform. It can really be manipulated very easily.
One thing I wanted to do in here for folks who want to pursue this is the Decision Tree platform. I would love to be able to create decision trees here that actually can manipulate through the data filters.
That is something that is now being supported in JMP 16. I don't have JMP 16 yet, so, I can't try it out. But anyway that platform is now added.
I think that would be incredibly valuable some sort of decision tree platform to come in here and actually have it affected by your local data filters.
So that is the, that is, the dashboard and so really and trying to end here – again just a reminder – that this is something that I really hope can be very powerful,
be a very effective and efficient way to communicate in your organization. And, I hope that this presentation and the associated JMP script can really help you and further your career. So, I thank you very much for your time.