Skip to main content

Methodology

Recurring Support Plan Pricing Planner methodology

Set a support-plan floor from expected usage, reserved capacity and service-level cost.

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

Minimum Monthly Price
minimumMonthlyPrice = monthly customer cost รท (1 โˆ’ target margin)

Where

targetMargin
Target margin (proportion of monthly plan price retained as contribution)Source: User decision
minimumMonthlyPrice
Minimum Monthly Price (currency units/month)Source: Calculated output
monthlyCostPerCustomer
Monthly Cost Per Customer (currency units/month)Source: Calculated output
Monthly Cost Per Customer
monthlyCostPerCustomer = reserved capacity cost + platform + admin + service-level cost

Where

platformCostPerCustomer
Platform cost per customer (currency units/customer/month)Source: Business record
monthlyAdminCostPerCustomer
Monthly admin cost (currency units/customer/month)Source: Business record
serviceLevelCostPerCustomer
Service-level cost (currency units/customer/month)Source: Business record
monthlyCostPerCustomer
Monthly Cost Per Customer (currency units/month)Source: Calculated output
reservedCapacityCost
Reserved Capacity Cost (currency units/month)Source: Calculated output
Expected Usage Cost
expectedUsageCost = expected support hours ร— delivery cost

Where

expectedSupportHours
Expected support hours (hours/customer/month)Source: User assumption
expectedUsageCost
Expected Usage Cost (currency units/month)Source: Calculated output
Reserved Capacity Cost
reservedCapacityCost = reserved hours ร— delivery cost

Where

reservedCapacityHours
Reserved capacity hours (hours/customer/month)Source: User assumption
reservedCapacityCost
Reserved Capacity Cost (currency units/month)Source: Calculated output
Unused Reserved Hours
unusedReservedHours = reserved hours โˆ’ expected hours

Where

unusedReservedHours
Unused Reserved Hours (hours/month)Source: Calculated output
Capacity Utilisation
capacityUtilisation = expected hours รท reserved hours

Where

reservedCapacityHours
Reserved capacity hours (hours/customer/month)Source: User assumption
capacityUtilisation
Capacity Utilisation (decimal rate)Source: Calculated output
Proposed Contribution
proposedContribution = proposed price โˆ’ monthly customer cost

Where

proposedMonthlyPrice
Proposed monthly price (currency units/customer/month)Source: User decision
monthlyCostPerCustomer
Monthly Cost Per Customer (currency units/month)Source: Calculated output
proposedContribution
Proposed Contribution (currency units/month)Source: Calculated output
Proposed Margin
proposedMargin = proposed contribution รท proposed price

Where

proposedContribution
Proposed Contribution (currency units/month)Source: Calculated output
proposedMargin
Proposed Margin (decimal rate)Source: Calculated output
Price Gap
priceGap = proposed price โˆ’ minimum monthly price

Where

