As built

Where a stack-up stops working

On a crank-rocker the first-order tolerance estimate matches the measured band at every one of 180 positions, to eight parts in ten thousand. On a parallelogram it exceeds it by a factor of 475,512. Same arithmetic, same tolerance, two linkages that differ only in their proportions — and nothing in the calculation says which one it is being run on.

Assumes Worst case and the square root.

Everything in this field so far has rested on one sentence: the output error is a sum of terms, each a derivative times a tolerance. That sentence is true for the linkage the previous four essays used, and it is true to a startling degree — the first-order estimate and the sixteen-corner measurement agree to 0.09% at every one of 180 crank positions.

It is also false for a linkage that differs only in its proportions, and false by five and a half orders of magnitude.

Where a tolerance stack-up stops meaning anything. The ratio between the first-order tolerance estimate and the band measured by building every corner linkage, for two four-bars at ±0.002 on each length. The crank-rocker's ratio is 1 at all 180 positions — a stack-up is exactly right for it, everywhere. The parallelogram is a change-point linkage, where all four bars can lie on one line, and at that position the estimate exceeds the measurement by a factor of 4.8e+5. The difference is not in the arithmetic, which is identical; it is that a derivative describes a map that can be inverted, and at a change point the map cannot.
Fig. 1 The first-order estimate divided by the measured band, on a log scale, for two four-bars at the same tolerance. The crank-rocker sits on 1 for the whole turn. The parallelogram spikes to 4.8 × 10⁵ at 180°, where all four of its bars lie on one line.

What a change point is

Grashof’s condition compares the shortest link plus the longest against the other two. If s + l < p + q the linkage is Grashof and some link turns fully; if s + l > p + q it is not.

The equality case, s + l = p + q, is the change point, and it is a genuinely different animal rather than a boundary case of either. A parallelogram — ground 4, crank 1, coupler 4, rocker 1 — has 1 + 4 = 4 + 1 exactly, and at two positions in each turn all four bars become collinear.

At those positions the mechanism is not determined by its constraints. The four bars folded flat can come apart into a parallelogram or into an anti-parallelogram, and the constraint equations are satisfied by both. The constraint Jacobian has lost rank; there is a direction the joints can move in that produces no first-order change in any constraint.

This is the same phenomenon as the toggle and the direct singularity of a platform, and the site has been circling it since its first field. What is new here is what it does to a tolerance.

Why the derivative blows up and the mechanism does not

The first-order route computes ∂x/∂ℓ = −J⁻¹ ∂f/∂ℓ. When J loses rank that inverse does not exist, and numerically it produces a very large number rather than an error: the solve returns something, it is enormous, and every downstream percentage is computed from it without complaint.

What happens to an actual parallelogram at its change point is not that it flies apart. It is that it chooses. Coming out of the fold it goes one way or the other, and which way is decided by whichever of the four lengths is a micron long — or by a spring, or by a bias link, or by momentum, none of which this site models.

So the measured band stays small and finite while the predicted band goes to infinity, and the ratio between them is the 4.8 × 10⁵ in the figure. The corner enumeration is not being clever there; it is simply building sixteen mechanisms and solving each, and sixteen slightly-different parallelograms all come out of the fold somewhere sensible.

The measurement is not right either

It would be comfortable to conclude that the corner enumeration is the trustworthy route and the derivative the unreliable one. That is not what is going on, and saying so is the more useful half of this essay.

Away from the change point, the crank-rocker’s corners exceed its linear estimate by at most 0.04% — the linear estimate is very slightly conservative, which is what the Cauchy–Schwarz argument says it must be. But on the parallelogram, at some positions, the measured corner band exceeds the linear one by 12%. The bound has gone the wrong way.

That happens because the corner argument rests on monotonicity: the extreme of a function monotone in each variable is at a corner of the box. Near a change point the output is not monotone in the lengths, because two of the sixteen corners have come out of the fold on different branches from the other fourteen. Their outputs are not slightly different; they are somewhere else entirely, and the “band” the enumeration reports is the extent of a set that is not an interval.

So at a change point:

  • the derivative route returns infinity, which is wrong,
  • the corner route returns a number, which is the spread of a set containing two populations,
  • and neither of them is the answer to the question anybody asked.

The right description is not a band at all. It is: this mechanism has two behaviours, and the tolerance decides which one a given part gets. That is a design decision to be made, not an accuracy to be quoted.

What “the band is not an interval” means in practice

Worth making concrete, because it is the least familiar idea here.

