Skip to main content

Methodology

Minimum Project Fee Planner methodology

Solve a project price floor that separately recovers sales, onboarding, admin and delivery.

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 Project Fee
minimumProjectFee = project cost ÷ (1 − target margin)

Where

targetMargin
Target margin (proportion of project fee retained as contribution)Source: User decision
minimumProjectFee
Minimum Project Fee (currency units/project)Source: Calculated output
projectCost
Project Cost (currency units/project)Source: Calculated output
Total Internal Hours
totalInternalHours = sales + onboarding + admin + delivery hours

Where

salesHours
Sales hours (hours/project)Source: Business record
onboardingHours
Onboarding and setup hours (hours/project)Source: Business record
adminHours
Administration hours (hours/project)Source: Business record
deliveryHours
Delivery hours (hours/project)Source: User assumption
totalInternalHours
Total Internal Hours (hours/project)Source: Calculated output
Labour Cost
labourCost = total internal hours × loaded cost

Where

totalInternalHours
Total Internal Hours (hours/project)Source: Calculated output
labourCost
Labour Cost (currency units/project)Source: Calculated output
Overhead Amount
overheadAmount = (labour cost + direct costs) × overhead rate

Where

directCosts
Direct costs (currency units/project)Source: Business record
overheadRate
Overhead rate (proportion of labour cost allocated as overhead)Source: User assumption
labourCost
Labour Cost (currency units/project)Source: Calculated output
overheadAmount
Overhead Amount (currency units/project)Source: Calculated output
Project Cost
projectCost = labour cost + direct costs + overhead

Where

directCosts
Direct costs (currency units/project)Source: Business record
labourCost
Labour Cost (currency units/project)Source: Calculated output
projectCost
Project Cost (currency units/project)Source: Calculated output
Target Contribution
targetContribution = minimum project fee − project cost

Where

minimumProjectFee
Minimum Project Fee (currency units/project)Source: Calculated output
projectCost
Project Cost (currency units/project)Source: Calculated output
targetContribution
Target Contribution (currency units/project)Source: Calculated output
Minimum Effective Rate
minimumEffectiveRate = minimum project fee ÷ total internal hours

Where

minimumProjectFee
Minimum Project Fee (currency units/project)Source: Calculated output
totalInternalHours
Total Internal Hours (hours/project)Source: Calculated output
minimumEffectiveRate
Minimum Effective Rate (currency units/hour)Source: Calculated output
Delivery Hour Effective Rate
deliveryHourEffectiveRate = minimum project fee ÷ delivery hours

Where

deliveryHours
Delivery hours (hours/project)Source: User assumption
minimumProjectFee
Minimum Project Fee (currency units/project)Source: Calculated output
minimumEffectiveRate
Minimum Effective Rate (currency units/hour)Source: Calculated output
deliveryHourEffectiveRate
Delivery Hour Effective Rate (currency units/hour)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.

Sales hours
3 hours/project
Onboarding and setup hours
2 hours/project
Administration hours
3 hours/project
Delivery hours
24 hours/project
Loaded cost per hour
70 currency units/hour
Direct costs
250 currency units/project
Overhead rate
0.1 proportion of labour cost allocated as overhead
Target margin
0.3 proportion of project fee retained as contribution

