There is a specific kind of frustration that comes from a supplier shipping parts that measure inside the drawing, and an assembly line that still cannot close the joint. The parts are not wrong. The stack-up assumption is.
Worst-case stack-up vs statistical stack-up
Worst-case arithmetic assumes every component arrives at its tolerance limit in the same direction at the same time. For a three-part stack with ±0.1 mm on each interface, that gives ±0.3 mm. It is simple, safe, and usually wrong in a way that costs money — because the probability of all three parts landing at the same limit simultaneously is small.
Statistical stack-up treats each tolerance as a distribution. Assuming a normal distribution and independent variables, the root-sum-square of the same three tolerances gives roughly ±0.17 mm. That is a materially different number, and it is the reason a design that looks impossible on worst-case arithmetic can be produced economically.
When to use which
Use worst-case for safety-critical joints, low-volume builds where you cannot lean on statistics, and anything where a failure has a consequence beyond scrap. Use statistical for high-volume assemblies with well-characterised processes — which is most of what a mature production line actually does.
The practical rule: if your annual volume is in the hundreds, assume worst-case. If it is in the hundreds of thousands and the process is in control, statistical stack-up is not optimistic, it is accurate.
Where the real problem usually sits
In our experience the binding is rarely caused by the tolerances that are called out on the drawing. It is caused by unstated variation: coating thickness on a plated part, flash on a casting, bend allowance in a formed bracket, or the position of a hole relative to a datum that was never defined. These are the variables that push a stack out of range while every individual dimension reads green.
A practical fix
Before re-cutting tolerances, ask the supplier for a capability study on the two or three dimensions that actually drive the stack. If Cpk is above 1.33 on those, the parts are not your problem — your datum scheme is. Tightening a tolerance that is already comfortably in control buys nothing and costs money. Defining the datum you left undefined costs nothing and usually solves it.