Planning passes

The planning algorithm considers the time fence as follows:

Planning Pass Description
A Pull plan from the demand's Due date and use Time Fence. If the demand is a pull-up order, pull plan from the Request date.

If pass A is successful, plan the next item.

If pass A fails, perform pass B.

B Pull plan from the demand's Due date and ignore Time Fence. If the demand is a pull-up order, pull plan from the Request date.

If pass B is successful, plan the next item.

If pass B fails and demand is a pull-up order, perform pass C.

If pass B fails and demand is not a pull-up order, perform pass E.

C (Pull-up orders only.) Pull plan from the Due date and use Time Fence.

If pass C is successful, perform additional pull-planning iterations between the Due date and Request date to try to project a date that is closer to the Request date.

If pass C fails, perform pass D.

D (Pull-up orders only.) Pull plan from the Due date and ignore Time Fence.

If pass D is successful, perform additional pull-planning iterations between the Due date and Request date to try to project a date that is closer to the Request date.

If pass D fails, perform pass E.

E Push plan from the current date (Time Fence is ignored during a push).

If pass E is successful (that is, if the system was able to plan a projected completion date within the Plan Horizon), perform pass F.

If pass E fails, perform pass G.

F Pull plan again from the projected date calculated by the push plan and use Time Fence.

If pass F is successful, perform iterative pull-planning using the projected date from the push as the end of the iterations time window.

If pass F fails, perform pass G.

G Pull plan from the end of the Plan Horizon and ignore Time Fence.

If pass G is successful, perform iterative pull-planning using the end of the Plan Horizon as the end of the iterations time window.

If pass G fails, mark the item as "Blocked" and begin planning the next item.

iterative pull planning Perform one or more pull-planning iterations within a defined time window, dividing the window in half with each iteration until a feasible plan is found that is within the ALTPLAN.ITERDAYS or ITERDAYSCTP number of days of the need date. The beginning of the time window is always the demand's need date. The end of the time window will be either the projected completion date from pass E or the end of the Plan Horizon.

For example, the first iteration pulls from the midpoint between the projected date and the need date. If that pull succeeds, the next iteration pulls from the midpoint between that new projected date and the need date. The process incrementally moves closer to the need date until it finds a plan that works (that is, doesn't calculate a start date in the past) and has a projected completion date that is within the specified days of the need date.