Tolerance Check Methods

Business contracts often include allowable schedule variances with potential penalties for the customer if violated. The tolerance check is an optional step in the flow but is a key feature of the application. This check provides a way for the supplier to recognize, and, if necessary, present actual facts and figures associated with any schedule variance violations.

The two main tolerance calculations are cumulative schedule tolerance and bucketed schedule tolerance call-off.

  1. Cumulative Schedule Tolerance: This check shows the cumulative effect of the releases. The quantity per day is compared against the same period of time for a previous schedule. The variations are also measured per day on the basis of cumulative requirements.
  2. Bucketed Schedule Tolerance: This check summarizes schedule quantities into the buckets defined by the schedule template. Accumulations in like-sized buckets are compared against a tolerance percentage defined for each bucket in the template.

Regardless of the tolerance calculation method you choose, it is possible to make different comparisons. There are four alternatives: compare plan to plan, compare call-off to plan, compare call-off to call-off, or compare cumulative call-offs to plan. These alternatives can be combined and used according to the currently entered schedules.

Comparing cumulative call-offs to plan is a different means of gathering the schedule data for comparison by assembling the net effect of multiple overlapping call-offs. The result of the combined schedule can be used by both the cumulative and the bucketed tolerance check method.

Cumulative Schedule Tolerance

When you use the cumulative schedule tolerance check, the basis for comparison across the entire horizon is a single tolerance percentage (one for schedule increases and one for decreases) rather than a tolerance template. Users can compare common date ranges in the following schedules by using one of these checks: Plan to Plan, Call-off to Call-off, Call-off to Plan, and Cumulative Call-offs to Plan. In all cases except the Cumulative Call-offs to Plan, the check evaluates a specific (presumably the latest) schedule against the most recent previous schedule. The Cumulative Call-offs to Plan check, however, evaluates several call-offs against the last plan.

Cumulative Schedule Tolerance Check logic

Retrieve all Schedule Lines meeting the input settings for which tolerance checks are to be performed.

For each Schedule Line, take the releases (where demand information is not Information Only) and convert them to daily quantities. Daily quantities are calculated by spreading the numbers across the number of working days between schedule dates. For the last record in the schedule, the system uses the end date of the schedule header.

Example:

DateQuantityPeriod Covered
199X-10-06 09:0060Sub-day
199X-10-06 12:0040Sub-day
199X-10-07120Day
199X-10-08130Day
199X-10-09110Day
199X-10-10100Day
199X-10-13500Week
199X-10-20600Week
199X-10-27650Week
199X-11-012200Month
199X-12-012400Month

If multiple records exist for the same date, consolidate them into a single value.

DateQuantityPeriod Covered
199X-10-06100Day
199X-10-07120Day
199X-10-08130Day
199X-10-09110Day
199X-10-10100Day
199X-10-13500Week
199X-10-20600Week
199X-10-27650Week
199X-11-012200Month
199X-12-012400Month

Now the records are 'spread' into daily requirements. Starting with the first date, retrieve the next date in the schedule. Calculate how many working days this covers, based on the regular system calendar. If the next date on the schedule is one day away and is also a working day, then no spreading logic is required. This applies to the first five buckets in the example. When record 6 is compared to record 7, the number of elapsed days between records is seven, though only five are working days. Thus, five equally sized daily buckets are created. (Note: Some rounding might be required here.) This principle is applied to all the buckets, except the last; in the last bucket, the bucket size is created by using the first date after the end date of the previous release record as the start date, and the end date of the schedule header as the final date. Result now appear as follows:

DateQuantityPeriod Covered
199X-10-06100Day
199X-10-07120Day
199X-10-08130Day
199X-10-09110Day
199X-10-10100Day
199X-10-13100Day
199X-10-14100Day
199X-10-15100Day
199X-10-16100Day
199X-10-17100Day
199X-10-20120Day
199X-10-21120Day
199X-10-22120Day
199X-10-23120Day
199X-10-24120Day
199X-10-27130Day
199X-10-28130Day
199X-10-29130Day
199X-10-30130Day
199X-10-31130Day
199X-11-01110Day
199X-11-02110Day
......... for each day in the month
199X-12-01120Day
199X-12-02120Day
......... for each day in the month

The cumulative information and cumulative variances are now recorded. For this example, let us assume a simplified situation with two call-off schedules already bucketed in daily periods. Each week, we receive a new call-off covering two weeks' worth of information. Thus, there is one week of common schedule data that can be compared on this cumulative schedule basis. Assuming a cumulative schedule tolerance of 5%, the following schedule would result in an Out of Tolerance situation:

DateCall-Off No1Call-off No 2Call-off No 1 CumulativeCall-off No 2 CumulativeCumulative Variance (%)
199X-10-1390
199X-10-1490
199X-10-1595
199X-10-1695
199X-10-1795
199X-10-201001001001000
199X-10-211001072002073.5
199X-10-221001083003155
199X-10-231001054004205
199X-10-241001105005306

Out of Tolerance

199X-10-27110
199X-10-28110
199X-10-29120
199X-10-30120
199X-10-31125

Note that individual daily deliveries can vary by greater than the tolerance as long as the cumulative effect does not exceed the tolerance percentage.

The spreading logic for the previous plan is identical to the spreading logic performed on the current plan. Also note that only overlapping date information is useful for tolerance checking - the date limits of each schedule are the limits of the comparison.

Bucketed Schedule Tolerance Check

The user scenario and input settings for the bucketed schedule tolerance check are identical to the cumulative schedule tolerance check. The difference is in the tolerance algorithm and the data source of the tolerance percentage. Just as with the previous check, the comparison is run against the current schedule, meeting the input criteria for whatever comparisons are desired by the user (e.g. Plan-to-Plan, Call-off-to-Plan). The major difference between this and the previous logic is that a tolerance template is used as a means of changing the acceptable tolerance over the schedule horizon, a different tolerance per 'bucket.'

