Skip to main content

Methodology

Outsource vs Hire Comparison methodology

Compare incremental outsourcing and hiring costs at the required workload, including explicit capacity gaps and excluded sunk 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

Outsource incremental cost
leftIncrementalCost = outsource incremental fixed cost + required units ร— outsource incremental cost per unit, if capacity is sufficient

Where

units
Required units (units/period)Source: User decision
leftIncrementalFixedCost
Outsource incremental fixed cost (currency units/decision period, ex tax)Source: Business record
leftIncrementalVariableCostPerUnit
Outsource incremental cost per unit (currency units/unit, ex tax)Source: Business record
leftCapacityUnits
Outsource capacity (units/period)Source: Business record
leftIncrementalCost
Outsource incremental cost (currency units, ex tax)Source: Calculated output
Hire incremental cost
rightIncrementalCost = hire incremental fixed cost + required units ร— hire incremental cost per unit, if capacity is sufficient

Where

units
Required units (units/period)Source: User decision
rightIncrementalFixedCost
Hire incremental fixed cost (currency units/decision period, ex tax)Source: Business record
rightIncrementalVariableCostPerUnit
Hire incremental cost per unit (currency units/unit, ex tax)Source: Business record
rightCapacityUnits
Hire capacity (units/period)Source: Business record
rightIncrementalCost
Hire incremental cost (currency units, ex tax)Source: Calculated output
Cost crossover units
crossoverUnits = ceiling((right fixed cost โˆ’ left fixed cost) / (left unit cost โˆ’ right unit cost)), when reachable within both capacities

Where

crossoverUnits
Cost crossover units (units)Source: Calculated output
Outsource capacity gap
leftCapacityGap = max(0, required units โˆ’ outsource capacity)

Where

units
Required units (units/period)Source: User decision
leftCapacityUnits
Outsource capacity (units/period)Source: Business record
leftCapacityGap
Outsource capacity gap (units)Source: Calculated output
Hire capacity gap
rightCapacityGap = max(0, required units โˆ’ hire capacity)

Where

units
Required units (units/period)Source: User decision
rightCapacityUnits
Hire capacity (units/period)Source: Business record
rightCapacityGap
Hire capacity gap (units)Source: Calculated output
Excluded sunk cost
excludedSunkCost = current sunk cost disclosed but excluded from both incremental options

Where

