Skip to main content

Methodology

Construction Retention Cash-flow Planner methodology

See the current claim, cash due now and cumulative cash position without treating held retention as received cash. Reconcile certified construction work, retention withheld and released, prior certification and cash already received.

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

Total certified work
totalCertifiedWorkExTax = sum of certified work across claim periods

Where

secondCertifiedWorkExTax
Second claim certified work (currency units/second claim, ex tax)Source: Business record
totalCertifiedWorkExTax
Total certified work (currency units, ex tax)Source: Calculated output
Total retention withheld
totalRetentionWithheldExTax = sum of claim retention subject to the cap

Where

retentionCapExTax
Contract retention cap (currency units/project retention balance, ex tax)Source: Business record
totalRetentionWithheldExTax
Total retention withheld (currency units, ex tax)Source: Calculated output
Total retention released
totalRetentionReleasedExTax = sum of released retention across claim periods

Where

secondRetentionReleasedExTax
Second claim retention released (currency units/second claim period, ex tax)Source: Business record
totalRetentionReleasedExTax
Total retention released (currency units, ex tax)Source: Calculated output
Retention still held
retentionBalanceExTax = retention withheld - retention released

Where

secondRetentionReleasedExTax
Second claim retention released (currency units/second claim period, ex tax)Source: Business record
totalRetentionWithheldExTax
Total retention withheld (currency units, ex tax)Source: Calculated output
totalRetentionReleasedExTax
Total retention released (currency units, ex tax)Source: Calculated output
retentionBalanceExTax
Retention still held (currency units, ex tax)Source: Calculated output
Total collectible amount
totalCollectibleExTax = certified work - retention withheld + retention released

Where

secondCertifiedWorkExTax
Second claim certified work (currency units/second claim, ex tax)Source: Business record
secondRetentionReleasedExTax
Second claim retention released (currency units/second claim period, ex tax)Source: Business record
totalCertifiedWorkExTax
Total certified work (currency units, ex tax)Source: Calculated output
totalRetentionWithheldExTax
Total retention withheld (currency units, ex tax)Source: Calculated output
totalRetentionReleasedExTax
Total retention released (currency units, ex tax)Source: Calculated output
totalCollectibleExTax
Total collectible amount (currency units, ex tax)Source: Calculated output
Total cash received
totalCashReceivedExTax = sum of cash receipts across claim periods

Where

secondCashReceivedExTax
Second claim cash received (currency units/second claim period, ex tax)Source: Business record
totalCashReceivedExTax
Total cash received (currency units, ex tax)Source: Calculated output
Cash still due
totalCashDueExTax = total collectible amount - total cash received

Where

secondCashReceivedExTax
Second claim cash received (currency units/second claim period, ex tax)Source: Business record
totalCollectibleExTax
Total collectible amount (currency units, ex tax)Source: Calculated output
totalCashReceivedExTax
Total cash received (currency units, ex tax)Source: Calculated output
totalCashDueExTax
Cash still due (currency units, ex tax)Source: Calculated output
Project cost outflow
totalProjectCostOutflowExTax = sum of project cost cash outflows

Where

secondProjectCostOutflowExTax
Second claim project cost outflow (currency units/second claim period, ex tax)Source: Business record
totalProjectCostOutflowExTax
Project cost outflow (currency units, ex tax)Source: Calculated output
Closing project cash
closingCashExTax = opening cash + receipts - project cost outflows

Where

openingProjectCashExTax
Opening project cash (currency units/project before first claim, ex tax)Source: Business record
closingCashExTax
Closing project cash (currency units, ex tax)Source: Calculated output
Peak project funding gap
peakFundingGapExTax = largest shortfall below zero cash across claim periods

Where

peakFundingGapExTax
Peak project funding gap (currency units, ex tax)Source: Calculated output
First shortfall date
firstShortfallDate = first chronological claim date with closing cash below zero

Where

firstClaimDateCode
First claim date (YYYYMMDD date code for first claim)Source: Business record
secondClaimDateCode
Second claim date (YYYYMMDD date code for second claim)Source: Business record
closingCashExTax
Closing project cash (currency units, ex tax)Source: Calculated output
firstShortfallDate
First shortfall date (ISO calendar date)Source: Calculated output
Expected final retention release date
expectedFinalReleaseDate = last claim date + expected release delay when retention remains held

Where

