Search
Close this search box.
Build Your Digital Infrastructure. Register for the ELEV8 2024 Event Today.
By Tebello Masedi
09 December 2020

How-to: Flow KPI projection

Share

Transcript

00:00
Lenny
Okay, I think I’m going to start. I see there’s a few people already joined, so I think I’ll be kicking it off here this afternoon. Thanks again. For everybody that joined. My name is Lenny. I’m with flow software. Joining me today on the panel as well is Clarice, marketing manager at Flow Software, as well as Graham Welton, the MD. Me. Thank you guys for joining me for the session today as well. A little bit about tech Thursdays, obviously, it is where I tackle a little bit of a technical topic inside of the flow software solution. I show you guys how to configure it, and we get a little bit more into the nuts and bolts of how our solution works. 


00:45
Lenny
Last week we had a session, or the last time you probably heard from me, we had a session around how do I get web API data or data from a restful API call inside of flow and how to utilize data from potentially IoT kind of sources, weather data, potentially from your ERP systems that’s available on a web API to get that type of data inside of flow and really utilize that to create very meaningful KPIs inside of the system. Today, what we’re going to cover is a little bit of projections. So it’s all about how can I utilize my historical data, obviously, that I’ve cleansed and turned into information using the platform, and how I can project that a little bit into the future. 


01:37
Lenny
It’s a little bit of a cliche, we always say it, that you don’t know where you’re going, if you don’t know where you’ve been. And I’m going to show you guys that concept of how we can really take our data that gets generated and turn it into meaningful information in various ways and actually projecting that into the future to see if you can make your plans, your targets, et cetera. How long stock in a tank level will last if you keep depleting it at the current rate, et cetera. So we’re going to explore a little bit how to create these type of KPIs and calculations inside of flow. But before we do that, let’s talk about a very typical kind of user requirement. It’s something that I get quite a lot on. The time on the support call is all about this. 


02:26
Lenny
It’s about how can I take my data and transform it. We talk about this a lot in flow. It’s something that we advocate quite a lot, is to turn data into minimal information or actionable information. It’s not just about flashing a number on a screen anymore. It’s actually giving you a number that you can act on. And with that, to institutionalize your knowledge, your tribal knowledge, as we call it, into a platform that you can be more predictive or more productive, as predicted, at the end of the day. So let’s look at a bit of a user case. All right, so this is something I get quite a lot. A client will call me and you’ll say, you know what, Lenny? 


03:10
Lenny
I would love to get a stock take report or a tank level report of the current stock or the current levels that’s in my tanks. I said, okay, cool. That’s great. So, very simple requirements is all I want is a tank level dashboard. 


03:28
Lenny
Cool. 


03:30
Lenny
Talk a little bit about the requirements. And the requirements is EV. All I want to know is, what is the current level of my tank? I wanted to be real time, or it must be live. That’s something we get a lot. I want to be able to see at this exact point in time, what is the current level inside of my tank. Okay, so that’s cool. We can definitely do that. So we can go and put a number on the screen. So, currently, the number on that tank is 45.2324%. Great. 


04:04
Lenny
Cool. 


04:05
Lenny
Can you honestly tell me if it’s good or bad now? You might tell me, Lenny, you tell this to me every week. Of course. I know it’s good or bad. I know if I’ve got 50% left in my tank, that I would easily be able to make all my production orders that I’ve got at hand until the end of the week. That’s great. It’s because you’ve got experience, and all of that tribal knowledge of how your plant is operating is inside of yourself. It’s in your brain. It’s with you, obviously, until Elon Musk neuralink is up and running and we can upload all our brains and all of our knowledge into the cloud or something. That knowledge sits with you. 


04:51
Lenny
One of the movies that I loved when I grew up, probably giving my age away a little bit, is it’s Bill and Teg’s bogus adventure. It’s starring Keanu Reeves. And obviously the Grim Reaper is in that movie. And there’s a saying where the grim reaper says, doesn’t matter if you’re a king or a street sweeper, sooner or later, you will meet the reaper. Obviously, one other time, you’re going to leave sight, right? You might not leave the way that you intended, but that knowledge is going to go with you. And we need to start to take our tribal knowledge and put it into the systems that we can help and move that knowledge into systems that we can predict these type of values more frequently and use that to run our plants more effectively. 


05:34
Lenny
So obviously I want to know, is it half full or is it half empty? I don’t know what type of person you are. I’m probably a little bit more of a half full type of guy. So yeah, I’ve got my little glass of water here. It’s half full. I know it’s going to last me until the end of the webinar, so I’m still cool. But the point is that I want to institutionalize that knowledge that I’ve got here going today. So I want to know, is it busy increasing or decreasing? I want to know am I busy taking positive stock into this tank? I’m starting depleting my stock level. I want to know how long is this stock going to last? 


