CASTR Spreadsheet Example Project

A highway project with seven risks and three minor risks, ready to open or to import into your own copy. Each of the seven shows one feature of the spreadsheet, the minor risks show how the MinorRisks sheet rolls small risks up, and the example uses a fixed random seed, so a new copy of the spreadsheet reproduces the results on this page exactly (see Results).

📊

Download the example workbook

CASTR Example Project 75.7.0.xlsm — CASTR Spreadsheet 75.7.0 with the example already loaded and run

Version 75.7.0 • about 14 MB • Free • Windows desktop Excel (32-bit or 64-bit)

⬇ Download Workbook
PRI

Already have CASTR Spreadsheet 75.7.0? Download just the inputs

CASTR Example Project 75.7.0.pri • 16 KB • load it into your own copy with Import Inputs on the CASTR ribbon

Three phases (PE, RW, CN) and one segment, with seven risks that each demonstrate one feature: an opportunity, dependency, an either/or pair, correlation, predecessor links, series versus parallel delay, and schedule-driven cost. Three minor risks, one per phase, show how CASTR rolls small risks into one register risk per phase-segment. The either/or pair gives the cost distribution two humps. The run gives a P70 of $250.2M CY (60.0% contingency, at the top of the national range) and a P70 finish of 30 August 2031, 12 months after the planned 30 August 2030.

Open the example

Option 1: the example workbook

  1. Download CASTR Example Project 75.7.0.xlsm and save it to a local folder (not a network or cloud-synced location the first time you open it).
  2. Unblock the file. Windows marks files downloaded from the internet and Excel will silently disable their macros. Right-click the .xlsm file → Properties → check Unblock → OK.
  3. Open in Excel, click Enable Content, and accept the Disclaimer sheet.
  4. Read the results. The simulation has already been run, so the Summary, Histogram, Sensitivity, Tail Drivers, Joint Confidence and What-If sheets show the Results below. To run it yourself, click Run Simulation; the window that opens shows 10,000 iterations, so click Run. The fixed seed gives figures within sampling noise of these, not the very same ones: a workbook that has already been run draws in a slightly different order (see Results).

Option 2: import the inputs into your own copy

  1. Save the inputs file (CASTR Example Project 75.7.0.pri) in the same folder as the spreadsheet. The import’s file dialog opens in that folder.
  2. Open a fresh copy of CASTR Spreadsheet 75.7.0. Importing replaces every input in the workbook, so don’t use one that holds a real project. CASTR first saves a backup copy whose name contains BeforeImport.
  3. Import: on the CASTR ribbon, click Import Inputs, confirm, and pick the file. The import also synchronizes Risk ID with the Risk Register, so Register numbers 1–7 match the Risk ID numbers. The minor risks H, I and J (Risk ID 8–10) reach the Register as three minor groups, numbered 11–13: after the highest Risk ID issued.
  4. Run: click Run Simulation. The window that opens shows the file’s 10,000 iterations; click Run. The file also sets seed 123457.
  5. Compare your Summary with the Results below.

At a glance

Seven risks on three linked phases, each showing one feature, and one minor risk per phasePE-Seg 1 · Jan–Jun 2027An early finish pulls RW and CN forwardA – Design AccelerationOpportunity, 60%: PE 1–3 mos shorterH – Localized drainage redesignMinor, 75%: $0.77–0.94M, 0.7–0.9 mosDirect link, lag 0RW-Seg 1 · Jul 2027–Jun 2028Series: B and C delays addB – Parcel Acquisition DelayThreat, 45%: $4–15M, 2–8 mosC – Condemnation Required40% if B occurs: $3–12M, 2–6 mosonly if BI – Add’l Temp CN Easement Req’dMinor, 75%: $0.59–0.72M, 0.6–0.8 mosDirect link, lag 2 mos for advertise and awardCN-Seg 1 · Sep 2028–Aug 2030Parallel: longest delay counts; $0.5M per monthD – Differing Site ConditionsThreat, 60%: $5–20M, 1–4 mosE – Bridge RehabilitationThreat, 60%: $3–10M, 1–3 mosG – Lawsuit Halts ConstructionSchedule only, 15%: 12–36 mosF – Bridge ReplacementWhenever E doesn’t occur (40%): $65–90Mcosts r = 0.7always one, never bothJ – Localized Unsuitable SoilMinor, 75%: $0.68–0.83M, 0.45–0.55 mos
Schedule flows top to bottom through the links; inside RW the B and C delays add, inside CN only the longest counts. The arrows and lines inside a phase are the dependency and correlation settings. Dashed boxes are minor risks: the MinorRisks sheet rolls each into a group that occurs in every run (see Minor risks).

