Skip to main content

Methodology

Wholesale Order Profitability Planner methodology

Set a case price and minimum order quantity that protect the entered margin after order-level and payment-term costs. Price a wholesale order from case packs, product cost, handling, fulfilment, freight recovery, payment leakage, bad debt and funding time.

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

Units ordered
unitsOrdered = cases ordered * units per case

Where

casesOrdered
Cases ordered (whole cases/order)Source: Business record
unitsPerCase
Units per case (whole units/case)Source: Business record
unitsOrdered
Units ordered (units)Source: Calculated output
Product revenue
productRevenueExTax = cases ordered * wholesale price per case

Where

casesOrdered
Cases ordered (whole cases/order)Source: Business record
unitsPerCase
Units per case (whole units/case)Source: Business record
pricePerCaseExTax
Wholesale price per case (currency units/case, ex tax)Source: Business record
unitsOrdered
Units ordered (units)Source: Calculated output
productRevenueExTax
Product revenue (currency units, ex tax)Source: Calculated output
totalRevenueExTax
Total order revenue (currency units, ex tax)Source: Calculated output
Total order revenue
totalRevenueExTax = product revenue + freight recovered

Where

freightRecoveredExTax
Freight recovered (currency units/order, ex tax)Source: Business record
productRevenueExTax
Product revenue (currency units, ex tax)Source: Calculated output
totalRevenueExTax
Total order revenue (currency units, ex tax)Source: Calculated output
Product cost
productCostExTax = units ordered * product cost per unit

Where

productCostPerUnitExTax
Product cost per unit (currency units/unit, ex tax)Source: Business record
unitsOrdered
Units ordered (units)Source: Calculated output
productCostExTax
Product cost (currency units, ex tax)Source: Calculated output
totalCostExTax
Total wholesale order cost (currency units, ex tax)Source: Calculated output
Fulfilment and freight cost
fulfilmentCostExTax = pick/pack + case handling + freight

Where

unitsPerCase
Units per case (whole units/case)Source: Business record
handlingCostPerCaseExTax
Handling cost per case (currency units/case, ex tax)Source: Business record
freightCostExTax
Freight cost (currency units/order, ex tax)Source: Business record
fulfilmentCostExTax
Fulfilment and freight cost (currency units, ex tax)Source: Calculated output
totalCostExTax
Total wholesale order cost (currency units, ex tax)Source: Calculated output
Payment and bad-debt cost
paymentAndBadDebtCostExTax = total revenue * (payment fee + bad-debt rate)

Where

paymentFeeRate
Payment fee rate (decimal fraction of wholesale order revenue)Source: Business record
badDebtRate
Expected bad-debt rate (decimal fraction of wholesale order revenue not collected)Source: Business record
totalRevenueExTax
Total order revenue (currency units, ex tax)Source: Calculated output
paymentAndBadDebtCostExTax
Payment and bad-debt cost (currency units, ex tax)Source: Calculated output
totalCostExTax
Total wholesale order cost (currency units, ex tax)Source: Calculated output
Payment-term funding cost
fundingCostExTax = total revenue * annual funding rate * payment days / 365

Where

annualFundingRate
Annual funding rate (decimal annual funding rate)Source: Business record
totalRevenueExTax
Total order revenue (currency units, ex tax)Source: Calculated output
fundingCostExTax
Payment-term funding cost (currency units, ex tax)Source: Calculated output
totalCostExTax
Total wholesale order cost (currency units, ex tax)Source: Calculated output
Total wholesale order cost
totalCostExTax = product + fulfilment + payment leakage + funding

Where

productCostPerUnitExTax
Product cost per unit (currency units/unit, ex tax)Source: Business record
productCostExTax
Product cost (currency units, ex tax)Source: Calculated output
fulfilmentCostExTax
Fulfilment and freight cost (currency units, ex tax)Source: Calculated output
fundingCostExTax
Payment-term funding cost (currency units, ex tax)Source: Calculated output
totalCostExTax
Total wholesale order cost (currency units, ex tax)Source: Calculated output
Wholesale order contribution
contributionExTax = total revenue - total order cost

Where

totalRevenueExTax
Total order revenue (currency units, ex tax)Source: Calculated output
totalCostExTax
Total wholesale order cost (currency units, ex tax)Source: Calculated output
contributionExTax
Wholesale order contribution (currency units, ex tax)Source: Calculated output
Wholesale order margin
contributionMargin = contribution / total revenue

Where

totalRevenueExTax
Total order revenue (currency units, ex tax)Source: Calculated output
contributionExTax
Wholesale order contribution (currency units, ex tax)Source: Calculated output
contributionMargin
Wholesale order margin (decimal rate)Source: Calculated output
Required price per case
requiredPricePerCaseExTax = protected order cost and leakage solved at target margin

