Bid Pricing: Markup vs Chance of Winning | Vose Software

ModelRisk example · Projects and construction

Bid Pricing: Margin versus Chance of Winning

What markup should we bid? The trade-off between the chance of winning and the profit if we win.

  • Complexity: ★★★★★
  • Free Excel workbook (PC-05)
  • Needs ModelRisk: free trial

From the model’s saved run

Which markup?

Chance of winning, expected profit (all tenders, won or lost), the margin on a won job, and the chance of a loss: on a won job, and on any tender.

Profit at three markups — cumulative probability
MarkupChance of winningExpected profit, US$mMargin if we win, US$mLoss if we winCost above bid, any tender
0%94.9%−0.44−0.3162.0%58.8%
2%88.5%−0.130.0246.6%41.2%
4%78.1%0.090.3133.3%26.0%
6%65.8%0.230.5720.7%13.6%
8%51.7%0.270.8211.8%6.1%
10%38.5%0.261.065.4%2.1%
12%26.1%0.181.282.1%0.6%
14%16.0%0.091.510.5%0.1%
16%9.3%0.011.740.1%0.0%
18%4.8%−0.061.950.0%0.0%
20%2.3%−0.102.170.0%0.0%
Markup with the highest expected profit8%

Margin if we win: before the bid cost. Loss if we win against cost above the bid on any tender: the gap is the winner's curse.

Expected profit and chance of winning by markup

The business question

A contractor is preparing a price for a US$20 million building contract, awarded on price alone. Four competitors are bidding. Everyone is estimating the same job, and everyone's estimate is wrong by a few per cent — but not by the same amount.

The contractor wins most easily when its own estimate is the one that missed costs the others saw: a won job is then too often one whose cost was underestimated, and it loses money — the winner's curse. A high markup is profitable when it wins, but rarely wins.

The model draws the job's true cost and the four competitors' bids from it, and evaluates eleven markups on the same simulated tenders, so that the best markup can be read off and its risk understood.

Who it is for
Estimating and bid managers, commercial directors and business-development teams.
Main outputs
For each markup from 0% to 20%: the chance of winning, the expected profit, the profit if the job is won and the chance of a loss on a won job · the markup with the highest expected profit · profit distributions at three markups · drivers.

How the model works

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

  1. Inputs sheet

    The base estimate, a factor for how far the real cost can differ from it, a market factor for prices that affect everyone, the pattern of competitors' bids relative to our estimate, and the cost of preparing the bid.

  2. Bids sheet

    The job's true cost = our estimate × our estimating error × the market factor. Each competitor bids the true cost × its own ratio (its estimating error and its markup). For each markup our bid is our estimate × (1 + markup).

    We win if it is below the lowest competitor bid; profit = bid − true cost if we win, minus the bid cost in any case.

  3. Results sheet

    For each markup: the chance of winning, the expected profit, the profit if we win, and the chance of a loss on a won job. The markup with the highest expected profit; and the profit range at three markups.

ModelRisk techniques

  • Winner's curse
  • Options on the same futures
  • Conditional statistics
  • Profit vs chance of winning

Find similar models

Product

The results in detail

Profit at three markups

The range of profit over all tenders, won or lost.

MeasureUnitValue
4% markup: 10th percentile of profitUS$m−0.71
8% markup: 10th percentile of profitUS$m−0.15
12% markup: 10th percentile of profitUS$m−0.15
4% markup: 90th percentile of profitUS$m0.99
8% markup: 90th percentile of profitUS$m1.27
12% markup: 90th percentile of profitUS$m1.33

What drives the profit at the markup in detail

Lowest and highest mean profit at the markup on the Inputs sheet over ten equal groups of each input (VoseSimSensitivityMean).

What drives the profit at the markup in detail (US$m)
The ranking as a table 6 inputs
Input (ranked by influence)Lowest meanHighest meanRank
Our cost factor−0.100.491
Competitor 2 bid ratio−0.080.402
Competitor 4 bid ratio−0.060.403
Competitor 1 bid ratio−0.060.384
Competitor 3 bid ratio−0.060.385
Market factor0.150.346

How to read these results

  • Expected profit counts every tender, won or lost: a low markup wins often but earns little or loses money, a high markup earns well but rarely wins. The best markup balances the two.
  • Every competitor bids off the same true cost. When our estimate is too low, theirs mostly are not, so our bid looks cheap exactly when the job will cost us more: the chance of a loss on a won job is well above the chance that the cost exceeds our bid on any tender. That gap, in the last two columns, is the winner's curse.
  • The market factor moves the true cost and every bid together, so it matters less to the decision than our own estimating error: the tornado chart shows where better estimating would pay off.
  • Bid costs are paid on every tender, so a markup that almost never wins still has a small negative expected profit.

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.

The job and our estimate 4 inputs

What the job will really cost, against our estimate of it.

AssumptionUnitUncertaintyLowMost likelyHigh
Base estimate of our costEstimator's most likely cost at tender.US$mFixed20.00
Our estimating error (true cost ÷ estimate)Past jobs: final cost between 7% under and 12% over the tender estimate.×PERT0.931.001.12
Market price factorMaterials and labour prices over the bid period: they move the job's true cost, and so every bid.×PERT0.951.001.07
Cost of preparing the bidEstimating and design time; paid whatever the outcome.US$mFixed0.15
Competitors 3 inputs

4 competitors. Each estimates the same job, with its own error, and adds its markup: its bid ÷ the job's true cost.

AssumptionUnitValue
Competitor bid ratio: lowFrom past tenders whose final cost became known.× true cost1.00
Competitor bid ratio: most likelyMost common ratio.× true cost1.12
Competitor bid ratio: highHighest ratio seen.× true cost1.28
Detail 1 input
AssumptionUnitValue
Markup analysed in detailOne of the eleven markups (0% to 20% in steps of 2%): the tornado chart on the Results sheet.markup8%

Units and conventions

Money
US$ million (US$m).
Markup
Bid = base estimate × (1 + markup).
Bid ratio
A competitor's bid divided by the job's true cost, from past tenders whose final cost became known.
Winner's curse
We win most easily when our estimate is too low: the chance of a loss on a won job is higher than on any tender.

Key assumptions and limitations

Award
Lowest price wins; no negotiation, no quality score, no tie.
Competitors
Four competitors with the same bid pattern. Their errors are independent of ours and of each other's, and they do not react to our price.
Costs
Every bid is linked to the job's true cost; the market factor moves it for everyone.
Data
The tender and the bid history are invented for this example.

How to use it

  1. Enter your estimate and the cost uncertainty on the Inputs sheet.
  2. Calibrate the competitors' bid ratios from your tender history (their bid ÷ your estimate).
  3. Run a simulation from the ModelRisk ribbon (10,000 samples with a fixed seed are set).
  4. Read the best markup, then decide whether its chance of a loss on a won job is acceptable.

The tornado chart fills in after a simulation with ModelRisk’s classic engine.

ModelRisk functions used

VosePERT
Our estimating error, the market factor and each competitor's bid ratio.
VoseInput, VoseOutput
Name the uncertain inputs and the outputs: win, profit and loss-on-win at every markup.
VoseSimMean
Statistics of the simulation for the tables and charts on the Results sheet.
VoseSimSensitivityMean
The tornado chart: every VoseInput ranked by how far the mean profit at the markup in detail moves across its range.

Further reading