What the example contains

The estimate is $20M PE, $40M RW and $100M CN, including traditional contingency of $0.75M, $1M and $5M. Without that contingency, and with $5M of prior cost added, the base cost is $158.25M CY. Cost and duration each vary ±10%, and each phase has a chance of a better and of a worse market: PE 10% and 10% for a market 5% better or 10% worse, RW 33% and 33% for 5% better or 20% worse, CN 33% and 33% for 5% better or 30% worse. On top of that the file sets:

SheetFieldValueWhat it sets up
HomeEstimate Last Updated1 Oct 2026The date inflation is measured from
Home% Design Completion10-25Sets the national contingency range: 25–60% for a moderately complex project
BaseUncertaintyPE-Seg 1 schedule1 Jan 2027 – 1 Jul 2027 (6 mos)
BaseUncertaintyRW-Seg 1 schedule1 Jul 2027 – 1 Jul 2028 (12 mos)
BaseUncertaintyCN-Seg 1 schedule1 Sep 2028 – 1 Sep 2030 (24 mos)2-month gap for advertise and award
PredecessorLinksPE-Seg 1 → RW-Seg 1Direct Link, lag 0An early PE finish starts RW early
PredecessorLinksRW-Seg 1 → CN-Seg 1Direct Link, lag 2 mosCN starts 2 months after RW ends, early or late
YOECN-Seg 1 Indirect Delay Cost$500,000 per monthEach month of CN delay costs field office, traffic control and inspection
RiskIDMinor risk thresholdsMean cost $1,000,000 or less; mean delay 1 month or lessThe size up to which a risk can be marked Minor (the MinorRisks sheet shows the same values)
MinorRisks% Offsets (Low / High)20% / 20%, cost and scheduleEach minor group’s range: 20% below to 20% above its expected value
SimSettingsUse Random SeedNo (fixed seed 123457), 10,000 iterationsEvery run reuses seed 123457, so repeated runs give the same results (Yes would pick a new seed each run). The first run after Import Inputs is the one exception: see Results. Switching a risk on or off changes the order of the random draws, so a difference between two runs then also includes some sampling noise

The YOE sheet shows CN starting 30 Aug 2028, not 1 Sep: the 2-month lag is counted as 2 × 30.4 days.

Risk register

All impacts are Triangular (min / most likely / max). Risks A–G have Include? = Yes; H, I and J have Include? = Minor. # is the Risk ID number, which for A–G is also the Register number. Costs are in $M CY; schedule in months. A dependent risk’s Probability is its chance given its parent; the Probability including Dependency column shows the overall chance.

#Risk Event NamePhase-SegmentCategoryDependencyProbabilityCost ($M)Schedule (mos)Series?Demonstrates
1A – Design AccelerationPE-Seg 1DESIndependent60%Opportunity 0.5 / 1 / 2Opportunity 1 / 2 / 3NoAn opportunity; the Direct links pull RW and CN forward
2B – Parcel Acquisition DelayRW-Seg 1RWIndependent45%Threat 4 / 8 / 15Threat 2 / 4 / 8YesParent of C
3C – Condemnation RequiredRW-Seg 1RWMutually Inclusive, parent B40% if B occurs (18% overall)Threat 3 / 6 / 12Threat 2 / 3 / 6YesHappens only with B; its delay adds to B’s
4D – Differing Site ConditionsCN-Seg 1GEOIndependent60%Threat 5 / 10 / 20Threat 1 / 2 / 4NoCorrelated with E
5E – Bridge RehabilitationCN-Seg 1BRGIndependent60%Threat 3 / 6 / 10Threat 1 / 2 / 3NoParent of F; correlated with D
6F – Bridge ReplacementCN-Seg 1BRGMutually Exclusive, parent E100% if E doesn’t occur (40% overall)Threat 65 / 75 / 90Threat 6 / 9 / 12NoEither/or with E: every iteration gets one of the two, never both. Splits the cost distribution into two humps
7G – Lawsuit Halts ConstructionCN-Seg 1TRPIndependent15%noneThreat 12 / 24 / 36NoRare and long. Schedule only; it costs money through the CN indirect delay cost
8H – Localized drainage redesignPE-Seg 1DESIndependent75%, MinorThreat 0.765 / 0.85 / 0.935Threat 0.72 / 0.8 / 0.88NoA minor risk: rolled into Minor PE-Seg 1
9I – Add’l Temp CN Easement Req’dRW-Seg 1RWIndependent75%, MinorThreat 0.585 / 0.65 / 0.715Threat 0.63 / 0.7 / 0.77NoA minor risk: rolled into Minor RW-Seg 1
10J – Localized Unsuitable SoilCN-Seg 1CNIndependent75%, MinorThreat 0.675 / 0.75 / 0.825Threat 0.45 / 0.5 / 0.55NoA minor risk: rolled into Minor CN-Seg 1