Where

unitsPerCase
Units per case (whole units/case)Source: Business record
pricePerCaseExTax
Wholesale price per case (currency units/case, ex tax)Source: Business record
targetMargin
Target wholesale margin (decimal fraction of wholesale order revenue)Source: Business record
totalCostExTax
Total wholesale order cost (currency units, ex tax)Source: Calculated output
requiredPricePerCaseExTax
Required price per case (currency units, ex tax)Source: Calculated output
Minimum order cases
minimumOrderCases = fixed order cost / contribution per case before fixed cost

Where

unitsPerCase
Units per case (whole units/case)Source: Business record
totalCostExTax
Total wholesale order cost (currency units, ex tax)Source: Calculated output
contributionExTax
Wholesale order contribution (currency units, ex tax)Source: Calculated output
minimumOrderCases
Minimum order cases (units)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 below are evaluated at render time by the same shared engine and visible default fixture as the interactive workflow.

Cases ordered
10 whole cases/order
Units per case
12 whole units/case
Wholesale price per case
120 currency units/case, ex tax
Product cost per unit
5 currency units/unit, ex tax
Pick and pack cost per order
50 currency units/order, ex tax
Handling cost per case
2 currency units/case, ex tax
Freight cost
100 currency units/order, ex tax
Freight recovered
80 currency units/order, ex tax
Payment fee rate
0.02 decimal fraction of wholesale order revenue
Expected bad-debt rate
0.01 decimal fraction of wholesale order revenue not collected
Payment term days
30 whole days/order payment term
Annual funding rate
0.12 decimal annual funding rate
Target wholesale margin
0.25 decimal fraction of wholesale order revenue