06:15
Lenny
And I want to know with that amount of stock that I’m currently in that tank level or the way that I’m producing and replenishing my stock, will I actually make my production target at the end of the day? Denny, that’s all cool. It’s very simple. All we need to do is we need to have a historical view on this tank level. So all we need to do is we need to show what the historical values are. And you’re 100% correct. So what you can do is you can add a little bit of an historical view on the data as it gets in and out of your tank, but that’s not enough. 


06:50
Lenny
So if you look at that little graph that I’ve got there, honestly, I can’t get a clear picture if this thing is going in an upwards trend, if it’s in a downward trend, I don’t actually know if this tank is actually filling up or not. The data is too high resolution for me to actually make a decision based on the raw historical data that’s plotted in that little sparkline trend. So I can do that, I can plot the historical values next to my value, but it does not actually paint a very clear picture of what I actually need to do or if I need to increase production or not, if I’m going to make my production targets at the end of the day. So again, we need to clean that data. 


07:34
Lenny
And it’s something that I talk about a lot in these webinar series is we cannot look at values in isolation. We need to be able to clean the data to get a clearer picture. Now, if we clean the data in our historical view, in this case, maybe just performing a very simple average on that data, we can clearly see that is moving in an upward direction. So I’m actually starting to increase the stock level that I’ve got in my tank. So very important, guys, is that we use these concepts in the way that we drive our decisions by looking at these historical kind of KPIs to make our decisions on. Now, from a flow perspective, we’ve got quite a few techniques that we can play with to actually help you guys and to build meaningful dashboards to actually drive this point home. 


08:21
Lenny
So this screen that I’ve got here is an actual flow dashboard. You can notice there’s a whole bunch of KPIs text, KPIs, et cetera, that I’ve built on top of it. And there’s a few things that I can do in flow that can really help me to see where I’m actually heading from a production perspective and not just looking at that one single value of what is the current stock or what is my current production number. First thing that we can do, it’s a very simple thing that we can do in flow, and that is to actually create what we call a moving average calculation. So I can very simple, apply a little bit of math, look at historical values that flow, already cleansed, perform what we call a secondary aggregation on those values, in this case, doing a moving average on those values. 


09:09
Lenny
And we can then very easily see and remove the little bit of the noise to see if I’m actually producing above or below what my normal kind of moving average is. So that’s a very simple thing that we can do to highlight values in that fashion. Another thing that we can do is we can also look at the delta. So I can look at a previous value in flow, I can look at what the current value is, and I can do a very simple kind of equation to say, well, are you negative or are you positive from a delta perspective? So are you actually increasing from the previous hour, or are you decreasing from the previous hours? And that’s also a very good indication that you either are depleting or replenishing your stock inside of that tank. 


09:53
Lenny
Another thing that we can obviously do is add those exceptions based on that. So I can add an exception on my current production rate if I’m below or above my moving average, just to see if things are going a little bit south, depending on what that moving average is. And we obviously use our limits and our exception capability to handle that as well. Now, you’ll notice that I’ve got a little bit of these green lines on my charts as well. And that’s obviously where I can now apply very simple regression analysis on the data. So the regression analysis is obviously done on the front end of the charts, and I can look at the current data that’s loaded on the front end, and I can utilize that to do a very simple regression analysis. 


10:39
Lenny
So, obviously, if I’m looking at that production totals that I’ve got on the screen there, it’s definitely going a little bit in a downward spiral. So obviously, something is wrong, and I’m actually doing less and less production as the days go on. A secondary function that we’ve got in flow is what we call projections. We mainly use projections as a capability for people to add in their actual targets. From a production perspective, obviously, the planning department, they would have planned out for the year already what the targets potentially for the month must be, what the targets for half year must be, et cetera. And we can create these future time buckets and flow and actually add those projections or targets inside of the system, but we can also use the projection kind of concept to actually work out a run rate. 


11:32
Lenny
For the guys that’s familiar with cricket, there’s always that concept of where are you going to end up after the 50 overs, depending on how good your batsmen or bowlers are. And that’s exactly what we can do in flow. We can utilize that same concept of a run rate, and we can actually project that run rate into the future. So we can actually give you a number to say if you carry on like you’re carrying on now. This is the potential number that you might hit at the end of the shift or the end of the day, based on your historical kind of production rate. And I’ll show you guys how I’m going to do that within the tool itself. All right, with all of that said and done, that’s all the PowerPoint that I’ve got for today’s session. 


