The BOM Procedure

Example 3.4 Planning Bill of Material

The previous examples dealt with the bill of material from the perspective of the manufacturing process. In this example, let us turn to another type of BOM that is often useful in planning and handling engineering charges. It is referred to as a planning BOM, pseudo BOM, super BOM, or phantom BOM.

Assume that the ABC Lamp Company sells lamps with eight different shades (either 14 inches or 15 inches, in the colors black, white, cream, or yellow), three alternate base plates (6 inches, 7 inches, or 8 inches), and two types of sockets ('One-way' and 'Three-way'). Working with all possible combinations, the company now has 48 (= $8 \times 3 \times 2$) different final products. In other words, the ABC Lamp Company has 48 different end items to forecast and plan. This might not sound too complicated; however, this example is a simplified case. Manufacturing companies producing automobiles, computers, or machine tools can easily make over 5,000 different final products. So many final products are obviously impossible to forecast accurately and plan with any hope of validity. However, a reasonable forecast for total lamp sales could be made, for example, 10,000 per week. Some items (such as '1100 Finished shaft') are common to all configurations. Although these items are produced independently of one another, they can be grouped as common items on the BOM for administrative purposes. The new item that is created to group all common items is never stocked and hence it is called a phantom item. Phantom items are generally assigned 0 lead times and lot-for-lot order quantity. Besides the phantom item for grouping common items, other phantom items are created for planning different options. These items are referred to as model items. This process is known as the modularized bill of material construction.

The following SAS code creates three data sets: The Phantom4 data set contains the generic item 'LAXX' and all phantom items. The data set Option4 lists all options of each model item that are not already in the Part Master data set PMaster3 (shown in Output 3.3.1). Finally, the ParComp4 data set contains the re-grouped product structure information.

   /* Generic and phantom part master data */

data Phantom4;
   input Part      $8.
         Desc      $24.
         Req       8.0
         Unit      $8.
         LeadTime  4.0
         ;
datalines;
LAXX    Lamp LA                    10000 Each      3
4000    Common parts                   . Each      0
A10X    Socket assembly options        . Each      0
B10X    Base assembly options          . Each      0
S10X    Shade options                  . Each      0
;


  /* Additional optional and alternative parts */

data Option4;
   input Part      $8.
         Desc      $24.
         Req       8.0
         Unit      $8.
         LeadTime  4.0
         ;
datalines;
A101    Three-way socket assem.        . Each      1
B101    7in Base assembly              . Each      1
B102    8in Base assembly              . Each      1
S101    14in White shade               . Each      2
S102    14in Cream shade               . Each      2
S103    14in Yellow shade              . Each      2
S104    15in Black shade               . Each      2
S105    15in White shade               . Each      2
S106    15in Cream shade               . Each      2
S107    15in Yellow shade              . Each      2
1201    7-Diameter steel plate         . Each      3
1202    8-Diameter steel plate         . Each      3
1601    Three-way socket               . Each      2
;
  /* Parent-component relationship data */

data ParComp4;
   input Parent    $8.
         Component $8.
         QtyPer    8.2
         ;
datalines;
LAXX    4000        1.00
LAXX    B10X        1.00
LAXX    S10X        1.00
LAXX    A10X        1.00
4000    1100        1.00
4000    1300        1.00
4000    1400        4.00
4000    1500        1.00
4000    1700        1.00
B10X    B100        0.32
B10X    B101        0.41
B10X    B102        0.33
S10X    S100        0.07
S10X    S101        0.18
S10X    S102        0.24
S10X    S103        0.10
S10X    S104        0.06
S10X    S105        0.14
S10X    S106        0.22
S10X    S107        0.10
A10X    A100        0.11
A10X    A101        0.92
B100    1200        1.00
B101    1201        1.00
B102    1202        1.00
A100    1600        1.00
A101    1601        1.00
1100    2100       26.00
1500    1400        2.00
1700    2200       12.00
1700    2300        1.00
;

The item identified as '4000' is the phantom item for common items '1100', '1300', '1400', '1500', and '1700'. Each available option is structured into a model item with a quantity per assembly (identified as the QtyPer variable) that represents its forecast popularity or option percentage. Note that the total percentage of each option in this example is more than 100 percent (for example, the total percentage of the 'A10X: Socket assembly options' is $0.11 + 0.92 = 1.03$). This extra percentage is used to cover the uncertainty of the exact percentage split. Using this procedure to cover possible high side demand for each option is called option overplanning (Fogarty, Blackstone, and Hoffmann 1991).

The new Part Master data set, PMaster4, combines the generic and phantom item data, the additional options data, and the old Part Master file shown in Output 3.3.1. The SAS code to accomplish this is as follows:

  /* Append the old part master data to the new */
  /* phantom and optional part data set         */

data PMaster4;
   set Phantom4
       Option4
       PMaster3(where=(Part NE 'LA01' AND Part NE '2210'));
run;

proc sort data=PMaster4;
   by Part;
run;

The following code invokes PROC BOM to generate the planning bill of material and the summarized parts list from the modularized product structure data and the expanded part master file.

  /* Generate the Indented BOM and Summarized Parts data sets */
proc bom data=ParComp4 pmdata=PMaster4 
         out=IndBOM4 summaryout=SumBOM4; 
   structure / part=Part 
               requirement=Req
               leadtime=LeadTime 
               parent=Parent 
               component=Component
               quantity=QtyPer
               id=(Desc Unit); 
run;