Calculation and outputs

  1. Units ordered

    unitsOrdered = cases ordered * units per case
    Cases ordered
    10 whole cases/order
    Units per case
    12 whole units/case
    Wholesale price per case
    120 currency units/case, ex tax
    Handling cost per case
    2 currency units/case, ex tax
    Required price per case
    100.429784 money
    Minimum order cases
    2 units

    Engine result: 120 units

  2. Product revenue

    productRevenueExTax = cases ordered * wholesale price per case
    Cases ordered
    10 whole cases/order
    Units per case
    12 whole units/case
    Wholesale price per case
    120 currency units/case, ex tax
    Handling cost per case
    2 currency units/case, ex tax
    Target wholesale margin
    0.25 decimal fraction of wholesale order revenue
    Units ordered
    120 units
    Total wholesale order cost
    821.024658 money
    Wholesale order contribution
    458.975342 money
    Wholesale order margin
    0.358574 percent
    Required price per case
    100.429784 money
    Minimum order cases
    2 units

    Engine result: 1,200 money

  3. Total order revenue

    totalRevenueExTax = product revenue + freight recovered
    Product cost per unit
    5 currency units/unit, ex tax
    Freight cost
    100 currency units/order, ex tax
    Freight recovered
    80 currency units/order, ex tax
    Product revenue
    1,200 money
    Product cost
    600 money
    Fulfilment and freight cost
    170 money

    Engine result: 1,280 money

  4. Product cost

    productCostExTax = units ordered * product cost per unit
    Cases ordered
    10 whole cases/order
    Product cost per unit
    5 currency units/unit, ex tax
    Pick and pack cost per order
    50 currency units/order, ex tax
    Handling cost per case
    2 currency units/case, ex tax
    Freight cost
    100 currency units/order, ex tax
    Units ordered
    120 units
    Product revenue
    1,200 money
    Fulfilment and freight cost
    170 money
    Payment and bad-debt cost
    38.4 money
    Payment-term funding cost
    12.624658 money
    Total wholesale order cost
    821.024658 money

    Engine result: 600 money

  5. Fulfilment and freight cost

    fulfilmentCostExTax = pick/pack + case handling + freight
    Units per case
    12 whole units/case
    Wholesale price per case
    120 currency units/case, ex tax
    Pick and pack cost per order
    50 currency units/order, ex tax
    Handling cost per case
    2 currency units/case, ex tax
    Freight cost
    100 currency units/order, ex tax
    Freight recovered
    80 currency units/order, ex tax
    Required price per case
    100.429784 money

    Engine result: 170 money

  6. Payment and bad-debt cost

    paymentAndBadDebtCostExTax = total revenue * (payment fee + bad-debt rate)
    Payment fee rate
    0.02 decimal fraction of wholesale order revenue
    Expected bad-debt rate
    0.01 decimal fraction of wholesale order revenue not collected
    Payment term days
    30 whole days/order payment term
    Annual funding rate
    0.12 decimal annual funding rate
    Product revenue
    1,200 money
    Total order revenue
    1,280 money
    Payment-term funding cost
    12.624658 money

    Engine result: 38.4 money

  7. Payment-term funding cost

    fundingCostExTax = total revenue * annual funding rate * payment days / 365
    Payment fee rate
    0.02 decimal fraction of wholesale order revenue
    Expected bad-debt rate
    0.01 decimal fraction of wholesale order revenue not collected
    Payment term days
    30 whole days/order payment term
    Annual funding rate
    0.12 decimal annual funding rate
    Product revenue
    1,200 money
    Total order revenue
    1,280 money
    Payment and bad-debt cost
    38.4 money

    Engine result: 12.624658 money

  8. Total wholesale order cost

    totalCostExTax = product + fulfilment + payment leakage + funding
    Product cost per unit
    5 currency units/unit, ex tax
    Payment fee rate
    0.02 decimal fraction of wholesale order revenue
    Payment term days
    30 whole days/order payment term
    Annual funding rate
    0.12 decimal annual funding rate
    Product revenue
    1,200 money
    Product cost
    600 money
    Fulfilment and freight cost
    170 money
    Payment and bad-debt cost
    38.4 money
    Payment-term funding cost
    12.624658 money

    Engine result: 821.024658 money

  9. Wholesale order contribution

    contributionExTax = total revenue - total order cost
    Product cost per unit
    5 currency units/unit, ex tax
    Pick and pack cost per order
    50 currency units/order, ex tax
    Handling cost per case
    2 currency units/case, ex tax
    Freight cost
    100 currency units/order, ex tax
    Product revenue
    1,200 money
    Total order revenue
    1,280 money
    Product cost
    600 money
    Fulfilment and freight cost
    170 money
    Payment and bad-debt cost
    38.4 money
    Payment-term funding cost
    12.624658 money
    Total wholesale order cost
    821.024658 money
    Wholesale order margin
    0.358574 percent
    Minimum order cases
    2 units

    Engine result: 458.975342 money

  10. Wholesale order margin

    contributionMargin = contribution / total revenue
    Product revenue
    1,200 money
    Total order revenue
    1,280 money
    Wholesale order contribution
    458.975342 money

    Engine result: 0.358574 percent

  11. Required price per case

    requiredPricePerCaseExTax = protected order cost and leakage solved at target margin
    Product cost per unit
    5 currency units/unit, ex tax
    Pick and pack cost per order
    50 currency units/order, ex tax
    Handling cost per case
    2 currency units/case, ex tax
    Freight cost
    100 currency units/order, ex tax
    Target wholesale margin
    0.25 decimal fraction of wholesale order revenue
    Total order revenue
    1,280 money
    Product cost
    600 money
    Fulfilment and freight cost
    170 money
    Payment and bad-debt cost
    38.4 money
    Payment-term funding cost
    12.624658 money
    Total wholesale order cost
    821.024658 money
    Wholesale order contribution
    458.975342 money
    Wholesale order margin
    0.358574 percent
    Minimum order cases
    2 units

    Engine result: 100.429784 money

  12. Minimum order cases

    minimumOrderCases = fixed order cost / contribution per case before fixed cost
    Units per case
    12 whole units/case
    Wholesale price per case
    120 currency units/case, ex tax
    Product cost per unit
    5 currency units/unit, ex tax
    Pick and pack cost per order
    50 currency units/order, ex tax
    Handling cost per case
    2 currency units/case, ex tax
    Freight cost
    100 currency units/order, ex tax
    Total order revenue
    1,280 money
    Product cost
    600 money
    Fulfilment and freight cost
    170 money
    Payment and bad-debt cost
    38.4 money
    Payment-term funding cost
    12.624658 money
    Total wholesale order cost
    821.024658 money
    Wholesale order contribution
    458.975342 money
    Wholesale order margin
    0.358574 percent
    Required price per case
    100.429784 money

    Engine result: 2 units

Example

The worked rows below are evaluated at render time by the same shared engine and visible default fixture as the interactive workflow.

Units ordered
120
Product revenue
1,200 currency units
Total order revenue
1,280 currency units
Product cost
600 currency units
Fulfilment and freight cost
170 currency units
Payment and bad-debt cost
38.4 currency units
Payment-term funding cost
12.62 currency units
Total wholesale order cost
821.02 currency units
Wholesale order contribution
458.98 currency units
Wholesale order margin
35.9%
Required price per case
100.43 currency units
Minimum order cases
2

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

Interpretation

Order contribution must include discount, freight, fulfilment and payment-term burden.