12:18
Lenny
So I’m going to go straight into demo mode here to show you guys how we use all of these concepts within the tool itself. I’m going to go to my little virtual machine that I’ve got here. Obviously, I’ve got the tool already open, the flow configuration tool, and I’ve got a very simple model here that obviously shows me all of my different components in my production facility. This case, I’ve got a whole bunch of wells, oil and gas wells. So I’ve modeled that out. So the flow model is a place where I can go and create a unified namespace for all of the information and KPIs that I want to measure from my production facility, I also hooked it up to a whole bunch of different historians. 


13:02
Lenny
So you notice that I’ve got a whole bunch of historians here, and I’ve got my little process historian here, and I’m busy historizing some data in here. And here’s exactly that point. I’ve got a level transmitter here on a tank. If I double click on that, there’s the raw data, and that’s typically what you will see in a historian. All of these mass, amount of raw data points that’s getting historized. And honestly, if I look at this tank level here, I don’t get a clear picture if it actually is increasing or decreasing, just looking at the vast amount of data points that get historized inside of my historian. So let’s use this little tank level here to see exactly what’s happening and what’s going on, and if we can actually get a clearer picture if this thing is increasing or decreasing. 


13:51
Lenny
All right, I’m just going to close this data preview here. Just to mention, flow never, ever replicates this raw data. This is just a view inside of the historian just to show you what that actual data is looking like and what the data is going to look like that you’re going to play with when you start building out your calculations. All right, I’m going to create a new little area here for me tonight just for this webinar so that I don’t screw up my entire model that I’ve got going here. And if I can spell webinar, that will be great. So there’s my webinar, and the first thing that I’m going to actually build out in tonight’s webinar is exactly that. I want to build out this tank level metric to see if my tank level is actually decreasing or increasing. 


14:36
Lenny
As always, I will take the tag that we’ve browsing inside of our namespace or inside of a historian, and I’m just going to drag it across to create a KPI based on that historical information. So this is going to be my level. And I want to know, obviously, what is the current tank level in my tank. So from a retrieval perspective, what I’m going to do here is I’m going to change it to the last value in the hour. So that’s going to give me kind of the most up to date value of what that level in the tank is by using the last retrieval. One of the first webinars I’ve done in this series is talking about all these different aggregation methods. Please check it out as well. 


15:23
Lenny
I go through all of the different aggregations methods inside of flow to see what they all do and in what situations you will be using these different aggregation methods. 


15:33
Lenny
Cool. 


15:34
Lenny
So there we go. And that’s my current value, right? So currently inside of my tank, I’ve got a value of 55%. Great. Let’s build out the requirement of the client. Let’s put this on a report. So I’m going to go to my reporting section here, going to create a new dashboard here in my webinar folder. And remember, the client said all he wants is the number of the current tank level, right? So what I’m going to do is I’m going to go and add a widget. So we’ve got a whole bunch of different chart components in flow here. But if I just want to show what the actual current value of something is, I can potentially use a widget. In this case, the widget updates every hour from a time interval perspective. 


16:23
Lenny
So I’m going to go and add this hourly widget to my screen here, going to resize it because all the client wanted was the actual number. So I’m going to resize this widget here. I’m going to open it up, and I’m going to go and add my current tank level to the widget. Now, on the widget configuration, I do have a whole bunch of options where I can go and define what is the type of widget that I want to display. In this case, I just want to show the text. So I’m just going to change this to the text of the current value. Great. Let’s go to my actual dashboard. So let’s go and open up this report here. And that’s going to go and load it into my dashboard. And there we go. 


17:11
Lenny
Widget telling me what the current tank level is, 55%. So technically, that’s all I had to do for the client, right. Because all he wanted at the end of the day is the actual tank level. So there we go. But let’s enhance this a little bit. Let’s give him a little bit more information to actually see what’s going on. You remember in my presentation, I said, okay, but let’s just look at the historical value for this kind of level inside of my chart. Cool, let’s do that. Let’s move the widget a little bit to the side here, and let’s add pass through charts. Now, the pass through chart is a chart option that we’ve got inside the flow that will actually go and plot you the historical values from the data source itself. So it’s not aggregated. It is the actual raw values. 


18:02
Lenny
Again, guys, we do not replicate this. We just pass it from the historian into the charting component, hence the name, the top pass through chart. So I’m going to add that to my screen, just give it a little bit less real estate. Let’s open that up. And I’m going to add this hour measure again to this. And let’s say all I want is not the whole day’s worth of data. That’s a lot of raw data. Let’s say all I want is the last hours worth of data. So that will then plot me my hours worth of data on the screen. Let’s refresh that and let’s see what that does. 


18:44
Lenny
Cool. 


18:45
Lenny
There we go. There’s my tank level. It sits at 55%. And there’s my historical values that I’ve got from my raw tank inside of my story. 


18:56
Lenny
Cool. 