Correlation sheet: one pair, D (Cost) ↔ E (Cost), r = 0.7. Both depend on what is found below ground, so when both happen their costs tend to be high or low together.

Minor risks

H, I and J are small: each has a mean cost under $1M and a mean delay under a month, within the Minor thresholds on Risk ID, so they are marked Minor there. CASTR doesn’t simulate minor risks one by one. The MinorRisks sheet groups them by phase-segment, and the sync puts each group on the Risk Register as one risk that occurs in every run (probability 100%, Independent):

Register #GroupFromExpected cost ($M)Register cost ($M)Expected delay (mos)Register delay (mos)
11Minor PE-Seg 1H75% × 0.85 = 0.6375Threat 0.51 / 0.6375 / 0.76575% × 0.8 = 0.6Threat 0.48 / 0.6 / 0.72
12Minor RW-Seg 1I75% × 0.65 = 0.4875Threat 0.39 / 0.4875 / 0.58575% × 0.7 = 0.525Threat 0.42 / 0.525 / 0.63
13Minor CN-Seg 1J75% × 0.75 = 0.5625Threat 0.45 / 0.5625 / 0.67575% × 0.5 = 0.375Threat 0.3 / 0.375 / 0.45

The groups add about $1.7M to the mean cost. Their effect on the P70 shows in What-If.

Results

With the fixed seed, CASTR Spreadsheet 75.7.0 reproduces these figures exactly on the first run in a new copy of the release workbook loaded with Import Inputs. That is how the example workbook was made, so they are also the results it holds as downloaded. Every later run, in that copy or in the downloaded example, draws in a slightly different order, so the same seed gives slightly different figures, within sampling noise: for example a P70 of $249.9M CY instead of $250.2M, and a P70 finish of 27 instead of 30 August 2031. Each later run then repeats those figures. If yours differ by more, check SimSettings: Use Random Seed? = No, Seed = 123457, Number of Iterations = 10,000. A workbook whose inputs were typed in by hand can also differ a little: Excel may calculate the random draws in another order, so the same seed gives each cell a different draw. The difference is within sampling noise.

OutputResultWhere to look
P70 Total Project Cost, CY (percentile of sum)$250.2M; contingency $91.9M, 60.0%Summary, percentile-of-sum method
P70 Total Project Cost, CY (sum of phase-segment percentiles)$255.2M; contingency $96.9M, 63.2%Summary, sum-of-percentiles method
P10 / median / P90, CY (percentile of sum)$172.3M / $207.1M / $275.8MSummary
P70 Total Project Cost, YOE$272.3M percentile of sum; $277.9M sum of phase-segment percentilesSummary, Histogram, What-If
Completion: planned / P10 / P50 / P70 / P9030 Aug 2030 / 16 Oct 2030 / 14 May 2031 / 30 Aug 2031 / 7 Sep 2032Summary, YOE
Joint Confidence at the P70 cost and the P70 dateBoth met 56.9%; cost met, schedule missed 13.1%; both missed 16.9%; cost missed, schedule met 13.1%Joint Confidence
Shape of Total Project Cost, YOETwo humps, about 59% / 41%; the risk that splits them is FTail Drivers (Tail Driver Explainer)
Achieved D ↔ E cost correlation0.69 (target 0.7)Risk Corr Outputs (a hidden sheet)
Minor risk groupsMinor PE-Seg 1, RW-Seg 1, CN-Seg 1, in every run: expected cost $0.64M / $0.49M / $0.56M, delay 0.6 / 0.525 / 0.375 mosMinorRisks; Risk Register 11–13

How to read each output

Summary

On the percentile-of-sum method the P70 is $250.2M CY: the budget the project stays within 70% of the time. The $91.9M contingency above the $158.25M base breaks down as about $9.2M of base uncertainty, $47.7M of risk events (including $1.7M from the three minor groups), $4.0M of CN indirect delay cost and $31.0M of spread between the mean ($219.2M) and the P70. The Summary gives contingency as a share of the $153.25M phase base cost, which leaves out the $5M prior cost: 60.0%. That is at the very top of the 25–60% national range for a moderately complex project at 10–25% design (59.99% before rounding), so the CY row has no notice. The YOE contingency, which includes escalation, is 63.4%: above the range, so the Notices column flags it. Switch the Summary to sum of phase-segment percentiles and the P70 becomes $255.2M (63.2%, also above the range); the Notices column then shows about 74%, the confidence that $255.2M actually gives on the total.

