Skip to main content

Methodology

Project Duration Risk Planner methodology

Compare best, base and worst duration cases and test a price buffer response.

Educational only: Business decision support, not accounting, tax or legal advice.

Privacy: Calculations run locally; Margin101 does not receive your commercial inputs.

Update policy: Reviewed when formulas or official dependencies change.

Scope: Market-neutral small-business planning using your own assumptions.

1. Formulas and units

Risk Adjusted Contribution
riskAdjustedContribution = revenue โˆ’ probability-weighted delivery cost

Where

riskAdjustedContribution
Risk Adjusted Contribution (currency units/project)Source: Calculated output
Best Case Contribution
bestCaseContribution = revenue โˆ’ best months ร— monthly cost

Where

bestCaseMonths
Best-case months (months/project)Source: User assumption
bestCaseContribution
Best Case Contribution (currency units/project)Source: Calculated output
Base Case Contribution
baseCaseContribution = revenue โˆ’ base months ร— monthly cost

Where

baseCaseMonths
Base-case months (months/project)Source: User assumption
baseCaseContribution
Base Case Contribution (currency units/project)Source: Calculated output
Worst Case Contribution
worstCaseContribution = revenue โˆ’ worst months ร— monthly cost

Where

worstCaseMonths
Worst-case months (months/project)Source: User assumption
worstCaseContribution
Worst Case Contribution (currency units/project)Source: Calculated output
Expected Duration Months
expectedDurationMonths = ฮฃ(case months ร— probability)

Where

expectedDurationMonths
Expected Duration Months (months)Source: Calculated output
Expected Delivery Cost
expectedDeliveryCost = expected duration ร— monthly delivery cost

Where

monthlyDeliveryCost
Monthly delivery cost (currency units/month)Source: Business record
expectedDeliveryCost
Expected Delivery Cost (currency units/project)Source: Calculated output
Risk Adjusted Margin
riskAdjustedMargin = risk-adjusted contribution รท contract revenue

Where

contractRevenue
Contract revenue (currency units/project)Source: Business record
riskAdjustedContribution
Risk Adjusted Contribution (currency units/project)Source: Calculated output
riskAdjustedMargin
Risk Adjusted Margin (decimal rate)Source: Calculated output
Buffered Revenue
bufferedRevenue = contract revenue ร— (1 + price buffer)

Where

contractRevenue
Contract revenue (currency units/project)Source: Business record
priceBufferRate
Price buffer (proportion of expected delivery cost added as risk buffer)Source: User decision
bufferedRevenue
Buffered Revenue (currency units/project)Source: Calculated output
Buffered Worst Case Contribution
bufferedWorstCaseContribution = buffered revenue โˆ’ worst-case cost

Where

worstCaseContribution
Worst Case Contribution (currency units/project)Source: Calculated output
bufferedRevenue
Buffered Revenue (currency units/project)Source: Calculated output
bufferedWorstCaseContribution
Buffered Worst Case Contribution (currency units/project)Source: Calculated output
Downside Coverage
downsideCoverage = buffered worst contribution โˆ’ unbuffered worst contribution

Where

downsideCoverage
Downside Coverage (currency units/project)Source: Calculated output

Money inputs and outputs use the currency selected in the scenario without changing the canonical methodology. Rates, margins, utilisation and buffers are entered as percentages and converted to decimal values for calculation.

2. Worked example

Input assumptions

The worked rows are rendered from the registered engine and visible default fixture.

Contract revenue
100,000 currency units/project
Monthly delivery cost
15,000 currency units/month
Best-case months
3 months/project
Best-case probability
0.2 decimal probability
Base-case months
4 months/project
Base-case probability
0.5 decimal probability
Worst-case months
6 months/project
Worst-case probability
0.3 decimal probability
Price buffer
0.1 proportion of expected delivery cost added as risk buffer