18:57
Lenny
Again, I don’t get a real clear picture of what’s happening. Right. I don’t know if it’s really increasing or decreasing by just looking at the number and looking at the raw historical points that’s coming from my historian. So let’s enhance this a little bit more. All right, so let’s change my widget here from being a text widget to actually show a little bit more of historical data. So I’m going to open up my widget and I’m going to actually change it from a text widget to just a normal chart widget in this case. So that will actually plot me a chart. And what I’m also going to do is I’m going to say, you know what, I don’t want to align graph. I want to have an area shape to my graph. 


19:46
Lenny
And I’m just going to change the color here a little bit to work a little bit better with the dark theme. So I’m going to change that to a little bit of a blue color and I’m going to give it a little bit of opacity that it doesn’t scream at me. 


20:00
Lenny
Cool. 


20:02
Lenny
All I have to do, let’s go back to my dashboard, let’s refresh. And there we go. I don’t have a lot of data. I only started up this historian this morning, but there you can already see I’m getting a little bit more clearer picture on the historical data as it’s coming in. Right. So I can see it was 52%. It’s actually slowly starting to increase as I’m going through my historical KPIs. Perfect. That’s great. One thing that we’ve got in flow that is quite nifty is that I can actually look at a resolution of data lower than an hour and plot that on my data as well. What do I mean with that? Some people might say, you know what, Lenny? An hour’s data is just not high resolution enough. 


20:54
Lenny
Can I not at least see what the tank is doing potentially every, I don’t know, five minutes, et cetera. And definitely we can. So the lowest resolution that flow can go is obviously every five minutes it can do a calculation. So what I’m going to do is I’m going to change my defaults here at the top and I’m going to change that to be minutely measures. So minutely KPIs. And I’m going to go and add my historical tag for my level again. All right, so I’m going to take that level, I’m going to drag it across, and in this case, this is going to be my level, but it’s going to be updated every five minutes just to distinguish between them. 


21:36
Lenny
Again, I’m going to look at the last value of every five minutes because that is going to give me the most or the better kind of resolution of what the last value for that five minute time period is. Perfect. I’m going to deploy that out. And now what I can actually do, when it’s done through all the historical data, did the backfilling and gave me what the actual result is I can actually marry this five minutely value to my historical hourly widget, which is very cool. Sorry. It’s just running through, getting all of the data and backfilling through my historian. And there we go. 


22:16
Lenny
Cool. 


22:17
Lenny
So on my widget, what I now can actually do is if I go to the actual KPI that I added onto my widget and I select on its properties, you’ll notice that there is a concept that we can additional detail to this widget. And you’ll notice that we’ve got a concept here of you can add what we call a latest value. Now, the latest value is anything that is lower than the current time period. Currently I’m looking at every hour. What was the last value in that tank? But I can now look at smaller time intervals. So I can actually go and add this five minutely update into this latest column here. And that will now show me what is the tank level, the latest value of this five minutely in conjunction with the hourly historical values that I’ve got. 


23:11
Lenny
All right, so if I refresh my chart now, you’ll notice that it will extend it. So I’ve still got my historical data, which is updated every hour. But the value that I’m plotting and the value that I’m actually showing here is this last value that’s updating every five minutes. So this is quite powerful. I can get an idea how this updates every five minutes and what is the actual hourly data versus the historical data that’s been calculated. So that’s quite powerful. It gives you kind of a glimpse into the future of how that tank is operating in a little bit of a higher time frequency than looking at it every hour. So that’s quite a neat feature that we’ve got in the tool to do that as well. Great. All right, now let’s look at something else. 


24:04
Lenny
Is the tank level actually increasing or decreasing? And we can do that very simple with a very simple calculation. And that’s by performing the delta. Now, I don’t want the delta on the raw values. I already got these hourly values. That’s nice, clean and nicely filtered. So I would like to perform an additional aggregation on the already calculated hourly values. So what I’m going to do inside of flow here is I’m going to take these hourly values and I’m just going to go and create a calculation of it. So let me zoom in here a little bit. All right, so what I’m going to do is I’m going to take my hourly tank level values and I’m going to drag it onto the calculator option here. All right? And this is going to be my tank level delta. 


24:55
Lenny
And it’s going to be a very simple calculation that I do, and I can actually move it underneath this guy just to clean my model up a little bit, just to give it a nice hierarchical kind of structure. So let’s open up this measure here or this KPI, and let’s look at the retrieval of this guy. So currently what I’ve got is I’ve got the level of the tank. Now, to perform a delta, all I really have to do is, I have to say, okay, what is the difference between the previous hours value and the current hours value? Right? 


