Methodology
Minimum Batch Size 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
unitContribution = selling price per unit โ variable cost per unitWhere
- unitSellingPrice
- Selling price per unit (currency units/unit, ex tax)Source: Business record
- unitVariableCost
- Variable cost per unit (currency units/unit, ex tax)Source: Business record
- unitContribution
- Unit contribution (currency units, ex tax)Source: Calculated output
minimumUnits = ceiling((batch setup cost + target batch contribution) / positive unit contribution)Where
- setupCost
- Batch setup cost (currency units/batch, ex tax)Source: Business record
- targetBatchContribution
- Target batch contribution (currency units/batch, ex tax)Source: User decision
- unitContribution
- Unit contribution (currency units, ex tax)Source: Calculated output
- minimumUnits
- Minimum profitable batch size (units)Source: Calculated output
- contributionAtMinimum
- Contribution at minimum batch (currency units, ex tax)Source: Calculated output
contributionAtMinimum = minimum units ร unit contribution โ batch setup costWhere
- setupCost
- Batch setup cost (currency units/batch, ex tax)Source: Business record
- unitContribution
- Unit contribution (currency units, ex tax)Source: Calculated output
- minimumUnits
- Minimum profitable batch size (units)Source: Calculated output
- contributionAtMinimum
- Contribution at minimum batch (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.
- Batch setup cost
- 1,000 currency units/batch, ex tax
- Selling price per unit
- 20 currency units/unit, ex tax
- Variable cost per unit
- 8 currency units/unit, ex tax
- Target batch contribution
- 500 currency units/batch, ex tax
- Maximum batch capacity
- 200 units/batch
Calculation and outputs
Unit contribution
unitContribution = selling price per unit โ variable cost per unit- Batch setup cost
- 1,000 currency units/batch, ex tax
- Selling price per unit
- 20 currency units/unit, ex tax
- Variable cost per unit
- 8 currency units/unit, ex tax
Engine result: 12 money
Minimum profitable batch size
minimumUnits = ceiling((batch setup cost + target batch contribution) / positive unit contribution)- Batch setup cost
- 1,000 currency units/batch, ex tax
- Variable cost per unit
- 8 currency units/unit, ex tax
- Target batch contribution
- 500 currency units/batch, ex tax
- Maximum batch capacity
- 200 units/batch
- Unit contribution
- 12 money
- Contribution at minimum batch
- 500 money
Engine result: 125 units
Contribution at minimum batch
contributionAtMinimum = minimum units ร unit contribution โ batch setup cost- Batch setup cost
- 1,000 currency units/batch, ex tax
- Variable cost per unit
- 8 currency units/unit, ex tax
- Target batch contribution
- 500 currency units/batch, ex tax
- Maximum batch capacity
- 200 units/batch
- Unit contribution
- 12 money
- Minimum profitable batch size
- 125 units
Engine result: 500 money
Example
The labelled rows below are formatted directly from the exact shared engine using the visible default inputs.
- Unit contribution
- 12.00
- Minimum profitable batch size
- 125 units
- Contribution at minimum batch
- 500.00
- Batch capacity status
- Capacity is sufficient
The minimum profitable batch size is 125 units.
Interpretation
Use whole-batch thresholds and capacity feasibility together; fractional or infeasible batches are not operational decisions.
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.
- Batch setup cost minimum
setupCost โฅ 0 currency units/batch, ex taxโ A lower value is rejected before calculation.- Batch setup cost maximum
setupCost โค 10,000,000 currency units/batch, ex taxโ A higher value is rejected before calculation.- Selling price per unit minimum
unitSellingPrice โฅ 0 currency units/unit, ex taxโ A lower value is rejected before calculation.- Selling price per unit maximum
unitSellingPrice โค 10,000,000 currency units/unit, ex taxโ A higher value is rejected before calculation.- Variable cost per unit minimum
unitVariableCost โฅ 0 currency units/unit, ex taxโ A lower value is rejected before calculation.- Variable cost per unit maximum
unitVariableCost โค 10,000,000 currency units/unit, ex taxโ A higher value is rejected before calculation.- Target batch contribution minimum
targetBatchContribution โฅ 0 currency units/batch, ex taxโ A lower value is rejected before calculation.- Target batch contribution maximum
targetBatchContribution โค 10,000,000 currency units/batch, ex taxโ A higher value is rejected before calculation.- Maximum batch capacity minimum
maximumCapacityUnits โฅ 0 units/batchโ A lower value is rejected before calculation.- Maximum batch capacity maximum
maximumCapacityUnits โค 100,000,000 units/batchโ 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 planner and methodology after pre-launch calculation, content, source and interaction review.
Related reading
Guides to interpret the decision and its assumptions.
- Small-Batch Manufacturing Economics
Reconcile setup cost, batch quantity, yield and usable output before selecting a minimum production batch.
Read guide