The BOM Procedure

Example 2.4 Planning Bill of Material

(View the complete code for this example.)

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 2.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 plus 0.92 equals 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 2.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 2.4.1. Output 2.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 2.4.1: Planning Bill of Material with Option Overplanning (IndBOM4)

ABC Lamp Company
 
Indented Bill of Material, Part LAXX

_Level__Parent__Part_DescQtyPerQty_ProdUnitLeadTimeTot_Lead_Prod_
0 LAXXLamp LA.1.00Each33LAXX
1LAXX4000Common parts1.001.00Each03LAXX
240001100Finished shaft1.001.00Each25LAXX
3110021003/8 Steel tubing26.0026.00Inches38LAXX
240001300Hub1.001.00Each25LAXX
2400014001/4-20 Screw4.004.00Each14LAXX
240001500Steel holder1.001.00Each25LAXX
3150014001/4-20 Screw2.002.00Each16LAXX
240001700Wiring assembly1.001.00Each14LAXX
31700220016-Gauge lamp cord12.0012.00Feet26LAXX
317002300Standard plug terminal1.001.00Each15LAXX
1LAXXB10XBase assembly options1.001.00Each03LAXX
2B10XB100Base assembly0.320.32Each14LAXX
3B10012006-Diameter steel plate1.000.32Each37LAXX
2B10XB1017in Base assembly0.410.41Each14LAXX
3B10112017-Diameter steel plate1.000.41Each37LAXX
2B10XB1028in Base assembly0.330.33Each14LAXX
3B10212028-Diameter steel plate1.000.33Each37LAXX
1LAXXS10XShade options1.001.00Each03LAXX
2S10XS100Black shade0.070.07Each25LAXX
2S10XS10114in White shade0.180.18Each25LAXX
2S10XS10214in Cream shade0.240.24Each25LAXX
2S10XS10314in Yellow shade0.100.10Each25LAXX
2S10XS10415in Black shade0.060.06Each25LAXX
2S10XS10515in White shade0.140.14Each25LAXX
2S10XS10615in Cream shade0.220.22Each25LAXX
2S10XS10715in Yellow shade0.100.10Each25LAXX
1LAXXA10XSocket assembly options1.001.00Each03LAXX
2A10XA100Socket assembly0.110.11Each14LAXX
3A1001600One-way socket1.000.11Each26LAXX
2A10XA101Three-way socket assem.0.920.92Each14LAXX
3A1011601Three-way socket1.000.92Each26LAXX


Output 2.4.2: Summarized Parts List (SumBOM4)

ABC Lamp Company
 
Summarized Parts List, Period 4

_Part_Low_CodeReqOn_HandNet_ReqLeadTimeDescUnit
11002100000100002Finished shaftEach
1200332000320036-Diameter steel plateEach
1201341000410037-Diameter steel plateEach
1202333000330038-Diameter steel plateEach
13002100000100002HubEach
140036000006000011/4-20 ScrewEach
15002100000100002Steel holderEach
160031100011002One-way socketEach
160139200092002Three-way socketEach
17002100000100001Wiring assemblyEach
21003260000026000033/8 Steel tubingInches
220031200000120000216-Gauge lamp cordFeet
23003100000100001Standard plug terminalEach
40001100000100000Common partsEach
A10021100011001Socket assemblyEach
A10129200092001Three-way socket assem.Each
A10X1100000100000Socket assembly optionsEach
B10023200032001Base assemblyEach
B101241000410017in Base assemblyEach
B102233000330018in Base assemblyEach
B10X1100000100000Base assembly optionsEach
LAXX0100000100003Lamp LAEach
S100270007002Black shadeEach
S1012180001800214in White shadeEach
S1022240002400214in Cream shadeEach
S1032100001000214in Yellow shadeEach
S10426000600215in Black shadeEach
S1052140001400215in White shadeEach
S1062220002200215in Cream shadeEach
S1072100001000215in Yellow shadeEach
S10X1100000100000Shade optionsEach


Last updated: August 24, 2020