Tree Methods: Binomial and Trinomial Lattices Compared
A lattice method replaces the continuous process with a small number of moves per step and works backwards from the final payoffs. A binomial lattice allows two moves per step and a trinomial lattice allows three, with the third being no move at all. The two are not rival methods: the trinomial at any step count is exactly the binomial at twice that count.
The identity between the two lattices is the whole of the matter, and remarkably little of what is written about lattices says it out loud. The usual treatment introduces the two as separate techniques, shows a convergence picture in which the trinomial line looks calmer than the binomial one, and leaves the reader with the impression that the third branch bought some accuracy. It did not. Two binomial steps can finish up, finish down, or finish exactly where they started, and those three outcomes are the trinomial's three branches. Combining two steps into one is an algebraic regrouping, not a better approximation, and the prices it produces are identical to the last digit the arithmetic can hold.
Everything below runs on one worked instance, invented for the purpose. The standard processThe single invented traded quantity used throughout this reading order, starting at Rs 100/-, with a volatility of 20 per cent a year, over a one year horizon., written S with a time subscript, starts at Rs 100/-, carries a volatility of 20 per cent a year, and is valued under the risk-neutral measure Q at a rate of 5 per cent a year over a horizon of one year. The contract is the at-the-money one, strike Rs 100/-. What the contract pays belongs to option pricing theory; the contract enters here only as the function whose kink the lattice has to straddle. The closed form is Rs 10.450584/-, and every lattice reading below is checked against it rather than asserted.
What is a lattice method, and what does it actually compute?
A lattice methodReplacing the process with a small number of moves per step, so that after a finite number of steps there is a short list of end values instead of a continuum. makes one concession and then exploits it without mercy. The concession is that the process is not allowed to go wherever it likes. Over one small step of length delta-t it may take one of two moves, or one of three, and nothing else. The exploitation is that after n such steps the whole future has collapsed from a continuum of possible end values into a short list that can be written out in full.
Once the list of end values is finite, the payoff at each one is a number that can simply be looked up, and every value before the end is worked out from the step that follows it. That is the entire method. There is no integral to evaluate, no distribution to sample, no equation to solve on a grid. There is a list, and a rule for walking backwards along it.
A lift in a building is the everyday version. The lift does not know where it is in metres. It knows which floor it is on, and from any floor it can go up one, down one, or stand still while the doors open. Given the value of being on each floor at closing time, and the chance of each move, the value of being on any floor one minute before closing follows, then the value two minutes before, and so on back to the present. The height of the building in metres is never needed once. A lattice is exactly that, with floors called nodes and closing time called the horizon.
The direction matters, and it runs opposite to the way most people first picture it. Backward inductionWorking from the final payoffs back to today, computing each node from the nodes it leads to, which is what every lattice does. starts at the end and moves towards today. At the end the payoff is just a lookup, so the answer there needs no pricing argument at all. Today is where the answer is actually wanted. Forwards is where the process travels. Backwards is where the value comes from.
| \(V_i\) | the value at a node one step before the two it leads to |
| \(V_i^{\uparrow},\,V_i^{\downarrow}\) | the values already computed at the two nodes it leads to |
| \(q\) | the weight on the up move under the risk-neutral measure Q, not a real-world chance of anything |
| \(r\) | the risk-free rate, 5 per cent a year here, continuously compounded |
| \(\Delta t\) | the length of one step, being the horizon divided by the number of steps |
In which direction does a lattice actually compute?
What does a binomial lattice do?
A binomial latticeA lattice with two moves per step, one up and one down, whose sizes are set so that the spread of the moves matches the volatility of the process. allows two moves per step. The up move multiplies the level by a factor u and the down move multiplies it by the reciprocal of u. Making the down factor the reciprocal is what makes the lattice recombine: an up followed by a down lands on exactly the same node as a down followed by an up. Without that reciprocal choice the number of nodes would double at every step, and a fifty step lattice would carry more end points than there are seconds in a hundred years.
The size of the moves is not free. The move size is chosen so that the spread of the two outcomes over one step matches the volatility of the process being represented, and that requirement fixes the up factor as the exponential of sigma times the square root of the step length. The move probabilityThe weight placed on each branch of a step. The weight is a pricing device rather than a forecast, and it takes the values 0.306814, 0.494188 and 0.198998 at one trinomial step here. on the up move is then whatever it has to be so that the discounted level is unchanged in expectation, which is the risk-neutral condition doing all the work. The construction just described is the one named after Cox, Ross and Rubinstein in 1979, and their arrangement is used throughout this guide.
| \(u,\,d\) | the multipliers applied to the level on an up move and a down move, reciprocals of each other so the lattice recombines |
| \(\sigma\) | the volatility of the process, 20 per cent a year here |
| \(\Delta t\) | the length of one step, the horizon divided by the number of steps n |
| \(q\) | the risk-neutral weight on the up move, chosen so the discounted level is unchanged in expectation |
Put the locked parameters into that construction and the arithmetic is short enough to check by hand. At one step the up factor is 1.221403, the down factor 0.818731 and the weight 0.577493, and the lattice reads Rs 12.162285/- against a closed form of Rs 10.450584/-. At two steps the factors tighten to 1.151910 and 0.868123 with a weight of 0.553908, and the reading falls to Rs 9.540501/-. At four steps, 1.105171 and 0.904837 with a weight of 0.537808, giving Rs 9.970523/-.
The worked instance, at nine step counts
Read that sequence carefully. It does not do what a convergence sequence is supposed to do. It starts far too high, jumps far too low, comes back too high, drops too low again, and only after several counts does the swing become small enough to look like settling. The swing never stops. It only gets narrower than the eye can see on a printed axis.
| Steps n | Binomial reading | Against Rs 10.450584/- | Signed error |
|---|---|---|---|
| 1 | Rs 12.162285/- | above | less Rs 1.711701/- |
| 2 | Rs 9.540501/- | below | plus Rs 0.910082/- |
| 3 | Rs 11.043871/- | above | less Rs 0.593288/- |
| 4 | Rs 9.970523/- | below | plus Rs 0.480061/- |
| 5 | Rs 10.805934/- | above | less Rs 0.355350/- |
| 10 | Rs 10.253409/- | below | plus Rs 0.197175/- |
| 20 | Rs 10.351260/- | below | plus Rs 0.099323/- |
| 50 | Rs 10.410692/- | below | plus Rs 0.039892/- |
| 100 | Rs 10.430612/- | below | plus Rs 0.019972/- |
The last four rows are the ones that mislead, and they mislead through how they were chosen rather than through anything the lattice did. Ten, twenty, fifty and a hundred are all even. Their odd neighbours sit on the other side of the closed form: thirteen steps reads Rs 10.586350/- and fifty-one steps reads Rs 10.485018/-, both above. The binomial lattice on this contract does not settle onto the closed form from one side; it straddles it by parity, with odd counts above and even counts below, at every count from one to a hundred without a single exception.
How many of the first five binomial counts sit above the closed form of Rs 10.450584/-?
What does a trinomial lattice add?
A trinomial latticeA lattice with three moves per step, the third being no move at all, so the level can stay exactly where it was over a step. allows three moves per step instead of two. The first two are the familiar up and down. The third is the one that matters and it is easy to miss when it is written as a third branch on a diagram: it is no move at all. The level stays exactly where it was.
The third branch does not come from nowhere, and it is not an extra assumption bolted on. Ask what two consecutive binomial steps can do. Both steps can go up. Both can go down. Or the pair can go up then down, or down then up, and the two factors being reciprocals, those two routes land on precisely the same node, the one where the level started. Three destinations, and one of them reachable by two routes.
The trinomial lattice is what a binomial lattice looks like when the halfway point is left unrecorded and only the finish of each pair of steps is kept. The up factor over the combined step is u squared, the down factor is its reciprocal, and the three weights are the chance of two ups, the chance of one of each in either order, and the chance of two downs. Nothing has been assumed. Two steps have been written as one.
| \(u_3\) | the up factor over one trinomial step, being the binomial up factor over half that step, squared |
| \(q\) | the binomial risk-neutral weight over a step of half the length, 0.553908 at one trinomial step here |
| \(q_u,\,q_m,\,q_d\) | the weights on the up branch, the no-move branch and the down branch, being 0.306814, 0.494188 and 0.198998 at one trinomial step here |
| \(\Delta t\) | the length of one trinomial step, twice the length of the binomial step it is built from |
Work the very first case all the way through and the identity stops being an assertion. One trinomial step over a year is two binomial steps of half a year each. Only the top node finishes in the money, at Rs 132.689644/-, giving a payoff of Rs 32.689644/-. The middle node finishes at Rs 100.000000/- and the bottom at Rs 75.363832/-, and both pay nothing. So the value today is the discount factor over a year, 0.951229, multiplied by 0.306814, multiplied by Rs 32.689644/-. The product is Rs 9.540501/-.
The same thing run as a two step binomial lattice instead gives the following. The up node one step in is worth Rs 17.660000/-, being 0.975310 times 0.553908 times Rs 32.689644/-, and the down node is worth nothing at all because neither of its children pays. Discounting the up node back once more with the same weight gives Rs 9.540501/-. The same figure, reached by two routes. It is the same arithmetic grouped two ways.
What is the trinomial lattice's third move?
Before reading on: is the trinomial lattice a different method from the binomial?
What is the exact relationship between the two?
Setting the two sequences of readings side by side at the same nine counts makes the relationship impossible to miss. The trinomial at one step is Rs 9.540501/-, and so is the binomial at two. The trinomial at two steps is Rs 9.970523/-, and so is the binomial at four. The trinomial at five is Rs 10.253409/-, and so is the binomial at ten. The pattern is not approximate and it is not a tendency.
Trinomial Tree vs Binomial Tree, read at matched effort
| Trinomial steps | Trinomial reading | Binomial steps | Binomial reading |
|---|---|---|---|
| 1 | Rs 9.540501/- | 2 | Rs 9.540501/- |
| 2 | Rs 9.970523/- | 4 | Rs 9.970523/- |
| 3 | Rs 10.125573/- | 6 | Rs 10.125573/- |
| 4 | Rs 10.205099/- | 8 | Rs 10.205099/- |
| 5 | Rs 10.253409/- | 10 | Rs 10.253409/- |
| 10 | Rs 10.351260/- | 20 | Rs 10.351260/- |
| 20 | Rs 10.400751/- | 40 | Rs 10.400751/- |
| 50 | Rs 10.430612/- | 100 | Rs 10.430612/- |
| 100 | Rs 10.440591/- | 200 | Rs 10.440591/- |
The trinomial lattice at n steps returns exactly the binomial lattice at 2n steps, and the two agree to the last digit double precision arithmetic can carry. Computed independently from their own recursions, the two agree to at least twelve decimal places at every one of the counts one, two, three, five, ten, twenty and fifty. The residue is not a small error but the absence of one: what remains is the rounding that any arithmetic on a machine leaves behind, and it does not shrink or grow with the step count in the way a real approximation error would.
| \(C^{\text{tri}}_{n}\) | the value returned by a trinomial lattice built on n steps over the horizon |
| \(C^{\text{bin}}_{2n}\) | the value returned by a binomial lattice built on twice that many steps over the same horizon |
| \(n\) | the number of steps, any whole number from one upwards |
The identity and the parity split depend on the contract in quite different ways, and the difference is worth stating. The identity above is pure regrouping of the same arithmetic, so it survives any strike, any volatility and any rate. Priced at the out-of-the-money strike of Rs 110/- instead, the trinomial at five steps and the binomial at ten both read Rs 6.099185/-, and the agreement is again to machine precision. The parity split described earlier is a different kind of claim, and the next block explains why it is the contract's own geometry that produces it.
The trinomial at five steps reads Rs 10.253409/-. Before looking: what does the binomial at ten steps read?
Move the step count and watch the two lattices land on the same number
One control, the step count. The green diamond is the trinomial at that count, computed from its own three branch recursion. The dark circle is the binomial at twice that count, computed from its own two branch recursion. The two are the same number, so the dashed tie between them is horizontal at every setting. The hollow red marker is the binomial at the same count rather than twice it, and it sits on the other side of the closed form whenever the count is odd.
Why does a lattice price oscillate?
Because the payoff has a kink in it, and the lattice has to decide where to put its nodes relative to that kink. Everything else about the lattice is smooth. The kink is the only sharp thing in the whole construction, and the price is most sensitive to where the end nodes fall around it.
Work out where the end nodes actually are. After n steps the levels available are the starting value multiplied by u raised to some whole power between minus n and plus n, in steps of two. When n is even, one of those powers is zero, and one node lands on the starting value exactly. The strike here equals the starting value, Rs 100/-. At every even count, then, a node sits exactly on the kink. When n is odd, no power is zero, and the two nearest nodes straddle the strike, sitting an equal distance either side of it in the logarithm.
Two arrangements, alternating with the parity of the step count, and each arrangement produces an error of a consistent sign. At four steps the end nodes are Rs 67.032005/-, Rs 81.873075/-, Rs 100.000000/-, Rs 122.140276/- and Rs 149.182470/-, with one sitting exactly on the strike. At five steps they are Rs 63.940732/-, Rs 76.465681/-, Rs 91.444064/-, Rs 109.356469/-, Rs 130.777623/- and Rs 156.394832/-, with the strike falling in the gap between the third and the fourth. Landing a node on the kink and straddling the kink are not small variations on each other, and the difference is why the sign of the error flips with every step added.
The oscillationA price alternating above and below the true value as the step count rises, rather than approaching it from one side. is therefore not noise and not instability. The alternation is a completely deterministic consequence of node placement, and it repeats with a period of exactly two. Node placement also explains something the picture above showed without explaining: each branch on its own is perfectly smooth. The odd counts fall steadily from Rs 12.162285/- towards the closed form from above, and the even counts climb steadily from Rs 9.540501/- towards it from below, with no wobble in either. Only the alternation between the two branches looks like oscillation.
| \(C^{\text{bin}}_{n}\) | the binomial reading at n steps |
| \(C^{\text{BS}}\) | the closed form value being converged to, Rs 10.450584/- here |
| \(c\) | a constant that depends on the contract and the parameters, and takes a different value on each parity branch |
| \(n\) | the number of steps in the lattice |
The binomial at a hundred steps is still Rs 0.019972/- short. What does the remaining gap say about the rate at which the error falls?
The error that gets made, and what it costs
Choosing the trinomial lattice because its convergence pictureA drawing of the computed price against the number of steps used. Such a drawing can mislead through the counts at which it was drawn rather than through anything it draws wrongly. looks smoother. The trinomial picture does look smoother, and the appearance is entirely honest as a drawing and entirely misleading as a reason. The trinomial at counts one to fifty is the binomial at counts two to a hundred, and every one of those binomial counts is even. The oscillation in a binomial lattice lives between consecutive counts, one odd and one even. Plot only the even ones and the oscillation has nowhere to appear.
A staircase climbed two steps at a time is only ever stood on at the even-numbered stairs. Photographed at each landing, it gives a picture of a staircase with half as many stairs, each twice as tall. Nothing has been removed from the staircase. The odd stairs are simply not being trodden on. Skipping the odd stairs is the whole of what the third branch did to the convergence picture.
The cost is a method chosen on a property of where the picture was sampled rather than on anything the method does. The picture really was smoother, so the choice will look thoroughly justified afterwards. Worse, the same reasoning will be reused. A reader who has learned to prefer the calmer line will prefer it again on the next comparison, where the two lines may differ for a reason that also has nothing to do with accuracy.
The trinomial's convergence picture looks smoother than the binomial's. Why?
Which one to use, and on what grounds?
Not on accuracy. No accuracy difference exists to choose on. Compare them at matched effort, meaning a trinomial lattice of n steps against a binomial lattice of 2n, and they return the same number. Compare them at matched step counts instead, meaning n against n, and the trinomial simply wins every time, but only because it is quietly doing twice the work. Neither comparison is a statement about quality.
Arithmetic and convenience are what is left, and both can be counted exactly. A binomial lattice of 2n steps has to compute a value at n times 2n plus 1 interior nodes, each needing two multiplications. A trinomial lattice of n steps computes n squared interior nodes, each needing three. So the trinomial does 3n squared multiplications where the binomial does 4n squared plus 2n, and the ratio settles towards three quarters as the count rises.
At fifty trinomial steps against a hundred binomial steps the trinomial needs 7,500 multiplications and the binomial needs 10,100, so the identical answer costs about three quarters as much. That is a real saving and it is the only real difference between the two. The saving is also small enough that on most work it will be swamped by how long the code took to write and how easily somebody else can read it a year later.
There is one more thing worth weighing, and it is the reason a great deal of production code still uses two branches. A binomial lattice has a shorter recursion, one array, one weight and its complement, and it generalises to early exercise and to path dependence with fewer moving parts to get wrong. A trinomial lattice has three weights that must sum to one, an array that grows by two rather than one at each level, and an index arrangement that is easy to write off by one. Neither is hard. But the cheaper arithmetic buys about a quarter of the multiplications, and a single index error costs the whole answer.
Given the identity, on what grounds should the choice between the two be made?
How does somebody checking a lattice computation use this?
Somebody reviewing a valuation rather than building one has three quick questions to ask, none of which needs the code opened.
The first is what the step count was, and whether it was odd or even. On a contract whose strike sits at the current level, that single fact settles the sign of the error before anything else has been looked at. An even count reads low and an odd count reads high. A round number like fifty or a hundred looks like a neutral choice and is not, so the person who ran it almost certainly does not know.
The second is whether the count was moved and the answer rechecked. Moving from fifty to a hundred is a weak test. Both are even, and the error simply halves along one branch. Moving from fifty to fifty-one is a strong test. The reading jumps from Rs 10.410692/- to Rs 10.485018/-, a swing of Rs 0.074327/- from adding a single step. If a review has never seen that swing, it has never seen the size of the discretisation error at all.
The third follows straight from the second and is genuinely useful. Because the two branches sit on opposite sides, averaging the readings at two consecutive counts cancels most of the error for free. At fifty and fifty-one the average is Rs 10.447855/-. The average falls Rs 0.002729/- short of the closed form, against Rs 0.039892/- for the fifty step reading on its own. One extra lattice, no cleverness and no new theory, and the error falls by a factor of 14.62. It works precisely because the two readings sit on opposite sides, so most of what is wrong with one is wrong with the other in the opposite direction. On the out-of-the-money contract, where the sides are not reliable, the same trick is not reliable either.
The everyday version is a shop counting stock by twos. Counting a shelf of forty-seven items in pairs gives twenty-three pairs and one left over, and if the counter is in the habit of ignoring the odd one, the count comes out at forty-six every single time. Repeating the count does not help. The mistake is in the rhythm rather than in the counting. Changing the rhythm, counting the same shelf in threes, exposes it in one pass. Moving a lattice from fifty steps to fifty-one is the same move.
Does any of this depend on jurisdiction?
No. No authority anywhere sets the number of branches in a lattice, no convention governs how many steps a computation should take, and no jurisdiction has an opinion on whether two steps may be written as one. The identity here is algebra, and algebra belongs to nowhere. Cox, Ross and Rubinstein published the arrangement used above in 1979, and Boyle set out the three branch form in 1977.
The worked instance is a construction rather than an observation. The standard process, its parameters, the at-the-money contract at Rs 100/- and the out-of-the-money one at Rs 110/- were all chosen so that the arithmetic reconciles to figures a reader can check by hand. The closed form of Rs 10.450584/- follows from those inputs by the Black-Scholes formula, exact for the process assumed and silent about any traded level.
The parity claim gets over-generalised easily, so one boundary on it deserves saying plainly. The odd-above and even-below split is a property of this contract, whose strike sits exactly at the starting value so that the even counts land a node on the kink. Price the out-of-the-money contract at Rs 110/- on the same process and the split breaks down: the strike no longer coincides with any node at any count, and the split fails at forty-six of the first hundred counts. The identity between the two lattices is algebra rather than geometry, so it is unaffected, and it holds at the Rs 110/- strike exactly as it does here.
References
| Source | Document | Where |
|---|---|---|
| arXiv Quantitative Finance | Preprint repository for lattice methods, their convergence behaviour and the smoothing of oscillation in tree prices | arxiv.org |
| Social Science Research Network | Working paper repository for the same material | ssrn.com |
| Cox, Ross and Rubinstein, 1979 | The two branch construction whose up factor, down factor and risk-neutral weight are used unchanged above | Journal of Financial Economics |
| Boyle, 1977 | The three branch lattice form | Journal of Financial Economics |
| Hull, Shreve and Wilmott | Standard texts on derivative pricing, lattice construction and stochastic calculus | Pearson, Springer and Wiley |
The standard process and both contracts priced above are invented.
Educational material. Not advice on any investment, tax, budget or market position.
