Apply LOCF (Last Observation Carried Forward) to machine analytics?

First, please check my assumptions based on what I’m seeing…

I’ve known for a long time that analytics only include data from machines that have changed state over the time period specified in the analytic. It’s pretty straightforward why this is the case.

One issue though, is that if the previous state (excluded from the analytic) runs into a significant part of the analytic, that it skews the data, potentially a LOT.

Here’s an example analytic, at this point in the day we’re about 10 hours into the shift but I can only account for about 4 hours in the analytic:

And here’s the state table for the same machine.

I know it’s never as “easy” in code as it is in the human brain, but there should be a way to say “capture all the state changes in this time boundary +1” and then truncate the start time of the previous state to the time boundary.

Am I missing anything?

Hey Richard,

One common solution for this has been to have a state change “refresh” every 10 minutes that a machine does not change state. You can set up a machine trigger like so.

This is a simple example but I imagine for more complex scenarios where you need to apply this to many different states, you can just add more triggers and if/else logic.

Also, note that another trick used here is storing the State of the machine into a text attribute since you cannot access current machine state in your conditional logic.

Thanks for the suggestion here @danielpomeranz!

@Richard-SNN from the Tulip side of things, we definitely understand this request and need. This is a longer term fix that is not on the roadmap for this year due to other priorities, but the team is aware and we appreciate the input! Feel free to add any additional suggestions or comments and I can also connect you with @stefan if you want to hear all the nitty gritty