Bucketed Schedule Tolerance Check logic

The initial steps in the bucketed tolerance check are identical to those of the cumulative schedule check. The release quantities expressed on the compared schedules are first spread into a daily format. The daily format is then used as the basis for accumulating the requirements into buckets. The daily format is important, since the bucket definitions can divide a given release's date range.

Once the daily quantities are defined, the correct template definition is retrieved for the customer agreement line record.

Retrieve the start date from the first record in the latest schedule.
Using the definitions from the template, summarize the daily quantities from the releases into the bucketed quantities. For example, bucket 1 might be for five days, so you would accumulate all the schedule quantities' numbers from the schedule valid-from date to the valid-from date plus 4 days.

An example of the current schedule with quantities bucketed into template format:

BucketLengthPeriodQuantityNo DaysTolerance (%)
15 DaysFirm56052
210 DaysFabrication1100105
320 DaysMaterial23002010
440 DaysForecast29502520

Although bucket 4 is 40 days long, the schedule has values converting only 25 of those days. For a valid comparison, the previous schedules are also prorated, adjusted to the smaller numbers where the number of days is different for any bucket.

Let us assume that this schedule must be compared with two previous schedules (i.e., one a call-off, one a plan):

Previous Call-off

BucketLengthPeriodQuantityNo Days
15 DaysFirm6005
210 DaysFabrication3005
320 DaysMaterial0No data
440 DaysForecast0No data

Previous Plan:

BucketLengthPeriodQuantityNo Days
15 DaysFirm4005
210 DaysFabrication120010
320 DaysMaterial200020
440 DaysForecast220020

To successfully compare to the above schedules, the current schedule quantities would have to be adjusted as follows:

BucketLengthPeriodQuantityNo DaysComments
15 DaysFirm5605
210 DaysFabrication5505Prorated to 5 days
320 DaysMaterialProrated to 0 days
440 DaysForecastProrated to 0 days

Adjusted for comparison to previous plan:

BucketLengthPeriodQuantityNo DaysComments
15 DaysFirm5605
210 DaysFabrication11005
320 DaysMaterial230020
440 DaysForecast236020Prorated to 20 days

Having adjusted the figures to a comparable form, the tolerances by bucket can now be calculated:

Comparison to previous call-off:

BucketLengthPeriodCurrentPreviousNo DaysVariance (%)
15 DaysFirm5606005- 6.7
Out of Tolerance
210 DaysFabrication6503005+116.7
Out of Tolerance
320 DaysMaterialNo data
440 DaysForecastNo data

Comparison to previous plan:

BucketLengthPeriodCurrentPreviousNo DaysVariance (%)
15 DaysFirm5604005+ 40
Out of Tolerance
210 DaysFabrication110012005- 8.3
Out of Tolerance
320 DaysMaterial2300200020+ 15
440 DaysForecast2360220020+ 7.3

The result of the comparison is that both comparisons fail the tolerance check and cannot be automatically approved.

Cumulative Call-off Tolerance Check

The cumulative call-off check is a different way of gathering the schedule data for comparison and can then be used by both the cumulative and the bucketed tolerance check method.

In this case, the actual tolerance check is performed identically to one of the two previously described algorithms. Cumulative call-offs is a way of defining the schedule data for comparison by combining the net effect of several overlapping call-offs. This is useful for cases where the user receives multiple call-off schedules between plans. For example, if a plan was delivered weekly but call-offs were delivered every day, there would be five call-offs delivered against a previous plan. This type of comparison of call-offs to plans, through either a cumulative or bucketed tolerance check algorithm, can be used.

In the following example, the situation is just as described above - each week, the user receives a plan covering two weeks of schedule information. A call-off is sent each day, covering the next two days' worth of shipment information. Each day, the overlapping part of the previous call-off is overridden by the next.

The assumption for this process is that any time a release quantity is specified for the same date as expressed in a previous schedule, it overrides that release. If there is no overlap of schedule dates, then the quantity remains intact.

DateLatest PlanPrevious Call-off No 1Previous Call-off No 2Latest
Call-off No 3
Cumulative Call-off
199X-10-01202121
199X-10-0220212222
199X-10-0320222323
199X-10-04202424
199X-10-0520
199X-10-0825
199X-10-0925
199X-10-1025
199X-10-1125
199X-10-1225

As each call-off arrives, it overrides the previous call-off covering the schedule dates. Thus the 'cumulative' call-off schedule is built. Having assembled this data, one of the standard tolerance check algorithms can be run against this composite schedule, either cumulative or bucketed, as described above. Notice that in all call-off to call-off comparisons, tolerance checking would find the numbers to be within 5% of the previous. However, viewed as a composite, the tolerance varies substantially from the previous plan numbers, finally reaching a 20% variance.

In this example, the call-off quantities arrive in daily quantities, though this is not necessarily the case. Just as with other examples, the call-off quantities could cover multiple days and thus a daily spreading algorithm would be performed for each schedule involved in which date information overlaps. The same results could then be used for a bucketed tolerance comparison as well. Once a new plan arrives, the cumulative call-off is no longer as significant, and the call-offs against the new plan begin to accumulate for the next cycle.

An important note: The tolerance check process is executed against Call-off No 3. (Input criteria for tolerance-check picks up this schedule). The values for the previous two call-offs (any call-off found between the latest call-off and the latest plan) are assembled into a composite view and compared to the plan. However, if values are out of tolerance, the schedule considered to cause the 'Out of Tolerance' condition is Call-off No 3. Thus, the comparison is associated with Call-off No 3 - this is the schedule that would be questioned to view tolerance check results for out-of-tolerance schedules.