25:34
Lenny
And flow’s got this cool feature that if I add the level into the calculation again, so if I drag this guy into the calculation again, it will immediately kind of see that I am looking at a period that’s 1 hour back, hence the minus one. I just dragged in the wrong one. Sorry about that. I actually have to drag in my original level again. 


25:59
Lenny
Cool. 


25:59
Lenny
So there we go. I’ve got the current hour or the previous hours value and the hour before that. So one time period back. And all I have to do to perform a delta is I have to say, you know what? Take the current value and minus the previous value as well. 


26:20
Lenny
Cool. 


26:21
Lenny
That will now tell me if obviously it’s either going to be a negative value if it is going down, and obviously it’s going to be a positive value if it’s going to be increasing. So I can even make this a little bit more flexible so I can say, you know what, if this is less than zero, then please return a minus one. That’s going to be a question mark. So I’m asking the question, if it’s less than zero, then please return a minus one. Else return one. 


26:54
Lenny
Cool. 


26:55
Lenny
So this is pretty much going to go and tell me a boolean. That’s either or not a Boolean. It’s going to be a negative one value if it is going down. And it’s going to be a positive one value when I’m actually increasing my stock. All right, so let’s validate my calculation. Let’s deploy it out. And this will now tell me, as the hours go by, if I actually are increasing or decreasing my stock level. So let the engine go through it, run through the calculation. And there we go. So it was one, then I had a little bit of a dip in the tank level. And I’m actually starting to increase my tank level here because the delta is negative one. Let’s put that on the chart. 


27:41
Lenny
So that will show us a very cool idea of how it’s going to look on a chart. So I’m going to go to the report, going to open up my dashboard here. And this time what I’m going to do is I’m going to go and add a time series chart, just a simple time based chart that’s going to be showing me my hourly KPIs here. It’s going to go and add that chart. And I’m quickly going to configure the chart. Now, our charts do have the capability to have multi axes and also to have multiple stacks. And this is great to show this kind of concept here. So on the first stack, all I’m going to do is I’m going to show my hourly values and then I’m going to add another stack. 


28:22
Lenny
And in this case, on the secondary stack, I’m actually going to add my deltas. All right, so my deltas I would like to show as a column, not as a line. So I’m going to change that to a column and potentially my tank level that I can leave as a line itself. Perfect. So let’s refresh my little dashboard that I’m starting to build out here. Let’s refresh. And there we go. There’s my first stack, which is the raw values. Has it changed? And again, the change is so small, you don’t really see it. But the delta equation here immediately shows you that there was a difference and that there was actually a little bit of a dip in that tank level. But for the rest of it, you’re actually, okay, you are increasing your tank level here. So that’s very powerful. 


29:14
Lenny
And obviously, I can go and add a limit to this to even change this to maybe a red, depending on if the limit does go and exceed it from that perspective. So from just the requirement of having a single value on the screen for what the current tank level is, you guys could see that I’m actually building out a whole compensated dashboard here and showing different type of, et cetera. And it’s looking like we actually are going a little bit in a downward spiral. So probably the next hour that we’re going to have this tank delta is going to be a minus one. 


29:55
Lenny
Cool. 


29:55
Lenny
So I can easily see that by cleaning the data and showing these concepts that I’ve got on the screen here. Perfect. All right, so that’s the first thing that I wanted to show you guys, is just using cleanliness of historical data, using the delta kind of configuration, how we can actually build this kind of scenario here. The second thing that I want to build is more on product flow. Let’s go back to the flow config tool here. Let’s just clean this all up, and let’s create a new metric here. Go now to look at production or throughput. So let’s create a production metric here, and let’s create a little bit of production. So in my historian, what I do have in my historian here is I’ve got a flow transmitter that tells me what is the actual outflow of steam in my boiler. Right? 


30:57
Lenny
And I’m going to utilize that to show me what is my total production of steam out of that boiler. I’m using this boiler, quite a lot of my demos. So if you’ve seen this before, I’m going to do it a little bit different from what I normally do it by actually creating a little bit of a run rate on top of this production data. But first, let’s clean the data. Obviously very important. Let’s clean the data. I’m just going to change this bit to hours. So I actually have hourly KPI or hourly data to work with. Let’s drag this across to my production. I’m going to give it a nice normalized name. So this is my steam output and I’m going to clean the data a little bit here. 


31:38
Lenny
I’m going to leave the aggregation as per the norm, which is a time weighted average. The only thing that I need to do with this guy is it gives me as a unit of measure, kilograms per second. I’m actually interested in tons per hour. So I’m going to change the unit of measure here tons. And I’m actually going to add what we call a scaling factor. So this is another thing that we can use to clean the data is to add a scaling factor to the data. And in this case I’m converting that kilograms per second tons per hour. Right. Deploy it out and the flow engine will now give me hourly what the actual values or the production is. Now remember I said I would like to know if this is based on the run rate in the cricut example. 