Take a hundred parallelograms off a machine, each with its four lengths somewhere in ±0.002, and drive each one slowly through the fold. Ninety-something come out as parallelograms. A few come out as anti-parallelograms — the coupler has flipped, and the output rocker now turns the other way for the rest of the cycle.

Measure the output angle of all hundred at 200° of crank rotation. The ninety-something cluster tightly, within a few hundredths of a degree of each other. The few are tens of degrees away.

A histogram of that is not a bell curve with a wide spread. It is two clusters. Reporting its range as a “tolerance band” is like reporting the range of a bimodal distribution as its accuracy: arithmetically defensible, and it describes nothing that happens to any individual part. Every part is either accurate or in the wrong mode, and none is in between.

That is why the answer at a change point is not a number. The design question is not “how accurate is it” but “what fraction flips, and what happens to the machine when one does” — and the second half of that has no kinematic answer at all.

Grashof's classification, predicted and then swept. Four sets of link lengths. For each, Grashof's condition predicts from the lengths alone whether the input can rotate a full turn, and the solver then attempts all 180 positions and reports how many assembled. The prediction and the measurement agree in every case, which is what licenses quoting the classification for a mechanism nobody has swept.
Fig. 2 The classification that guarantees it. A Grashof crank-rocker’s coupler and rocker are never collinear, which is exactly the configuration at which the constraint Jacobian would lose rank — so a condition published in 1883 about four numbers certifies that a tolerance analysis is valid everywhere on it.

Why the crank-rocker is so well behaved

The other half of the comparison deserves as much attention as the failure, because 1.000 at 180 positions is a strong claim and it is easy to skate past.

A crank-rocker is Grashof with the shortest link as the crank, and the classification carries a guarantee: the crank turns all the way round, and the coupler and rocker never become collinear. That second clause is the important one here — coupler-rocker collinearity is precisely the configuration at which this linkage’s constraint Jacobian would lose rank, and the Grashof condition rules it out for every crank angle.

So the well-behaved case is not well behaved by luck. It is well behaved because a condition published in 1883, about four numbers and no geometry, guarantees that the matrix stays invertible everywhere. Grashof’s condition predicts and a sweep measures, and what the sweep is really confirming is a statement about rank.

That gives a cheap pre-check that costs nothing at all: a Grashof crank-rocker’s tolerance analysis is valid everywhere, by the classification alone. No solve required. It is the non-Grashof and change-point linkages that need the two-route comparison, and those are exactly the ones a designer chooses deliberately for a reason.

The cheap diagnostic

The useful outcome is that the disagreement between the two routes is itself the instrument.

Both routes are computed already — the derivative route for the allocation, the corner route for the band — so their ratio is free. On a well-behaved mechanism it is 1.000 everywhere. On one that passes near a change point it departs, and it departs long before the change point itself: the ratio is measurably away from 1 at positions well either side of the fold, which gives warning rather than a cliff edge.

That is worth building into any tolerance analysis, and it is the reason this site computes both routes rather than picking the cheaper. A stack-up with one route has no way to know whether it is a stack-up or a report on a singular matrix.

The output is a band, not an angle. The rocker's angle through one turn of the crank, for a four-bar whose four lengths are each specified to ±0.001. The line is the nominal mechanism; the band is where the output of an actual one lies, found by building all sixteen extreme combinations of the four lengths at every crank angle and solving each. The band is not a constant width: it is 0.07° at its widest, near 30°, and 0.04° at its narrowest — a factor of 2.0. Which of those a designer is told depends entirely on where the mechanism was measured.
Fig. 3 What a band looks like when the analysis is valid: smooth, bounded, and varying by a factor of two around the cycle. Nothing in this picture is remarkable, and that is the point — the crank-rocker is the case where every standard technique works, and it is also the case most mechanisms are.

Three singularities, and only one of them does this

This site has now met three configurations that all get called singular, and it is worth separating them, because only one behaves this way under a tolerance.

A toggle is where the crank and coupler become collinear. The output velocity passes through zero, the mechanical advantage diverges, and the mechanism is at its strongest. The constraint Jacobian is fine here — the mechanism’s position is perfectly well determined — so a tolerance analysis at a toggle is valid. What diverges at a toggle is lost motion, which is a different quantity and diverges for a different reason.

A poor transmission angle is where the coupler and rocker become nearly collinear. Nothing is singular at all; the mechanism is merely inefficient, and the tolerance band is merely large. The first-order estimate is exactly right there and simply returns a big number, which is the correct answer.