The indented bill of material is shown in Output 3.4.1. Output 3.4.2 lists the quantity of each item that is needed to build 10,000 lamps in period 4, sorted by the _Part_ variable.

Output 3.4.1: Planning Bill of Material with Option Overplanning (IndBOM4)

ABC Lamp Company
 
Indented Bill of Material, Part LAXX

_Level_ _Parent_ _Part_ Desc QtyPer Qty_Prod Unit LeadTime Tot_Lead _Prod_
0   LAXX Lamp LA . 1.00 Each 3 3 LAXX
1 LAXX 4000 Common parts 1.00 1.00 Each 0 3 LAXX
2 4000 1100 Finished shaft 1.00 1.00 Each 2 5 LAXX
3 1100 2100 3/8 Steel tubing 26.00 26.00 Inches 3 8 LAXX
2 4000 1300 Hub 1.00 1.00 Each 2 5 LAXX
2 4000 1400 1/4-20 Screw 4.00 4.00 Each 1 4 LAXX
2 4000 1500 Steel holder 1.00 1.00 Each 2 5 LAXX
3 1500 1400 1/4-20 Screw 2.00 2.00 Each 1 6 LAXX
2 4000 1700 Wiring assembly 1.00 1.00 Each 1 4 LAXX
3 1700 2200 16-Gauge lamp cord 12.00 12.00 Feet 2 6 LAXX
3 1700 2300 Standard plug terminal 1.00 1.00 Each 1 5 LAXX
1 LAXX B10X Base assembly options 1.00 1.00 Each 0 3 LAXX
2 B10X B100 Base assembly 0.32 0.32 Each 1 4 LAXX
3 B100 1200 6-Diameter steel plate 1.00 0.32 Each 3 7 LAXX
2 B10X B101 7in Base assembly 0.41 0.41 Each 1 4 LAXX
3 B101 1201 7-Diameter steel plate 1.00 0.41 Each 3 7 LAXX
2 B10X B102 8in Base assembly 0.33 0.33 Each 1 4 LAXX
3 B102 1202 8-Diameter steel plate 1.00 0.33 Each 3 7 LAXX
1 LAXX S10X Shade options 1.00 1.00 Each 0 3 LAXX
2 S10X S100 Black shade 0.07 0.07 Each 2 5 LAXX
2 S10X S101 14in White shade 0.18 0.18 Each 2 5 LAXX
2 S10X S102 14in Cream shade 0.24 0.24 Each 2 5 LAXX
2 S10X S103 14in Yellow shade 0.10 0.10 Each 2 5 LAXX
2 S10X S104 15in Black shade 0.06 0.06 Each 2 5 LAXX
2 S10X S105 15in White shade 0.14 0.14 Each 2 5 LAXX
2 S10X S106 15in Cream shade 0.22 0.22 Each 2 5 LAXX
2 S10X S107 15in Yellow shade 0.10 0.10 Each 2 5 LAXX
1 LAXX A10X Socket assembly options 1.00 1.00 Each 0 3 LAXX
2 A10X A100 Socket assembly 0.11 0.11 Each 1 4 LAXX
3 A100 1600 One-way socket 1.00 0.11 Each 2 6 LAXX
2 A10X A101 Three-way socket assem. 0.92 0.92 Each 1 4 LAXX
3 A101 1601 Three-way socket 1.00 0.92 Each 2 6 LAXX


Output 3.4.2: Summarized Parts List (SumBOM4)

ABC Lamp Company
 
Summarized Parts List, Period 4

_Part_ Low_Code Req On_Hand Net_Req LeadTime Desc Unit
1100 2 10000 0 10000 2 Finished shaft Each
1200 3 3200 0 3200 3 6-Diameter steel plate Each
1201 3 4100 0 4100 3 7-Diameter steel plate Each
1202 3 3300 0 3300 3 8-Diameter steel plate Each
1300 2 10000 0 10000 2 Hub Each
1400 3 60000 0 60000 1 1/4-20 Screw Each
1500 2 10000 0 10000 2 Steel holder Each
1600 3 1100 0 1100 2 One-way socket Each
1601 3 9200 0 9200 2 Three-way socket Each
1700 2 10000 0 10000 1 Wiring assembly Each
2100 3 260000 0 260000 3 3/8 Steel tubing Inches
2200 3 120000 0 120000 2 16-Gauge lamp cord Feet
2300 3 10000 0 10000 1 Standard plug terminal Each
4000 1 10000 0 10000 0 Common parts Each
A100 2 1100 0 1100 1 Socket assembly Each
A101 2 9200 0 9200 1 Three-way socket assem. Each
A10X 1 10000 0 10000 0 Socket assembly options Each
B100 2 3200 0 3200 1 Base assembly Each
B101 2 4100 0 4100 1 7in Base assembly Each
B102 2 3300 0 3300 1 8in Base assembly Each
B10X 1 10000 0 10000 0 Base assembly options Each
LAXX 0 10000 0 10000 3 Lamp LA Each
S100 2 700 0 700 2 Black shade Each
S101 2 1800 0 1800 2 14in White shade Each
S102 2 2400 0 2400 2 14in Cream shade Each
S103 2 1000 0 1000 2 14in Yellow shade Each
S104 2 600 0 600 2 15in Black shade Each
S105 2 1400 0 1400 2 15in White shade Each
S106 2 2200 0 2200 2 15in Cream shade Each
S107 2 1000 0 1000 2 15in Yellow shade Each
S10X 1 10000 0 10000 0 Shade options Each