expectedReleaseDelayDays
Expected release delay (whole days from last claim to final release)Source: Business record
secondClaimDateCode
Second claim date (YYYYMMDD date code for second claim)Source: Business record
expectedFinalReleaseDate
Expected final retention release date (ISO calendar date)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 below are evaluated at render time by the same shared engine and visible default fixture as the interactive workflow.

Contract retention rate
0.05 decimal fraction of certified work withheld
Contract retention cap
30,000 currency units/project retention balance, ex tax
Expected release delay
60 whole days from last claim to final release
Opening project cash
15,000 currency units/project before first claim, ex tax
First claim date
20,260,131 YYYYMMDD date code for first claim
First claim certified work
90,000 currency units/first claim, ex tax
First claim cash received
70,000 currency units/first claim period, ex tax
First claim retention released
0 currency units/first claim period, ex tax
First claim project cost outflow
82,000 currency units/first claim period, ex tax
Second claim date
20,260,228 YYYYMMDD date code for second claim
Second claim certified work
120,000 currency units/second claim, ex tax
Second claim cash received
100,000 currency units/second claim period, ex tax
Second claim retention released
0 currency units/second claim period, ex tax
Second claim project cost outflow
118,000 currency units/second claim period, ex tax

Calculation and outputs

  1. Total certified work

    totalCertifiedWorkExTax = sum of certified work across claim periods
    First claim date
    20,260,131 YYYYMMDD date code for first claim
    First claim certified work
    90,000 currency units/first claim, ex tax
    First claim cash received
    70,000 currency units/first claim period, ex tax
    First claim retention released
    0 currency units/first claim period, ex tax
    First claim project cost outflow
    82,000 currency units/first claim period, ex tax
    Second claim date
    20,260,228 YYYYMMDD date code for second claim
    Second claim certified work
    120,000 currency units/second claim, ex tax
    Second claim cash received
    100,000 currency units/second claim period, ex tax
    Second claim retention released
    0 currency units/second claim period, ex tax
    Second claim project cost outflow
    118,000 currency units/second claim period, ex tax

    Engine result: 210,000 money

  2. Total retention withheld

    totalRetentionWithheldExTax = sum of claim retention subject to the cap
    Contract retention rate
    0.05 decimal fraction of certified work withheld
    Contract retention cap
    30,000 currency units/project retention balance, ex tax
    First claim date
    20,260,131 YYYYMMDD date code for first claim
    First claim certified work
    90,000 currency units/first claim, ex tax
    First claim cash received
    70,000 currency units/first claim period, ex tax
    First claim retention released
    0 currency units/first claim period, ex tax
    First claim project cost outflow
    82,000 currency units/first claim period, ex tax
    Second claim date
    20,260,228 YYYYMMDD date code for second claim
    Second claim certified work
    120,000 currency units/second claim, ex tax
    Second claim cash received
    100,000 currency units/second claim period, ex tax
    Second claim retention released
    0 currency units/second claim period, ex tax
    Second claim project cost outflow
    118,000 currency units/second claim period, ex tax
    Total retention released
    0 money
    Retention still held
    10,500 money
    Expected final retention release date
    2026-04-29 date

    Engine result: 10,500 money

  3. Total retention released

    totalRetentionReleasedExTax = sum of released retention across claim periods
    Contract retention rate
    0.05 decimal fraction of certified work withheld
    Contract retention cap
    30,000 currency units/project retention balance, ex tax
    First claim date
    20,260,131 YYYYMMDD date code for first claim
    First claim certified work
    90,000 currency units/first claim, ex tax
    First claim cash received
    70,000 currency units/first claim period, ex tax
    First claim retention released
    0 currency units/first claim period, ex tax
    First claim project cost outflow
    82,000 currency units/first claim period, ex tax
    Second claim date
    20,260,228 YYYYMMDD date code for second claim
    Second claim certified work
    120,000 currency units/second claim, ex tax
    Second claim cash received
    100,000 currency units/second claim period, ex tax
    Second claim retention released
    0 currency units/second claim period, ex tax
    Second claim project cost outflow
    118,000 currency units/second claim period, ex tax
    Total retention withheld
    10,500 money
    Retention still held
    10,500 money
    Expected final retention release date
    2026-04-29 date

    Engine result: 0 money

  4. Retention still held

    retentionBalanceExTax = retention withheld - retention released
    Contract retention rate
    0.05 decimal fraction of certified work withheld
    Contract retention cap
    30,000 currency units/project retention balance, ex tax
    First claim retention released
    0 currency units/first claim period, ex tax
    Second claim retention released
    0 currency units/second claim period, ex tax
    Total retention withheld
    10,500 money
    Total retention released
    0 money
    Expected final retention release date
    2026-04-29 date

    Engine result: 10,500 money

  5. Total collectible amount

    totalCollectibleExTax = certified work - retention withheld + retention released
    Contract retention rate
    0.05 decimal fraction of certified work withheld
    Contract retention cap
    30,000 currency units/project retention balance, ex tax
    First claim certified work
    90,000 currency units/first claim, ex tax
    First claim retention released
    0 currency units/first claim period, ex tax
    Second claim certified work
    120,000 currency units/second claim, ex tax
    Second claim retention released
    0 currency units/second claim period, ex tax
    Total certified work
    210,000 money
    Total retention withheld
    10,500 money
    Total retention released
    0 money
    Retention still held
    10,500 money
    Expected final retention release date
    2026-04-29 date

    Engine result: 199,500 money

  6. Total cash received

    totalCashReceivedExTax = sum of cash receipts across claim periods
    Opening project cash
    15,000 currency units/project before first claim, ex tax
    First claim date
    20,260,131 YYYYMMDD date code for first claim
    First claim certified work
    90,000 currency units/first claim, ex tax
    First claim cash received
    70,000 currency units/first claim period, ex tax
    First claim retention released
    0 currency units/first claim period, ex tax
    First claim project cost outflow
    82,000 currency units/first claim period, ex tax
    Second claim date
    20,260,228 YYYYMMDD date code for second claim
    Second claim certified work
    120,000 currency units/second claim, ex tax
    Second claim cash received
    100,000 currency units/second claim period, ex tax
    Second claim retention released
    0 currency units/second claim period, ex tax
    Second claim project cost outflow
    118,000 currency units/second claim period, ex tax
    Cash still due
    29,500 money
    Closing project cash
    -15,000 money

    Engine result: 170,000 money

  7. Cash still due

    totalCashDueExTax = total collectible amount - total cash received
    Opening project cash
    15,000 currency units/project before first claim, ex tax
    First claim cash received
    70,000 currency units/first claim period, ex tax
    Second claim cash received
    100,000 currency units/second claim period, ex tax
    Total collectible amount
    199,500 money
    Total cash received
    170,000 money
    Closing project cash
    -15,000 money

    Engine result: 29,500 money

  8. Project cost outflow

    totalProjectCostOutflowExTax = sum of project cost cash outflows
    Opening project cash
    15,000 currency units/project before first claim, ex tax
    First claim cash received
    70,000 currency units/first claim period, ex tax
    First claim project cost outflow
    82,000 currency units/first claim period, ex tax
    Second claim cash received
    100,000 currency units/second claim period, ex tax
    Second claim project cost outflow
    118,000 currency units/second claim period, ex tax
    Total cash received
    170,000 money
    Cash still due
    29,500 money
    Closing project cash
    -15,000 money
    Peak project funding gap
    15,000 money

    Engine result: 200,000 money

  9. Closing project cash

    closingCashExTax = opening cash + receipts - project cost outflows
    Opening project cash
    15,000 currency units/project before first claim, ex tax
    First claim cash received
    70,000 currency units/first claim period, ex tax
    First claim project cost outflow
    82,000 currency units/first claim period, ex tax
    Second claim cash received
    100,000 currency units/second claim period, ex tax
    Second claim project cost outflow
    118,000 currency units/second claim period, ex tax
    Total cash received
    170,000 money
    Cash still due
    29,500 money
    Project cost outflow
    200,000 money
    Peak project funding gap
    15,000 money

    Engine result: -15,000 money

  10. Peak project funding gap

    peakFundingGapExTax = largest shortfall below zero cash across claim periods
    Opening project cash
    15,000 currency units/project before first claim, ex tax
    First claim date
    20,260,131 YYYYMMDD date code for first claim
    First claim certified work
    90,000 currency units/first claim, ex tax
    First claim cash received
    70,000 currency units/first claim period, ex tax
    First claim retention released
    0 currency units/first claim period, ex tax
    First claim project cost outflow
    82,000 currency units/first claim period, ex tax
    Second claim date
    20,260,228 YYYYMMDD date code for second claim
    Second claim certified work
    120,000 currency units/second claim, ex tax
    Second claim cash received
    100,000 currency units/second claim period, ex tax
    Second claim retention released
    0 currency units/second claim period, ex tax
    Second claim project cost outflow
    118,000 currency units/second claim period, ex tax
    Total cash received
    170,000 money
    Cash still due
    29,500 money
    Closing project cash
    -15,000 money
    First shortfall date
    2026-02-28 date

    Engine result: 15,000 money

  11. First shortfall date

    firstShortfallDate = first chronological claim date with closing cash below zero
    Opening project cash
    15,000 currency units/project before first claim, ex tax
    First claim date
    20,260,131 YYYYMMDD date code for first claim
    First claim certified work
    90,000 currency units/first claim, ex tax
    First claim cash received
    70,000 currency units/first claim period, ex tax
    First claim retention released
    0 currency units/first claim period, ex tax
    First claim project cost outflow
    82,000 currency units/first claim period, ex tax
    Second claim date
    20,260,228 YYYYMMDD date code for second claim
    Second claim certified work
    120,000 currency units/second claim, ex tax
    Second claim cash received
    100,000 currency units/second claim period, ex tax
    Second claim retention released
    0 currency units/second claim period, ex tax
    Second claim project cost outflow
    118,000 currency units/second claim period, ex tax
    Total cash received
    170,000 money
    Cash still due
    29,500 money
    Closing project cash
    -15,000 money
    Expected final retention release date
    2026-04-29 date

    Engine result: 2026-02-28 date

  12. Expected final retention release date

    expectedFinalReleaseDate = last claim date + expected release delay when retention remains held
    Contract retention rate
    0.05 decimal fraction of certified work withheld
    Contract retention cap
    30,000 currency units/project retention balance, ex tax
    Expected release delay
    60 whole days from last claim to final release
    First claim date
    20,260,131 YYYYMMDD date code for first claim
    First claim certified work
    90,000 currency units/first claim, ex tax
    First claim cash received
    70,000 currency units/first claim period, ex tax
    First claim retention released
    0 currency units/first claim period, ex tax
    First claim project cost outflow
    82,000 currency units/first claim period, ex tax
    Second claim date
    20,260,228 YYYYMMDD date code for second claim
    Second claim certified work
    120,000 currency units/second claim, ex tax
    Second claim cash received
    100,000 currency units/second claim period, ex tax
    Second claim retention released
    0 currency units/second claim period, ex tax
    Second claim project cost outflow
    118,000 currency units/second claim period, ex tax
    Total retention withheld
    10,500 money
    Total retention released
    0 money
    Retention still held
    10,500 money
    First shortfall date
    2026-02-28 date

    Engine result: 2026-04-29 date