32:26
Lenny
I want to know if I’m continuing at this kind of rate here. What is my end target or end goal going to be and how does that compare to the actual target that I’ve got set from a production perspective? So let’s do that. First, let’s just create this moving average of data. All right. I’m going to do almost the similar that I’ve done with the delta here. And I’m going to go and drag the steam output to my calculator again. In this case, I’m going to go and call it my seven day moving average. 


33:01
Lenny
Cool. 


33:01
Lenny
And I’m going to move it in here, clean my model up a little bit. So now I know that is the seven day moving average from my steam output. 


33:10
Lenny
Cool. 


33:11
Lenny
Let’s go and configure this guy. Now. Obviously if I go to the retrieval, it would have already added in this KPI for me. And currently it’s looking just at the current hourly value of that KPI. But I can actually change this to look at a whole range of values that I already got in the flow system. So if I click on this guy here, you’ll notice that there’s a little bit of a properties tab that gets enabled when I actually select this measure. I’m just going to clean it out here from the configuration editor or from the function editor and I’m going to go and change the properties here. So currently, as it is, per default, it will give you the value for the current period of the hour. But I can change that. 


33:55
Lenny
I can say, you know what I would like to know what is the average, let’s say, for the past 7 hours, just as an example. So I’m going to change this. I’m going to change it from current period. Previous period is the one that I’ve used actually for the delta. So previous period is the minus one, the minus two to look at a previous value back in time. But in this case, I actually want a range of values because I want to calculate that moving seven day moving average or seven hour moving average. So I’m going to select previous range and I’m going to say, you know what, please go back 7 hours up until now from seven to zero. Give me those values back and I’m going to use that to actually go and create an average of it. 


34:43
Lenny
Cool. 


34:43
Lenny
As soon as I do that, you’ll notice that the measure does change. It tells you that it’s going to give you an array of values that’s going to be obviously all the way back 7 hours ago up until the latest or the current value that we have. Double click on this, let’s add this in. And there we go. All right. So now it’s going to give me an array of values. All right. Very important. It’s not going to give me one value back. I need to now tell it what type of aggregation I want to perform in it. You can actually go create your own user defined functions to do these things, but I’m just going to go and do a very simple average on the data. So this is going to go and perform an average on the array of values. 


35:30
Lenny
In this case, it’s going to be seven values. And I’m going to go and create this average calculation for me. 


35:35
Lenny
Cool. 


35:37
Lenny
Validate, deploy, and the flow engine will do that in the back end and it actually will now show me a seven day moving average of my steam production. Perfect. 


35:51
Lenny
Cool. 


35:52
Lenny
That’s great. So now the data is even more cleaned and I’ve got that very typical kind of run rate that I can utilize now. 


36:01
Lenny
Cool. 


36:02
Lenny
Let’s add this to a screen quickly so we can just see visually what it’s done. So I’m going to extend my webinar dashboard here. I’m going to go and add a little widget again. In this case, it’s going to be an hourly widget. And all I’m going to do in this widget is I’m going to go and add the actual steam production as per the hours. 


36:27
Lenny
Cool. 


36:29
Lenny
I’m going to change this to be an area component. And I’m just going to give it a little bit of a different color here and just give it a little bit of opacity just to make it easier to see. All right. And this is something that I don’t think a lot of people know, but I can actually add more than one measure to a widget. So in this case, I can actually add the seven day moving average to the widget again. All right. And in this case, the seven day moving average. Yes. I would love that to be aligned. And I’m just going to change the color there to something a little bit different so we can actually see it on the dashboard. 


37:15
Lenny
Cool. 


37:16
Lenny
All right, if I do that, refresh my dashboard here. There we go. So this is quite a powerful graph at the bottom here. I’m just going to zoom into it. So the area chart is the actual. The yellow is the seven day moving average. And guess what? You are below your seven day moving average. Something is getting wrong. All right, so you below the point here. So you’re below your seven day moving average. So obviously something is not wrong and you actually are producing less than what your average is from a production perspective. Very simple kind of visualization techniques. But I think it works very well. So you can very easily identify where their problems. And again, we could have obviously add limits to it as well, so it will pop out even more from that perspective. 


38:07
Lenny
Cool. 


38:09
Lenny
All right, so that’s just the moving average. Let’s project it. So we’ve been all been waiting up until this point. Let’s see if we can work out potentially what are we going to end up if we continue on this trend at the end of the day? All right, I’m just going to clean it up here a bit. So I’ve got some real estate. 


38:30
Lenny
Cool. 


