Skip to main content

Methodology

Agency Retainer Margin Planner methodology

See the delivery margin, capacity load and repricing gap created by the actual account scope. Review a recurring agency retainer by role, planned and scope-creep hours, loaded delivery cost, available capacity, third-party cost and target margin.

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

Planned labour cost
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
Scope-creep labour cost
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
Total retainer delivery cost
deliveryCostExTax = planned labour + scope creep labour + third-party cost

Where

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
Planned delivery hours
plannedHours = sum planned role hours

Where

plannedHours
Planned delivery hours (hours)Source: Calculated output
Scope-creep hours
scopeCreepHours = sum unscoped role hours

Where

scopeCreepHours
Scope-creep hours (hours)Source: Calculated output
Retainer capacity utilisation
capacityUtilisationRate = (planned + scope-creep hours) / available role hours

Where

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
Current retainer contribution
contributionExTax = monthly retainer - total delivery cost

Where

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
Current retainer margin
contributionMargin = contribution / monthly retainer

Where

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
Required monthly retainer
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
Retainer repricing gap
repricingGapExTax = required retainer - current retainer

Where

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

  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  1. : Initial public release of the Agency Retainer Margin planner and methodology.

Guides to interpret the decision and its assumptions.

Return to the planner