Histogram

The Histogram shows Total Project Cost, YOE, and its distribution has two humps: about 59% of the runs sit in a lower hump around $199M and 41% in an upper hump around $283M, with a valley near $247M. The split is the bridge. Every iteration gets either E, a $3–10M rehabilitation (60% of them), or F, a $65–90M replacement (40%). The mean, $237.7M, falls between the humps, where few runs land. The P70, $272.3M, sits on the upper hump: with F in 40% of the runs, a 70% budget has to cover some of them (about a quarter of the runs with F stay within it). The P95 is $312.5M and the costliest iteration $369.8M. Sum of phase-segment percentiles adds each phase’s own P70, as if every phase hit its P70 at once, which is why it gives the higher figure. The Summary labels that figure “Sum of Phase-Segment P70s”; its notice gives the share of the iterations at or below it: 73.8%, in CY and YOE alike. With one segment, sum of segment percentiles gives the same answer as percentile of sum.

Sensitivity (Tornado)

The Sensitivity sheet lists, for each result, the 15 inputs with the strongest rank correlation. The chart shows the two results that matter most here.

Cost is driven by the bridge, E or F; the finish date by G, F and BFrom the example run: rank correlation of each input with the result; 0.4 or more in blueTotal Project Cost, YOECompletion DateF – Bridge ReplacementE – Bridge RehabilitationCN market, worse (J46)B – Parcel Acquisition DelayD – Differing Site ConditionsC – Condemnation RequiredG – Lawsuit Halts ConstructionA – Design AccelerationF – Bridge Replacement: 0.83 with total cost0.83E – Bridge Rehabilitation: −0.74 with total cost−0.74CN market, worse (J46): 0.31 with total cost0.31B – Parcel Acquisition Delay: 0.19 with total cost0.19D – Differing Site Conditions: 0.19 with total cost0.19C – Condemnation Required: 0.17 with total cost0.17G – Lawsuit Halts Construction: 0.14 with total cost0.14A – Design Acceleration: 0.02 with total cost0.02F – Bridge Replacement: 0.50 with completion date0.50E – Bridge Rehabilitation: −0.43 with completion date−0.43CN market, worse (J46): 0.00 with completion date0.00B – Parcel Acquisition Delay: 0.45 with completion date0.45D – Differing Site Conditions: 0.03 with completion date0.03C – Condemnation Required: 0.36 with completion date0.36G – Lawsuit Halts Construction: 0.62 with completion date0.62A – Design Acceleration: 0.16 with completion date0.16
CASTR Spreadsheet run · 10,000 iterations, seed 123457. Two bars fall below the sheet’s top 15 and come from the run’s iterations: A on cost and the CN market on the finish.

Tail Drivers

Tail Drivers show what the worst outcomes have in common. In the costliest 10% of iterations (Total Project Cost YOE above $301.6M), F occurs every time against 40% overall and D 77% against 60%; E never does. The delays behind that tail are F, G and E: G occurs in 26% of those runs against 16% overall. In the latest 10% of finishes (after 7 Sep 2032), G occurs in 99.9% against 16% overall. The minor groups occur in every run, so they never set a tail apart. The Tornado answers “what moves the result most?”; Tail Drivers answer “what does a bad outcome look like?”

The Tail Driver Explainer button next to each output’s name gives a plain-language account of that output, ending with a shape test of the whole distribution. For Total Project Cost, YOE it reports Two humps found: about 59% of the runs form a lower hump around $198.6M and 41% an upper hump around $282.9M, with the valley near $247.1M, and the average, $237.7M, falls between the two peaks. It then names the risk that sorts the runs into the two humps: F occurs in 97% of the runs above the valley and almost none below it. Total Project Duration and Total Project Completion Date report One hump, and no risk is named. To see the test change its answer, set F to Dormant (Try it).

Joint Confidence

The dashed crosshairs sit at the P70 cost ($272.3M YOE) and the P70 date (30 Aug 2031). A label in each corner of the chart gives the share and the number of all 10,000 iterations in that quadrant, and the four add up to 100%:

CornerLabelShareIterations
Lower leftBoth met56.9%5,693
Lower rightCost met, schedule missed13.1%1,307
Upper rightBoth missed16.9%1,693
Upper leftCost missed, schedule met13.1%1,307