Calculation and outputs

  1. minimumProjectFee

    minimumProjectFee = project cost ÷ (1 − target margin)
    Loaded cost per hour
    70 currency units/hour
    Target margin
    0.3 proportion of project fee retained as contribution
    labourCost
    2,240 declared output unit
    projectCost
    2,739 declared output unit
    targetContribution
    1,173.857143 declared output unit

    Engine result: 3,912.857143

  2. totalInternalHours

    totalInternalHours = sales + onboarding + admin + delivery hours
    Sales hours
    3 hours/project
    Onboarding and setup hours
    2 hours/project
    Administration hours
    3 hours/project
    Delivery hours
    24 hours/project
    deliveryHourEffectiveRate
    163.035714 declared output unit

    Engine result: 32

  3. labourCost

    labourCost = total internal hours × loaded cost
    Sales hours
    3 hours/project
    Onboarding and setup hours
    2 hours/project
    Administration hours
    3 hours/project
    Delivery hours
    24 hours/project
    Loaded cost per hour
    70 currency units/hour
    totalInternalHours
    32 declared output unit
    projectCost
    2,739 declared output unit

    Engine result: 2,240

  4. overheadAmount

    overheadAmount = (labour cost + direct costs) × overhead rate
    Loaded cost per hour
    70 currency units/hour
    Direct costs
    250 currency units/project
    Overhead rate
    0.1 proportion of labour cost allocated as overhead
    labourCost
    2,240 declared output unit
    projectCost
    2,739 declared output unit
    minimumEffectiveRate
    122.276786 declared output unit
    deliveryHourEffectiveRate
    163.035714 declared output unit

    Engine result: 249

  5. projectCost

    projectCost = labour cost + direct costs + overhead
    Loaded cost per hour
    70 currency units/hour
    Direct costs
    250 currency units/project
    Overhead rate
    0.1 proportion of labour cost allocated as overhead
    labourCost
    2,240 declared output unit
    overheadAmount
    249 declared output unit

    Engine result: 2,739

  6. targetContribution

    targetContribution = minimum project fee − project cost
    Loaded cost per hour
    70 currency units/hour
    minimumProjectFee
    3,912.857143 declared output unit
    labourCost
    2,240 declared output unit
    projectCost
    2,739 declared output unit
    minimumEffectiveRate
    122.276786 declared output unit

    Engine result: 1,173.857143

  7. minimumEffectiveRate

    minimumEffectiveRate = minimum project fee ÷ total internal hours
    Sales hours
    3 hours/project
    Onboarding and setup hours
    2 hours/project
    Administration hours
    3 hours/project
    Delivery hours
    24 hours/project
    minimumProjectFee
    3,912.857143 declared output unit
    totalInternalHours
    32 declared output unit
    projectCost
    2,739 declared output unit

    Engine result: 122.276786

  8. deliveryHourEffectiveRate

    deliveryHourEffectiveRate = minimum project fee ÷ delivery hours
    Sales hours
    3 hours/project
    Onboarding and setup hours
    2 hours/project
    Administration hours
    3 hours/project
    Delivery hours
    24 hours/project
    minimumProjectFee
    3,912.857143 declared output unit
    totalInternalHours
    32 declared output unit
    projectCost
    2,739 declared output unit
    minimumEffectiveRate
    122.276786 declared output unit

    Engine result: 163.035714

Example

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

Total Internal Hours
32 hours/project
Labour Cost
2,240 currency units/project
Overhead Amount
249 currency units/project
Project Cost
2,739 currency units/project
Minimum Project Fee
3,912.86 currency units/project
Target Contribution
1,173.86 currency units/project
Minimum Effective Rate
122.28 currency units/hour
Delivery Hour Effective Rate
163.04 currency units/hour

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

Interpretation

The minimum project fee 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.
Sales hours minimum
salesHours ≥ 0 hours/projectA lower value is rejected before calculation.
Sales hours maximum
salesHours ≤ 10,000,000 hours/projectA higher value is rejected before calculation.
Onboarding and setup hours minimum
onboardingHours ≥ 0 hours/projectA lower value is rejected before calculation.
Onboarding and setup hours maximum
onboardingHours ≤ 10,000,000 hours/projectA higher value is rejected before calculation.
Administration hours minimum
adminHours ≥ 0 hours/projectA lower value is rejected before calculation.
Administration hours maximum
adminHours ≤ 10,000,000 hours/projectA higher value is rejected before calculation.
Delivery hours minimum
deliveryHours ≥ 0 hours/projectA lower value is rejected before calculation.
Delivery hours maximum
deliveryHours ≤ 10,000,000 hours/projectA higher value is rejected before calculation.
Loaded cost per hour minimum
loadedCostPerHour ≥ 0 currency units/hourA lower value is rejected before calculation.
Loaded cost per hour maximum
loadedCostPerHour ≤ 10,000,000 currency units/hourA higher value is rejected before calculation.
Direct costs minimum
directCosts ≥ 0 currency units/projectA lower value is rejected before calculation.
Direct costs maximum
directCosts ≤ 10,000,000 currency units/projectA higher value is rejected before calculation.
Overhead rate minimum
overheadRate ≥ 0 proportion of labour cost allocated as overheadA lower value is rejected before calculation.
Overhead rate maximum
overheadRate ≤ 0.99 proportion of labour cost allocated as overheadA higher value is rejected before calculation.
Target margin minimum
targetMargin ≥ 0 proportion of project fee retained as contributionA lower value is rejected before calculation.
Target margin maximum
targetMargin ≤ 0.99 proportion of project fee retained as contributionA 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