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 (= ) 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 ). 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 |