Each dashed line on its own splits the runs 70/30, but the two 70% shares overlap on only 56.9%, because a run can be on budget but late, or on time but over budget. Each of those two corners holds the 70% less the overlap: 13.1%. Move the crosshairs and the labels update. Only 1 in 4 iterations is drawn as a dot so the chart stays readable; the labels and the joint coverage count every iteration.

Does it assume cost and schedule are independent? No. The 56.9% is a straight count of the iterations that meet both targets. Each iteration’s cost and finish come from the same simulated run, so whatever links them in the model is already in the count. The two limits show where it sits:

In this model, cost and schedule are linked through shared risk events (B, C, D, E and F each add cost and delay in the same iteration; F adds $65–90M and 6–12 months together), the $0.5M a month CN indirect delay cost (which turns G’s lawsuit delay into cost), and inflation (a later finish means more escalation in the YOE cost). They are not linked where the model leaves them apart: base cost and base duration variability are drawn separately, market conditions affect cost only, and a risk’s cost size and delay size are drawn separately unless you pair them on the Correlation sheet. If on a real project a long construction phase also tends to cost more, model that link (pair a risk’s cost and schedule, or raise the indirect delay cost) and the joint coverage moves toward 70%.

The purple curve shows every date and cost pair that gives 70% joint confidence. Being 70% confident of both means moving out to that curve, giving up some date, some cost, or both.

What-If

Each Register risk has one box, ten here (A–G and the three minor groups); tick it to switch the risk off. With the metric on Total Project Cost YOE, the panel removes the risk’s cost, its delay and the cost that delay adds (the CN indirect delay cost, and the escalation of work pushed later), and the risks that depend on it follow it. It shows the P70 without the risk (from $272.3M): F $212.0M, D $264.7M, B $266.5M, G $271.0M, C $271.4M, A $274.0M and E $297.7M; Minor PE-Seg 1 $271.3M, Minor RW-Seg 1 $271.7M and Minor CN-Seg 1 $271.7M.

What-If doesn’t re-run the simulation: it reworks the example’s own runs. Setting a risk’s Risk Status to Dormant and re-running draws fresh numbers, so its figures differ slightly.

Try it

Change one thing, re-run, then compare with the results above. Make Series? and Dependency changes on Risk ID and synchronize: a sync rebuilds the Risk Register and keeps only its Risk Status, which you set on the Register itself. Put each change back before the next one. The F, Delay Dependent, C and indirect-cost rows are worked out from the example’s own iterations. The Delay Dependent and indirect-cost changes switch no risk on or off, so a re-run should give the same figures. The F and C rows are estimates: setting F to Dormant changes the random draws, so expect figures close to these rather than equal (ticking F on the What-If sheet shows its P70 cost and finish without a re-run), and the C row only says roughly how far the finish moves. The others say which way the results move.

ChangeWhat it showsWhat to look for
Set F’s Risk Status to DormantWhere the upper hump comes from. Risk Status is kept through a syncP70 YOE $272.3M → about $212M; P70 finish 30 Aug 2031 → early May 2031; contingency 60.0% → about 25% CY, right at the bottom edge of the 25–60% national range (the Notices column flags it if it lands below 25%); the YOE contingency, about 27%, is inside. The cost distribution has one hump, and Total Project Duration and Completion Date now have two (about 85% / 15%): the Explainer names G
Set A’s Risk Status to DormantHow much the opportunity pulls the project forwardThe P70 finish moves later and the P70 cost rises a little
Switch RW → CN to Delay DependentAn early RW finish no longer pulls CN forward; late finishes still push itAbout 31% of the runs (those where RW finishes early) now finish later: P10 16 Oct 2030 → 6 Nov 2030, P50 14 May → 25 May 2031, P70 30 Aug → 1 Sep 2031, P90 7 Sep → 15 Sep 2032. The planned finish becomes 1 Sep 2030, because CN can’t start before its planned 1 Sep 2028
Set B and C to Series = NoParallel delays: only the longer RW delay countsThe runs with both B and C finish earlier, so the median and later finish percentiles move earlier, the P70 by about three weeks (the P10 does not move); cost changes little
Make C Independent at 18%Same overall chance, but C no longer stacks on BThe finish percentiles barely move (at most about 10 days either way): B and C together become rarer, but C now also delays runs without B
Set CN Indirect Delay Cost to $0How delay turns into costP70 CY about $5.4M lower ($250.2M → $244.8M); G no longer moves the CY cost
Change the D ↔ E correlation from 0.7 to 0Correlation changes impact sizes, not whether risks occurThe P70 and P90 hardly move. See Notes

Notes

Get the spreadsheet

The CASTR Spreadsheet is free. Download it, see the requirements and read about every input and results sheet.