Methodology
Minimum Project Fee 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
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
totalInternalHours = sales + onboarding + admin + delivery hoursWhere
- 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
labourCost = total internal hours × loaded costWhere
- totalInternalHours
- Total Internal Hours (hours/project)Source: Calculated output
- labourCost
- Labour Cost (currency units/project)Source: Calculated output
overheadAmount = (labour cost + direct costs) × overhead rateWhere
- 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
projectCost = labour cost + direct costs + overheadWhere
- 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
targetContribution = minimum project fee − project costWhere
- 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
minimumEffectiveRate = minimum project fee ÷ total internal hoursWhere
- 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
deliveryHourEffectiveRate = minimum project fee ÷ delivery hoursWhere
- 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
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
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
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
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
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
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
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
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/project— A lower value is rejected before calculation.- Sales hours maximum
salesHours ≤ 10,000,000 hours/project— A higher value is rejected before calculation.- Onboarding and setup hours minimum
onboardingHours ≥ 0 hours/project— A lower value is rejected before calculation.- Onboarding and setup hours maximum
onboardingHours ≤ 10,000,000 hours/project— A higher value is rejected before calculation.- Administration hours minimum
adminHours ≥ 0 hours/project— A lower value is rejected before calculation.- Administration hours maximum
adminHours ≤ 10,000,000 hours/project— A higher value is rejected before calculation.- Delivery hours minimum
deliveryHours ≥ 0 hours/project— A lower value is rejected before calculation.- Delivery hours maximum
deliveryHours ≤ 10,000,000 hours/project— A higher value is rejected before calculation.- Loaded cost per hour minimum
loadedCostPerHour ≥ 0 currency units/hour— A lower value is rejected before calculation.- Loaded cost per hour maximum
loadedCostPerHour ≤ 10,000,000 currency units/hour— A higher value is rejected before calculation.- Direct costs minimum
directCosts ≥ 0 currency units/project— A lower value is rejected before calculation.- Direct costs maximum
directCosts ≤ 10,000,000 currency units/project— A higher value is rejected before calculation.- Overhead rate minimum
overheadRate ≥ 0 proportion of labour cost allocated as overhead— A lower value is rejected before calculation.- Overhead rate maximum
overheadRate ≤ 0.99 proportion of labour cost allocated as overhead— A higher value is rejected before calculation.- Target margin minimum
targetMargin ≥ 0 proportion of project fee retained as contribution— A lower value is rejected before calculation.- Target margin maximum
targetMargin ≤ 0.99 proportion of project fee retained as contribution— 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
- : Initial public release of the planner and methodology after pre-launch calculation, content, source and interaction review.
Related reading
Guides to interpret the decision and its assumptions.
- Service Pricing and Quoting: From Capacity to Scope
Turn cost and sellable capacity into a service rate, then test scope, duration, delivery risk and commercial model.
Read guide