Methodology
Agency Retainer Margin 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
plannedLabourCostExTax = sum(planned role hours * loaded role cost)Where
- plannedLabourCostExTax
- Planned labour cost (currency units, ex tax)Source: Calculated output
- plannedHours
- Planned delivery hours (hours)Source: Calculated output
scopeCreepCostExTax = sum(scope-creep role hours * loaded role cost)Where
- scopeCreepCostExTax
- Scope-creep labour cost (currency units, ex tax)Source: Calculated output
- scopeCreepHours
- Scope-creep hours (hours)Source: Calculated output
deliveryCostExTax = planned labour + scope creep labour + third-party costWhere
- thirdPartyDeliveryCostExTax
- Third-party delivery cost (currency units/client/month, ex tax)Source: Business record
- plannedLabourCostExTax
- Planned labour cost (currency units, ex tax)Source: Calculated output
- scopeCreepCostExTax
- Scope-creep labour cost (currency units, ex tax)Source: Calculated output
- deliveryCostExTax
- Total retainer delivery cost (currency units, ex tax)Source: Calculated output
plannedHours = sum planned role hoursWhere
- plannedHours
- Planned delivery hours (hours)Source: Calculated output
scopeCreepHours = sum unscoped role hoursWhere
- scopeCreepHours
- Scope-creep hours (hours)Source: Calculated output
capacityUtilisationRate = (planned + scope-creep hours) / available role hoursWhere
- plannedHours
- Planned delivery hours (hours)Source: Calculated output
- scopeCreepHours
- Scope-creep hours (hours)Source: Calculated output
- capacityUtilisationRate
- Retainer capacity utilisation (decimal rate)Source: Calculated output
contributionExTax = monthly retainer - total delivery costWhere
- monthlyRetainerExTax
- Current monthly retainer (currency units/client/month, ex tax)Source: Business record
- deliveryCostExTax
- Total retainer delivery cost (currency units, ex tax)Source: Calculated output
- contributionExTax
- Current retainer contribution (currency units, ex tax)Source: Calculated output
contributionMargin = contribution / monthly retainerWhere
- monthlyRetainerExTax
- Current monthly retainer (currency units/client/month, ex tax)Source: Business record
- contributionExTax
- Current retainer contribution (currency units, ex tax)Source: Calculated output
- contributionMargin
- Current retainer margin (decimal rate)Source: Calculated output
requiredRetainerExTax = total delivery cost / (1 - target margin)Where
- targetRetainerMargin
- Target retainer margin (decimal fraction of monthly retainer revenue)Source: Business record
- deliveryCostExTax
- Total retainer delivery cost (currency units, ex tax)Source: Calculated output
- requiredRetainerExTax
- Required monthly retainer (currency units, ex tax)Source: Calculated output
repricingGapExTax = required retainer - current retainerWhere
- requiredRetainerExTax
- Required monthly retainer (currency units, ex tax)Source: Calculated output
- repricingGapExTax
- Retainer repricing 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 worked rows below are evaluated at render time by the same shared engine and visible default fixture as the interactive workflow.
- Current monthly retainer
- 14,500 currency units/client/month, ex tax
- Strategy and account planned hours
- 34 hours/client/month
- Strategy and account scope-creep hours
- 4 hours/client/month
- Strategy and account loaded cost per hour
- 95 currency units/hour, ex tax
- Strategy and account available hours
- 52 hours/client/month
- Creative and delivery planned hours
- 62 hours/client/month
- Creative and delivery scope-creep hours
- 8 hours/client/month
- Creative and delivery loaded cost per hour
- 64 currency units/hour, ex tax
- Creative and delivery available hours
- 90 hours/client/month
- Third-party delivery cost
- 1,750 currency units/client/month, ex tax
- Target retainer margin
- 0.32 decimal fraction of monthly retainer revenue
Calculation and outputs
Planned labour cost
plannedLabourCostExTax = sum(planned role hours * loaded role cost)- Strategy and account planned hours
- 34 hours/client/month
- Strategy and account scope-creep hours
- 4 hours/client/month
- Strategy and account loaded cost per hour
- 95 currency units/hour, ex tax
- Strategy and account available hours
- 52 hours/client/month
- Creative and delivery planned hours
- 62 hours/client/month
- Creative and delivery scope-creep hours
- 8 hours/client/month
- Creative and delivery loaded cost per hour
- 64 currency units/hour, ex tax
- Creative and delivery available hours
- 90 hours/client/month
- Third-party delivery cost
- 1,750 currency units/client/month, ex tax
- Scope-creep labour cost
- 892 money
- Total retainer delivery cost
- 9,840 money
- Planned delivery hours
- 96 hours
- Scope-creep hours
- 12 hours
Engine result: 7,198 money
Scope-creep labour cost
scopeCreepCostExTax = sum(scope-creep role hours * loaded role cost)- Strategy and account planned hours
- 34 hours/client/month
- Strategy and account scope-creep hours
- 4 hours/client/month
- Strategy and account loaded cost per hour
- 95 currency units/hour, ex tax
- Strategy and account available hours
- 52 hours/client/month
- Creative and delivery planned hours
- 62 hours/client/month
- Creative and delivery scope-creep hours
- 8 hours/client/month
- Creative and delivery loaded cost per hour
- 64 currency units/hour, ex tax
- Creative and delivery available hours
- 90 hours/client/month
- Third-party delivery cost
- 1,750 currency units/client/month, ex tax
- Planned labour cost
- 7,198 money
- Total retainer delivery cost
- 9,840 money
- Planned delivery hours
- 96 hours
- Scope-creep hours
- 12 hours
Engine result: 892 money
Total retainer delivery cost
deliveryCostExTax = planned labour + scope creep labour + third-party cost- Strategy and account planned hours
- 34 hours/client/month
- Strategy and account scope-creep hours
- 4 hours/client/month
- Strategy and account loaded cost per hour
- 95 currency units/hour, ex tax
- Creative and delivery planned hours
- 62 hours/client/month
- Creative and delivery scope-creep hours
- 8 hours/client/month
- Creative and delivery loaded cost per hour
- 64 currency units/hour, ex tax
- Third-party delivery cost
- 1,750 currency units/client/month, ex tax
- Planned labour cost
- 7,198 money
- Scope-creep labour cost
- 892 money
- Planned delivery hours
- 96 hours
- Scope-creep hours
- 12 hours
Engine result: 9,840 money
Planned delivery hours
plannedHours = sum planned role hours- Strategy and account planned hours
- 34 hours/client/month
- Strategy and account scope-creep hours
- 4 hours/client/month
- Strategy and account available hours
- 52 hours/client/month
- Creative and delivery planned hours
- 62 hours/client/month
- Creative and delivery scope-creep hours
- 8 hours/client/month
- Creative and delivery available hours
- 90 hours/client/month
- Planned labour cost
- 7,198 money
- Scope-creep hours
- 12 hours
Engine result: 96 hours
Scope-creep hours
scopeCreepHours = sum unscoped role hours- Strategy and account planned hours
- 34 hours/client/month
- Strategy and account scope-creep hours
- 4 hours/client/month
- Strategy and account available hours
- 52 hours/client/month
- Creative and delivery planned hours
- 62 hours/client/month
- Creative and delivery scope-creep hours
- 8 hours/client/month
- Creative and delivery available hours
- 90 hours/client/month
- Planned delivery hours
- 96 hours
Engine result: 12 hours
Retainer capacity utilisation
capacityUtilisationRate = (planned + scope-creep hours) / available role hours- Strategy and account planned hours
- 34 hours/client/month
- Strategy and account scope-creep hours
- 4 hours/client/month
- Strategy and account available hours
- 52 hours/client/month
- Creative and delivery planned hours
- 62 hours/client/month
- Creative and delivery scope-creep hours
- 8 hours/client/month
- Creative and delivery available hours
- 90 hours/client/month
- Planned labour cost
- 7,198 money
- Scope-creep labour cost
- 892 money
- Planned delivery hours
- 96 hours
- Scope-creep hours
- 12 hours
Engine result: 0.760563 percent
Current retainer contribution
contributionExTax = monthly retainer - total delivery cost- Current monthly retainer
- 14,500 currency units/client/month, ex tax
- Strategy and account loaded cost per hour
- 95 currency units/hour, ex tax
- Creative and delivery planned hours
- 62 hours/client/month
- Creative and delivery scope-creep hours
- 8 hours/client/month
- Creative and delivery loaded cost per hour
- 64 currency units/hour, ex tax
- Creative and delivery available hours
- 90 hours/client/month
- Third-party delivery cost
- 1,750 currency units/client/month, ex tax
- Target retainer margin
- 0.32 decimal fraction of monthly retainer revenue
- Planned labour cost
- 7,198 money
- Scope-creep labour cost
- 892 money
- Total retainer delivery cost
- 9,840 money
- Planned delivery hours
- 96 hours
- Retainer capacity utilisation
- 0.760563 percent
- Current retainer margin
- 0.321379 percent
- Required monthly retainer
- 14,470.588235 money
- Retainer repricing gap
- -29.411765 money
Engine result: 4,660 money
Current retainer margin
contributionMargin = contribution / monthly retainer- Current monthly retainer
- 14,500 currency units/client/month, ex tax
- Target retainer margin
- 0.32 decimal fraction of monthly retainer revenue
- Total retainer delivery cost
- 9,840 money
- Retainer capacity utilisation
- 0.760563 percent
- Current retainer contribution
- 4,660 money
- Required monthly retainer
- 14,470.588235 money
- Retainer repricing gap
- -29.411765 money
Engine result: 0.321379 percent
Required monthly retainer
requiredRetainerExTax = total delivery cost / (1 - target margin)- Strategy and account loaded cost per hour
- 95 currency units/hour, ex tax
- Creative and delivery planned hours
- 62 hours/client/month
- Creative and delivery scope-creep hours
- 8 hours/client/month
- Creative and delivery loaded cost per hour
- 64 currency units/hour, ex tax
- Creative and delivery available hours
- 90 hours/client/month
- Third-party delivery cost
- 1,750 currency units/client/month, ex tax
- Target retainer margin
- 0.32 decimal fraction of monthly retainer revenue
- Planned labour cost
- 7,198 money
- Scope-creep labour cost
- 892 money
- Total retainer delivery cost
- 9,840 money
- Planned delivery hours
- 96 hours
- Current retainer margin
- 0.321379 percent
Engine result: 14,470.588235 money
Retainer repricing gap
repricingGapExTax = required retainer - current retainer- Current monthly retainer
- 14,500 currency units/client/month, ex tax
- Target retainer margin
- 0.32 decimal fraction of monthly retainer revenue
- Total retainer delivery cost
- 9,840 money
- Retainer capacity utilisation
- 0.760563 percent
- Current retainer contribution
- 4,660 money
- Current retainer margin
- 0.321379 percent
- Required monthly retainer
- 14,470.588235 money
Engine result: -29.411765 money
Example
The worked rows below are evaluated at render time by the same shared engine and visible default fixture as the interactive workflow.
- Planned labour cost
- 7,198 currency units
- Scope-creep labour cost
- 892 currency units
- Total retainer delivery cost
- 9,840 currency units
- Planned delivery hours
- 96 hours
- Scope-creep hours
- 12 hours
- Retainer capacity utilisation
- 76.1%
- Current retainer contribution
- 4,660 currency units
- Current retainer margin
- 32.1%
- Required monthly retainer
- 14,470.59 currency units
- Retainer repricing gap
- -29.41 currency units
The exact engine-derived outputs are shown in the labelled rows below.
Interpretation
The retainer is viable only if included scope and realistic delivery capacity fit the entered price.
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: plannedLabourCostExTax, scopeCreepCostExTax, deliveryCostExTax, plannedHours, scopeCreepHours, capacityUtilisationRate, contributionExTax, contributionMargin, requiredRetainerExTax, repricingGapExTax.
- Scenario comparison changes one declared driver while holding the remaining industry records constant.
- Current monthly retainer minimum
monthlyRetainerExTax โฅ 0 currency units/client/month, ex taxโ A lower value is rejected before calculation.- Current monthly retainer maximum
monthlyRetainerExTax โค 10,000,000 currency units/client/month, ex taxโ A higher value is rejected before calculation.- Strategy and account planned hours minimum
strategyPlannedHours โฅ 0 hours/client/monthโ A lower value is rejected before calculation.- Strategy and account planned hours maximum
strategyPlannedHours โค 100,000 hours/client/monthโ A higher value is rejected before calculation.- Strategy and account scope-creep hours minimum
strategyScopeCreepHours โฅ 0 hours/client/monthโ A lower value is rejected before calculation.- Strategy and account scope-creep hours maximum
strategyScopeCreepHours โค 100,000 hours/client/monthโ A higher value is rejected before calculation.- Strategy and account loaded cost per hour minimum
strategyLoadedCostPerHourExTax โฅ 0 currency units/hour, ex taxโ A lower value is rejected before calculation.- Strategy and account loaded cost per hour maximum
strategyLoadedCostPerHourExTax โค 10,000,000 currency units/hour, ex taxโ A higher value is rejected before calculation.- Strategy and account available hours minimum
strategyAvailableHours โฅ 0 hours/client/monthโ A lower value is rejected before calculation.- Strategy and account available hours maximum
strategyAvailableHours โค 100,000 hours/client/monthโ A higher value is rejected before calculation.- Creative and delivery planned hours minimum
deliveryPlannedHours โฅ 0 hours/client/monthโ A lower value is rejected before calculation.- Creative and delivery planned hours maximum
deliveryPlannedHours โค 100,000 hours/client/monthโ A higher value is rejected before calculation.- Creative and delivery scope-creep hours minimum
deliveryScopeCreepHours โฅ 0 hours/client/monthโ A lower value is rejected before calculation.- Creative and delivery scope-creep hours maximum
deliveryScopeCreepHours โค 100,000 hours/client/monthโ A higher value is rejected before calculation.- Creative and delivery loaded cost per hour minimum
deliveryLoadedCostPerHourExTax โฅ 0 currency units/hour, ex taxโ A lower value is rejected before calculation.- Creative and delivery loaded cost per hour maximum
deliveryLoadedCostPerHourExTax โค 10,000,000 currency units/hour, ex taxโ A higher value is rejected before calculation.- Creative and delivery available hours minimum
deliveryAvailableHours โฅ 0 hours/client/monthโ A lower value is rejected before calculation.- Creative and delivery available hours maximum
deliveryAvailableHours โค 100,000 hours/client/monthโ A higher value is rejected before calculation.- Third-party delivery cost minimum
thirdPartyDeliveryCostExTax โฅ 0 currency units/client/month, ex taxโ A lower value is rejected before calculation.- Third-party delivery cost maximum
thirdPartyDeliveryCostExTax โค 10,000,000 currency units/client/month, ex taxโ A higher value is rejected before calculation.- Target retainer margin minimum
targetRetainerMargin โฅ 0 decimal fraction of monthly retainer revenueโ A lower value is rejected before calculation.- Target retainer margin maximum
targetRetainerMargin โค 0.99 decimal fraction of monthly retainer revenueโ 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.
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 Agency Retainer Margin planner and methodology.
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