How W e Used JMP Live to Understand the H ealth of JMP Use at our company.
Before we start getting into the real content of our presentation,
we're going to start by giving you guys a little background on ourselves.
I am Isabel and this is Katie.
We both work as statisticians at Regeneron Pharmaceuticals
at their industrial operations and product supply site, or IOPS.
The primary responsibility of our site is to manufacture the medicine for patients.
As statisticians, our main job here is to enable the site to use statistics.
We work with a variety of groups, from groups like process scientists,
manufacturing, quality control, and quality assurance.
A s you guys know, JMP is a powerful statistical tool.
Over the years, we have developed our JMP program as part of our strategy
for expanding statistical thinking at Regeneron.
A few years into our JMP program, our management came to us
and asked if our program was having a meaningful impact on the business
and are we being successful?
While we felt that we were,
we realized we didn't have any objective evidence to show that this was true.
We didn't really have any meaningful metrics to gage the health of our program.
So rather than just take a couple metrics and call it a day,
we decided to do this really intentionally.
We took a step back and realized
that we needed a mission and vision statement for our JMP program.
We asked ourselves, what are we trying to accomplish?
How are we actually aiding in our team and company goals?
First, we actually reviewed Regeneron's mission statement,
which is to repeatedly bring important new medicines
to patients with serious diseases.
Regeneron does this through the Regeneron way.
There's some more information about that in the presentation right here
and a link below if you want to learn more.
But after reviewing all of this information,
we came up with our JMP Program Mission and Vision to help
to accomplish Regeneron's mission by providing the site with the tools
and software knowledge to effectively and efficiently organize, analyze,
and report data that will guide decision making and process understanding.
After we developed our mission and vision,
it was time to start determining our metrics.
We started by asking ourselves some questions.
The first one being,
what benefits are we actually providing to our business for Regeneron?
We realized that the biggest benefit to the business is really coming from how
the JMP users at our company are using JMP.
So then we started to ask ourselves,
"Well, how are we supporting those JMP users?"
Then, what must we, on this JMP program team,
excel at in order to support these users,
and how should we develop and grow to continue to support the company?
This resulted in us finding these four different areas:
company benefit, JMP user benefit, internal processes learning and growth.
We realized that they all fit into each other.
A bit of like a leading and lagging indicator stuff here.
We have our learning and growth of our JMP team,
which is going to help our internal processes.
If our internal processes are running well,
we should have a lot of benefits to our JMP users.
Finally, if our JMP users are using JMP,
well, there should be a big benefit to the company.
So with these four different areas,
we identified different objectives that we want to work on or monitor.
We mapped out similar to before, the relationship between these objectives.
The ones at the bottom are for the learning,
the pink ones in the middle are for our internal processes,
the green are for our JMP users
and the top there on the blue are for the company benefits.
As an example here,
one of the objectives for our JMP user benefits is providing custom JMP tools.
A portion of our program is looking at the development and implementation
of JMP custom tools through JMP scripts.
Some examples of some of the scripts we do might be doing new
and new outlier tests to increase the functionality of JMP
to our Regeneron JMP users or automating some of their routine analyzes.
We can map the relationship how this directly benefits those company
area of ensuring high quality analysis and increased efficiency.
Once we have our objectives in place, we sat down and tried to figure out
the different measurements or metrics for each objective.
An example here, again, going back to that provide custom JMP tools objective,
we started to look at the number of custom scripts
that were actually available,
the number of script uses and the utilization rate of our script users,
what percent are actively using the scripts.
Once all that was done,
we had a bunch of metrics and we started to review those metrics
and realized we didn't have the data for a lot of these metrics.
This actually became one of the most time- consuming parts of this process,
was identifying the different data sources and starting to collect the data
to make sure we had these robust metrics for our program.
Then finally we were able to,
as we come up with projects and initiatives,
map those to the objectives so we're able to make sure
that these projects and initiatives are actually aiding at our mission vision.
Once we had all of that outlined,
it was time to start mapping out how we want our metrics to look.
Before going into JMP,
we thought it would be best to come up with a game plan
of how we want things to look at the end.
We actually drew out the way that some metrics should look.
This is a great way to make sure everything
is going to look good in the end, fit together.
When doing this part, it's going to be really important to maybe look online
and review some good practices when it comes to things like accessibility
or good visuals for metrics,
keeping in mind things like color and font size
and the directionality of text are important.
Just make sure that all of your users can view your metrics and understand them.
At that point, we had our game plan for how we want our metrics to look
for our JMP program.
It was time to jump over to JMP and start working these out.
Katie's going to demonstrate how our flow through JMP
getting these metrics together and then publishing to JMP Live,
and she's going to be using that example we talked about earlier,
which is looking at the number of script uses.
All right. Thanks, Isabel.
Now that Isabel's given an overview of the hard part,
the time where we have to do a lot of thinking
to make sure that we're coming up with meaningful metrics,
I get to do the fun part, which is to demo how easy this can be
from start to finish to build out our dashboard in JMP.
A couple of things we're going to touch on,
we're going to touch on a bunch of different tools at a pretty high level.
Hopefully, it brings some awareness to some things that are available for you
and how you can piece it all together to get from start to finish,
from your data to your JMP Live report.
If you have questions,
I guess this is recording, so we'll have to take them at another time.
Some of the things we're going to cover in the overview
is the connecting to the data sources.
Like Isabel mentioned, this is a challenge,
is identifying which sources we're going to connect to.
We're going to connect to a couple different items here,
one being a text file and one being an Excel file.
Data cleanup. Once we pull that data in,
usually, there's some kind of modification and cleanup that's involved.
We can do that all within the JMP data table.
Then we'll summarize and visualize the data,
create the graphics that we want to display for our metrics,
and then easily publish them to JMP Live
so that we can share them with other users.
Once we have completed that process and workflow,
there's some cool tools that we can use so that we can recreate that process
with a click of a button so that we can generate these metrics on a routine basis.
We can also take that automated script
and workflow and package it in an add in so that we can share it with other users.
I'm going to start off with the import of our text file.
If I go to open and I navigate to where the file is located,
I have to tell JMP that I also want it to display text files.
I can select the file that I'm interested in importing.
The first one that we're going to pull from is called our usage log.
We have, as Isabel mentioned, our validated JMP scripts.
These are scripts that people can access through an add- in.
But every time they use that tool in the add- in,
it will log the use of that script in a controlled file.
So this is called our usage log.
If we open up that file,
we can see that it's imported all of our data, as we would expect,
into a JMP data table.
To start, we're just going to talk through some of the columns
that are included in our data set.
We have the script name,
we have the username, the JMP version, a date, timestamp, and the data tables.
This is all of the things that get logged every time someone executes a script
in our validated script environment.
Some things we might want to clean up here.
To start, I'm going to modify the script name.
I know that there's some things that have changed
with the naming of the scripts throughout their use,
so I just want to clean them up so they get grouped together correctly
and we can look at for any other little errors too,
that we can clean up along the way.
Here we have our list of script names
and then if we need to recode them,
we can select them over here to change the name.
The first one I'm going to change is this Old Outlier Test Name.
We had originally had a name for a script.
We changed it to just Outlier Test.
I want to make sure that all those get counted together
because those were technically the same script.
I can just rename it here,
rename it Outlier Test.
Now it will indicate that those two are now going to be grouped together.
Also, just looking through, I can see that there's a little bit of a typo here.
That simulation has a capital I.
I don't want to have to keep cleaning this up
all throughout the data table and things later on.
I'm just going to tell it in the recode that I want it to correct
that to be a lowercase I.
When we're happy with that, we can hit Okay ,
you can see it's created a new column here
for the script names of their cleaned- up data file.
I don't love the name script name too,
so I'm just going to grab that and change it.
Instead, I just want it to display script
descriptive enough and I don't have to explain why
there's a two in front of it when we're looking at our metrics.
So we'll clean that up now.
Now we're still looking at the rows representing each use of our script.
We could just summarize this in different ways, but it might be helpful
when we go to do some digging into this data later on
to also have some information related to the different departments
that we're running our script.
I know we want to pull in that information.
We're going to go to our next data table.
This one we're going to import is an Excel file.
I will say that when we're routinely running these metrics,
we do actually connect directly to the data mart that houses this data
so we can pull the most update version of this file anytime.
For this example, we had to pull a static file
so that we could recode for privacy and security.
To import that file, I'm going to click on the file,
and I don't think you always have to do this,
but just to be safe, I'm going to open using the Excel Wizard.
One of the nice things about the Excel Wizard
is it gives you the ability to preview your file before you import.
Now, I know that this file I created this file,
so I know that it's a nice clean file with the right headings
and the data all ready to go just as I would want it to import.
But just in case, a lot of times we receive files
from different people in all different formats with merged headings.
One of the nice things about this tool is you can make some of those
modifications to clean up the data and import it correctly on the first try.
There's a couple more options if we click Next.
If you have any hidden rows,
you can tell JMP how you want to handle it.
Again, all this is a pretty clean, easy file.
When I know that it's how I want,
I'll make sure my sheet is selected and select Import.
Just to take a look at this data set,
I now have the first and last name of the users, the username,
and then I also have the information about their location and their department.
It would be helpful if I could get this information merged into my usage log file
so that I can break down my analysis on the usage by the location and department.
I'm going to take advantage of the update tool.
There's a bunch of different tools available in the tables,
the Tables menu here that allow you to make
modifications and manipulations to your data table.
I suggest browsing through it when you have a lot of data cleanup to do
or trying to get creative combining different files.
But this one's pretty simple.
We're just going to go to the update because we would like to update this file,
the usage log with information from the HR roster.
So I selected my HR roster,
and now I'm just going to tell JMP that I want to update.
With selected columns, I don't need all that information.
The first and last name and username is pretty redundant.
I'm just going to grab the location and department.
Then from the main table, I don't really want anything to update.
I want that to be left alone.
I do have to tell JMP how I want to link up the rows.
I'm just going to indicate that I want the usernames to match by row
and we can hit okay.
You can see now that the usage log table that we imported originally
has been updated to include the location and department.
Now that I have the information that I want all in one place,
I can start to play around with the different graphics for the metrics.
So here I'm going to go to Graph, Graph Builder,
which is a great tool to drag and drop whether you know
what you're looking for or if you like to explore different ideas.
It's really quick and easy to make adjustments and changes
to get a feel for how you want your metrics to be displayed.
For this first example, we're just going to summarize by department.
I'm going to grab the department group and put it down here at the X.
Pretty straightforward, just a simple bar chart.
It'll pull up by default,
but I can see overall the amount of use between the different departments.
Maybe I want a little more granularity to this or more information on this.
Maybe I want to see what this looked like year over year.
Has this been consistent year over year?
A quick change that I'll make is that I'm going to add an overlay by year.
Notice we don't have a year column available.
One thing we could do is go back to our data table and create it.
But we're already too far along.
So I think I'm just going to create a temporary column,
which I can do by just right clicking on the date time column.
Going to date time and selecting year.
Now it creates a temporary column.
Notice it didn't add it to the full data table,
but I can use it here as an overlay in my graph.
So quick and easy click modification.
Now I just have a little bit more information of how the uses compare
from one year to the next.
You can see that the overall drop for Department 2,
there's been a drop for Department 2 with the use of the script in general.
Maybe we would dig into that a little bit more.
But I think for now, I'm happy with how that graph came out
so I'm just going to hit Okay to get rid of that control panel
and the first one's done.
Another thing we might want to look at is the use of the scripts over time.
I'll go back to my Graph Builder.
Then I'm just going to put…
Before I just throw the date time variable on the x-axis,
I'm going to create another category.
I'd like to see it summarized by week over year, year and then the week.
So I'm going to go to the date time again,
create a temporary column, and select your week.
If I take that and put it on the x-axis, you can see that it's in sorted order.
We have the amount of use of each of the scripts for each week of the year.
So a total count of what the use is.
It's getting a little messy with the bars.
It might be more appropriate to use a line in this case
than when it's like the line icon.
You can create combinations of these if you want some overlaying.
Sometimes it makes your charts too busy.
We have a lot of information on here already,
so I think I'm going to leave it as is,
but there's a lot of cool options up there.
Now what we have is just a line that shows the overall use of the scripts.
But what I'd really like to know is if there's any trends or changes
that we're seeing from one script to the next.
I want to use my newly created column and put that in the overlay.
Now I have a separate line for each of the scripts over time,
I'm going to click Done,
because I think I have everything laid out the way that I want.
But it's also four years worth of data.
Maybe that's not what I want to be looking at just as a snapshot.
To give myself the option to filter on the date,
I am going to go and add in a local data filter.
If you click on the lyric, L ocal Data F ilter,
we can choose from the list of columns that we have.
But again, I'm going to create that temporary column to include the year.
If I click the year, plus sign, now I have the ability to filter.
One of the things I don't like is that it's on this continuous scale
where it'd be much easier if I could just click on
the bars associated with each year.
I can actually go and tell JMP that I want this temporary column
to have a modeling type that's nominal ordinal
and now I can apply the filter so I can just look at 2023
if I want to look over the past year.
If I want to look over the past two years, I can select both.
But it's a nice feature to drill down into the different sets of data.
So now I have my two graphs for my metrics,
but it's not super helpful if I'm the only one who can see them.
This is where we're going to publish them to JMP Live
so that we can share with other users.
To publish, you just go to the file menu,
select Publish and Publish Reports to JMP Live
just a second while it gets things ready, and then we can select,
in this case, I'm going to publish both of these reports that we just created.
Next, I can select the location where I want them to go.
I've created a file for JMP Discovery, so that's where we're going to place them.
If I need to rename anything, we can do it here.
I'll leave them default for now.
Also, if you wanted to add any descriptions,
any clarifying information, a lot of times with metrics,
there might be little nuances to how you summarized or calculated the data.
You can bring clarity to any of that using the description field.
When we're ready, we'll hit Publish.
Now it's successfully published the reports.
If we want to go see it, we can click the Open buttons.
We'll do that just to go take a look.
Here is our first post that came up.
You'll notice that it matches the graph that we just created
using the Graph Builder.
Now it's published there for everyone to see.
If anyone wants to go and check on the metrics related to department
that's available as well.
Copy this.
That's the workflow to how to get from our data set
all the way to our JMP Live report from start to finish.
But typically we don't just do a one- and- done metric analysis.
It's something that we'd like to repeat on a routine cadence
and make sure that we have up- to- date data
and are discussing with our team routinely.
So ideally, we'd like to make this super easy to rerun
that's where the JMP workflow can really save us some time.
I'm going to close out of all this just to clean up my files a little bit.
Don't need to save it.
One of the things that I did before we started the presentation
was open up a new workflow.
If you open up a workflow and turn on the Workflow Builder
by just clicking the red button, it will actually record all the tasks
that you perform within JMP in the sequence that you performed them.
Pretty neat tool
because I really didn't have to do anything
to build out this automated workflow other than turn on the button.
To create a new one, you would just go File, N ew and Workflow.
One of the things you notice that's also a nice feature is this JMP Log History.
You see, I have a blank workflow here
because I haven't actually recorded anything,
but maybe I had performed steps that I intended to record
but just forgot to hit the button.
It actually has a log of all of your activity stored down below.
You can always go in and then drag these up to the top
if you actually wanted to include them in your recording.
I'm going to close out of this one
and just to walk through quickly, this is a summary again of the steps
that we had just performed, including the recode.
We did our import, we did our recode,
even just changing the name of the column to Script
to make sure that that's consistent.
The importing of the HR roster from Excel,
updating the data table, building out our reports and then publishing to JMP Live.
We even have closing up those data tables that was performed at the end.
One of the nice things too,
if you need to make any modifications to these
or you're trying your hand at some JMP Scripting, you can double- click,
it will actually open up to link you to the JMP script
that's included in order to perform that task.
So if you need to make any modifications or adjustments
or you just want to copy out this script to put into another location,
it's all available right here and super easy to pull or modify.
The last thing I want to add in here
is that if you do have any custom code that you'd like to include,
you can click on the drop- down up here and say Add a Custom Action.
Here, you can type out any code that you would like.
Maybe at the end, after closing all these tables,
I wanted to actually open up the JMP Live web page.
I could just paste in the web function, paste in the URL
and then when I execute this step,
it will actually go and open up the web page with our analysis.
That's building it out start to finish.
Then one thing we can do from here, I had mentioned
it would be really nice if we could package this
so that we can share it with other users.
I may not be the only person that needs to run and update these metrics.
If you click on the layer up here,
you can save all of this entire workflow and all of the steps associated with it
into a single script file.
You can either save this file and share it,
or you can take advantage of the JMP A dd-I ns
and package the script right within the Add-I n Menu
so that people can run it right from their JMP desktop.
All they have to do is double- click to install the Add-I n
and they would be able to find it along with all the other menus.
I have one for JMP Discovery
and they can re- execute the metrics by just clicking a button.
Those go through all the steps.
If you are savvy with JMP Scripting,
you could make some of these flashing tables and things invisible.
You can incorporate a lot of your own custom items
and there they are, brand new reports, updated just a few seconds ago.
There's our department bar chart and then our use over time.
I know that was a quick overview,
but we touched on a lot of different things at a high level
and tried to illustrate how we could connect them all together.
Starting with our data source,
cleaning up the data files, building out our visualizations
and summaries, and then publishing to JMP Live.
Optional, if you wanted to turn on that workflow builder,
you can record all those steps so you can repeat them easily later on,
and you can package it up in an add- in
so that you could share with other users to run the metrics as well.
Anything to add before we wrap it up, Isabel?
Nope. Thanks, Katie.
We hope you guys learned a lot about identifying metrics
and actually implementing your metrics and visuals,
using JMP and then publishing to JMP Live.
Thanks, everybody.