I'm trying to create a waterfall chart that shows how different operational interruptions affect how much product we can make per batch.
The key metric is product per batch. We have the end of the month grand total of heats per batch. I'm able to separate that data into different categories which looks like this:
Production Category | Batches | Product Made | Product Per Batch |
---|---|---|---|
Steady Production | 40 | 351 | 8.8 |
Poor Material | 5 | 30 | 6.0 |
Operation Error | 3 | 10 | 3.3 |
Equipment Failure | 2 | 10 | 5.0 |
Other | 1 | 4 | 4.0 |
Total | 51 | 405 | 7.9 |
We have our steady production which comes out at 8.8, how can I calculate each other category's contribution to decreasing the product per batch to 7.9? I'm trying to make a waterfall chart that looks like this:
On reading how other people make waterfall charts with averages, I tried to do the math of:
Product per batch = PPB
PPB(category)*Batches(category)/Batches(Total) - PPB(category)*Batches(category)/Batches(SteadyProduction)
This gives a number relatively close but not exact because this total also includes the steady production data or something. It's not a type of waterfall math I'm used to.
I think the formula you can use for the negative contributions of categories is
- Batches(category) * (PPB(SteadyProduction) - PPB(category))/Batches(Total)
You can infer this formula considering the difference from the case when all production were of SteadyProduction.
Here category
doesn't include SteadyProduction
and Sum
is the sum by all categories (excluding SteadyProduction
)
PPB(SteadyProduction) * Batches(SteadyProduction) + Sum(PPB(category) * Batches(category)) = PPB(average) * Batches(Total)
=> PPB(SteadyProduction) * Batches(Total) -
PPB(SteadyProduction) * (Batches(Total) - Batches(SteadyProduction)) + Sum(PPB(category) * Batches(category)) = PPB(average) * Batches(Total)
But Batches(Total) - Batches(SteadyProduction) == Sum(Batches(category))
=> PPB(SteadyProduction) * Batches(Total) -
PPB(SteadyProduction) * Sum(Batches(category)) + Sum(PPB(category) * Batches(category)) = PPB(average) * Batches(Total)
=> PPB(SteadyProduction) * Batches(Total) -
Sum(PPB(SteadyProduction) - PPB(category)) * Batches(category)) = PPB(average) * Batches(Total)
=> PPB(SteadyProduction) - Sum(PPB(SteadyProduction) - PPB(category)) * Batches(category)/Batches(Total)) = PPB(average)
Numerically, if it's easier to follow:
40 * 8.775 + 5 * 6.0 + 3 * 3.333 + 2 * 5 + 1 * 4 = 51 * 7.941
=> 51 * 8.775 - 11 * 8.775 + 5 * 6.0 + 3 * 3.333 + 2 * 5 + 1*4 = 51 * 7.941
=> 51 * 8.775 - 5 * (8.775-6.0) - 3 * (8.775 - 3.333) - 2 * (8.775 - 5) - 1 * (8.775-4) = 51 * 7.941
=> 8.775 - 5 * (8.775-6.0)/51 - 3 * (8.775 -3.333)/51 - 2 * (8.775 - 5) / 51 - 1 * (8.775-4)/51 = 7.941
So the results would be
-0.272 Poor Material
-0.32 Operation Error
-0.148 Equipment Failure
-0.094 Other
While you do these computations, you'll have to use more precise values than those you put in the table; the final results you may round up, but trying to have the sums match.