Methodology
Opening Hours Profitability 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
additionalUnits = additional hours ร expected units per hourWhere
- additionalHours
- Additional opening hours (hours/period)Source: User decision
- expectedUnitsPerHour
- Expected units per hour (units/hour)Source: User decision
- additionalUnits
- Additional units (units)Source: Calculated output
incrementalContribution = additional units ร contribution per unit โ additional hours ร (labour cost per hour + utilities and security per hour) โ fixed opening costWhere
- additionalHours
- Additional opening hours (hours/period)Source: User decision
- contributionPerUnit
- Contribution per unit (currency units/unit, ex tax)Source: Business record
- labourCostPerHour
- Labour cost per hour (currency units/hour, ex tax)Source: Business record
- utilitiesAndSecurityPerHour
- Utilities and security per hour (currency units/hour, ex tax)Source: Business record
- fixedOpeningCost
- Fixed opening cost (currency units/added opening period, ex tax)Source: Business record
- additionalUnits
- Additional units (units)Source: Calculated output
- incrementalContribution
- Incremental contribution (currency units, ex tax)Source: Calculated output
- contributionPerAdditionalHour
- Contribution per additional hour (currency units/hour, ex tax)Source: Calculated output
contributionPerAdditionalHour = incremental contribution / additional hoursWhere
- additionalHours
- Additional opening hours (hours/period)Source: User decision
- contributionPerUnit
- Contribution per unit (currency units/unit, ex tax)Source: Business record
- additionalUnits
- Additional units (units)Source: Calculated output
- incrementalContribution
- Incremental contribution (currency units, ex tax)Source: Calculated output
- contributionPerAdditionalHour
- Contribution per additional hour (currency units/hour, ex tax)Source: Calculated output
breakEvenUnitsPerHour = (additional hours ร hourly operating costs + fixed opening cost) / (additional hours ร contribution per unit)Where
- additionalHours
- Additional opening hours (hours/period)Source: User decision
- contributionPerUnit
- Contribution per unit (currency units/unit, ex tax)Source: Business record
- fixedOpeningCost
- Fixed opening cost (currency units/added opening period, ex tax)Source: Business record
- additionalUnits
- Additional units (units)Source: Calculated output
- contributionPerAdditionalHour
- Contribution per additional hour (currency units/hour, ex tax)Source: Calculated output
- breakEvenUnitsPerHour
- Break-even units per hour (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 labelled rows below are formatted directly from the exact shared engine using the visible default inputs.
- Additional opening hours
- 10 hours/period
- Expected units per hour
- 5 units/hour
- Contribution per unit
- 10 currency units/unit, ex tax
- Labour cost per hour
- 20 currency units/hour, ex tax
- Utilities and security per hour
- 5 currency units/hour, ex tax
- Fixed opening cost
- 50 currency units/added opening period, ex tax
Calculation and outputs
Additional units
additionalUnits = additional hours ร expected units per hour- Additional opening hours
- 10 hours/period
- Expected units per hour
- 5 units/hour
- Labour cost per hour
- 20 currency units/hour, ex tax
- Utilities and security per hour
- 5 currency units/hour, ex tax
- Contribution per additional hour
- 20 currency units/hour, ex tax
- Break-even units per hour
- 3 units/hour
Engine result: 50 units
Incremental contribution
incrementalContribution = additional units ร contribution per unit โ additional hours ร (labour cost per hour + utilities and security per hour) โ fixed opening cost- Additional opening hours
- 10 hours/period
- Expected units per hour
- 5 units/hour
- Contribution per unit
- 10 currency units/unit, ex tax
- Labour cost per hour
- 20 currency units/hour, ex tax
- Utilities and security per hour
- 5 currency units/hour, ex tax
- Fixed opening cost
- 50 currency units/added opening period, ex tax
- Additional units
- 50 units
- Contribution per additional hour
- 20 currency units/hour, ex tax
- Break-even units per hour
- 3 units/hour
Engine result: 200 money
Contribution per additional hour
contributionPerAdditionalHour = incremental contribution / additional hours- Additional opening hours
- 10 hours/period
- Contribution per unit
- 10 currency units/unit, ex tax
- Additional units
- 50 units
- Incremental contribution
- 200 money
Engine result: 20 currency units/hour, ex tax
Break-even units per hour
breakEvenUnitsPerHour = (additional hours ร hourly operating costs + fixed opening cost) / (additional hours ร contribution per unit)- Additional opening hours
- 10 hours/period
- Contribution per unit
- 10 currency units/unit, ex tax
- Labour cost per hour
- 20 currency units/hour, ex tax
- Fixed opening cost
- 50 currency units/added opening period, ex tax
- Additional units
- 50 units
- Incremental contribution
- 200 money
- Contribution per additional hour
- 20 currency units/hour, ex tax
Engine result: 3 units/hour
Example
The labelled rows below are formatted directly from the exact shared engine using the visible default inputs.
- Additional units
- 50 units
- Incremental contribution
- 200.00
- Contribution per additional hour
- 20.00
- Break-even units per hour
- 3 units
The incremental contribution is 200.00.
Interpretation
Only revenue and cost caused by the changed hours belong in the decision.
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.
- Additional opening hours minimum
additionalHours โฅ 0 hours/periodโ A lower value is rejected before calculation.- Additional opening hours maximum
additionalHours โค 100,000,000 hours/periodโ A higher value is rejected before calculation.- Expected units per hour minimum
expectedUnitsPerHour โฅ 0 units/hourโ A lower value is rejected before calculation.- Expected units per hour maximum
expectedUnitsPerHour โค 100,000,000 units/hourโ A higher value is rejected before calculation.- Contribution per unit minimum
contributionPerUnit โฅ 0 currency units/unit, ex taxโ A lower value is rejected before calculation.- Contribution per unit maximum
contributionPerUnit โค 10,000,000 currency units/unit, ex taxโ A higher value is rejected before calculation.- Labour cost per hour minimum
labourCostPerHour โฅ 0 currency units/hour, ex taxโ A lower value is rejected before calculation.- Labour cost per hour maximum
labourCostPerHour โค 10,000,000 currency units/hour, ex taxโ A higher value is rejected before calculation.- Utilities and security per hour minimum
utilitiesAndSecurityPerHour โฅ 0 currency units/hour, ex taxโ A lower value is rejected before calculation.- Utilities and security per hour maximum
utilitiesAndSecurityPerHour โค 10,000,000 currency units/hour, ex taxโ A higher value is rejected before calculation.- Fixed opening cost minimum
fixedOpeningCost โฅ 0 currency units/added opening period, ex taxโ A lower value is rejected before calculation.- Fixed opening cost maximum
fixedOpeningCost โค 10,000,000 currency units/added opening period, ex taxโ 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 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
- 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 planner. Commercial inputs remain user-supplied because they vary by business and contract.
Change history
- : Initial public release of the Opening Hours Profitability planner and methodology.
Related reading
Guides to interpret the decision and its assumptions.
- Restaurant Economics: From Menu Price to Operating Profit
Trace menu price through contribution, operating capacity and period costs without confusing a dish margin with operating profit.
Read guide