currentSunkCost
Current sunk cost (currency units/decision period, ex tax)Source: Business record
excludedSunkCost
Excluded sunk cost (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 labelled rows below are formatted directly from the exact shared engine using the visible default inputs.

Required units
120 units/period
Current sunk cost
2,500 currency units/decision period, ex tax
Outsource incremental fixed cost
200 currency units/decision period, ex tax
Outsource incremental cost per unit
70 currency units/unit, ex tax
Outsource capacity
220 units/period
Hire incremental fixed cost
6,000 currency units/decision period, ex tax
Hire incremental cost per unit
35 currency units/unit, ex tax
Hire capacity
220 units/period

Calculation and outputs

  1. Outsource incremental cost

    leftIncrementalCost = outsource incremental fixed cost + required units ร— outsource incremental cost per unit, if capacity is sufficient
    Required units
    120 units/period
    Current sunk cost
    2,500 currency units/decision period, ex tax
    Outsource incremental fixed cost
    200 currency units/decision period, ex tax
    Outsource incremental cost per unit
    70 currency units/unit, ex tax
    Outsource capacity
    220 units/period
    Hire incremental fixed cost
    6,000 currency units/decision period, ex tax
    Hire incremental cost per unit
    35 currency units/unit, ex tax
    Hire capacity
    220 units/period
    Hire incremental cost
    10,200 money
    Cost crossover units
    166 units
    Outsource capacity gap
    0 units
    Hire capacity gap
    0 units
    Excluded sunk cost
    2,500 money

    Engine result: 8,600 money

  2. Hire incremental cost

    rightIncrementalCost = hire incremental fixed cost + required units ร— hire incremental cost per unit, if capacity is sufficient
    Required units
    120 units/period
    Current sunk cost
    2,500 currency units/decision period, ex tax
    Outsource incremental fixed cost
    200 currency units/decision period, ex tax
    Outsource incremental cost per unit
    70 currency units/unit, ex tax
    Outsource capacity
    220 units/period
    Hire incremental fixed cost
    6,000 currency units/decision period, ex tax
    Hire incremental cost per unit
    35 currency units/unit, ex tax
    Hire capacity
    220 units/period
    Outsource incremental cost
    8,600 money
    Cost crossover units
    166 units
    Outsource capacity gap
    0 units
    Hire capacity gap
    0 units
    Excluded sunk cost
    2,500 money

    Engine result: 10,200 money

  3. Cost crossover units

    crossoverUnits = ceiling((right fixed cost โˆ’ left fixed cost) / (left unit cost โˆ’ right unit cost)), when reachable within both capacities
    Current sunk cost
    2,500 currency units/decision period, ex tax
    Outsource incremental fixed cost
    200 currency units/decision period, ex tax
    Outsource incremental cost per unit
    70 currency units/unit, ex tax
    Outsource capacity
    220 units/period
    Hire incremental fixed cost
    6,000 currency units/decision period, ex tax
    Hire incremental cost per unit
    35 currency units/unit, ex tax
    Hire capacity
    220 units/period
    Outsource incremental cost
    8,600 money
    Hire incremental cost
    10,200 money
    Outsource capacity gap
    0 units
    Hire capacity gap
    0 units
    Excluded sunk cost
    2,500 money

    Engine result: 166 units

  4. Outsource capacity gap

    leftCapacityGap = max(0, required units โˆ’ outsource capacity)
    Required units
    120 units/period
    Outsource incremental fixed cost
    200 currency units/decision period, ex tax
    Outsource incremental cost per unit
    70 currency units/unit, ex tax
    Outsource capacity
    220 units/period
    Hire capacity
    220 units/period
    Outsource incremental cost
    8,600 money
    Hire capacity gap
    0 units

    Engine result: 0 units

  5. Hire capacity gap

    rightCapacityGap = max(0, required units โˆ’ hire capacity)
    Required units
    120 units/period
    Outsource capacity
    220 units/period
    Hire incremental fixed cost
    6,000 currency units/decision period, ex tax
    Hire incremental cost per unit
    35 currency units/unit, ex tax
    Hire capacity
    220 units/period
    Hire incremental cost
    10,200 money
    Outsource capacity gap
    0 units

    Engine result: 0 units

  6. Excluded sunk cost

    excludedSunkCost = current sunk cost disclosed but excluded from both incremental options
    Current sunk cost
    2,500 currency units/decision period, ex tax
    Outsource incremental fixed cost
    200 currency units/decision period, ex tax
    Outsource incremental cost per unit
    70 currency units/unit, ex tax
    Hire incremental fixed cost
    6,000 currency units/decision period, ex tax
    Hire incremental cost per unit
    35 currency units/unit, ex tax
    Outsource incremental cost
    8,600 money
    Hire incremental cost
    10,200 money
    Cost crossover units
    166 units

    Engine result: 2,500 money

Example

The labelled rows below are formatted directly from the exact shared engine using the visible default inputs.

Outsource incremental cost
8,600.00
Hire incremental cost
10,200.00
Lower-cost feasible option
Outsource
Cost crossover units
166 units
Outsource capacity gap
0 units
Hire capacity gap
0 units
Excluded sunk cost
2,500.00

The lower-cost feasible option is Outsource.

Interpretation

Compare the same delivered workload and service level rather than headline hourly rates.

3. Validation and boundary checks

  • All inputs must be finite and remain inside the visible non-negative validation boundaries.
  • Capacity and demand fields that represent physical units reject fractional values where the engine requires whole units.
  • Rates remain inside the closed range from 0% to 100%.
  • Unreachable contribution, crossover or payback thresholds return an explicit unavailable state rather than Infinity.
  • Option comparisons reject an infeasible option when its entered capacity is below the required workload.
  • Control: decide which option gives the required authority over priorities, methods, quality checks and escalation; the cost result does not score control.
  • Continuity: document how each option covers absence, supplier failure, handover and knowledge retention; capacity alone does not prove continuity.
  • Reversibility: compare notice periods, commitments, switching effort and the ability to unwind the decision; the lower-cost result is not a recommendation.
Required units minimum
units โ‰ฅ 0 units/period โ€” A lower value is rejected before calculation.
Required units maximum
units โ‰ค 100,000,000 units/period โ€” A higher value is rejected before calculation.
Current sunk cost minimum
currentSunkCost โ‰ฅ 0 currency units/decision period, ex tax โ€” A lower value is rejected before calculation.
Current sunk cost maximum
currentSunkCost โ‰ค 10,000,000 currency units/decision period, ex tax โ€” A higher value is rejected before calculation.
Outsource incremental fixed cost minimum
leftIncrementalFixedCost โ‰ฅ 0 currency units/decision period, ex tax โ€” A lower value is rejected before calculation.
Outsource incremental fixed cost maximum
leftIncrementalFixedCost โ‰ค 10,000,000 currency units/decision period, ex tax โ€” A higher value is rejected before calculation.
Outsource incremental cost per unit minimum
leftIncrementalVariableCostPerUnit โ‰ฅ 0 currency units/unit, ex tax โ€” A lower value is rejected before calculation.
Outsource incremental cost per unit maximum
leftIncrementalVariableCostPerUnit โ‰ค 10,000,000 currency units/unit, ex tax โ€” A higher value is rejected before calculation.
Outsource capacity minimum
leftCapacityUnits โ‰ฅ 0 units/period โ€” A lower value is rejected before calculation.
Outsource capacity maximum
leftCapacityUnits โ‰ค 100,000,000 units/period โ€” A higher value is rejected before calculation.
Hire incremental fixed cost minimum
rightIncrementalFixedCost โ‰ฅ 0 currency units/decision period, ex tax โ€” A lower value is rejected before calculation.
Hire incremental fixed cost maximum
rightIncrementalFixedCost โ‰ค 10,000,000 currency units/decision period, ex tax โ€” A higher value is rejected before calculation.
Hire incremental cost per unit minimum
rightIncrementalVariableCostPerUnit โ‰ฅ 0 currency units/unit, ex tax โ€” A lower value is rejected before calculation.
Hire incremental cost per unit maximum
rightIncrementalVariableCostPerUnit โ‰ค 10,000,000 currency units/unit, ex tax โ€” A higher value is rejected before calculation.
Hire capacity minimum
rightCapacityUnits โ‰ฅ 0 units/period โ€” A lower value is rejected before calculation.
Hire capacity maximum
rightCapacityUnits โ‰ค 100,000,000 units/period โ€” A higher value is rejected before calculation.

4. Assumptions and source classification

  • All operating volumes, rates, workload, capacity, time, cost and contribution values are supplied by the user.
  • Money inputs use one consistent ex-tax basis and every record refers to the same operating period.
  • Demand realisation, recovery, hours saved and expected unit rates are scenarios, not forecasts or benchmarks.
  • Committed sunk cost is disclosed but excluded from make, buy, outsource and hire incremental economics.
  • The shared engine retains raw precision and display formatting never feeds back into calculation.

This comparison calculator 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 depend on complete and comparable incremental cost, capacity and operating records.
  • The model does not forecast demand, service quality, employee performance, supplier reliability or disruption duration.
  • A positive result or short payback does not establish implementation feasibility or guarantee a commercial outcome.
  • The planner does not replace operational, 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 comparison calculator. 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 comparison calculator