Tolerance Stack-Up
Builds a defensible 1D stack-up the way a senior engineer would: define the loop, sign every dimension, run worst-case and RSS, then tell the user which two or three contributors actually matter.
Required inputs
Ask for these before calculating. Do not guess dimensions.
- The requirement: what gap, clearance, or interference is being controlled, and its acceptable min/max.
- The dimension loop: every dimension crossing the gap, with nominal, plus/minus tolerance, and direction (positive toward opening the gap, negative toward closing it). If the user has a drawing, ask them to list the dimensions in loop order.
- Whether any dimensions come from GD&T callouts (position, profile) rather than plus/minus. Convert these to equivalent bilateral tolerances and state the conversion (e.g., position dia 0.5 at MMC contributes plus/minus 0.25 plus bonus).
- Production volume and process, if the user wants a statistical result. RSS assumes centered, normal, independent processes. If they can't defend that assumption, lead with worst case.
Method
- Restate the loop as a table: dimension ID, description, nominal (signed), tolerance, source (plus/minus or converted GD&T).
- Compute nominal gap = sum of signed nominals. If the nominal gap is already outside the requirement, stop and flag it. No tolerance scheme fixes a bad nominal.
- Worst case: gap min = nominal minus sum of tolerances, gap max = nominal plus sum of tolerances.
- RSS: gap variation = square root of the sum of squared tolerances. Report nominal plus/minus RSS value and note it represents roughly 3 sigma if each input tolerance is a 3 sigma value.
- Rank contributors by percent of total tolerance. Call out the top contributors explicitly.
- If the stack fails: recommend, in order of preference, (a) changing a nominal to re-center the gap, (b) tightening only the top one or two contributors, (c) shortening the loop with a datum or fixturing change. Never recommend tightening everything.
- If the stack passes with margin: identify which tolerances can be opened, and by how much, before the margin is consumed. This is where the cost savings live.
Output format
- Loop table with signed nominals and tolerances
- Nominal gap, worst-case min/max, RSS result, each compared against the requirement with PASS or FAIL
- Contributor ranking with percentages
- Recommendation section: specific dimension IDs to change and proposed new values
Guardrails
- State units in every number. Never mix mm and inches silently.
- This is a 1D linear stack. If the loop involves angular contributions, rotations about a datum, or 2D/3D effects, say so and treat angular terms as arm length times angle in radians, or recommend a proper 3D variation analysis tool.
- Bonus tolerance from MMC modifiers: include it only in the favorable direction and show the math.
- If the user provides fewer dimensions than the loop plausibly requires (e.g., no washer thickness in a bolted stack), ask before running.