A change point is where all four become collinear. Only here does the Jacobian lose rank, and only here does the first-order analysis stop describing anything.

The three are routinely lumped together as “the mechanism goes singular”, and the lumping is what makes the failure here surprising. Two of the three are configurations where a tolerance analysis is fine and gives a large answer; the third is one where it gives a meaningless answer that looks like a large one. Telling them apart needs the rank, which is a quantity this site computes on every mechanism in its ledger.

The number 475,512 is not a physical constant

Worth saying plainly, because a figure with five significant digits invites being quoted.

That ratio is the largest value found at 180 sampled crank positions, and the sampling landed where it landed. Refine the sampling and a sample lands nearer the fold; the ratio grows. It is a pole, and the peak is a property of the grid, exactly as the peak lost motion is.

What is a property of the mechanism is the shape: the ratio departs from 1 smoothly as the fold is approached, crosses any threshold that could be named, and has no finite maximum. That is a qualitative fact and it is the one that matters, because it means there is no tolerance small enough to make the first-order analysis valid at the change point. Halving the tolerance does not halve the error in the estimate; the estimate is not converging to anything.

This site quotes the number anyway, in the caption, with the sample count beside it. That is the convention throughout: a quantity produced by a sampling is reported with the sampling that produced it, so that a reader can tell a measurement from a limit. A caption that said “the ratio reaches 475,512” without the 180 would be quoting the grid as though it were the geometry.

Designing away from it, and the cost

A designer who has found their mechanism near a change point has three options, and they are worth laying out because the third is the one usually taken by accident.

Move the proportions. If s + l = p + q is close, changing one length by a few per cent puts it clearly on one side. The linkage then has a definite Grashof class, its Jacobian keeps its rank throughout, and every technique in this field works. The cost is that the parallelogram’s defining property — the coupler staying parallel to the ground — is exactly what s + l = p + q buys, so moving off it means giving that up.

Add a constraint that decides the branch. A fifth bar parallel to the other two makes the redundant parallelogram that Grübler declares immobile and which visibly moves. That mechanism cannot flip, because the extra bar is inconsistent with the anti-parallel configuration. The cost is that it is now overconstrained, which is the other half of this field: it works only while its geometry is exact, and what makes it work in practice is clearance.

Do nothing and let the machine decide. Momentum, a spring, friction or a bias will pick a branch, usually the same one, usually. This is what most designs do, and it is a perfectly serviceable answer as long as somebody has decided it rather than discovered it after the first flip in the field.

The parallelogram is not a pathological example

It would be easy to file this under curiosities. It should not be filed there, because the parallelogram is one of the most-used linkages there is.

It is the mechanism in every drafting machine, every parallel-motion lamp, every four-bar suspension that has to keep a wheel upright, every pantograph. Its defining property — the coupler stays parallel to the ground — is exactly why it is chosen, and that property is what makes s + l = p + q.

So the linkage whose tolerance analysis is meaningless is not an edge case dreamed up to break a method. It is the second-commonest four-bar in the world, and it is chosen for the property that breaks the method.

What real designs do about it is add something that decides the branch: a fifth bar making a redundant parallel chain, a spring, an offset. Each of those is a device for making sure the mechanism comes out of the fold the same way every time — and each of them changes the mechanism into one whose tolerance behaviour is different again.

One set of lengths, two mechanisms. The same four bars pinned in the same order and the same crank angle, assembled two ways. B sits 4.53 units apart between them. Both satisfy the loop-closure equations exactly, so neither is more correct — and a built mechanism is in one branch permanently, because getting to the other requires taking a pin out. The solver reaches whichever branch its starting guess is nearer, which is why a sweep carries the previous position forward rather than starting fresh.
Fig. 4 The two ways out of the fold. A parallelogram coming off a change point can go on as a parallelogram or as an anti-parallelogram, both satisfying every constraint exactly, and which one a given part chooses is decided by whichever length is a micron long.

How near is near enough

The practical question left over is how close to a change point a mechanism has to be before the analysis stops meaning anything, and the honest answer is that there is no threshold — but there is a measurable warning.

The ratio between the two routes does not jump. It rises smoothly as the fold is approached, so a linkage whose proportions put it a few per cent off the change point has a ratio of, say, 1.2 rather than 1 — enough to notice, and not enough to invalidate anything. One a tenth of a per cent off has a ratio in the hundreds.