3. Validation and boundary checks

  • All inputs must be finite and inside the visible validation boundaries.
  • Rates are retained as decimal values and shown as percentages only at the presentation boundary.
  • The worked fixture must expose every declared result: unitsOrdered, productRevenueExTax, totalRevenueExTax, productCostExTax, fulfilmentCostExTax, paymentAndBadDebtCostExTax, fundingCostExTax, totalCostExTax, contributionExTax, contributionMargin, requiredPricePerCaseExTax, minimumOrderCases.
  • Scenario comparison changes one declared driver while holding the remaining industry records constant.
Cases ordered minimum
casesOrdered โ‰ฅ 0 whole cases/order โ€” A lower value is rejected before calculation.
Cases ordered maximum
casesOrdered โ‰ค 100,000,000 whole cases/order โ€” A higher value is rejected before calculation.
Units per case minimum
unitsPerCase โ‰ฅ 1 whole units/case โ€” A lower value is rejected before calculation.
Units per case maximum
unitsPerCase โ‰ค 100,000 whole units/case โ€” A higher value is rejected before calculation.
Wholesale price per case minimum
pricePerCaseExTax โ‰ฅ 0 currency units/case, ex tax โ€” A lower value is rejected before calculation.
Wholesale price per case maximum
pricePerCaseExTax โ‰ค 10,000,000 currency units/case, ex tax โ€” A higher value is rejected before calculation.
Product cost per unit minimum
productCostPerUnitExTax โ‰ฅ 0 currency units/unit, ex tax โ€” A lower value is rejected before calculation.
Product cost per unit maximum
productCostPerUnitExTax โ‰ค 10,000,000 currency units/unit, ex tax โ€” A higher value is rejected before calculation.
Pick and pack cost per order minimum
pickPackCostPerOrderExTax โ‰ฅ 0 currency units/order, ex tax โ€” A lower value is rejected before calculation.
Pick and pack cost per order maximum
pickPackCostPerOrderExTax โ‰ค 10,000,000 currency units/order, ex tax โ€” A higher value is rejected before calculation.
Handling cost per case minimum
handlingCostPerCaseExTax โ‰ฅ 0 currency units/case, ex tax โ€” A lower value is rejected before calculation.
Handling cost per case maximum
handlingCostPerCaseExTax โ‰ค 10,000,000 currency units/case, ex tax โ€” A higher value is rejected before calculation.
Freight cost minimum
freightCostExTax โ‰ฅ 0 currency units/order, ex tax โ€” A lower value is rejected before calculation.
Freight cost maximum
freightCostExTax โ‰ค 10,000,000 currency units/order, ex tax โ€” A higher value is rejected before calculation.
Freight recovered minimum
freightRecoveredExTax โ‰ฅ 0 currency units/order, ex tax โ€” A lower value is rejected before calculation.
Freight recovered maximum
freightRecoveredExTax โ‰ค 10,000,000 currency units/order, ex tax โ€” A higher value is rejected before calculation.
Payment fee rate minimum
paymentFeeRate โ‰ฅ 0 decimal fraction of wholesale order revenue โ€” A lower value is rejected before calculation.
Payment fee rate maximum
paymentFeeRate โ‰ค 1 decimal fraction of wholesale order revenue โ€” A higher value is rejected before calculation.
Expected bad-debt rate minimum
badDebtRate โ‰ฅ 0 decimal fraction of wholesale order revenue not collected โ€” A lower value is rejected before calculation.
Expected bad-debt rate maximum
badDebtRate โ‰ค 1 decimal fraction of wholesale order revenue not collected โ€” A higher value is rejected before calculation.
Payment term days minimum
paymentTermDays โ‰ฅ 0 whole days/order payment term โ€” A lower value is rejected before calculation.
Payment term days maximum
paymentTermDays โ‰ค 3,650 whole days/order payment term โ€” A higher value is rejected before calculation.
Annual funding rate minimum
annualFundingRate โ‰ฅ 0 decimal annual funding rate โ€” A lower value is rejected before calculation.
Annual funding rate maximum
annualFundingRate โ‰ค 1 decimal annual funding rate โ€” A higher value is rejected before calculation.
Target wholesale margin minimum
targetMargin โ‰ฅ 0 decimal fraction of wholesale order revenue โ€” A lower value is rejected before calculation.
Target wholesale margin maximum
targetMargin โ‰ค 0.99 decimal fraction of wholesale order revenue โ€” A higher value is rejected before calculation.

4. Assumptions and source classification

  • Costs, capacity, contract terms, tax rates and targets are supplied by the user.
  • No provider default, jurisdictional rule or industry benchmark is embedded.
  • The shared engine retains full precision and display formatting never feeds 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 are only as reliable as the timing, scope and basis of the entered records.
  • The workflow does not predict demand or establish accounting, tax, contractual or legal treatment.

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