Methodology
Progress Billing Cash Planner methodology
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
earnedExTax = stage 1 earned work + stage 2 earned workWhere
- stageOneEarnedExTax
- Stage 1 earned work (currency units/stage 1, ex tax)Source: Business record
- stageTwoEarnedExTax
- Stage 2 earned work (currency units/stage 2, ex tax)Source: Business record
- earnedExTax
- Total earned work (currency units, ex tax)Source: Calculated output
billedExTax = stage 1 billed value + stage 2 billed valueWhere
- stageOneBilledExTax
- Stage 1 billed value (currency units/stage 1, ex tax)Source: Business record
- stageTwoBilledExTax
- Stage 2 billed value (currency units/stage 2, ex tax)Source: Business record
- billedExTax
- Total billed value (currency units, ex tax)Source: Calculated output
cashReceivedExTax = stage 1 cash received + stage 2 cash receivedWhere
- stageOneCashReceivedExTax
- Stage 1 cash received (currency units/stage 1 event, ex tax)Source: Business record
- stageTwoCashReceivedExTax
- Stage 2 cash received (currency units/stage 2 event, ex tax)Source: Business record
- cashReceivedExTax
- Total cash received (currency units, ex tax)Source: Calculated output
retentionHeldExTax = sum of each stage billed value ร its retention rateWhere
- stageOneBilledExTax
- Stage 1 billed value (currency units/stage 1, ex tax)Source: Business record
- stageOneRetentionRate
- Stage 1 retention rate (decimal fraction of stage 1 billed value withheld)Source: User assumption
- stageTwoBilledExTax
- Stage 2 billed value (currency units/stage 2, ex tax)Source: Business record
- stageTwoRetentionRate
- Stage 2 retention rate (decimal fraction of stage 2 billed value withheld)Source: User assumption
- billedExTax
- Total billed value (currency units, ex tax)Source: Calculated output
- retentionHeldExTax
- Retention held (currency units, ex tax)Source: Calculated output
netCollectibleBilledExTax = total billed value โ retention heldWhere
- billedExTax
- Total billed value (currency units, ex tax)Source: Calculated output
- retentionHeldExTax
- Retention held (currency units, ex tax)Source: Calculated output
- netCollectibleBilledExTax
- Net collectible billed value (currency units, ex tax)Source: Calculated output
unbilledEarnedExTax = total earned work โ total billed valueWhere
- earnedExTax
- Total earned work (currency units, ex tax)Source: Calculated output
- billedExTax
- Total billed value (currency units, ex tax)Source: Calculated output
- unbilledEarnedExTax
- Unbilled earned work (currency units, ex tax)Source: Calculated output
receivableExTax = net collectible billed value โ cash receivedWhere
- billedExTax
- Total billed value (currency units, ex tax)Source: Calculated output
- cashReceivedExTax
- Total cash received (currency units, ex tax)Source: Calculated output
- netCollectibleBilledExTax
- Net collectible billed value (currency units, ex tax)Source: Calculated output
- receivableExTax
- Collectible receivable (currency units, ex tax)Source: Calculated output
remainingContractValueExTax = contract value โ total earned workWhere
- contractValueExTax
- Contract value (currency units/contract, ex tax)Source: Business record
- earnedExTax
- Total earned work (currency units, ex tax)Source: Calculated output
- remainingContractValueExTax
- Remaining contract value (currency units, ex tax)Source: Calculated output
retentionReleasedExTax = sum of retention released across both ordered stagesWhere
- retentionReleasedExTax
- Retention released (currency units, ex tax)Source: Calculated output
projectCostOutflowExTax = sum of project cost outflows across both ordered stagesWhere
- projectCostOutflowExTax
- Project cost outflow (currency units, ex tax)Source: Calculated output
stageOneClosingCashExTax = opening cash + stage 1 receipts + releases โ stage 1 cost outflowWhere
- openingCashExTax
- Opening project cash (currency units/contract before stage 1, ex tax)Source: Business record
- stageOneClosingCashExTax
- Closing cash after stage 1 (currency units, ex tax)Source: Calculated output
- closingCashExTax
- Closing project cash (currency units, ex tax)Source: Calculated output
stageTwoClosingCashExTax = stage 1 closing cash + stage 2 receipts + releases โ stage 2 cost outflowWhere
- stageTwoClosingCashExTax
- Closing cash after stage 2 (currency units, ex tax)Source: Calculated output
- closingCashExTax
- Closing project cash (currency units, ex tax)Source: Calculated output
closingCashExTax = opening cash + receipts + retention releases โ project cost outflowsWhere
- openingCashExTax
- Opening project cash (currency units/contract before stage 1, ex tax)Source: Business record
- closingCashExTax
- Closing project cash (currency units, ex tax)Source: Calculated output
firstShortfallDateCode = first chronological stage with closing cash below zeroWhere
- stageOneDateCode
- Stage 1 date (YYYYMMDD date code)Source: Business record
- stageTwoDateCode
- Stage 2 date (YYYYMMDD date code)Source: Business record
- closingCashExTax
- Closing project cash (currency units, ex tax)Source: Calculated output
- firstShortfallDateCode
- First cash shortfall date (ISO calendar date)Source: Calculated output
peakFundingGapExTax = largest cash shortfall after either ordered stageWhere
- peakFundingGapExTax
- Peak funding gap (currency units, ex tax)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 rows below come directly from the exact engine using the visible default fixture.
- Contract value
- 100,000 currency units/contract, ex tax
- Opening project cash
- 5,000 currency units/contract before stage 1, ex tax
- Stage 1 date
- 20,260,131 YYYYMMDD date code
- Stage 1 earned work
- 40,000 currency units/stage 1, ex tax
- Stage 1 billed value
- 35,000 currency units/stage 1, ex tax
- Stage 1 cash received
- 30,000 currency units/stage 1 event, ex tax
- Stage 1 retention rate
- 0.1 decimal fraction of stage 1 billed value withheld
- Stage 1 retention released
- 0 currency units/stage 1 event, ex tax
- Stage 1 project cost outflow
- 32,000 currency units/stage 1 event, ex tax
- Stage 2 date
- 20,260,228 YYYYMMDD date code
- Stage 2 earned work
- 20,000 currency units/stage 2, ex tax
- Stage 2 billed value
- 20,000 currency units/stage 2, ex tax
- Stage 2 cash received
- 10,000 currency units/stage 2 event, ex tax
- Stage 2 retention rate
- 0.1 decimal fraction of stage 2 billed value withheld
- Stage 2 retention released
- 0 currency units/stage 2 event, ex tax
- Stage 2 project cost outflow
- 16,000 currency units/stage 2 event, ex tax
Calculation and outputs
Total earned work
earnedExTax = stage 1 earned work + stage 2 earned work- Stage 1 date
- 20,260,131 YYYYMMDD date code
- Stage 1 earned work
- 40,000 currency units/stage 1, ex tax
- Stage 1 billed value
- 35,000 currency units/stage 1, ex tax
- Stage 1 cash received
- 30,000 currency units/stage 1 event, ex tax
- Stage 1 retention rate
- 0.1 decimal fraction of stage 1 billed value withheld
- Stage 1 retention released
- 0 currency units/stage 1 event, ex tax
- Stage 1 project cost outflow
- 32,000 currency units/stage 1 event, ex tax
- Stage 2 date
- 20,260,228 YYYYMMDD date code
- Stage 2 earned work
- 20,000 currency units/stage 2, ex tax
- Stage 2 billed value
- 20,000 currency units/stage 2, ex tax
- Stage 2 cash received
- 10,000 currency units/stage 2 event, ex tax
- Stage 2 retention rate
- 0.1 decimal fraction of stage 2 billed value withheld
- Stage 2 retention released
- 0 currency units/stage 2 event, ex tax
- Stage 2 project cost outflow
- 16,000 currency units/stage 2 event, ex tax
- Unbilled earned work
- 5,000 currency units, ex tax
- Closing cash after stage 1
- 3,000 currency units, ex tax
- Closing cash after stage 2
- -3,000 currency units, ex tax
Engine result: 60,000 currency units, ex tax
Total billed value
billedExTax = stage 1 billed value + stage 2 billed value- Contract value
- 100,000 currency units/contract, ex tax
- Stage 1 date
- 20,260,131 YYYYMMDD date code
- Stage 1 earned work
- 40,000 currency units/stage 1, ex tax
- Stage 1 billed value
- 35,000 currency units/stage 1, ex tax
- Stage 1 cash received
- 30,000 currency units/stage 1 event, ex tax
- Stage 1 retention rate
- 0.1 decimal fraction of stage 1 billed value withheld
- Stage 1 retention released
- 0 currency units/stage 1 event, ex tax
- Stage 1 project cost outflow
- 32,000 currency units/stage 1 event, ex tax
- Stage 2 date
- 20,260,228 YYYYMMDD date code
- Stage 2 earned work
- 20,000 currency units/stage 2, ex tax
- Stage 2 billed value
- 20,000 currency units/stage 2, ex tax
- Stage 2 cash received
- 10,000 currency units/stage 2 event, ex tax
- Stage 2 retention rate
- 0.1 decimal fraction of stage 2 billed value withheld
- Stage 2 retention released
- 0 currency units/stage 2 event, ex tax
- Stage 2 project cost outflow
- 16,000 currency units/stage 2 event, ex tax
- Net collectible billed value
- 49,500 currency units, ex tax
- Remaining contract value
- 40,000 currency units, ex tax
- Closing cash after stage 1
- 3,000 currency units, ex tax
- Closing cash after stage 2
- -3,000 currency units, ex tax
Engine result: 55,000 currency units, ex tax
Total cash received
cashReceivedExTax = stage 1 cash received + stage 2 cash received- Opening project cash
- 5,000 currency units/contract before stage 1, ex tax
- Stage 1 date
- 20,260,131 YYYYMMDD date code
- Stage 1 earned work
- 40,000 currency units/stage 1, ex tax
- Stage 1 billed value
- 35,000 currency units/stage 1, ex tax
- Stage 1 cash received
- 30,000 currency units/stage 1 event, ex tax
- Stage 1 retention rate
- 0.1 decimal fraction of stage 1 billed value withheld
- Stage 1 retention released
- 0 currency units/stage 1 event, ex tax
- Stage 1 project cost outflow
- 32,000 currency units/stage 1 event, ex tax
- Stage 2 date
- 20,260,228 YYYYMMDD date code
- Stage 2 earned work
- 20,000 currency units/stage 2, ex tax
- Stage 2 billed value
- 20,000 currency units/stage 2, ex tax
- Stage 2 cash received
- 10,000 currency units/stage 2 event, ex tax
- Stage 2 retention rate
- 0.1 decimal fraction of stage 2 billed value withheld
- Stage 2 retention released
- 0 currency units/stage 2 event, ex tax
- Stage 2 project cost outflow
- 16,000 currency units/stage 2 event, ex tax
- Closing cash after stage 1
- 3,000 currency units, ex tax
- Closing cash after stage 2
- -3,000 currency units, ex tax
- Closing project cash
- -3,000 currency units, ex tax
- First cash shortfall date
- 20,260,228 ISO calendar date
Engine result: 40,000 currency units, ex tax
Retention held
retentionHeldExTax = sum of each stage billed value ร its retention rate- Contract value
- 100,000 currency units/contract, ex tax
- Stage 1 date
- 20,260,131 YYYYMMDD date code
- Stage 1 earned work
- 40,000 currency units/stage 1, ex tax
- Stage 1 billed value
- 35,000 currency units/stage 1, ex tax
- Stage 1 cash received
- 30,000 currency units/stage 1 event, ex tax
- Stage 1 retention rate
- 0.1 decimal fraction of stage 1 billed value withheld
- Stage 1 retention released
- 0 currency units/stage 1 event, ex tax
- Stage 1 project cost outflow
- 32,000 currency units/stage 1 event, ex tax
- Stage 2 date
- 20,260,228 YYYYMMDD date code
- Stage 2 earned work
- 20,000 currency units/stage 2, ex tax
- Stage 2 billed value
- 20,000 currency units/stage 2, ex tax
- Stage 2 cash received
- 10,000 currency units/stage 2 event, ex tax
- Stage 2 retention rate
- 0.1 decimal fraction of stage 2 billed value withheld
- Stage 2 retention released
- 0 currency units/stage 2 event, ex tax
- Stage 2 project cost outflow
- 16,000 currency units/stage 2 event, ex tax
- Total billed value
- 55,000 currency units, ex tax
- Net collectible billed value
- 49,500 currency units, ex tax
- Remaining contract value
- 40,000 currency units, ex tax
- Retention released
- 0 currency units, ex tax
- Closing cash after stage 1
- 3,000 currency units, ex tax
- Closing cash after stage 2
- -3,000 currency units, ex tax
Engine result: 5,500 currency units, ex tax
Net collectible billed value
netCollectibleBilledExTax = total billed value โ retention held- Contract value
- 100,000 currency units/contract, ex tax
- Stage 1 billed value
- 35,000 currency units/stage 1, ex tax
- Stage 1 retention rate
- 0.1 decimal fraction of stage 1 billed value withheld
- Stage 1 retention released
- 0 currency units/stage 1 event, ex tax
- Stage 2 billed value
- 20,000 currency units/stage 2, ex tax
- Stage 2 retention rate
- 0.1 decimal fraction of stage 2 billed value withheld
- Stage 2 retention released
- 0 currency units/stage 2 event, ex tax
- Total billed value
- 55,000 currency units, ex tax
- Retention held
- 5,500 currency units, ex tax
- Remaining contract value
- 40,000 currency units, ex tax
- Retention released
- 0 currency units, ex tax
Engine result: 49,500 currency units, ex tax
Unbilled earned work
unbilledEarnedExTax = total earned work โ total billed value- Contract value
- 100,000 currency units/contract, ex tax
- Stage 1 earned work
- 40,000 currency units/stage 1, ex tax
- Stage 1 billed value
- 35,000 currency units/stage 1, ex tax
- Stage 2 earned work
- 20,000 currency units/stage 2, ex tax
- Stage 2 billed value
- 20,000 currency units/stage 2, ex tax
- Total earned work
- 60,000 currency units, ex tax
- Total billed value
- 55,000 currency units, ex tax
- Net collectible billed value
- 49,500 currency units, ex tax
- Remaining contract value
- 40,000 currency units, ex tax
Engine result: 5,000 currency units, ex tax
Collectible receivable
receivableExTax = net collectible billed value โ cash received- Contract value
- 100,000 currency units/contract, ex tax
- Opening project cash
- 5,000 currency units/contract before stage 1, ex tax
- Stage 1 billed value
- 35,000 currency units/stage 1, ex tax
- Stage 1 cash received
- 30,000 currency units/stage 1 event, ex tax
- Stage 2 billed value
- 20,000 currency units/stage 2, ex tax
- Stage 2 cash received
- 10,000 currency units/stage 2 event, ex tax
- Total billed value
- 55,000 currency units, ex tax
- Total cash received
- 40,000 currency units, ex tax
- Net collectible billed value
- 49,500 currency units, ex tax
- Remaining contract value
- 40,000 currency units, ex tax
- Closing cash after stage 1
- 3,000 currency units, ex tax
- Closing cash after stage 2
- -3,000 currency units, ex tax
- Closing project cash
- -3,000 currency units, ex tax
- First cash shortfall date
- 20,260,228 ISO calendar date
Engine result: 9,500 currency units, ex tax
Remaining contract value
remainingContractValueExTax = contract value โ total earned work- Contract value
- 100,000 currency units/contract, ex tax
- Stage 1 earned work
- 40,000 currency units/stage 1, ex tax
- Stage 1 billed value
- 35,000 currency units/stage 1, ex tax
- Stage 2 earned work
- 20,000 currency units/stage 2, ex tax
- Stage 2 billed value
- 20,000 currency units/stage 2, ex tax
- Total earned work
- 60,000 currency units, ex tax
- Total billed value
- 55,000 currency units, ex tax
- Net collectible billed value
- 49,500 currency units, ex tax
- Unbilled earned work
- 5,000 currency units, ex tax
Engine result: 40,000 currency units, ex tax
Retention released
retentionReleasedExTax = sum of retention released across both ordered stages- Stage 1 retention rate
- 0.1 decimal fraction of stage 1 billed value withheld
- Stage 1 retention released
- 0 currency units/stage 1 event, ex tax
- Stage 2 retention rate
- 0.1 decimal fraction of stage 2 billed value withheld
- Stage 2 retention released
- 0 currency units/stage 2 event, ex tax
- Retention held
- 5,500 currency units, ex tax
Engine result: 0 currency units, ex tax
Project cost outflow
projectCostOutflowExTax = sum of project cost outflows across both ordered stages- Opening project cash
- 5,000 currency units/contract before stage 1, ex tax
- Stage 1 project cost outflow
- 32,000 currency units/stage 1 event, ex tax
- Stage 2 project cost outflow
- 16,000 currency units/stage 2 event, ex tax
- Closing project cash
- -3,000 currency units, ex tax
Engine result: 48,000 currency units, ex tax
Closing cash after stage 1
stageOneClosingCashExTax = opening cash + stage 1 receipts + releases โ stage 1 cost outflow- Opening project cash
- 5,000 currency units/contract before stage 1, ex tax
- Stage 1 date
- 20,260,131 YYYYMMDD date code
- Stage 1 earned work
- 40,000 currency units/stage 1, ex tax
- Stage 1 billed value
- 35,000 currency units/stage 1, ex tax
- Stage 1 cash received
- 30,000 currency units/stage 1 event, ex tax
- Stage 1 retention rate
- 0.1 decimal fraction of stage 1 billed value withheld
- Stage 1 retention released
- 0 currency units/stage 1 event, ex tax
- Stage 1 project cost outflow
- 32,000 currency units/stage 1 event, ex tax
- Stage 2 date
- 20,260,228 YYYYMMDD date code
- Stage 2 earned work
- 20,000 currency units/stage 2, ex tax
- Stage 2 billed value
- 20,000 currency units/stage 2, ex tax
- Stage 2 cash received
- 10,000 currency units/stage 2 event, ex tax
- Stage 2 retention rate
- 0.1 decimal fraction of stage 2 billed value withheld
- Stage 2 retention released
- 0 currency units/stage 2 event, ex tax
- Stage 2 project cost outflow
- 16,000 currency units/stage 2 event, ex tax
- Total cash received
- 40,000 currency units, ex tax
- Project cost outflow
- 48,000 currency units, ex tax
- Closing cash after stage 2
- -3,000 currency units, ex tax
- Closing project cash
- -3,000 currency units, ex tax
- First cash shortfall date
- 20,260,228 ISO calendar date
Engine result: 3,000 currency units, ex tax
Closing cash after stage 2
stageTwoClosingCashExTax = stage 1 closing cash + stage 2 receipts + releases โ stage 2 cost outflow- Opening project cash
- 5,000 currency units/contract before stage 1, ex tax
- Stage 1 date
- 20,260,131 YYYYMMDD date code
- Stage 1 earned work
- 40,000 currency units/stage 1, ex tax
- Stage 1 billed value
- 35,000 currency units/stage 1, ex tax
- Stage 1 cash received
- 30,000 currency units/stage 1 event, ex tax
- Stage 1 retention rate
- 0.1 decimal fraction of stage 1 billed value withheld
- Stage 1 retention released
- 0 currency units/stage 1 event, ex tax
- Stage 1 project cost outflow
- 32,000 currency units/stage 1 event, ex tax
- Stage 2 date
- 20,260,228 YYYYMMDD date code
- Stage 2 earned work
- 20,000 currency units/stage 2, ex tax
- Stage 2 billed value
- 20,000 currency units/stage 2, ex tax
- Stage 2 cash received
- 10,000 currency units/stage 2 event, ex tax
- Stage 2 retention rate
- 0.1 decimal fraction of stage 2 billed value withheld
- Stage 2 retention released
- 0 currency units/stage 2 event, ex tax
- Stage 2 project cost outflow
- 16,000 currency units/stage 2 event, ex tax
- Total cash received
- 40,000 currency units, ex tax
- Project cost outflow
- 48,000 currency units, ex tax
- Closing cash after stage 1
- 3,000 currency units, ex tax
- Closing project cash
- -3,000 currency units, ex tax
- First cash shortfall date
- 20,260,228 ISO calendar date
Engine result: -3,000 currency units, ex tax
Closing project cash
closingCashExTax = opening cash + receipts + retention releases โ project cost outflows- Opening project cash
- 5,000 currency units/contract before stage 1, ex tax
- Stage 1 cash received
- 30,000 currency units/stage 1 event, ex tax
- Stage 1 retention rate
- 0.1 decimal fraction of stage 1 billed value withheld
- Stage 1 retention released
- 0 currency units/stage 1 event, ex tax
- Stage 1 project cost outflow
- 32,000 currency units/stage 1 event, ex tax
- Stage 2 cash received
- 10,000 currency units/stage 2 event, ex tax
- Stage 2 retention rate
- 0.1 decimal fraction of stage 2 billed value withheld
- Stage 2 retention released
- 0 currency units/stage 2 event, ex tax
- Stage 2 project cost outflow
- 16,000 currency units/stage 2 event, ex tax
- Total cash received
- 40,000 currency units, ex tax
- Retention held
- 5,500 currency units, ex tax
- Retention released
- 0 currency units, ex tax
- Project cost outflow
- 48,000 currency units, ex tax
- Closing cash after stage 1
- 3,000 currency units, ex tax
- Closing cash after stage 2
- -3,000 currency units, ex tax
- First cash shortfall date
- 20,260,228 ISO calendar date
Engine result: -3,000 currency units, ex tax
First cash shortfall date
firstShortfallDateCode = first chronological stage with closing cash below zero- Opening project cash
- 5,000 currency units/contract before stage 1, ex tax
- Stage 1 date
- 20,260,131 YYYYMMDD date code
- Stage 1 earned work
- 40,000 currency units/stage 1, ex tax
- Stage 1 billed value
- 35,000 currency units/stage 1, ex tax
- Stage 1 cash received
- 30,000 currency units/stage 1 event, ex tax
- Stage 1 retention rate
- 0.1 decimal fraction of stage 1 billed value withheld
- Stage 1 retention released
- 0 currency units/stage 1 event, ex tax
- Stage 1 project cost outflow
- 32,000 currency units/stage 1 event, ex tax
- Stage 2 date
- 20,260,228 YYYYMMDD date code
- Stage 2 earned work
- 20,000 currency units/stage 2, ex tax
- Stage 2 billed value
- 20,000 currency units/stage 2, ex tax
- Stage 2 cash received
- 10,000 currency units/stage 2 event, ex tax
- Stage 2 retention rate
- 0.1 decimal fraction of stage 2 billed value withheld
- Stage 2 retention released
- 0 currency units/stage 2 event, ex tax
- Stage 2 project cost outflow
- 16,000 currency units/stage 2 event, ex tax
- Total cash received
- 40,000 currency units, ex tax
- Closing cash after stage 1
- 3,000 currency units, ex tax
- Closing cash after stage 2
- -3,000 currency units, ex tax
- Closing project cash
- -3,000 currency units, ex tax
Engine result: 20,260,228 ISO calendar date
Peak funding gap
peakFundingGapExTax = largest cash shortfall after either ordered stage- Opening project cash
- 5,000 currency units/contract before stage 1, ex tax
- Stage 1 date
- 20,260,131 YYYYMMDD date code
- Stage 1 earned work
- 40,000 currency units/stage 1, ex tax
- Stage 1 billed value
- 35,000 currency units/stage 1, ex tax
- Stage 1 cash received
- 30,000 currency units/stage 1 event, ex tax
- Stage 1 retention rate
- 0.1 decimal fraction of stage 1 billed value withheld
- Stage 1 retention released
- 0 currency units/stage 1 event, ex tax
- Stage 1 project cost outflow
- 32,000 currency units/stage 1 event, ex tax
- Stage 2 date
- 20,260,228 YYYYMMDD date code
- Stage 2 earned work
- 20,000 currency units/stage 2, ex tax
- Stage 2 billed value
- 20,000 currency units/stage 2, ex tax
- Stage 2 cash received
- 10,000 currency units/stage 2 event, ex tax
- Stage 2 retention rate
- 0.1 decimal fraction of stage 2 billed value withheld
- Stage 2 retention released
- 0 currency units/stage 2 event, ex tax
- Stage 2 project cost outflow
- 16,000 currency units/stage 2 event, ex tax
- Total cash received
- 40,000 currency units, ex tax
- Closing cash after stage 1
- 3,000 currency units, ex tax
- Closing cash after stage 2
- -3,000 currency units, ex tax
- Closing project cash
- -3,000 currency units, ex tax
- First cash shortfall date
- 20,260,228 ISO calendar date
Engine result: 3,000 currency units, ex tax
Example
The rows below come directly from the exact engine using the visible default fixture.
- Total earned work
- 60,000.00
- Total billed value
- 55,000.00
- Total cash received
- 40,000.00
- Retention held
- 5,500.00
- Net collectible billed value
- 49,500.00
- Unbilled earned work
- 5,000.00
- Collectible receivable
- 9,500.00
- Remaining contract value
- 40,000.00
- Retention released
- 0.00
- Project cost outflow
- 48,000.00
- Closing cash after stage 1
- 3,000.00
- Closing cash after stage 2
- -3,000.00
- Closing project cash
- -3,000.00
- First cash shortfall date
- 2026-02-28
- Peak funding gap
- 3,000.00
The exact engine-derived outputs are shown in the labelled rows below.
Interpretation
Milestone value and collection timing are different; use the dated cash position to expose the gap.
3. Validation and boundary checks
- All values must be finite and remain inside the visible input boundaries.
- All money values use one consistent ex-tax basis and period.
- Rates must remain inside their engine-owned boundaries.
- Each billed amount cannot exceed earned work, and cash cannot exceed billed value after retention.
- Cumulative earned and billed values cannot exceed the entered contract value.
- The two visible stage dates must be valid, unique and chronological; retention cannot be released before it has been withheld.
- Contract value minimum
contractValueExTax โฅ 0 currency units/contract, ex taxโ A lower value is rejected before calculation.- Contract value maximum
contractValueExTax โค 10,000,000 currency units/contract, ex taxโ A higher value is rejected before calculation.- Opening project cash minimum
openingCashExTax โฅ -100,000,000 currency units/contract before stage 1, ex taxโ A lower value is rejected before calculation.- Opening project cash maximum
openingCashExTax โค 100,000,000 currency units/contract before stage 1, ex taxโ A higher value is rejected before calculation.- Stage 1 date minimum
stageOneDateCode โฅ 10,000,101 YYYYMMDD date codeโ A lower value is rejected before calculation.- Stage 1 date maximum
stageOneDateCode โค 99,991,231 YYYYMMDD date codeโ A higher value is rejected before calculation.- Stage 1 earned work minimum
stageOneEarnedExTax โฅ 0 currency units/stage 1, ex taxโ A lower value is rejected before calculation.- Stage 1 earned work maximum
stageOneEarnedExTax โค 10,000,000 currency units/stage 1, ex taxโ A higher value is rejected before calculation.- Stage 1 billed value minimum
stageOneBilledExTax โฅ 0 currency units/stage 1, ex taxโ A lower value is rejected before calculation.- Stage 1 billed value maximum
stageOneBilledExTax โค 10,000,000 currency units/stage 1, ex taxโ A higher value is rejected before calculation.- Stage 1 cash received minimum
stageOneCashReceivedExTax โฅ 0 currency units/stage 1 event, ex taxโ A lower value is rejected before calculation.- Stage 1 cash received maximum
stageOneCashReceivedExTax โค 10,000,000 currency units/stage 1 event, ex taxโ A higher value is rejected before calculation.- Stage 1 retention rate minimum
stageOneRetentionRate โฅ 0 decimal fraction of stage 1 billed value withheldโ A lower value is rejected before calculation.- Stage 1 retention rate maximum
stageOneRetentionRate โค 1 decimal fraction of stage 1 billed value withheldโ A higher value is rejected before calculation.- Stage 1 retention released minimum
stageOneRetentionReleasedExTax โฅ 0 currency units/stage 1 event, ex taxโ A lower value is rejected before calculation.- Stage 1 retention released maximum
stageOneRetentionReleasedExTax โค 10,000,000 currency units/stage 1 event, ex taxโ A higher value is rejected before calculation.- Stage 1 project cost outflow minimum
stageOneProjectCostOutflowExTax โฅ 0 currency units/stage 1 event, ex taxโ A lower value is rejected before calculation.- Stage 1 project cost outflow maximum
stageOneProjectCostOutflowExTax โค 10,000,000 currency units/stage 1 event, ex taxโ A higher value is rejected before calculation.- Stage 2 date minimum
stageTwoDateCode โฅ 10,000,101 YYYYMMDD date codeโ A lower value is rejected before calculation.- Stage 2 date maximum
stageTwoDateCode โค 99,991,231 YYYYMMDD date codeโ A higher value is rejected before calculation.- Stage 2 earned work minimum
stageTwoEarnedExTax โฅ 0 currency units/stage 2, ex taxโ A lower value is rejected before calculation.- Stage 2 earned work maximum
stageTwoEarnedExTax โค 10,000,000 currency units/stage 2, ex taxโ A higher value is rejected before calculation.- Stage 2 billed value minimum
stageTwoBilledExTax โฅ 0 currency units/stage 2, ex taxโ A lower value is rejected before calculation.- Stage 2 billed value maximum
stageTwoBilledExTax โค 10,000,000 currency units/stage 2, ex taxโ A higher value is rejected before calculation.- Stage 2 cash received minimum
stageTwoCashReceivedExTax โฅ 0 currency units/stage 2 event, ex taxโ A lower value is rejected before calculation.- Stage 2 cash received maximum
stageTwoCashReceivedExTax โค 10,000,000 currency units/stage 2 event, ex taxโ A higher value is rejected before calculation.- Stage 2 retention rate minimum
stageTwoRetentionRate โฅ 0 decimal fraction of stage 2 billed value withheldโ A lower value is rejected before calculation.- Stage 2 retention rate maximum
stageTwoRetentionRate โค 1 decimal fraction of stage 2 billed value withheldโ A higher value is rejected before calculation.- Stage 2 retention released minimum
stageTwoRetentionReleasedExTax โฅ 0 currency units/stage 2 event, ex taxโ A lower value is rejected before calculation.- Stage 2 retention released maximum
stageTwoRetentionReleasedExTax โค 10,000,000 currency units/stage 2 event, ex taxโ A higher value is rejected before calculation.- Stage 2 project cost outflow minimum
stageTwoProjectCostOutflowExTax โฅ 0 currency units/stage 2 event, ex taxโ A lower value is rejected before calculation.- Stage 2 project cost outflow maximum
stageTwoProjectCostOutflowExTax โค 10,000,000 currency units/stage 2 event, ex taxโ A higher value is rejected before calculation.
4. Assumptions and source classification
- All hours, utilisation, costs, rates and recovery targets are supplied by the user.
- Money values use one consistent ex-tax basis.
- No provider fee, jurisdiction, benchmark or demand forecast is embedded.
- Raw engine precision is retained until display.
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 depend on the completeness and classification of the entered business records.
- The planner does not forecast demand, utilisation, supplier terms or project outcomes.
- This is educational business decision support rather than accounting, tax, legal or financial advice.
- The two-stage worksheet reconciles entered ordered timing points; it does not forecast certification or collection dates.
- The planner does not determine statutory payment timing, security-of-payment rights, retention limits or contractual entitlement in any jurisdiction.
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
- : Initial public release of the Progress Billing Cash planner and methodology.
Related reading
Guides to interpret the decision and its assumptions.
- Progress Billing and Cash Timing for Project Businesses
Design observable billing milestones and model invoice and receipt dates separately from project profit.
Read guide