Contribution after displacement
Management review required
The conference earns R 24 000,00 before displacement. The breakout spaces give up R 27 000,00 of other business, leaving -R 3 000,00 after displacement.
Booking contribution margin before displacement
30.0%
Revenue less direct delivery costs, divided by revenue, excluding tax. This amount still needs to cover overheads. Lost alternative business is deducted separately below.
- Booking event contribution
- R 24 000,00
- Less: space / other displacement
- R 27 000,00
- Contribution after displacement
- -R 3 000,00
- Required contribution after displacement
- R 0,00
All bridge figures exclude indirect tax. Price improvement at unchanged delivery cost: R 3 000,00 excluding tax / R 3 450,00 including tax. Other approval conditions remain separate.
Spaces used and time required
| Resource | Hours used | Quantity | Contribution recovered if released |
|---|
| Main venue | 8 hours use 10 hours including setup and turnaround | 1 | R 0,00 |
| Oak breakout | 4 hours use 6 hours including setup and turnaround | 1 | R 18 000,00 |
| Pine breakout | 2 hours use 4 hours including setup and turnaround | 1 | R 9 000,00 |
Releasing-resource values are separate counterfactuals and must not be added together. The contribution bridge uses one feasible opportunity portfolio, including combined configurations.
Booking margin and return checks
Pass · Normal booking contribution margin: 30.0% against 25.0%. Contribution before displacement and overheads divided by revenue, excluding indirect tax.
There is no special-date rule in this assessment. The contribution after displacement is still compared with the booking’s required return.
Repeat-business concession: separate what-if
A R 3 000,00 concession gives up the same amount of this booking’s contribution at unchanged delivery costs. Contribution after displacement becomes -R 6 000,00; booking contribution margin becomes 27.3%.
Evidence basis: previous booking history. Fictional client has booked quarterly in the past. Future dates are not contracted.
Future contribution included in this booking: R 0,00. A concession still needs the appropriate approval; confirmed future events are assessed separately.
Calculated alternatives
Increase conference package valueZAR 3 000,00 more excluding tax (ZAR 3 450,00 including tax)
Contribution after displacement ZAR 0,00; meets the resource rules
Incremental value improves by ZAR 3 000,00
Direct delivery costs and competing demand remain unchanged. Customer accepts the price and final settlement change. All remaining rule checks still apply.
Use Oak for 2 hoursShorten the breakout agenda; keep the conference price.
R 15 000,00 after displacement · meets the resource rules
R 18 000,00 change in net contribution
Customer agrees to the shorter agenda. Setup and turnaround still consume 2 additional hours; the later Oak booking now fits.
Release PineAgree an agenda that needs one breakout space; keep the conference price.
R 6 000,00 after displacement · meets the resource rules
R 9 000,00 change in net contribution
Customer agrees to the revised breakout arrangement. This is a different scope, not an assumption that the original agenda fits fewer spaces.
Independent management review
Save the quote revision, then request review of this exact calculation. The maker and requester cannot approve their own protection exception. A changed quote or policy requires a fresh revision.
Synthetic demonstration only; no approval or booking is executed.
Assumptions and calculation lineage
- Synthetic reviewed same-period demand; direct costs and prices exclude VAT. No real forecast is asserted.
- Booking contribution margin is measured before displacement and overheads; net value after displacement is a separate Rand amount.
- Legacy minimumMargin continues to mean opportunity-adjusted margin; the explicit minimumContributionMargin rule measures direct booking contribution.
- Repeat-business concession is a separate what-if scenario; future business is never included in current contribution.
- All contribution and floor amounts exclude indirect tax.
- Expected competing contribution is supplied contribution × evidenced probability; no demand forecast is invented.
- Opportunity cost is the best feasible alternative portfolio before less after allocating this bundle.
- Setup, breakdown and turnaround buffers consume the configured physical units.
- Protected opportunity is a separately evidenced increment; overlapping events with the same evidence reference use the highest amount once.
- Ancillary contribution is allocated within the existing booking total, never added twice.
- Commercial protection operates only within PP; no PMS reservation is blocked.
Policy synthetic-resource-decisions-v2 · pp-resource-protection-1.1.0 · 2026-10-01T06:00:00+02:00
Underlying evidence and exact calculation inputs
{
"quote": {
"quoteReference": "golden-venue-displacement",
"eventBusinessType": "Conferences",
"revenueExVat": "80000",
"eventFixed": "0",
"riskBufferPct": "0",
"allocatedCapacityFixed": "0",
"renewalReserve": "0",
"targetPolicy": {
"venueWide": "0.25",
"byBusinessType": {},
"confirmed": true
},
"recipeIngredients": [],
"nonRecipeDirectVariable": "56000",
"roomBlock": null,
"market": {
"state": "NOT_APPLICABLE"
},
"approvedGrossContractTotal": "92000.00",
"paymentSchedule": [
{
"id": "deposit",
"date": "2026-10-01",
"amount": "30000",
"baseView": "Committed",
"probability": null,
"role": "deposit",
"evidence": "Synthetic agreed deposit"
},
{
"id": "delivery",
"date": "2026-10-14",
"amount": "-56000.00",
"baseView": "Committed",
"probability": null,
"role": "delivery_payment",
"evidence": "Synthetic supplier timing"
},
{
"id": "balance",
"date": "2026-10-17",
"amount": "62000.00",
"baseView": "Committed",
"probability": null,
"role": "final_settlement",
"evidence": "Synthetic final settlement"
}
],
"cashPolicy": {
"asOfMonday": "2026-09-28",
"openingCash": "250000",
"minimumBuffer": "50000",
"stressReceiptDelayDays": 7,
"stressCostIncrease": "0.1"
},
"confidenceComponents": [
"90",
"90",
"90",
"90",
"90"
],
"confidenceCaps": [],
"approvalEvidence": {
"exactEconomicMatch": false,
"capacity": false,
"viability": false,
"cashTerms": false,
"unresolvedCriticalAlerts": false
},
"costBasis": "Current",
"evidence": "Fictional Demo Estate conference example. Bedroom inventory is not used in these two decisions.",
"resourceBundle": {
"policyVersionId": "synthetic-resource-decisions-v2",
"bookingDate": "2026-10-15",
"bookedAt": "2026-10-01",
"discountExVat": "0",
"ancillaryContributionExVat": "0",
"targetIncrementalExVat": "0",
"evidence": "Synthetic reviewed same-period demand; direct costs and prices exclude VAT. No real forecast is asserted.",
"requests": [
{
"id": "main",
"resourceId": "ballroom",
"start": "2026-10-15T09:00:00+02:00",
"end": "2026-10-15T17:00:00+02:00",
"quantity": 1,
"attendees": 120,
"sellingValueExVat": "80000"
},
{
"id": "oak-use",
"resourceId": "oak",
"start": "2026-10-15T09:00:00+02:00",
"end": "2026-10-15T13:00:00+02:00",
"quantity": 1,
"attendees": 60,
"sellingValueExVat": "0"
},
{
"id": "pine-use",
"resourceId": "pine",
"start": "2026-10-15T09:00:00+02:00",
"end": "2026-10-15T11:00:00+02:00",
"quantity": 1,
"attendees": 60,
"sellingValueExVat": "0"
}
],
"demandReviewedResourceIds": [
"ballroom",
"ballroom-a",
"ballroom-b",
"oak",
"pine"
],
"alternatives": [
{
"id": "oak-function",
"name": "Alternative Oak function",
"requests": [
{
"id": "oak-alt",
"resourceId": "oak",
"start": "2026-10-15T13:00:00+02:00",
"end": "2026-10-15T17:00:00+02:00",
"quantity": 1,
"attendees": 60,
"sellingValueExVat": "0"
}
],
"sellingValueExVat": "30000",
"directCostExVat": "12000",
"contributionExVat": "18000",
"probability": "1",
"evidence": "Synthetic same-period competing function."
},
{
"id": "pine-meeting",
"name": "Alternative Pine meeting",
"requests": [
{
"id": "pine-alt",
"resourceId": "pine",
"start": "2026-10-15T10:00:00+02:00",
"end": "2026-10-15T12:00:00+02:00",
"quantity": 1,
"attendees": 60,
"sellingValueExVat": "0"
}
],
"sellingValueExVat": "15000",
"directCostExVat": "6000",
"contributionExVat": "9000",
"probability": "1",
"evidence": "Synthetic same-period competing meeting."
},
{
"id": "evening-combined",
"name": "Evening full venue",
"requests": [
{
"id": "evening-full",
"resourceId": "ballroom",
"start": "2026-10-15T20:00:00+02:00",
"end": "2026-10-15T22:00:00+02:00",
"quantity": 1,
"attendees": 120,
"sellingValueExVat": "0"
}
],
"sellingValueExVat": "16000",
"directCostExVat": "8000",
"contributionExVat": "8000",
"probability": "1",
"evidence": "Synthetic evening offer; mutually exclusive with A and B together."
},
{
"id": "evening-a",
"name": "Evening venue A",
"requests": [
{
"id": "evening-a-use",
"resourceId": "ballroom-a",
"start": "2026-10-15T20:00:00+02:00",
"end": "2026-10-15T22:00:00+02:00",
"quantity": 1,
"attendees": 60,
"sellingValueExVat": "0"
}
],
"sellingValueExVat": "10000",
"directCostExVat": "5000",
"contributionExVat": "5000",
"probability": "1",
"evidence": "Synthetic evening offer."
},
{
"id": "evening-b",
"name": "Evening venue B",
"requests": [
{
"id": "evening-b-use",
"resourceId": "ballroom-b",
"start": "2026-10-15T20:00:00+02:00",
"end": "2026-10-15T22:00:00+02:00",
"quantity": 1,
"attendees": 60,
"sellingValueExVat": "0"
}
],
"sellingValueExVat": "12000",
"directCostExVat": "6000",
"contributionExVat": "6000",
"probability": "1",
"evidence": "Synthetic evening offer."
}
],
"repeatBusiness": {
"concessionExVat": "3000",
"basis": "history",
"evidence": "Fictional client has booked quarterly in the past. Future dates are not contracted."
}
}
},
"policy": {
"currency": "ZAR",
"minimumBookingContributionMargin": "0.25",
"indirectTaxRate": "0.15",
"timezoneOffset": "+02:00",
"versionId": "synthetic-resource-decisions-v2",
"resources": [
{
"id": "ballroom",
"name": "Main venue",
"type": "ballroom",
"capacity": 400,
"parentId": null,
"inventoryUnits": [
{
"key": "ballroom-a",
"capacity": 1
},
{
"key": "ballroom-b",
"capacity": 1
}
],
"setupMinutes": 60,
"breakdownMinutes": 30,
"turnaroundMinutes": 30
},
{
"id": "ballroom-a",
"name": "Main venue A",
"type": "ballroom",
"capacity": 200,
"parentId": "ballroom",
"inventoryUnits": [
{
"key": "ballroom-a",
"capacity": 1
}
],
"setupMinutes": 60,
"breakdownMinutes": 30,
"turnaroundMinutes": 30
},
{
"id": "ballroom-b",
"name": "Main venue B",
"type": "ballroom",
"capacity": 200,
"parentId": "ballroom",
"inventoryUnits": [
{
"key": "ballroom-b",
"capacity": 1
}
],
"setupMinutes": 60,
"breakdownMinutes": 30,
"turnaroundMinutes": 30
},
{
"id": "oak",
"name": "Oak breakout",
"type": "ballroom",
"capacity": 80,
"parentId": null,
"inventoryUnits": [
{
"key": "oak",
"capacity": 1
}
],
"setupMinutes": 60,
"breakdownMinutes": 30,
"turnaroundMinutes": 30
},
{
"id": "pine",
"name": "Pine breakout",
"type": "ballroom",
"capacity": 80,
"parentId": null,
"inventoryUnits": [
{
"key": "pine",
"capacity": 1
}
],
"setupMinutes": 60,
"breakdownMinutes": 30,
"turnaroundMinutes": 30
}
],
"events": []
}
}