38:30
Lenny
So what I’m going to do is I’m going to go and take my seven day moving average, and I’m actually going to go and project that into the future. Okay. So what I’m going to do is I’m going to add it to the calculator icon, and this is going to be my steam output projected. I’m just going to give it a nice name and I don’t confuse myself here. All right, let’s open this guy up and see how we need to go and configure this to give me something into the future. Now, the first thing that you’ll notice is that we’ve got this option here where we can go and set the projected time periods. In this case, I’m just going to go and project it to 7 hours into the future. 


39:20
Lenny
So I obviously need to go and change this to say, yes, I would really like to project this to 7 hours into the future. Think about a target value. If you have a target for the month and those are projected potentially for a few months in advance, you will use the same kind of feature here to project it into the future. And then you can actually add those targets that’s already been calculated potentially by your planning department inside of the system and you can actually compare actual against your target as well as an example. 


39:52
Lenny
Cool. 


39:53
Lenny
All right, so I’m projecting this calculation, and now what I’m going to do from a retrieval perspective is I need to do a little bit of math here. All right, so what I’m going to do to project this thing is the following. I’m going to go and drag in the seven day moving average, all right, and I want to go and look at this guy. But I want to look at it 7 hours ago. All right, so what is this value 7 hours ago? So I’m going to look at the previous period. And I’m going to look at 7 hours ago from a previous period perspective. Cool. All right, then what I’m going to do is I’m actually going to remove this guy and I’m actually going to add in my calculation again. 


40:42
Lenny
All right, and I’ll show you guys why I need to do that just now. All right, so to project this into the future, what I’m going to do is I’m going to say, you know what if my 7 hours ago value is equal to null, so I haven’t yet got a new seven day moving average into the future, then I would like you to use the previous value that I used or was able to calculate from a production perspective. Else, just use that seven day back value. All right, so I’m just going to go and complete the else statement here. And else just go and use this guy already. All right, so technically what I’m doing is I’m saying go look, because I’m projecting this 7 hours into the future. Look, 7 hours back, do I have a value? 


41:37
Lenny
And then just project these seven hourly values into the future. All right, so I’m going to validate my calc, I’m going to deploy it, and let’s see if this actually works this evening here, right? The engine will go and calculate it. It will run through it. And if I’m lucky. There we go. 


41:59
Lenny
Cool. 


41:59
Lenny
Actually looks very cool. So you’ll notice the green here is the actual 7 hours into the future. All right, so the green time buckets is the Future. We are currently here at this point in time. So this is the actual moving average that we’ve calculated. And if we’re going on this trend, this is the expected way that the moving average is going to turn based on the data that we’ve got. So that’s pretty cool. Now let’s see how we can see what this is going to look like at the end of the day. So let’s do the following. Let’s just take this steam output projected and let’s just do a very simple rolling shift to date and rolling day to date number on them. So I’m going to take this guy, drag it onto the hour again. 


42:48
Lenny
This will create a shift to date for me and drag it onto the screen again. And this is going to do a day to date. All right. And I’m going to deploy these guys out. Cool flow engine will do its thing in the front end. But I forgot one thing, and you’ll notice I didn’t project them right. So I’m just going to change them to also look seven days into the future from that perspective. 


43:15
Lenny
Cool. 


43:16
Lenny
Let’s do that. Let’s deploy it and let’s refresh. And there we go. There’s my potential shift to date pattern. So you’ll see at the end of the shift, it’s going to reset back to zero. And it’s already kind of calculated for me what the next shift’s potential target is going to look like or actual is going to look like. That’s quite cool. Let’s just do the same for the day to date again. I forgot to project it into the future or create those future projection buckets. So I’m going to change that to 7 hours as well. Hit the play. And if we refresh this guy. There we go. This is where we’re currently at. And if we continue onto this trend, this is potentially where we can end up with. 


43:59
Lenny
Right, let’s put this on the charts and it will make a little bit more sense when we actually put it on the dashboard. All right, so I’m going to create a new dashboard here again, a very simple time based chart, hourly chart, double click to edit it. And in this case, what I’m going to do is I’m going to go and add the projected day to date. All right, so that’s the projected one. We also actually need the actual one, which is this guy. So I actually forgot to create a shift to date and a day to date for the actual. Let’s quickly do that and let’s deploy them out. Cool. All right. Let’s add them to the same axes. Let’s add the actual day to date on the same axes. 


44:49
Lenny
Let’s change the actual day to date as a column, and let’s leave the projected one as a line. But the difference that I want to do here is twofold. We have this concept in flow that we can actually add a label to the values that’s actually being plotted on this line. So in this case, what I want to do is I want to know what is the last value of that projection so I can see with one glance what is that actual end target that we’re going to hit. So I’m going to go and enable the last label on that line as well. 


