Methodology
Travel Time Billing 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
travelContribution = travel revenue โ travel costWhere
- travelContribution
- Travel Contribution (currency units/project)Source: Calculated output
- travelCost
- Travel Cost (currency units/project)Source: Calculated output
- travelRevenue
- Travel Revenue (currency units/project)Source: Calculated output
travelCost = travel hours ร delivery cost + travel expensesWhere
- travelHours
- Travel hours (hours/project)Source: Business record
- travelExpenses
- Travel expenses (currency units/project)Source: Business record
- travelCost
- Travel Cost (currency units/project)Source: Calculated output
travelRevenue = travel hours ร billing rate + recovered expensesWhere
- travelHours
- Travel hours (hours/project)Source: Business record
- travelExpenses
- Travel expenses (currency units/project)Source: Business record
- billingRatePerHour
- Travel billing rate (currency units/hour)Source: User decision
- travelRevenue
- Travel Revenue (currency units/project)Source: Calculated output
unrecoveredTravelCost = max(0, travel cost โ travel revenue)Where
- travelCost
- Travel Cost (currency units/project)Source: Calculated output
- travelRevenue
- Travel Revenue (currency units/project)Source: Calculated output
- unrecoveredTravelCost
- Unrecovered Travel Cost (currency units/project)Source: Calculated output
effectiveRecoveryRate = travel revenue รท travel costWhere
- travelCost
- Travel Cost (currency units/project)Source: Calculated output
- travelRevenue
- Travel Revenue (currency units/project)Source: Calculated output
- effectiveRecoveryRate
- Effective Recovery Rate (decimal rate)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.
- Travel hours
- 4 hours/project
- Delivery cost per hour
- 50 currency units/hour
- Travel expenses
- 120 currency units/project
- Travel billing rate
- 75 currency units/hour
- Expense recovery rate
- 1 proportion of travel expenses recovered from client
Calculation and outputs
travelContribution
travelContribution = travel revenue โ travel cost- Travel hours
- 4 hours/project
- Delivery cost per hour
- 50 currency units/hour
- Travel expenses
- 120 currency units/project
- Travel billing rate
- 75 currency units/hour
- travelCost
- 320 declared output unit
- travelRevenue
- 420 declared output unit
- unrecoveredTravelCost
- 0 declared output unit
Engine result: 100
travelCost
travelCost = travel hours ร delivery cost + travel expenses- Travel hours
- 4 hours/project
- Delivery cost per hour
- 50 currency units/hour
- Travel expenses
- 120 currency units/project
- Travel billing rate
- 75 currency units/hour
- travelContribution
- 100 declared output unit
- travelRevenue
- 420 declared output unit
- unrecoveredTravelCost
- 0 declared output unit
Engine result: 320
travelRevenue
travelRevenue = travel hours ร billing rate + recovered expenses- Travel hours
- 4 hours/project
- Travel expenses
- 120 currency units/project
- Travel billing rate
- 75 currency units/hour
- Expense recovery rate
- 1 proportion of travel expenses recovered from client
- travelContribution
- 100 declared output unit
- travelCost
- 320 declared output unit
- unrecoveredTravelCost
- 0 declared output unit
- effectiveRecoveryRate
- 1.3125 declared output unit
Engine result: 420
unrecoveredTravelCost
unrecoveredTravelCost = max(0, travel cost โ travel revenue)- Travel hours
- 4 hours/project
- Delivery cost per hour
- 50 currency units/hour
- Travel expenses
- 120 currency units/project
- Travel billing rate
- 75 currency units/hour
- travelContribution
- 100 declared output unit
- travelCost
- 320 declared output unit
- travelRevenue
- 420 declared output unit
Engine result: 0
effectiveRecoveryRate
effectiveRecoveryRate = travel revenue รท travel cost- Travel hours
- 4 hours/project
- Delivery cost per hour
- 50 currency units/hour
- Travel expenses
- 120 currency units/project
- Travel billing rate
- 75 currency units/hour
- travelContribution
- 100 declared output unit
- travelCost
- 320 declared output unit
- travelRevenue
- 420 declared output unit
- unrecoveredTravelCost
- 0 declared output unit
Engine result: 1.3125
Example
The worked rows are rendered from the registered engine and visible default fixture.
- Travel Cost
- 320 currency units/project
- Travel Revenue
- 420 currency units/project
- Travel Contribution
- 100 currency units/project
- Unrecovered Travel Cost
- 0 currency units/project
- Effective Recovery Rate
- 131.3%
The exact engine-derived outputs are shown in the labelled rows below.
Interpretation
The travel time billing 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.
- Travel hours minimum
travelHours โฅ 0 hours/projectโ A lower value is rejected before calculation.- Travel hours maximum
travelHours โค 10,000,000 hours/projectโ 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.- Travel expenses minimum
travelExpenses โฅ 0 currency units/projectโ A lower value is rejected before calculation.- Travel expenses maximum
travelExpenses โค 10,000,000 currency units/projectโ A higher value is rejected before calculation.- Travel billing rate minimum
billingRatePerHour โฅ 0 currency units/hourโ A lower value is rejected before calculation.- Travel billing rate maximum
billingRatePerHour โค 10,000,000 currency units/hourโ A higher value is rejected before calculation.- Expense recovery rate minimum
expenseRecoveryRate โฅ 0 proportion of travel expenses recovered from clientโ A lower value is rejected before calculation.- Expense recovery rate maximum
expenseRecoveryRate โค 1 proportion of travel expenses recovered from clientโ 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.
- Travel time, internal delivery cost, billing rate and expense recovery are user-entered commercial assumptions; no statutory mileage, reimbursement, award, wage or tax rule is applied.
- The result does not establish whether travel time or expenses are contractually chargeable.
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.
- Field-Service Economics: Travel, Labour and Capacity
Reconcile call-out work with travel, loaded labour, recovery and daily capacity on one job basis.
Read guide