Calculation and outputs

  1. riskAdjustedContribution

    riskAdjustedContribution = revenue โˆ’ probability-weighted delivery cost
    Contract revenue
    100,000 currency units/project
    Monthly delivery cost
    15,000 currency units/month
    Best-case probability
    0.2 decimal probability
    Base-case probability
    0.5 decimal probability
    Worst-case probability
    0.3 decimal probability
    expectedDeliveryCost
    66,000 declared output unit
    bufferedRevenue
    110,000 declared output unit

    Engine result: 34,000

  2. bestCaseContribution

    bestCaseContribution = revenue โˆ’ best months ร— monthly cost
    Contract revenue
    100,000 currency units/project
    Monthly delivery cost
    15,000 currency units/month
    Best-case months
    3 months/project
    Best-case probability
    0.2 decimal probability
    Base-case months
    4 months/project
    Worst-case months
    6 months/project
    expectedDurationMonths
    4.4 declared output unit
    expectedDeliveryCost
    66,000 declared output unit
    bufferedRevenue
    110,000 declared output unit

    Engine result: 55,000

  3. baseCaseContribution

    baseCaseContribution = revenue โˆ’ base months ร— monthly cost
    Contract revenue
    100,000 currency units/project
    Monthly delivery cost
    15,000 currency units/month
    Best-case months
    3 months/project
    Base-case months
    4 months/project
    Base-case probability
    0.5 decimal probability
    Worst-case months
    6 months/project
    expectedDurationMonths
    4.4 declared output unit
    expectedDeliveryCost
    66,000 declared output unit
    bufferedRevenue
    110,000 declared output unit

    Engine result: 40,000

  4. worstCaseContribution

    worstCaseContribution = revenue โˆ’ worst months ร— monthly cost
    Contract revenue
    100,000 currency units/project
    Monthly delivery cost
    15,000 currency units/month
    Best-case months
    3 months/project
    Base-case months
    4 months/project
    Worst-case months
    6 months/project
    Worst-case probability
    0.3 decimal probability
    expectedDurationMonths
    4.4 declared output unit
    expectedDeliveryCost
    66,000 declared output unit
    bufferedRevenue
    110,000 declared output unit
    bufferedWorstCaseContribution
    20,000 declared output unit

    Engine result: 10,000

  5. expectedDurationMonths

    expectedDurationMonths = ฮฃ(case months ร— probability)
    Best-case months
    3 months/project
    Best-case probability
    0.2 decimal probability
    Base-case months
    4 months/project
    Base-case probability
    0.5 decimal probability
    Worst-case months
    6 months/project
    Worst-case probability
    0.3 decimal probability
    bestCaseContribution
    55,000 declared output unit
    baseCaseContribution
    40,000 declared output unit
    worstCaseContribution
    10,000 declared output unit
    bufferedWorstCaseContribution
    20,000 declared output unit

    Engine result: 4.4

  6. expectedDeliveryCost

    expectedDeliveryCost = expected duration ร— monthly delivery cost
    Monthly delivery cost
    15,000 currency units/month
    expectedDurationMonths
    4.4 declared output unit

    Engine result: 66,000

  7. riskAdjustedMargin

    riskAdjustedMargin = risk-adjusted contribution รท contract revenue
    Contract revenue
    100,000 currency units/project
    riskAdjustedContribution
    34,000 declared output unit
    bestCaseContribution
    55,000 declared output unit
    baseCaseContribution
    40,000 declared output unit
    worstCaseContribution
    10,000 declared output unit
    bufferedRevenue
    110,000 declared output unit
    bufferedWorstCaseContribution
    20,000 declared output unit

    Engine result: 0.34

  8. bufferedRevenue

    bufferedRevenue = contract revenue ร— (1 + price buffer)
    Contract revenue
    100,000 currency units/project
    Price buffer
    0.1 proportion of expected delivery cost added as risk buffer

    Engine result: 110,000

  9. bufferedWorstCaseContribution

    bufferedWorstCaseContribution = buffered revenue โˆ’ worst-case cost
    Contract revenue
    100,000 currency units/project
    Monthly delivery cost
    15,000 currency units/month
    Best-case months
    3 months/project
    Best-case probability
    0.2 decimal probability
    Base-case months
    4 months/project
    Base-case probability
    0.5 decimal probability
    Worst-case months
    6 months/project
    Worst-case probability
    0.3 decimal probability
    bestCaseContribution
    55,000 declared output unit
    baseCaseContribution
    40,000 declared output unit
    worstCaseContribution
    10,000 declared output unit
    expectedDeliveryCost
    66,000 declared output unit
    bufferedRevenue
    110,000 declared output unit

    Engine result: 20,000

  10. downsideCoverage

    downsideCoverage = buffered worst contribution โˆ’ unbuffered worst contribution
    Worst-case months
    6 months/project
    Worst-case probability
    0.3 decimal probability
    riskAdjustedContribution
    34,000 declared output unit
    bestCaseContribution
    55,000 declared output unit
    baseCaseContribution
    40,000 declared output unit
    worstCaseContribution
    10,000 declared output unit
    bufferedRevenue
    110,000 declared output unit
    bufferedWorstCaseContribution
    20,000 declared output unit

    Engine result: 10,000

Example

The worked rows are rendered from the registered engine and visible default fixture.

Best Case Contribution
55,000 currency units/project
Base Case Contribution
40,000 currency units/project
Worst Case Contribution
10,000 currency units/project
Expected Duration Months
4.4 months
Expected Delivery Cost
66,000 currency units/project
Risk Adjusted Contribution
34,000 currency units/project
Risk Adjusted Margin
34%
Buffered Revenue
110,000 currency units/project
Buffered Worst Case Contribution
20,000 currency units/project
Downside Coverage
10,000 currency units/project

The exact engine-derived outputs are shown in the labelled rows below.

Interpretation

The project duration risk result uses only the entered commercial assumptions.

