Methodology
Retainer Pricing 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
deliveryCost = included hours ร loaded cost + monthly overheadWhere
- includedHours
- Included hours (hours/month)Source: User assumption
- monthlyOverhead
- Monthly overhead (currency units/month)Source: Business record
- deliveryCost
- Delivery Cost (currency units/month)Source: Calculated output
protectedDeliveryCost = delivery cost รท (1 โ scope buffer)Where
- scopeBufferRate
- Scope buffer (proportion of delivery cost added as scope buffer)Source: User decision
- deliveryCost
- Delivery Cost (currency units/month)Source: Calculated output
- protectedDeliveryCost
- Protected Delivery Cost (currency units/month)Source: Calculated output
monthlyFee = protected delivery cost รท (1 โ target margin)Where
- targetMargin
- Target margin (proportion of client price retained as contribution)Source: User decision
- deliveryCost
- Delivery Cost (currency units/month)Source: Calculated output
- protectedDeliveryCost
- Protected Delivery Cost (currency units/month)Source: Calculated output
- monthlyFee
- Monthly Fee (currency units/month)Source: Calculated output
- margin
- Margin (decimal rate)Source: Calculated output
annualFee = monthly fee ร 12Where
- monthlyFee
- Monthly Fee (currency units/month)Source: Calculated output
- annualFee
- Annual Fee (currency units/year)Source: Calculated output
includedCapacityHours = included hoursWhere
- includedHours
- Included hours (hours/month)Source: User assumption
- includedCapacityHours
- Included Capacity Hours (hours/month)Source: Calculated output
productiveCapacityHours = monthly capacity ร utilisationWhere
- utilisation
- Productive utilisation (proportion of available retainer capacity billable)Source: User assumption
- monthlyCapacityHours
- Monthly capacity hours (hours/month)Source: User assumption
- productiveCapacityHours
- Productive Capacity Hours (hours/month)Source: Calculated output
overageRate = loaded cost รท (1 โ overage target margin)Where
- targetMargin
- Target margin (proportion of client price retained as contribution)Source: User decision
- overageTargetMargin
- Overage target margin (proportion of overage price retained as contribution)Source: User decision
- overageRate
- Overage Rate (currency units/hour)Source: Calculated output
- margin
- Margin (decimal rate)Source: Calculated output
overageRevenue = overage hours ร overage rateWhere
- overageHours
- Expected overage hours (hours/month)Source: User assumption
- overageRate
- Overage Rate (currency units/hour)Source: Calculated output
- overageRevenue
- Overage Revenue (currency units/month)Source: Calculated output
- totalRevenue
- Total Revenue (currency units/month)Source: Calculated output
totalRevenue = monthly fee + overage revenueWhere
- monthlyFee
- Monthly Fee (currency units/month)Source: Calculated output
- overageRevenue
- Overage Revenue (currency units/month)Source: Calculated output
- totalRevenue
- Total Revenue (currency units/month)Source: Calculated output
margin = (total revenue โ total cost) รท total revenueWhere
- totalRevenue
- Total Revenue (currency units/month)Source: Calculated output
- margin
- Margin (decimal rate)Source: Calculated output
remainingCapacityHours = productive capacity โ included โ overage hoursWhere
- includedHours
- Included hours (hours/month)Source: User assumption
- overageHours
- Expected overage hours (hours/month)Source: User assumption
- includedCapacityHours
- Included Capacity Hours (hours/month)Source: Calculated output
- productiveCapacityHours
- Productive Capacity Hours (hours/month)Source: Calculated output
- remainingCapacityHours
- Remaining Capacity Hours (hours/month)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.
- Included hours
- 20 hours/month
- Loaded cost per hour
- 55 currency units/hour
- Monthly overhead
- 250 currency units/month
- Productive utilisation
- 0.8 proportion of available retainer capacity billable
- Scope buffer
- 0.1 proportion of delivery cost added as scope buffer
- Target margin
- 0.35 proportion of client price retained as contribution
- Expected overage hours
- 5 hours/month
- Overage target margin
- 0.4 proportion of overage price retained as contribution
- Monthly capacity hours
- 40 hours/month
Calculation and outputs
deliveryCost
deliveryCost = included hours ร loaded cost + monthly overhead- Included hours
- 20 hours/month
- Loaded cost per hour
- 55 currency units/hour
- Monthly overhead
- 250 currency units/month
- Expected overage hours
- 5 hours/month
- Monthly capacity hours
- 40 hours/month
- protectedDeliveryCost
- 1,500 declared output unit
- monthlyFee
- 2,307.692308 declared output unit
- includedCapacityHours
- 20 declared output unit
- productiveCapacityHours
- 32 declared output unit
- remainingCapacityHours
- 7 declared output unit
Engine result: 1,350
protectedDeliveryCost
protectedDeliveryCost = delivery cost รท (1 โ scope buffer)- Loaded cost per hour
- 55 currency units/hour
- Scope buffer
- 0.1 proportion of delivery cost added as scope buffer
- deliveryCost
- 1,350 declared output unit
Engine result: 1,500
monthlyFee
monthlyFee = protected delivery cost รท (1 โ target margin)- Loaded cost per hour
- 55 currency units/hour
- Target margin
- 0.35 proportion of client price retained as contribution
- Overage target margin
- 0.4 proportion of overage price retained as contribution
- deliveryCost
- 1,350 declared output unit
- protectedDeliveryCost
- 1,500 declared output unit
- margin
- 0.358285 declared output unit
Engine result: 2,307.692308
annualFee
annualFee = monthly fee ร 12- Monthly overhead
- 250 currency units/month
- Monthly capacity hours
- 40 hours/month
- monthlyFee
- 2,307.692308 declared output unit
Engine result: 27,692.307692
includedCapacityHours
includedCapacityHours = included hours- Included hours
- 20 hours/month
- Expected overage hours
- 5 hours/month
- Monthly capacity hours
- 40 hours/month
- productiveCapacityHours
- 32 declared output unit
- remainingCapacityHours
- 7 declared output unit
Engine result: 20
productiveCapacityHours
productiveCapacityHours = monthly capacity ร utilisation- Monthly overhead
- 250 currency units/month
- Productive utilisation
- 0.8 proportion of available retainer capacity billable
- Monthly capacity hours
- 40 hours/month
- monthlyFee
- 2,307.692308 declared output unit
- includedCapacityHours
- 20 declared output unit
- remainingCapacityHours
- 7 declared output unit
Engine result: 32
overageRate
overageRate = loaded cost รท (1 โ overage target margin)- Loaded cost per hour
- 55 currency units/hour
- Target margin
- 0.35 proportion of client price retained as contribution
- Expected overage hours
- 5 hours/month
- Overage target margin
- 0.4 proportion of overage price retained as contribution
- deliveryCost
- 1,350 declared output unit
- protectedDeliveryCost
- 1,500 declared output unit
- overageRevenue
- 458.333333 declared output unit
- margin
- 0.358285 declared output unit
Engine result: 91.666667
overageRevenue
overageRevenue = overage hours ร overage rate- Included hours
- 20 hours/month
- Scope buffer
- 0.1 proportion of delivery cost added as scope buffer
- Expected overage hours
- 5 hours/month
- Overage target margin
- 0.4 proportion of overage price retained as contribution
- Monthly capacity hours
- 40 hours/month
- includedCapacityHours
- 20 declared output unit
- productiveCapacityHours
- 32 declared output unit
- overageRate
- 91.666667 declared output unit
- remainingCapacityHours
- 7 declared output unit
Engine result: 458.333333
totalRevenue
totalRevenue = monthly fee + overage revenue- Monthly overhead
- 250 currency units/month
- Expected overage hours
- 5 hours/month
- Overage target margin
- 0.4 proportion of overage price retained as contribution
- Monthly capacity hours
- 40 hours/month
- monthlyFee
- 2,307.692308 declared output unit
- annualFee
- 27,692.307692 declared output unit
- overageRate
- 91.666667 declared output unit
- overageRevenue
- 458.333333 declared output unit
Engine result: 2,766.025641
margin
margin = (total revenue โ total cost) รท total revenue- Loaded cost per hour
- 55 currency units/hour
- deliveryCost
- 1,350 declared output unit
- protectedDeliveryCost
- 1,500 declared output unit
- overageRevenue
- 458.333333 declared output unit
- totalRevenue
- 2,766.025641 declared output unit
Engine result: 0.358285
remainingCapacityHours
remainingCapacityHours = productive capacity โ included โ overage hours- Included hours
- 20 hours/month
- Productive utilisation
- 0.8 proportion of available retainer capacity billable
- Expected overage hours
- 5 hours/month
- Overage target margin
- 0.4 proportion of overage price retained as contribution
- Monthly capacity hours
- 40 hours/month
- includedCapacityHours
- 20 declared output unit
- productiveCapacityHours
- 32 declared output unit
- overageRate
- 91.666667 declared output unit
- overageRevenue
- 458.333333 declared output unit
Engine result: 7
Example
The worked rows are rendered from the registered engine and visible default fixture.
- Delivery Cost
- 1,350 currency units/month
- Protected Delivery Cost
- 1,500 currency units/month
- Monthly Fee
- 2,307.69 currency units/month
- Annual Fee
- 27,692.31 currency units/year
- Included Capacity Hours
- 20 hours/month
- Productive Capacity Hours
- 32 hours/month
- Overage Rate
- 91.67 currency units/hour
- Overage Revenue
- 458.33 currency units/month
- Total Revenue
- 2,766.03 currency units/month
- Margin
- 35.8%
- Remaining Capacity Hours
- 7 hours/month
The exact engine-derived outputs are shown in the labelled rows below.
Interpretation
The retainer pricing result uses only the entered commercial assumptions.
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.
- The scope buffer grosses delivery cost up by dividing by one minus the buffer rate before the target-margin gross-up.
- Included hours minimum
includedHours โฅ 0 hours/monthโ A lower value is rejected before calculation.- Included hours maximum
includedHours โค 10,000,000 hours/monthโ A higher value is rejected before calculation.- Loaded cost per hour minimum
loadedCostPerHour โฅ 0 currency units/hourโ A lower value is rejected before calculation.- Loaded cost per hour maximum
loadedCostPerHour โค 10,000,000 currency units/hourโ A higher value is rejected before calculation.- Monthly overhead minimum
monthlyOverhead โฅ 0 currency units/monthโ A lower value is rejected before calculation.- Monthly overhead maximum
monthlyOverhead โค 10,000,000 currency units/monthโ A higher value is rejected before calculation.- Productive utilisation minimum
utilisation โฅ 0 proportion of available retainer capacity billableโ A lower value is rejected before calculation.- Productive utilisation maximum
utilisation โค 0.99 proportion of available retainer capacity billableโ A higher value is rejected before calculation.- Scope buffer minimum
scopeBufferRate โฅ 0 proportion of delivery cost added as scope bufferโ A lower value is rejected before calculation.- Scope buffer maximum
scopeBufferRate โค 0.99 proportion of delivery cost added as scope bufferโ A higher value is rejected before calculation.- Target margin minimum
targetMargin โฅ 0 proportion of client price retained as contributionโ A lower value is rejected before calculation.- Target margin maximum
targetMargin โค 0.99 proportion of client price retained as contributionโ A higher value is rejected before calculation.- Expected overage hours minimum
overageHours โฅ 0 hours/monthโ A lower value is rejected before calculation.- Expected overage hours maximum
overageHours โค 10,000,000 hours/monthโ A higher value is rejected before calculation.- Overage target margin minimum
overageTargetMargin โฅ 0 proportion of overage price retained as contributionโ A lower value is rejected before calculation.- Overage target margin maximum
overageTargetMargin โค 0.99 proportion of overage price retained as contributionโ A higher value is rejected before calculation.- Monthly capacity hours minimum
monthlyCapacityHours โฅ 0 hours/monthโ A lower value is rejected before calculation.- Monthly capacity hours maximum
monthlyCapacityHours โค 10,000,000 hours/monthโ 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
- : Initial public release of the planner and methodology after pre-launch calculation, content, source and interaction review.
Related reading
Guides to interpret the decision and its assumptions.
- How to Build a Retainer Price From Capacity
Define the reserved-capacity promise, delivery boundary and review triggers before calculating a retainer fee.
Read guide