proposedMonthlyPrice
Proposed monthly price (currency units/customer/month)Source: User decision
minimumMonthlyPrice
Minimum Monthly Price (currency units/month)Source: Calculated output
priceGap
Price Gap (currency units/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.

Expected support hours
2 hours/customer/month
Reserved capacity hours
3 hours/customer/month
Delivery cost per hour
60 currency units/hour
Platform cost per customer
20 currency units/customer/month
Monthly admin cost
10 currency units/customer/month
Service-level cost
15 currency units/customer/month
Target margin
0.3 proportion of monthly plan price retained as contribution
Proposed monthly price
250 currency units/customer/month

Calculation and outputs

  1. minimumMonthlyPrice

    minimumMonthlyPrice = monthly customer cost รท (1 โˆ’ target margin)
    Delivery cost per hour
    60 currency units/hour
    Platform cost per customer
    20 currency units/customer/month
    Monthly admin cost
    10 currency units/customer/month
    Service-level cost
    15 currency units/customer/month
    Target margin
    0.3 proportion of monthly plan price retained as contribution
    Proposed monthly price
    250 currency units/customer/month
    monthlyCostPerCustomer
    225 declared output unit
    expectedUsageCost
    120 declared output unit
    reservedCapacityCost
    180 declared output unit
    proposedMargin
    0.1 declared output unit

    Engine result: 321.428571

  2. monthlyCostPerCustomer

    monthlyCostPerCustomer = reserved capacity cost + platform + admin + service-level cost
    Reserved capacity hours
    3 hours/customer/month
    Delivery cost per hour
    60 currency units/hour
    Platform cost per customer
    20 currency units/customer/month
    Monthly admin cost
    10 currency units/customer/month
    Service-level cost
    15 currency units/customer/month
    expectedUsageCost
    120 declared output unit
    reservedCapacityCost
    180 declared output unit
    unusedReservedHours
    1 declared output unit
    capacityUtilisation
    0.666667 declared output unit

    Engine result: 225

  3. expectedUsageCost

    expectedUsageCost = expected support hours ร— delivery cost
    Expected support hours
    2 hours/customer/month
    Reserved capacity hours
    3 hours/customer/month
    Delivery cost per hour
    60 currency units/hour
    Platform cost per customer
    20 currency units/customer/month
    Monthly admin cost
    10 currency units/customer/month
    Service-level cost
    15 currency units/customer/month
    monthlyCostPerCustomer
    225 declared output unit
    reservedCapacityCost
    180 declared output unit
    unusedReservedHours
    1 declared output unit

    Engine result: 120

  4. reservedCapacityCost

    reservedCapacityCost = reserved hours ร— delivery cost
    Expected support hours
    2 hours/customer/month
    Reserved capacity hours
    3 hours/customer/month
    Delivery cost per hour
    60 currency units/hour
    Platform cost per customer
    20 currency units/customer/month
    Monthly admin cost
    10 currency units/customer/month
    Service-level cost
    15 currency units/customer/month
    monthlyCostPerCustomer
    225 declared output unit
    expectedUsageCost
    120 declared output unit
    unusedReservedHours
    1 declared output unit

    Engine result: 180

  5. unusedReservedHours

    unusedReservedHours = reserved hours โˆ’ expected hours
    Expected support hours
    2 hours/customer/month
    Reserved capacity hours
    3 hours/customer/month
    expectedUsageCost
    120 declared output unit
    reservedCapacityCost
    180 declared output unit

    Engine result: 1

  6. capacityUtilisation

    capacityUtilisation = expected hours รท reserved hours
    Expected support hours
    2 hours/customer/month
    Reserved capacity hours
    3 hours/customer/month
    expectedUsageCost
    120 declared output unit
    reservedCapacityCost
    180 declared output unit
    unusedReservedHours
    1 declared output unit

    Engine result: 0.666667

  7. proposedContribution

    proposedContribution = proposed price โˆ’ monthly customer cost
    Delivery cost per hour
    60 currency units/hour
    Platform cost per customer
    20 currency units/customer/month
    Monthly admin cost
    10 currency units/customer/month
    Service-level cost
    15 currency units/customer/month
    Proposed monthly price
    250 currency units/customer/month
    minimumMonthlyPrice
    321.428571 declared output unit
    monthlyCostPerCustomer
    225 declared output unit
    expectedUsageCost
    120 declared output unit
    reservedCapacityCost
    180 declared output unit
    proposedMargin
    0.1 declared output unit
    priceGap
    -71.428571 declared output unit

    Engine result: 25

  8. proposedMargin

    proposedMargin = proposed contribution รท proposed price
    Proposed monthly price
    250 currency units/customer/month
    minimumMonthlyPrice
    321.428571 declared output unit
    proposedContribution
    25 declared output unit
    priceGap
    -71.428571 declared output unit

    Engine result: 0.1

  9. priceGap

    priceGap = proposed price โˆ’ minimum monthly price
    Monthly admin cost
    10 currency units/customer/month
    Proposed monthly price
    250 currency units/customer/month
    minimumMonthlyPrice
    321.428571 declared output unit
    monthlyCostPerCustomer
    225 declared output unit
    proposedContribution
    25 declared output unit
    proposedMargin
    0.1 declared output unit

    Engine result: -71.428571

Example

The worked rows are rendered from the registered engine and visible default fixture.

Monthly Cost Per Customer
225 currency units/month
Expected Usage Cost
120 currency units/month
Reserved Capacity Cost
180 currency units/month
Unused Reserved Hours
1 hours/month
Capacity Utilisation
66.7%
Minimum Monthly Price
321.43 currency units/month
Proposed Contribution
25 currency units/month
Proposed Margin
10%
Price Gap
-71.43 currency units/month

The exact engine-derived outputs are shown in the labelled rows below.

Interpretation

The recurring support plan 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.
Expected support hours minimum
expectedSupportHours โ‰ฅ 0 hours/customer/month โ€” A lower value is rejected before calculation.
Expected support hours maximum
expectedSupportHours โ‰ค 10,000,000 hours/customer/month โ€” A higher value is rejected before calculation.
Reserved capacity hours minimum
reservedCapacityHours โ‰ฅ 0 hours/customer/month โ€” A lower value is rejected before calculation.
Reserved capacity hours maximum
reservedCapacityHours โ‰ค 10,000,000 hours/customer/month โ€” A higher value is rejected before calculation.
Delivery cost per hour minimum
deliveryCostPerHour โ‰ฅ 0 currency units/hour โ€” A lower value is rejected before calculation.
Delivery cost per hour maximum
deliveryCostPerHour โ‰ค 10,000,000 currency units/hour โ€” A higher value is rejected before calculation.
Platform cost per customer minimum
platformCostPerCustomer โ‰ฅ 0 currency units/customer/month โ€” A lower value is rejected before calculation.
Platform cost per customer maximum
platformCostPerCustomer โ‰ค 10,000,000 currency units/customer/month โ€” A higher value is rejected before calculation.
Monthly admin cost minimum
monthlyAdminCostPerCustomer โ‰ฅ 0 currency units/customer/month โ€” A lower value is rejected before calculation.
Monthly admin cost maximum
monthlyAdminCostPerCustomer โ‰ค 10,000,000 currency units/customer/month โ€” A higher value is rejected before calculation.
Service-level cost minimum
serviceLevelCostPerCustomer โ‰ฅ 0 currency units/customer/month โ€” A lower value is rejected before calculation.
Service-level cost maximum
serviceLevelCostPerCustomer โ‰ค 10,000,000 currency units/customer/month โ€” A higher value is rejected before calculation.
Target margin minimum
targetMargin โ‰ฅ 0 proportion of monthly plan price retained as contribution โ€” A lower value is rejected before calculation.
Target margin maximum
targetMargin โ‰ค 0.99 proportion of monthly plan price retained as contribution โ€” A higher value is rejected before calculation.
Proposed monthly price minimum
proposedMonthlyPrice โ‰ฅ 0 currency units/customer/month โ€” A lower value is rejected before calculation.
Proposed monthly price maximum
proposedMonthlyPrice โ‰ค 10,000,000 currency units/customer/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

  1. : Initial public release of the planner and methodology after pre-launch calculation, content, source and interaction review.

Guides to interpret the decision and its assumptions.

Return to the planner