ModelRisk example · Projects and construction
Material Price Escalation and Procurement Strategy
Buy the steel now, as needed, or with a price cap? Material escalation on a fixed-price contract.
From the model’s saved run
Which steel strategy?
Total material cost (steel and concrete) under each strategy, on the same simulated prices (US$m).
| Strategy | Mean US$m | P90 US$m | P99 US$m | Mean vs market, US$m |
|---|---|---|---|---|
| Buy at market prices as needed | 15.46 | 18.07 | 20.86 | 0.00 |
| Forward contract for all the steel | 15.67 | 15.97 | 16.22 | +0.22 |
| Forward contract for 50% of the steel | 15.57 | 16.90 | 18.32 | +0.11 |
| Price cap on the steel | 15.50 | 16.93 | 17.29 | +0.04 |
S-curve (cumulative probability) of Buy at market prices as needed, Forward contract for all the steel, Partial forward contract, Price cap on the steel from the saved simulation.
The business question
The contractor has signed a fixed-price contract for a commercial building. The tender allowed US$900 a tonne for structural steel and a 3% escalation allowance on concrete. Steel is bought from month 4 to month 12, concrete from month 2 to month 17, and both prices can move a long way in that time — steel especially.
The steel supplier offers a forward contract at US$890 a tonne for the whole quantity. The bank offers a price cap at US$950 for a premium; or the contractor can buy as it goes and take the market price. Every option costs something: the forward price includes the supplier's carrying costs, the cap has a premium, and buying as needed carries the risk.
The model simulates monthly prices and applies the four strategies to the same price paths.
- Who it is for
- Contractors' commercial and procurement managers, estimators, and finance directors on fixed-price work.
- Main outputs
- Material cost under four steel strategies: mean, P90 and P99, the chance of staying within the tender allowance for all the materials and for the steel alone, and the cost of protection · the range of the steel price over the 18 months.
How the model works
Three sheets after this one, read from left to right. Each one feeds the next.
Inputs sheet
Quantities and the months in which they are bought. For steel and concrete, today's price, the expected annual escalation and the volatility; the forward price, the share bought forward in the partial option, the cap and its premium; the tender allowances.
Purchases sheet
VoseTimeGBM draws a monthly price path for each material, with drift set so that the expected price rises at the escalation rate. Steel bought in a month costs the month's price, the forward price, a blend, or the lower of the price and the cap plus the premium.
Results sheet
Total material cost under each strategy: its mean, high percentiles, how much more or less it costs on average than buying at market prices, and the chance of staying within the tender allowance — for all the materials, and for the steel alone, which is what the strategies change.
ModelRisk techniques
Find similar models
- Product
- Type
- Application
- Uses
The results in detail
Within the allowances?
Concrete costs the same under every strategy, so the steel column shows what the choice of strategy changes.
| Strategy | All materials within allowance | Steel alone within allowance |
|---|---|---|
| Buy at market prices as needed | 58.9% | 60.3% |
| Forward contract for all the steel | 62.7% | 100.0% |
| Forward contract for 50% of the steel | 60.2% | 62.6% |
| Price cap on the steel | 49.3% | 50.4% |
| Measure | Unit | Value |
|---|---|---|
| Tender allowance for materials | US$m | 15.74 |
| …of which steel | US$m | 10.80 |
The steel price
The average price paid at market, and the monthly price range.
| Measure | Unit | 10th pct | Median | 90th pct | Mean |
|---|---|---|---|---|---|
| Average steel price paid at market | US$/t | 677 | 857 | 1,087 | 872 |
How to read these results
Line chart: 90th percentile, Median, Mean, 10th percentile.
- Buying at market prices is cheapest on average when the offers include a margin, but it leaves the whole steel price risk: its P90 and P99 are the highest. A forward contract removes the steel risk at a small expected cost.
- The cap protects against high prices and keeps the benefit of low ones. Its premium is paid on every tonne, so its mean is close to buying at market and its chance of staying within the allowance is the lowest — but steel can never cost more than the cap plus the premium, so its worst cases are bounded.
- Even with all the steel bought forward, some risk remains: concrete escalation, which limits the chance for all the materials. The steel-alone column isolates the decision: as shipped, the forward contract keeps the steel within its allowance every time, the partial forward about 63% of the time, buying at market about 60% and the cap about 50%.
- The fan chart shows why timing matters: the later the steel is bought, the wider the range of its price.
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.
Quantities and timing 6 inputs
What is bought, and in which months (evenly between the first and last month).
| Assumption | Unit | Value |
|---|---|---|
| Structural steelFrom the bill of quantities. | tonnes | 12,000 |
| Steel: first monthFrame erection starts in month 5. | month | 4 |
| Steel: last month | month | 12 |
| ConcreteFoundations, slabs and cores. | m³ | 40,000 |
| Concrete: first month | month | 2 |
| Concrete: last month | month | 17 |
Steel price 3 inputs
Monthly geometric Brownian motion; the expected price grows at the escalation rate.
| Assumption | Unit | Value |
|---|---|---|
| Steel price todaySupplier's current list price for sections. | US$/t | 850 |
| Expected escalationConsensus forecast of construction-steel prices. | per year | 4.0% |
| VolatilitySteel prices have moved this much in a typical year. | per year | 25% |
Concrete price 3 inputs
Less volatile, but escalates with labour and cement costs.
| Assumption | Unit | Value |
|---|---|---|
| Concrete price todayReady-mix supply agreement, indexed. | US$/m³ | 120 |
| Expected escalationCement and haulage indices. | per year | 5.0% |
| Volatility | per year | 6% |
Steel procurement offers 4 inputs
Ways to buy the steel other than at market prices.
| Assumption | Unit | Value |
|---|---|---|
| Forward contract priceSupplier's offer for all deliveries; includes carrying costs. | US$/t | 890 |
| Share bought forward in the partial optionThe rest is bought at market prices. | 50% | |
| Price capThe bank pays any excess of the market price over the cap. | US$/t | 950 |
| Cap premiumPaid on every tonne, whatever happens to the price. | US$/t | 45 |
Tender allowances 3 inputs
What the fixed price assumed.
| Assumption | Unit | Value | Uncertainty |
|---|---|---|---|
| Steel allowance | US$/t | 900 | Fixed |
| Concrete: escalation allowed in the tenderOn today's price. | 3.0% | Fixed | |
| Concrete allowanceToday's price plus the escalation allowed. | US$/m³ | 123.6 | Calculated |
Units and conventions
- Money
- US$ million (US$m); prices in US$ per tonne of steel and per m³ of concrete.
- Escalation
- Expected annual price increase: the price model's drift is set so that the mean price grows at this rate.
- Forward contract
- A fixed price agreed now for delivery later.
- Price cap
- Pays the market price up to the cap, never more; costs a premium per tonne.
Key assumptions and limitations
- Prices
- Geometric Brownian motion with constant volatility; steel and concrete prices are independent.
- Quantities
- Quantities and purchase months are certain; no programme slippage (see PC-04).
- Offers
- No credit or delivery risk on the forward contract; storage is the supplier's.
- Data
- Prices, quantities and offers are invented for this example.
How to use it
- Enter your quantities, purchase months and the supplier's and bank's offers on the Inputs sheet.
- Set the escalation and volatility from price indices and the futures market.
- Run a simulation from the ModelRisk ribbon (10,000 samples with a fixed seed are set).
- Choose the strategy whose P90 (or P99) the business can live with, at an acceptable cost of protection.
ModelRisk functions used
- VoseTimeGBM
- Monthly steel and concrete price paths with escalation, as array formulas.
- VoseOutput
- Name the strategy totals and the monthly steel prices for the Results Viewer.
- VoseSimMean, VoseSimPercentile, VoseSimProbability
- Statistics of the simulation for the tables and charts on the Results sheet.
Further reading
- Monte Carlo simulation explained (Vose guide)
- AACE International (2008). Recommended Practice 58R-10: Escalation Estimating Principles and Methods Using Indices.
- Hull, J. C. (2022). Options, Futures, and Other Derivatives, 11th edition. Pearson.
Download the workbook and run it yourself. It opens in Excel with ModelRisk. The free trial runs every example model.
Related example models
- ModelRisk★★★★★Bid Pricing: Margin versus Chance of WinningWhat markup should we bid?Eleven bid prices evaluated on the same simulated costs and competitor bids, with a winner's-curse effect.
- ModelRisk★★★★★Construction Cash Flow and Peak FundingIs a US$40 million facility enough?A 48-month cash flow with S-curve spend, off-plan sales and a revolving facility with monthly interest.
- ModelRisk★★★★★Rework and Change OrdersIs a 5% change allowance enough?Three classes of change, each a random number of events with random costs, added up with VoseAggregateMC.
An illustrative example: the figures are invented for teaching and do not describe a real company, project or asset. Last updated 9 October 2026.