Scenario study: project decision boundary

Separate labour, capacity and cash effects of delay

Only costs caused by the delay belong in the incremental scenario. Test direct labour, displaced capacity and receipt timing separately before combining them.

Input basis

  • Fictional delay labour: 16 extra hours at 80 CU per hour.
  • The same project baseline, currency, period and indirect-tax basis remains in force.
  • No displaced contribution or funding effect is added without separate evidence.
LayerIntermediate calculation / evidenceResult or stop
Incremental labour16 ร— 801,280 CU
Capacity displacementNamed feasible alternative ร— evidenced contributionUnresolved until evidenced
Cash timingDated outflows โˆ’ dated receiptsHand off to cash timeline

Interpretation

The direct labour effect is 1,280 CU. It is not the full delay cost unless capacity and cash effects are separately supported and not counted elsewhere.

Boundaries and next step

  • A longer calendar period does not make every overhead cost incremental.
  • Do not assume every delay loses another job or that every invoice is paid on time.

Continue with Project Duration Risk Planner, Progress Billing Cash Planner or project quote-risk guide.

3. Validation and boundary checks

  • Inputs must be finite and remain within the visible boundaries.
  • Rates are decimal values and all monetary inputs use one consistent currency and period.
  • Whole operational capacity is rounded only where the engine explicitly applies floor or ceiling.
Contract revenue minimum
contractRevenue โ‰ฅ 0 currency units/project โ€” A lower value is rejected before calculation.
Contract revenue maximum
contractRevenue โ‰ค 10,000,000 currency units/project โ€” A higher value is rejected before calculation.
Monthly delivery cost minimum
monthlyDeliveryCost โ‰ฅ 0 currency units/month โ€” A lower value is rejected before calculation.
Monthly delivery cost maximum
monthlyDeliveryCost โ‰ค 10,000,000 currency units/month โ€” A higher value is rejected before calculation.
Best-case months minimum
bestCaseMonths โ‰ฅ 0 months/project โ€” A lower value is rejected before calculation.
Best-case months maximum
bestCaseMonths โ‰ค 10,000,000 months/project โ€” A higher value is rejected before calculation.
Best-case probability minimum
bestCaseProbability โ‰ฅ 0 decimal probability โ€” A lower value is rejected before calculation.
Best-case probability maximum
bestCaseProbability โ‰ค 0.99 decimal probability โ€” A higher value is rejected before calculation.
Base-case months minimum
baseCaseMonths โ‰ฅ 0 months/project โ€” A lower value is rejected before calculation.
Base-case months maximum
baseCaseMonths โ‰ค 10,000,000 months/project โ€” A higher value is rejected before calculation.
Base-case probability minimum
baseCaseProbability โ‰ฅ 0 decimal probability โ€” A lower value is rejected before calculation.
Base-case probability maximum
baseCaseProbability โ‰ค 0.99 decimal probability โ€” A higher value is rejected before calculation.
Worst-case months minimum
worstCaseMonths โ‰ฅ 0 months/project โ€” A lower value is rejected before calculation.
Worst-case months maximum
worstCaseMonths โ‰ค 10,000,000 months/project โ€” A higher value is rejected before calculation.
Worst-case probability minimum
worstCaseProbability โ‰ฅ 0 decimal probability โ€” A lower value is rejected before calculation.
Worst-case probability maximum
worstCaseProbability โ‰ค 0.99 decimal probability โ€” A higher value is rejected before calculation.
Price buffer minimum
priceBufferRate โ‰ฅ 0 proportion of expected delivery cost added as risk buffer โ€” A lower value is rejected before calculation.
Price buffer maximum
priceBufferRate โ‰ค 0.99 proportion of expected delivery cost added as risk buffer โ€” A higher value is rejected before calculation.

4. Assumptions and source classification

  • All costs, prices, hours, probabilities and volumes are user-supplied; no market benchmark is inferred.
  • Tax is outside these neutral commercial comparisons.
  • The engine retains full precision; formatting never feeds back into calculation.

This planner has no current policy-data dependency. Its commercial assumptions are user supplied. Registered family-level regression suites exercise the shared business-logic engine and worked-result reconciliation.

5. Limitations

  • The model does not predict demand, delivery performance, contract enforceability or customer behaviour.
  • It does not replace accounting, tax, legal or financial advice.

This is educational decision support, not tax, accounting, legal or financial advice. Check the treatment of your actual transactions under the rules that apply to your business and seek qualified advice where appropriate.

6. Update and evidence policy

Registered family-level suites test formula invariants and example reconciliation; the release ledger records that coverage without claiming a separate oracle for every line of public copy. There is no official threshold or benchmark to refresh for this planner. Commercial inputs remain user-supplied because they vary by business and contract.

Change history

  1. : Initial public release of the planner and methodology after pre-launch calculation, content, source and interaction review.

Guides to interpret the decision and its assumptions.

Return to the planner