Skip to main content
Tolerance  Stack-ups  Using Crystal Ball March 20, 2009
The Tolerance Stackup Process  (Revised 11/19/2008) Slide 3 Slide 5 Slide 26 Slide 26
Get Stackup Template From WindChill 1. Inputs: Part Descriptions & Dimensions 2. Loop Equation (Transfer Function) 3. Output Open file named:  TolerStackup Excel’97 ver7.xlt This is a macro-enabled Excel template
Associated to CTQ? 2 3 4 5 1 Yes Yes Yes Yes Yes Part  or  Process Not a CTQ. Consider Worst Case Stack-up No No No No
Three Benefits of Using EXCEL Template Automatic referencing.  You only have to enter the data once. Poke Yoke *  (mistake proofing).  Drop down menus limit choice to valid parts Monte Carlo Simulation is built into spreadsheet
The Tolerance Stackup Process  (Revised 11/19/2008) Slide 3 Slide 5
CONCATENATE (Text1, Text2,…Text255) The  CONCATENATE  function joins up to 255 text strings into one text string. The joined items can be text, numbers, cell references, or a combination of those items. For example, if your worksheet contains a person's first name in cell  A1  and the person's last name in cell  B1 , you can combine the two values in another cell by using the following formula:  =CONCATENATE(A1," ",B1) The second argument in this example ( " " ) is a space character. You must specify any spaces or punctuation that you want to appear in the results as an argument that is enclosed in quotation marks.
VLOOKUP( Cell, Range, Column#, FALSE ) You can use the  VLOOKUP  function to search the  first  column of a range of cells, and then return a value from any cell on the same row of the range.  The V in  VLOOKUP  stands for vertical. Use  VLOOKUP  instead of  HLOOKUP  when your comparison values are located in a column to the left of the data that you want to find.
Class Exercise: open Excel file named  Auto Referencing Exercise 01-MAR-09  B A O Z
Create a Unique Identifier on the left column of the Parts Lists
Create a Unique Identifier on the left column of the Parts Lists (Copy Down)
Create a Unique Identifier on the Left Column of the Loop Equation
Create a Unique Identifier on the Left Column of the Loop Equation (Copy Down)
Use the Vertical Lookup Function to Auto-populate Your Dimensions
Use the Vertical Lookup Function to Auto-populate Your Dimensions Find an  EXACT  match; don’t leave this blank
Use Automatic Cell Referencing to Save Time & Reduce Data Entry Errors Summary  Use  Concatenate  to create unique references to the  Parts List  on the left side of the table. Use  Concatenate  again to create unique references for the  Loop Equations . Use  V-Lookup   to automatically populate the Loop Equations with dimensions from the Parts List once the Part Number and Description have been entered.
Three Benefits of Using EXCEL Template Automatic referencing.  You only have to enter the data once. Poke Yoke *  (mistake proofing).  Drop down menus limit choice to valid parts Monte Carlo Simulation is built into spreadsheet * Poka-yoke   ( ポカヨケ )  is a Japanese term that means " fail-safing ", "Foolproof" or "mistake-proofing" — avoiding ( yokeru ) inadvertent errors ( poka )) is a  behavior-shaping constraint , or a method of preventing  errors  by putting limits on how an operation can be performed in order to force the correct completion of the operation. The concept was formalized, and the term adopted, by  Shigeo Shingo  as part of the  Toyota Production System .
Using Data Validation to Poka Yoke Entries  The selectable choices are limited to the group name  fish ; all other categories do not show up. Class Exercise: open Excel file named  Data Validation Exercise 01-MAR-09
=INDIRECT ( Name of Range ) 1. Select a range of cells 2. Right click mouse 3. Give the range a name 4.  Repeat   steps 1-3 for the next three Groups ( bird ,  reptile ,  fish )
=INDIRECT ( Name of Range )
=INDIRECT ( Name of Range ) Cell $C$21 = “mammal” By entering the  Name of the Range  inside the parenthesis of the  INDIRECT  statement, only the items listed in the  Name Range  become selectable. Cell $C$21
=INDIRECT ( Name of Range ) Cell $C$21 = “mammal” By entering the  Name of the Range  inside the parenthesis of the  INDIRECT  statement, only the items listed in the  Name Range  become selectable.
Using Data Validation to Poka Yoke Entries Summary  Select range of cells belonging to the same Group Name Right click mouse and  Name  your group Go to the Data menu and choose  Data Validation Under  Allow:  choose  List Under  Source:  enter  = INDIRECT( Group Name ) Click OK
Three Benefits of Using EXCEL Template Automatic referencing.  You only have to enter the data once. Poke Yoke *  (mistake proofing).  Drop down menus limit choice to valid parts Monte Carlo Simulation is built into spreadsheet * Poka-yoke   ( ポカヨケ )  is a Japanese term that means " fail-safing ", "Foolproof" or "mistake-proofing" — avoiding ( yokeru ) inadvertent errors ( poka )) is a  behavior-shaping constraint , or a method of preventing  errors  by putting limits on how an operation can be performed in order to force the correct completion of the operation. The concept was formalized, and the term adopted, by  Shigeo Shingo  as part of the  Toyota Production System .
The Tolerance Stackup Process  (Revised 11/19/2008) Slide 26 Slide 26 Engineering Non-CTQs CTQs
Monte Carlo Simulation Invented in 1945 by Polish scientist Stanislaw Ulam while working in Los Alamos National Labs  to simulate the impact of the hydrogen bomb. The name is a reference to the Monte Carlo Casino in Monaco where Dr. Ulam's uncle spent his money gambling.   The use of randomness (e.g., the roulette wheel is a random number generator of sorts) and the repetitive nature of the process are analogous to the activities conducted at a casino. At the time, the main hurdle for acceptance was  computing power A system that uses random numbers to measure the effects of uncertainty Monte Carlo Casino in Monaco
How It Works 1. Transform probability (input) to cumulative probability function 3. Convert random number to sample value 2. Generate a random number between 0 & 1 4. Input sample value to Loop Equation (Transfer Function) 5. Re-calculate Stackup and record simulation result from this trial 6. Generate another random number  and  repeat the process until you have  10,000 trials
Using Crystal Ball for Monte Carlo Simulation Advantages Inexpensive to evaluate decisions before implementation Reveals critical components of the system Excellent tool for selling the need for change Modern hardware & software make simulation easy to use Disadvantages Results are sensitive to the accuracy of input data If you can’t model it in Excel, you can’t use Crystal Ball to simulate it
2 Options for Launching Crystal Ball Option 1: Launch automatically every time you  open Excel Option 2: Start manually separate from Excel. Choose this option if you’re running Crystal Ball less than 20% of the time you’re running Excel
3 Basic Crystal Ball Components Crystal Ball Term Common Names Assumption Input, X, independent variable, random variable, probability distribution.  This is where you enter part dimensions. Decision Variable Controlled variable.  Not used in the Stackup Template because there are optimization problems. Forecast Output, Y=f(x), dependent variable.  This is where you analyze the result of the Loop Equations (see worksheet tab named STACK-UPS).
Open the MS Excel’97-2003 file named:  BricardLock Class Exercise 1.0.xls
3 Ways to Create Inputs for Statistical Stack-ups a.k.a. Monte Carlo Simulation Assumptions Without actual data , assume Normality and enter following elements into Crystal Ball’s Define Assumption dialog box: Target Nominal value Estimated Std. Deviation based on a Tolerance & Assumed Cpk Perform a capability study *  of your  Normally-distributed data  and enter the following results into Crystal Ball: Actual Nominal Value Actual Std. Deviation Actual Cpk Feed the data directly into Crystal Ball  and choose the best distribution –  even if it’s non-Normal .  In a separate step, you’ll have to determine and enter the Tolerance or Cpk value. * NOTE: How to perform capability studies is outside the scope of this training document.
3 Ways to Create Inputs for Statistical Stack-ups a.k.a. Monte Carlo Simulation Assumptions Without actual data , assume Normality and enter following elements into Crystal Ball’s Define Assumption dialog box: Target Nominal value Estimated Std. Deviation based on a Tolerance & Assumed Cpk
Got to the worksheet PART DIMENSIONS. Choose Cell E3 under the heading GOT DATA?  Choose NO to simulate that you don’t have actual parts to measure or that the vendor hasn’t given you data to do a capability study on. Under STACKUP TYPE, choose Statistical.  Let us assume that all the parts in this Stackup Exercise are Critical To Quality (CTQ). Choose Cell G3 under the heading NOMINAL.  The Nominal Value, the Tolerance (Column J) and estimated Capability Index Cpk (Column K) have been entered for you.  Let us assume the Normal Distribution for any dimension we do not have data for. Go to Crystal Ball on Excel’s Main Menu. Place your cursor on the Nominal Value, Cell G3. Choose  Define Assumption  from the Crystal Ball menu ( see Figure 1 ).
Figure 1.  Add process variation to your Excel-based nominal values by clicking the Define Assumption button in Crystal Ball.
Got to the worksheet PART DIMENSIONS. Choose Cell E3 under the heading GOT DATA?  Choose NO to simulate that you don’t have actual parts to measure or that the vendor hasn’t given you data to do a capability study on. Under STACKUP TYPE, choose Statistical.  Let us assume that all the parts in this Stackup Exercise are Critical To Quality (CTQ). Choose Cell G3 under the heading NOMINAL.  The Nominal Value, the Tolerance (Column J) and estimated Capability Index Cpk (Column K) have been entered for you.  Let us assume the Normal Distribution for any dimension we do not have data for. Go to Crystal Ball on Excel’s Main Menu. Place your cursor on the Nominal Value, Cell G3. Choose  Define Assumption  from the Crystal Ball menu. Choose the Normal from the list of available distributions and click  OK  ( see Figure 2 ).
Figure 2.  We have 21 pre-defined distributions in Crystal Ball and 1 custom distribution.  Assume the Normal distribution if you do not have any actual data or samples regarding your part.
We are going to use formulas to define our Crystal Ball Assumptions rather than absolute numbers or characters ( see Figure 3 ).  For the: Name: =D3 Mean : = G3  Std. Deviation: =J3 Figure 3: Use relative cell references to define assumptions
We are going to use formulas to define our Crystal Ball Assumptions rather than absolute numbers or characters ( see Figure 3 ).  For the: Name: =D3 Mean : = G3  Std. Deviation: =J3 Click  OK .  Cell D3 will turn the color Green, identifying the cell as a Crystal Ball Assumption or Input.  Note that my pressing the keys  Ctrl+Tilden  (next to the 1 key), you can switch the display from formula to cell-value. With the cursor still on Cell G3, click the  Copy  button on the Crystal Ball Define menu ( see Figure 4 ). Figure 4.  Copy Data only copies Crystal Ball elements.  It has no effect on MS Excel objects.
3 Basic Crystal Ball Edit Functions Crystal Ball Term Common Names Copy an assumption (input) and forecast (output) variables.  Copy the distribution parameters, the naming format, and any other CRYSTAL BALL attribute associated with that Cell.  Microsoft Excel Cell Values and Formulas are left alone (not affected by this command). Allow you to past CRYSTAL BALL attributes (assumptions and forecasts) into similar cells.  You may copy one cell and paste the attribute into many cells in one click; thus, it is the quickest way of defining CRYSTAL BALL components. Removes CRYSTAL BALL components from selected cells, thus making them in-active or deterministic (no variability is associated with the cell).
Think of Crystal Ball Entities as layered objects placed on top of Microsoft Excel
Think of Crystal Ball Entities as layered objects placed on top of Microsoft Excel Microsoft Excel Objects (Cells, Worksheets, Formulas, etc.) Crystal Ball :  Assumptions  &  Forecast
Crystal Ball edit commands only effect Crystal Ball Entities. Cell values, Formulas, and Formatting are un-affected. Microsoft edit commands can copy & paste the  green   &   light blue  colors associated Crystal Ball entities, but it will not effect Crystal Ball calculations.
We are going to use formulas to define our Crystal Ball Assumptions rather than absolute numbers or characters ( see Figure 3 ).  For the: Name: =D3 Mean : = G3  Std. Deviation: =J3 Click  OK .  Cell D3 will turn the color Green, identifying the cell as a Crystal Ball Assumption or Input.  Note that my pressing the keys  Ctrl+Tilden  (next to the 1 key), you can switch the display from formula to cell-value. With the cursor still on Cell G3, click the  Copy  button on the Crystal Ball Define menu. Choose Cell G4, and click the  Paste  button.  This will copy all of the Crystal Ball elements you defined in Cell G3, and copy them over to Cell G4.  This is the quickest way of defining  Crystal Ball Assumptions ( see Figure 5 ).
Figure 5.  COPY & PASTE are the fastest way to define your assumptions.
Repeat Step 12 (defining assumptions using the  Paste  command) for cells: G36, G37, G69, G70, G71, G102, and G103.  Notice that you can turn all 7 cells into Crystal Ball Assumptions in one click  by holding down the Control (Ctrl) key as you select them.  The worksheet PART DIMENSIONS should now look like  Figure 6 ; indicating you’ve defined the assumptions for all the parts which you do  not  have data for. Figure 6.  For new parts without data, this is what the worksheet should look like.
3 Ways to Create Inputs for Statistical Stack-ups a.k.a. Monte Carlo Simulation Assumptions Without actual data , assume Normality and enter following elements into Crystal Ball’s Define Assumption dialog box: Target Nominal value Estimated Std. Deviation based on a Tolerance & Assumed Cpk Perform a capability study *  of your  Normally-distributed data  and enter the following results into Crystal Ball: Actual Nominal Value Actual Std. Deviation Actual Cpk * NOTE: How to perform capability studies is outside the scope of this training document.
Figure 7.  In this case, let us assume we have actual data to analyze. Reference worksheet  Dwg No B520-647  for the next part of the class exercise.  Let us assume we have data for the  CENTER TO OUTER EDGE  dimension of the  OUTSIDE CYLINDER HOUSING . Perform a capability study and record the: (1) mean; (2) standard deviation; and (3) Cpk based on the following Lower and Upper Specification Limits:  0.615  and  0.617 , respectively ( see Figure 7 ).
Part Number B520-647:  Minitab Capability Study Check for normality
Part Number B520-647:  Minitab Capability Study Xbar =0.6155 S=0.00073 Cpk=0.24
Reference worksheet  Dwg No B520-647  for the next part of the class exercise.  Let us assume we have data for the  CENTER TO OUTER EDGE  dimension of the  OUTSIDE CYLINDER HOUSING . Perform a capability study and record the: (1) mean; (2) standard deviation; and (3) Cpk based on the following Lower and Upper Specification Limits:  0.615  and  0.617 , respectively . Create a Crystal Ball assumption in Cell G135.  Define  the:  Name: =D135 Mean: =G135 Std. Deviation: =I135 Cpk:  =K135 as in  Figure 8 Figure 8.  Enter the results of your capability study when you have actual data.
3 Ways to Create Inputs for Statistical Stack-ups a.k.a. Monte Carlo Simulation Assumptions Without actual data , assume Normality and enter following elements into Crystal Ball’s Define Assumption dialog box: Target Nominal value Estimated Std. Deviation based on a Tolerance & Assumed Cpk Perform a capability study *  of your  Normally-distributed data  and enter the following results into Crystal Ball: Actual Nominal Value Actual Std. Deviation Actual Cpk Feed the data directly into Crystal Ball  and choose the best distribution –  even if it’s non-Normal .  In a separate step, you’ll have to determine and enter the Tolerance or Cpk value. * NOTE: How to perform capability studies is outside the scope of this training document.
Choose Cell G168 on the worksheet  PART DIMENSIONS , then click the  Define Assumption  button in Crystal Ball (see  Figure 9 ). Figure 9.  Do not choose OK.  Do not assume a normal distribution.  Click the Fit… button and let Crystal Ball suggest which distribution best fits your data.
Click the  Cell Reference  box next to the  Range  option and go the to the worksheet named  Dwg No 2 Screw Clearance  and select the following range of cells:  A4:A103 .  The dialog box should look like  Figure 10 . Figure 10.  Click the Cell Reference Box and go to the worksheet which contains the data: “Dwg No 2 Screw Clearance”.  Input the range of cells which contains the data
Click  OK  and Crystal Ball will churn out the distributions which best fit the data in descending order (see  Figure 11 ).  Click the  Next  button and the Weibull distribution will be highlighted in  green  rather than the Beta Distribution.  Click  Accept  and then  OK ; you have completed defining the assumption by directly inputting the data into Crystal Ball. Figure 11.  By descending order, this is a list of which distributions best fits your data.  Choosing Next >> will toggle you down to the distribution of your choice.
Enter the  Nominal  and the  Std. Deviation  defined in the Cells  C2  and  C3  of the worksheet  Dwg No 2 Screw Clearance . –  0.0171  and  0.0022 , respectively.  Since we have a Weibull distribution, choose “No” in Cell H168.  Let us  enter a tolerance of 0.008  rather than entering a Cpk (non-normal distributions typically don’t have Cpk values unless they’ve been transformed to a normal distribution).  The final worksheet should look like  Figure 12 . Figure 12.  Enter Nominal, Std. Deviation, and Tolerance to satisfy Worst-Case & RMS Stack-up calculations.  At this point, we are finished with the worksheet PART DIMENSIONS.
Activate or choose the worksheet  LOOP EQUATIONS .  Enter the stack-up name, the date, and your name to the title block.  Choose  CLEARANCE  , as opposed to INTERFERENCE , for your worst-case stack-up type. From the drop-down menu of available parts, choose drawing number  1  for  Drawing Number . From the drop-down menu of available dimensions for drawing 1, choose CENTER OF LWR C'BORE TO C'BORE EDGE for the description (see  Figure 13 ). Figure 13.  There is no need to re-type the information from PART DIMENSIONS to the LOOP EQUATIONS.  The drop-down menus facilitate speed of and error-proofing.
Activate or choose the worksheet  LOOP EQUATIONS .  Enter the stack-up name, the date, and your name to the title block.  Choose  CLEARANCE  , as opposed to INTERFERENCE , for your worst-case stack-up type. From the drop-down menu of available parts, choose drawing number  1  for  Drawing Number . From the drop-down menu of available dimensions for drawing 1, choose CENTER OF LWR C'BORE TO C'BORE EDGE for the description Choose to ADD that part to the Loop Equation.  The Dimension ID, Nominal, Tolerance, and Std Deviation should update with numbers. Continue to ADD or SUBRACT eleven more dimensions until you have completed the Loop Equation with 12 rows as shown in  Figure 14 .  Worst Case and Root Mean Square Stack-ups are completed at this point.  The results are on the last worksheet called  STACK-UPS .
Figure 14.  What the finished LOOP EQUATION should look like
Activate or choose the worksheet  STACK-UPS , which contains the nominal results from the Loop Equation in Cell G2.  Let us assume we have the following specification and target values: Lower Specification Limit (LSL)= 0 Target= 0.1165 Upper Specification Limit (USL)= 0.2330 Choose Cell  G2  and click on Crystal Ball’s  Define Forecast  button.  Fill in the Define Forecast dialog box as follows: Name: = C2 Units: inches (optional) LSL: = H2 USL: =J2 Target: =I2 Choose the  Auto Extract  tab.  Click on the option button to  Extract forecast statistics automatically …You’ll see a warning with regards to over-writing data-filled cells  (see  Figure 15 ).
Figure 15.  Defining a forecast entity (output) in Crystal Ball
Scroll down and choose the option box  Capability Metrics .  In the text box under the heading  Starting cell:  enter  K2 . Under  Formatting , deselect the options  Include Labels  and  AutoFormat . Under  Direction , select  Fill to the right .  When the dialog box looks like  Figure 15 , click  OK . Go to Crystal Ball’s  Run  menu and click the  Start  button.  Crystal Ball will generate 10,000 samples for calculating the capability of your process.  It will take approximately 7 minutes to complete the Monte Carlo Simulation (see  Figure 16 ). Figure 16.  A random number generator will build a histogram with 10,000 data points.  This will take between 5-8 minutes.
Scroll down and choose the option box  Capability Metrics .  In the text box under the heading  Starting cell:  enter  K2 . Under  Formatting , deselect the options  Include Labels  and  AutoFormat . Under  Direction , select  Fill to the right  then click  OK . Go to Crystal Ball’s  Run  menu and click the  Start  button.  Crystal Ball will generate 10,000 samples for calculating the capability of your process.  It will take approximately 7 minutes to complete the Monte Carlo Simulation. Your STACK-UPS worksheet should now have the results for all three types: Statistical, Worst-case, and RMS stack-ups (see  Figure 17 ). Figure 17.  The results of 3 different stack-ups are displayed all at once.
Analyzing Your Statistical Stack-ups How do I answer questions like: Forecast Charts.  By how much would the capability improve if I opened up the tolerances to LSL=0 and USL=0.2800 (instead of 0.2330)? Sensitivity Charts.  There are 12 items in my Loop Equation; which one is causing the most variance?
Forecast Charts: What-if? Scenarios
Forecast Charts: What-if? Scenarios Enter 0.2800 into this text box and then hit the  ENTER  key.  The Certainty% will update. Question:  By how much would the capability improve if I opened up the tolerances to LSL=0 and USL=0.2800?  The capability would go up by 1.65% (from 82.65% to 84.30%).
Sensitivity Chart: Getting to the Cause of the Problem First, we need to create one. Click the “New” button … Choose your stack-up by name then click OK.
Sensitivity Chart: Getting to the Cause of the Problem Question:  There are 12 items in my Loop Equation; which one is causing the most variance? The  CENTER OF LWR C’BORE TO CENTER OF UPPER C’BORE  is causing most of the variance.
Summary The new tolerance stack-up is in WindChill Library.  The filename is:  TolerStackup Excel’97 ver7.xlt The benefits of using it are: You only have type the data once (fast) Poka -yoke loop equations Automatically performs 3 types of stack-ups Statistical –using Monte Carlo Simulation Worst Case Root Mean Square Crystal Ball allows you to analyze and solve problems with your statistical stack-ups.