45:26
Lenny
Cool. 


45:28
Lenny
And then what I would like to do is, obviously, I want to be able to see this into the future. So what I’m going to do here is I’m going to change it not to the current value of the day. This is actually going to work. So it’s going to be from the start of the day, but I actually want it to the end of the day. So from the start of the day to the end of the day, please plot all the data on my chart. 


45:57
Lenny
Cool. 


45:58
Lenny
Let’s refresh this and let’s see what’s going to happen. Perfect. 


46:06
Lenny
Cool. 


46:07
Lenny
So there we go. I’ve got the actual values as I’m producing currently almost 07:00 there. I’ve got the actual, which is 53 tons for a day to date total. If I continue as what I am continuing with the run rate perspective, you’ll notice that we’re going to end up here at around 81 tons at the end of 01:00 in the morning there. So just quickly wanted to show you guys how to use these projections to actually get to a projected kind of total. And obviously, if I had the target that’s been added by the planning department, I could have added that to my chart as well. And I can see actually how far I’m off from my target. Again, do the delta on that. 


46:56
Lenny
And then I’ve got a very clear indication of how far I’m actually going to miss my target based on the way that I’m actually producing at this point in time. 


47:05
Lenny
Cool. 


47:06
Lenny
So that’s all done with the flow engine. The last thing that I just want to show you guys, very quickly is utilize the regression analysis to kind of do the same kind of thing, but utilizing regression calculations based on the values that’s currently on the dashboard itself, that’s the last thing that I want to quickly do before we end off here this evening. So let’s go back into flow. And I think I’m actually going to build a new dashboard here. This one is getting a little bit full. I’m going to go do another dashboard here. This is going to be my regression. Let’s open this guy up. All right. Sorry. Spelling mistake. 


47:52
Lenny
Cool. 


47:54
Lenny
All right, so on this regression dashboard, let’s add a very simple time series chart again. So time based chart, hourly data, and let’s add that to my chart. All right. On the first stack, let’s do just the plain, simple steam output. All right, let’s change this to a column chart as well. So this is just going to plot, as the day go by, what is the actual value there? All right, you’ll notice that we’ve got this option here to add a regression analysis on this as well. But this is now in the front end, not based on any of the data. And we do not store this regression analysis actually, back inside of the flow database. It’s all done on the front end. Right. In this case, yeah. I’m going to enable regression. A polynomial will probably not make a lot of sense. 


48:54
Lenny
In this case, a linear would probably make a lot of sense, because I only want to project if I’m in an upward or downward spiral from steam production here. I can change the order and the precision. I can change the type of line that I wanted to do to plot. So I’m just going to do a dashed line, give it a little bit of a thicker width that we can easily identify it, and I’m going to keep it the accent color, which is going to be a nice green color. 


49:22
Lenny
Cool. 


49:23
Lenny
All right, then on the time frame, so on the period. So I would like to project this a little bit into the future. So what I’m going to do is, I’m going to say start of interval, maybe to the end of interval, and this will go and show me values to the end of the day. 


49:44
Lenny
Cool. 


49:45
Lenny
That’s all I have to do. Let’s go back to my dashboard here. I’m just going to refresh it to reload and have access to that new dashboard that I’ve built. So under webinar here, there’s my regression dashboard. Open this up, and there we go. That’s a very good point. Or a very good. Graph shows me from the beginning of today, which was 06:00 I definitely have a downward spiral in my production. So my regression is negative on the slope, so I’m definitely in a downward spiral in production. And guess what, guys, I actually saw this already, right? If I go back to the original dashboard, just by doing a moving average on the data already, I was able to see this. In this case here, I was already able to see that I’m starting to move below my actual moving average. 


50:45
Lenny
So this already showed me that I’m actually going negative in my production, but the regression analysis pretty much just confirmed that I’m actually going in a downward spiral from that perspective. 


51:00
Lenny
Cool. 


51:02
Lenny
I think that’s where I would like to stop for this session this evening here. I hope that was insightful for you guys, how I can use these kind of concepts to really change what I’m delivering from an information perspective, from actually just a number in the screen, which was the original requirement to a whole dashboard utilizing real time historical KPIs secondary aggregation on the data to actually show me what’s going on inside of my production facility. I hope that was insightful. I’ll see you guys, I think, next year. And with that, I would like to say seasoned greetings to everybody that’s on the call. I hope you guys have a fantastic break for the guys that actually do have a break. 


51:56
Lenny
I know there’s a lot of people from different places on the world on this webinar tonight, but wherever you are, I hope you have a great festive season, and I will be seeing you in the new year. And with that, I’d say thank you for joining this evening, and I’ll see you again with our new series that we’ve got planned out in the new year.

You might also like