Example

The worked rows below are evaluated at render time by the same shared engine and visible default fixture as the interactive workflow.

Total certified work
210,000 currency units
Total retention withheld
10,500 currency units
Total retention released
0 currency units
Retention still held
10,500 currency units
Total collectible amount
199,500 currency units
Total cash received
170,000 currency units
Cash still due
29,500 currency units
Project cost outflow
200,000 currency units
Closing project cash
-15,000 currency units
Peak project funding gap
15,000 currency units
First shortfall date
2026-02-28
Expected final retention release date
2026-04-29

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

Interpretation

Retention is a timing exposure: project profit and project cash can move differently.

3. Validation and boundary checks

  • All inputs must be finite and inside the visible validation boundaries.
  • Rates are retained as decimal values and shown as percentages only at the presentation boundary.
  • The worked fixture must expose every declared result: totalCertifiedWorkExTax, totalRetentionWithheldExTax, totalRetentionReleasedExTax, retentionBalanceExTax, totalCollectibleExTax, totalCashReceivedExTax, totalCashDueExTax, totalProjectCostOutflowExTax, closingCashExTax, peakFundingGapExTax, firstShortfallDate, expectedFinalReleaseDate.
  • Scenario comparison changes one declared driver while holding the remaining industry records constant.
  • Cash received is the complete actual receipt, including any payment arising from released retention; retention released changes the retention ledger and is not added to cash a second time.