So the rule is not “avoid change points” but “compute the ratio and look at it”. A number near 1 licenses everything in the previous four essays. A number that is not near 1 says that the mechanism is operating somewhere the linear model does not describe, and that the next step is to find out which positions and what happens there, rather than to tighten anything.

That also means the diagnostic is useful in the other direction. A design being pushed towards a parallelogram for good reasons — because the coupler must stay parallel — will show the ratio climbing as it goes, and the climb is a measurement of how much of the mechanism’s behaviour is now being decided by things this site does not model. That is exactly the information a designer wants at that moment and it is not available from any single-route calculation.

Two routes to the same derivative. How much the output angle moves when the ground length moves, through one turn, computed twice. One route rebuilds the mechanism at g ± 10⁻⁶ and solves both from scratch; the other differentiates the constraint equations and solves one linear system against the analytic Jacobian. They lie on top of each other — the strip beneath plots the difference on a four-decade log scale, and its largest value anywhere in the turn is 2.6e-10 against a sensitivity of order 0.29. That is the only independent check there is of the Jacobian itself, whose coupler rows carried four wrong signs from the foundation phase to 2026-08-12 without ever drawing anything wrong.
Fig. 5 The two routes on the well-behaved linkage, for the ground length — the contributor whose derivative has two parts. Where the mechanism is ordinary they lie on top of one another to eight decimals, which is what makes their departure elsewhere worth reading as a signal rather than as noise.
Two routes to the same derivative. How much the output angle moves when the coupler length moves, through one turn, computed twice. One route rebuilds the mechanism at b ± 10⁻⁶ and solves both from scratch; the other differentiates the constraint equations and solves one linear system against the analytic Jacobian. They lie on top of each other — the strip beneath plots the difference on a four-decade log scale, and its largest value anywhere in the turn is 2.9e-10 against a sensitivity of order 0.41. That is the only independent check there is of the Jacobian itself, whose coupler rows carried four wrong signs from the foundation phase to 2026-08-12 without ever drawing anything wrong.
Fig. 6 The same derivative taken with respect to the coupler instead. It stays finite through the same sweep, so what blows up is a property of one length’s sensitivity at one configuration rather than of the mechanism as a whole.

Which length the derivative is taken with respect to decides whether it blows up at all, so the sensible thing to look at next is how the four of them share the band between them.

The four lengths do not matter equally. Each length's average contribution to the output band, for a tolerance of ±0.01 on all four, averaged over the 48 crank positions the mechanism reaches. The coupler contributes 38% of the total and the rocker 11% — a factor of 3.4 between the ends of the ranking. A tolerance specified equally on all four therefore spends most of its cost buying accuracy the mechanism does not notice, which is what a sensitivity ranking is for.
Fig. 7 The four contributions, computed by the route that fails at a change point. On this linkage they are meaningful and they rank; on the parallelogram the same call returns four percentages that look exactly like these and are a report on a singular matrix.

What the two curves have in common

The last thing worth saying is that both curves in the hero figure come out of the same twelve lines of arithmetic. There is no branch in the code that detects a change point; there is no special case. Both linkages are handed the same tolerance, the same sixteen corners, the same Jacobian solve.

That is exactly the situation this site exists to make visible. A calculation that produces a plausible number for a mechanism it does not apply to is not a calculation that has failed loudly. It is a spreadsheet with a number in the answer box, and the only thing that distinguishes it from a correct one is a second route to compare against.

The cheap diagnostic is the practical output of this rung and it is worth putting in its most usable form. Compare the first-order estimate against the corner enumeration at a handful of positions, and if the two agree the derivative is trustworthy everywhere nearby; if they diverge, the mechanism is near a change point and the derivative means nothing there. That costs sixteen solves at three or four positions — a few dozen solves against a full study’s hundreds — and it settles which of the two instruments to believe before either is run in earnest. What makes it work is that the two methods fail in opposite ways near a change point: the derivative blows up and the enumeration stays bounded, so the disagreement is large and unmistakable rather than a matter of judgement. That is the ideal shape for a diagnostic, and it is available here only because the site computes both routes as a matter of habit. A field that had settled on the fast method alone would have had a number that was wrong by five orders of magnitude and no way at all to notice.

What this makes readable

Essays that name this one as a prerequisite.

About the same objects

Not linked from either essay — found by the objects both name.

What links here

The 8 of 14 essays linking to this one that name the most of the same objects.

The objects this essay names

Each one links to every other essay that touches it.

Change pointConstraint jacobianDead centreGrashof's conditionJacobianParallelogramRankSensitivitySingularityToggleTolerance