Buckets

Buckets are aggregates designed to capture summaries of various time-series data optimised for PackOS reporting. Data from the specific time period is summed / averaged together depending on the use-case. All types of buckets are assumed to hold redundant data - they can be deleted and regenerated from raw data anytime.

OEE Buckets

Buckets are usually aggregated hourly. However, sometimes a shift or an order ends in the middle of an hour. To create a report for an order or a shift, we need to be able to get a custom bucket e.g. 10:14 - 11:00. So, to generate all necessary time intervals (empty buckets) we need to split buckets not only every hour, but also look at the history of orders, performance settings, manual production, shifts etc:

An example of splitting is shown below.
In this case, 13 buckets of various durations will be generated:

Next, buckets are filled with raw data. Counter Deltas (see: https://ilabo.atlassian.net/wiki/spaces/LW/pages/1828454403) and WorkLog loss types durations are summed up

Additional info is attached - about current SKU and performance settings

Manual production and closed buffers

Manual production entries and closed buffers with differential waste are applied to augment the line’s production. There are three strategies to distribute the amount accordingly:

  1. If there is already some production in the buckets (from the counter), the manually requested amount is applied proportionally to it

If bucket [2] holds 70% of the sum from [2] and [3], then 90 * 70% = 63 pc will end up in bucket 2. And 90 * 30% = 27 pc in bucket 3. If there is any remainder after this operation, it’s added to the last bucket

  1. If there are no production from the counter, work duration is used in the same way. Production volume is applied proportionally based on the total duration of work state in each bucket.

  2. Finally, if there is no production nor work in the buckets, the requested production amount is applied solely based on the duration of the bucket