Contract retention rate minimum
retentionRate โ‰ฅ 0 decimal fraction of certified work withheld โ€” A lower value is rejected before calculation.
Contract retention rate maximum
retentionRate โ‰ค 1 decimal fraction of certified work withheld โ€” A higher value is rejected before calculation.
Contract retention cap minimum
retentionCapExTax โ‰ฅ 0 currency units/project retention balance, ex tax โ€” A lower value is rejected before calculation.
Contract retention cap maximum
retentionCapExTax โ‰ค 10,000,000 currency units/project retention balance, ex tax โ€” A higher value is rejected before calculation.
Expected release delay minimum
expectedReleaseDelayDays โ‰ฅ 0 whole days from last claim to final release โ€” A lower value is rejected before calculation.
Expected release delay maximum
expectedReleaseDelayDays โ‰ค 3,650 whole days from last claim to final release โ€” A higher value is rejected before calculation.
Opening project cash minimum
openingProjectCashExTax โ‰ฅ -100,000,000 currency units/project before first claim, ex tax โ€” A lower value is rejected before calculation.
Opening project cash maximum
openingProjectCashExTax โ‰ค 100,000,000 currency units/project before first claim, ex tax โ€” A higher value is rejected before calculation.
First claim date minimum
firstClaimDateCode โ‰ฅ 10,000,101 YYYYMMDD date code for first claim โ€” A lower value is rejected before calculation.
First claim date maximum
firstClaimDateCode โ‰ค 99,991,231 YYYYMMDD date code for first claim โ€” A higher value is rejected before calculation.
First claim certified work minimum
firstCertifiedWorkExTax โ‰ฅ 0 currency units/first claim, ex tax โ€” A lower value is rejected before calculation.
First claim certified work maximum
firstCertifiedWorkExTax โ‰ค 10,000,000 currency units/first claim, ex tax โ€” A higher value is rejected before calculation.
First claim cash received minimum
firstCashReceivedExTax โ‰ฅ 0 currency units/first claim period, ex tax โ€” A lower value is rejected before calculation.
First claim cash received maximum
firstCashReceivedExTax โ‰ค 10,000,000 currency units/first claim period, ex tax โ€” A higher value is rejected before calculation.
First claim retention released minimum
firstRetentionReleasedExTax โ‰ฅ 0 currency units/first claim period, ex tax โ€” A lower value is rejected before calculation.
First claim retention released maximum
firstRetentionReleasedExTax โ‰ค 10,000,000 currency units/first claim period, ex tax โ€” A higher value is rejected before calculation.
First claim project cost outflow minimum
firstProjectCostOutflowExTax โ‰ฅ 0 currency units/first claim period, ex tax โ€” A lower value is rejected before calculation.
First claim project cost outflow maximum
firstProjectCostOutflowExTax โ‰ค 10,000,000 currency units/first claim period, ex tax โ€” A higher value is rejected before calculation.
Second claim date minimum
secondClaimDateCode โ‰ฅ 10,000,101 YYYYMMDD date code for second claim โ€” A lower value is rejected before calculation.
Second claim date maximum
secondClaimDateCode โ‰ค 99,991,231 YYYYMMDD date code for second claim โ€” A higher value is rejected before calculation.
Second claim certified work minimum
secondCertifiedWorkExTax โ‰ฅ 0 currency units/second claim, ex tax โ€” A lower value is rejected before calculation.
Second claim certified work maximum
secondCertifiedWorkExTax โ‰ค 10,000,000 currency units/second claim, ex tax โ€” A higher value is rejected before calculation.
Second claim cash received minimum
secondCashReceivedExTax โ‰ฅ 0 currency units/second claim period, ex tax โ€” A lower value is rejected before calculation.
Second claim cash received maximum
secondCashReceivedExTax โ‰ค 10,000,000 currency units/second claim period, ex tax โ€” A higher value is rejected before calculation.
Second claim retention released minimum
secondRetentionReleasedExTax โ‰ฅ 0 currency units/second claim period, ex tax โ€” A lower value is rejected before calculation.
Second claim retention released maximum
secondRetentionReleasedExTax โ‰ค 10,000,000 currency units/second claim period, ex tax โ€” A higher value is rejected before calculation.
Second claim project cost outflow minimum
secondProjectCostOutflowExTax โ‰ฅ 0 currency units/second claim period, ex tax โ€” A lower value is rejected before calculation.
Second claim project cost outflow maximum
secondProjectCostOutflowExTax โ‰ค 10,000,000 currency units/second claim period, ex tax โ€” A higher value is rejected before calculation.

4. Assumptions and source classification

  • Costs, capacity, contract terms, tax rates and targets are supplied by the user.
  • No provider default, jurisdictional rule or industry benchmark is embedded.
  • The shared engine retains full precision and display formatting never feeds 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

  • Results are only as reliable as the timing, scope and basis of the entered records.
  • The workflow does not predict demand or establish accounting, tax, contractual or legal treatment.
  • Retention rate, cap and release delay are editable contract assumptions; no jurisdictional security-of-payment rule, statutory cap, trust-account requirement or release deadline is embedded.
  • The calculated release date is a cash-planning scenario, not a statement of contractual or statutory entitlement.

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