Bounded Random Walk Forecast in Excel | Vose Software

ModelRisk example · General techniques

Bounded Random Walk

What does a growing, volatile series look like when practical limits hold it in? A random walk between a floor and a cap.

  • Complexity: ★★★★★
  • Free Excel workbook (GU-13)
  • Needs ModelRisk: free trial

From the model’s saved run

Sales in month 20

Bounded and unbounded, from the same shocks.

MeasureUnit10th pctMedian90th pctMean
BoundedUS$1,009,0571,397,0181,906,6031,427,217
UnboundedUS$1,014,4171,415,9071,979,4091,462,508
MeasureUnitValue
Chance of hitting the cap in some monthprobability32.2%
Chance of being at the cap in month 20probability0.9%
Chance of hitting the floor in some monthprobability0.00%
Month 20 — bounded and unbounded
Bounded sales — 10th / 50th / 90th percentile band, with the limits

The business question

A manufacturer's monthly sales are about US$1 million. They grow by about 2% a month on average but swing by about 6% a month, a lognormal random walk: each month's sales are the previous month's times a random growth factor. Two practical limits apply. Capacity caps sales: about US$1.01 million in month 1, rising by about US$67,000 a month as a new line ramps up.

Long-term contracts set a floor: about US$750,000 in month 1, falling by about US$20,000 a month as they expire. When sales hit a limit they stay there for that month, and the next month starts from the limit.

Who it is for
Anyone forecasting a quantity that drifts at random within physical, contractual or regulatory limits.
Main outputs
Sales in month 20 bounded and unbounded at P10 / median / P90 · the chance of hitting the cap or the floor · a band chart with the limits.

How the model works

Three sheets after this one, read from left to right. Each one feeds the next.

  1. Inputs sheet

    The starting sales, the average growth m and the volatility s per month, and each limit as a value in month 0 and a change per month.

  2. Months sheet

    Each month draws one standard normal shock Z. The unbounded walk multiplies the previous month by exp(m − s²/2 + s·Z). The bounded walk does the same from its own previous value and then applies MIN(cap, MAX(floor, ·)). Both walks use the same shocks.

  3. Results sheet

    Month 20's sales both ways, the chance of hitting the cap or the floor, and the band with the limits.

ModelRisk techniques

  • Lognormal random walk
  • Bounds with MIN and MAX
  • Same shocks without bounds
  • Fan chart with the limits

Find similar models

Product
Application
Uses

The results in detail

How to read these results

  • The cap starts only just above the starting sales, so about a third of the paths hit it, mostly in the first few months. Each time, the next month starts from the cap rather than from where the walk would have been, so the effect persists: by month 20 the bounded 90th percentile is several percent below the unbounded one.
  • The floor almost never binds: falling from US$1 million to the contract floor would take several bad months in a row against a 2% average growth.
  • Applying limits only at the end (bounding month 20 alone) would miss this: the bounds change the path, not just its end point. That is why they are applied every month.
  • The band chart shows the cap and the floor as red lines: where the band runs into the cap, capacity is what limits sales.

See it move. Open the workbook, change an input on the Inputs sheet and run the simulation: every table and chart on this page updates in Excel.

Inputs and assumptions

Every assumption in the model, with its uncertainty and where it comes from. The figures are illustrative.

Sales 3 inputs

Monthly sales in month 1 and how they move.

AssumptionUnitValue
Sales in month 1US$1,000,000
Average growth per month, mper month2.0%
Volatility per month, sper month6.0%
The limits 4 inputs

Each limit is a straight line: its value in month 0 plus a change per month.

AssumptionUnitValue
Capacity cap in month 0Month 1: about US$1.01 million.US$940,774
Change in the cap per monthA new line ramps up.US$66,703
Contract floor in month 0Month 1: about US$750,000.US$769,943
Change in the floor per monthContracts run off.US$−19,725

Units and conventions

Money
US$ per month.
Growth m
The average growth of the log of sales per month; −s²/2 keeps the mean growth at m.
Bounded
A month's sales after MIN(cap, MAX(floor, ·)).

Key assumptions and limitations

Lognormal walk
Monthly growth factors are independent and lognormal, as in the original example.
Hard limits
A limit holds sales exactly at it for the month; nothing is carried over.
Data
The starting value, growth, volatility and the two linear limits are those of ModelRisk's earlier Bounded Random Walk example, which used VoseLognormalE for the same step.

How to use it

  1. Set the starting sales, growth, volatility and the two limits on the Inputs sheet.
  2. Run a simulation from the ModelRisk ribbon (10,000 samples with a fixed seed are set).
  3. If the cap binds often, the bounded forecast is the realistic one; capacity is worth more than the unbounded forecast suggests.

ModelRisk functions used

VoseNormal
The monthly shock Z, shared by the bounded and the unbounded walk.
VoseOutput
Bounded and unbounded monthly sales as output ranges, and month 20.
VoseSimMean, VoseSimPercentile
Statistics of the simulation and the band.

Further reading

  • Monte Carlo simulation explained (Vose guide)
  • Vose, D. (2008). Risk Analysis: A Quantitative Guide, 3rd edition. Wiley: time series and geometric Brownian motion.