Skip to main content

Methodology

Retail Markdown Profitability & Recovery methodology

Compare markdown profit and inventory cash recovery with baseline sell-through, holding cost and salvage value.

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

Markdown Unit Price
markdownUnitPrice = regular unit price ร— (1 โˆ’ markdown rate)

Where

regularUnitPrice
Regular unit price (currency units, ex tax)Source: Business record
markdownRate
Markdown rate (decimal rate)Source: Business record
markdownUnitPrice
Markdown Unit Price (currency units, ex tax)Source: Calculated output
Units Available For Markdown
unitsAvailableForMarkdown = starting stock โˆ’ prior full-price units

Where

startingUnits
Starting stock units (operational units)Source: Business record
markdownUnitPrice
Markdown Unit Price (currency units, ex tax)Source: Calculated output
unitsAvailableForMarkdown
Units Available For Markdown (units)Source: Calculated output
Markdown Units Sold
markdownUnitsSold = available units ร— markdown sell-through

Where

unitsAvailableForMarkdown
Units Available For Markdown (units)Source: Calculated output
markdownUnitsSold
Markdown Units Sold (units)Source: Calculated output
Baseline Contribution
baselineContribution = baseline sold contribution + baseline unsold recovery contribution

Where

baselineContribution
Baseline Contribution (currency units, ex tax)Source: Calculated output
Proposed Contribution
proposedContribution = markdown sold contribution + proposed unsold recovery contribution

Where

markdownUnitsSold
Markdown Units Sold (units)Source: Calculated output
proposedContribution
Proposed Contribution (currency units, ex tax)Source: Calculated output
Contribution Change
contributionChange = proposed contribution โˆ’ baseline contribution

Where

baselineContribution
Baseline Contribution (currency units, ex tax)Source: Calculated output
proposedContribution
Proposed Contribution (currency units, ex tax)Source: Calculated output
contributionChange
Contribution Change (currency units, ex tax)Source: Calculated output
Proposed Remaining Units
proposedRemainingUnits = units available โˆ’ proposed units sold

Where

proposedRemainingUnits
Proposed Remaining Units (units)Source: Calculated output
Recovered Cash
recoveredCash = full-price cash + markdown cash + salvage โˆ’ holding cost

Where

markdownUnitPrice
Markdown Unit Price (currency units, ex tax)Source: Calculated output
recoveredCash
Recovered Cash (currency units, ex tax)Source: Calculated output
Break Even Markdown Units
breakEvenMarkdownUnits = (baseline contribution โˆ’ all-unsold contribution) / (markdown price โˆ’ recovery per unsold unit)

Where

markdownUnitPrice
Markdown Unit Price (currency units, ex tax)Source: Calculated output
baselineContribution
Baseline Contribution (currency units, ex tax)Source: Calculated output
breakEvenMarkdownUnits
Break Even Markdown Units (units)Source: Calculated output
Break Even Markdown Sell Through
breakEvenMarkdownSellThrough = break-even markdown units / units available

Where

unitsAvailableForMarkdown
Units Available For Markdown (units)Source: Calculated output
breakEvenMarkdownUnits
Break Even Markdown Units (units)Source: Calculated output
breakEvenMarkdownSellThrough
Break Even Markdown Sell Through (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 below come directly from the exact engine and visible default fixture.

Regular unit price
100 currency units/planning period, ex tax
Unit inventory cost
40 currency units/planning period, ex tax
Starting stock units
100 whole product units
Units already sold at full price
40 currency units/planning period, ex tax
Markdown rate
0.2 proportion of regular unit price discounted
Expected markdown sell-through
0.75 proportion of the relevant inventory or price basis
Baseline full-price sell-through
0.3 proportion of the relevant inventory or price basis
Holding cost per leftover unit
5 currency units/planning period, ex tax
Salvage value per leftover unit
10 currency units/planning period, ex tax

Calculation and outputs

  1. markdownUnitPrice

    markdownUnitPrice = regular unit price ร— (1 โˆ’ markdown rate)
    Regular unit price
    100 currency units/planning period, ex tax
    Units already sold at full price
    40 currency units/planning period, ex tax
    Markdown rate
    0.2 proportion of regular unit price discounted
    Expected markdown sell-through
    0.75 proportion of the relevant inventory or price basis
    Baseline full-price sell-through
    0.3 proportion of the relevant inventory or price basis
    unitsAvailableForMarkdown
    60 units
    markdownUnitsSold
    45 units
    breakEvenMarkdownUnits
    22.8 units
    breakEvenMarkdownSellThrough
    0.38 percent

    Engine result: 80 money

  2. unitsAvailableForMarkdown

    unitsAvailableForMarkdown = starting stock โˆ’ prior full-price units
    Regular unit price
    100 currency units/planning period, ex tax
    Starting stock units
    100 whole product units
    Units already sold at full price
    40 currency units/planning period, ex tax
    Baseline full-price sell-through
    0.3 proportion of the relevant inventory or price basis
    markdownUnitPrice
    80 money

    Engine result: 60 units

  3. markdownUnitsSold

    markdownUnitsSold = available units ร— markdown sell-through
    Markdown rate
    0.2 proportion of regular unit price discounted
    Expected markdown sell-through
    0.75 proportion of the relevant inventory or price basis
    Baseline full-price sell-through
    0.3 proportion of the relevant inventory or price basis
    markdownUnitPrice
    80 money
    unitsAvailableForMarkdown
    60 units
    breakEvenMarkdownUnits
    22.8 units
    breakEvenMarkdownSellThrough
    0.38 percent

    Engine result: 45 units

  4. baselineContribution

    baselineContribution = baseline sold contribution + baseline unsold recovery contribution
    Units already sold at full price
    40 currency units/planning period, ex tax
    Baseline full-price sell-through
    0.3 proportion of the relevant inventory or price basis
    markdownUnitsSold
    45 units
    proposedContribution
    3,675 money
    contributionChange
    1,665 money

    Engine result: 2,010 money

  5. proposedContribution

    proposedContribution = markdown sold contribution + proposed unsold recovery contribution
    Units already sold at full price
    40 currency units/planning period, ex tax
    Markdown rate
    0.2 proportion of regular unit price discounted
    Expected markdown sell-through
    0.75 proportion of the relevant inventory or price basis
    Baseline full-price sell-through
    0.3 proportion of the relevant inventory or price basis
    markdownUnitPrice
    80 money
    unitsAvailableForMarkdown
    60 units
    markdownUnitsSold
    45 units
    baselineContribution
    2,010 money
    contributionChange
    1,665 money
    proposedRemainingUnits
    15 units
    breakEvenMarkdownUnits
    22.8 units
    breakEvenMarkdownSellThrough
    0.38 percent

    Engine result: 3,675 money

  6. contributionChange

    contributionChange = proposed contribution โˆ’ baseline contribution
    Baseline full-price sell-through
    0.3 proportion of the relevant inventory or price basis
    baselineContribution
    2,010 money
    proposedContribution
    3,675 money
    proposedRemainingUnits
    15 units

    Engine result: 1,665 money

  7. proposedRemainingUnits

    proposedRemainingUnits = units available โˆ’ proposed units sold
    Units already sold at full price
    40 currency units/planning period, ex tax
    unitsAvailableForMarkdown
    60 units
    markdownUnitsSold
    45 units
    proposedContribution
    3,675 money

    Engine result: 15 units

  8. recoveredCash

    recoveredCash = full-price cash + markdown cash + salvage โˆ’ holding cost
    Regular unit price
    100 currency units/planning period, ex tax
    Unit inventory cost
    40 currency units/planning period, ex tax
    Units already sold at full price
    40 currency units/planning period, ex tax
    Markdown rate
    0.2 proportion of regular unit price discounted
    Expected markdown sell-through
    0.75 proportion of the relevant inventory or price basis
    Baseline full-price sell-through
    0.3 proportion of the relevant inventory or price basis
    Holding cost per leftover unit
    5 currency units/planning period, ex tax
    Salvage value per leftover unit
    10 currency units/planning period, ex tax
    markdownUnitPrice
    80 money
    unitsAvailableForMarkdown
    60 units
    markdownUnitsSold
    45 units
    breakEvenMarkdownUnits
    22.8 units
    breakEvenMarkdownSellThrough
    0.38 percent

    Engine result: 7,675 money

  9. breakEvenMarkdownUnits

    breakEvenMarkdownUnits = (baseline contribution โˆ’ all-unsold contribution) / (markdown price โˆ’ recovery per unsold unit)
    Regular unit price
    100 currency units/planning period, ex tax
    Units already sold at full price
    40 currency units/planning period, ex tax
    Markdown rate
    0.2 proportion of regular unit price discounted
    Expected markdown sell-through
    0.75 proportion of the relevant inventory or price basis
    Baseline full-price sell-through
    0.3 proportion of the relevant inventory or price basis
    markdownUnitPrice
    80 money
    unitsAvailableForMarkdown
    60 units
    markdownUnitsSold
    45 units
    baselineContribution
    2,010 money
    proposedContribution
    3,675 money
    contributionChange
    1,665 money
    breakEvenMarkdownSellThrough
    0.38 percent

    Engine result: 22.8 units

  10. breakEvenMarkdownSellThrough

    breakEvenMarkdownSellThrough = break-even markdown units / units available
    Markdown rate
    0.2 proportion of regular unit price discounted
    Expected markdown sell-through
    0.75 proportion of the relevant inventory or price basis
    Baseline full-price sell-through
    0.3 proportion of the relevant inventory or price basis
    markdownUnitPrice
    80 money
    unitsAvailableForMarkdown
    60 units
    markdownUnitsSold
    45 units
    breakEvenMarkdownUnits
    22.8 units

    Engine result: 0.38 percent

Example

The worked rows below come directly from the exact engine and visible default fixture.

Markdown Unit Price
80 currency units
Units Available For Markdown
60
Markdown Units Sold
45
Baseline Contribution
2,010 currency units
Proposed Contribution
3,675 currency units
Contribution Change
1,665 currency units
Proposed Remaining Units
15
Recovered Cash
7,675 currency units
Break Even Markdown Units
22.8
Break Even Markdown Sell Through
38%

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

Interpretation

A positive change means the entered markdown sell-through and unsold recovery improve contribution versus the baseline scenario.

3. Validation and boundary checks

  • All values must be finite and inside the visible validation boundaries.
  • Rates are entered as percentages and calculations retain decimal precision.
  • Money and operational records use one consistent period and basis.
Regular unit price minimum
regularUnitPrice โ‰ฅ 0 currency units/planning period, ex tax โ€” A lower value is rejected before calculation.
Regular unit price maximum
regularUnitPrice โ‰ค 10,000,000 currency units/planning period, ex tax โ€” A higher value is rejected before calculation.
Unit inventory cost minimum
unitInventoryCost โ‰ฅ 0 currency units/planning period, ex tax โ€” A lower value is rejected before calculation.
Unit inventory cost maximum
unitInventoryCost โ‰ค 10,000,000 currency units/planning period, ex tax โ€” A higher value is rejected before calculation.
Starting stock units minimum
startingUnits โ‰ฅ 0 whole product units โ€” A lower value is rejected before calculation.
Starting stock units maximum
startingUnits โ‰ค 100,000,000 whole product units โ€” A higher value is rejected before calculation.
Units already sold at full price minimum
unitsSoldAtFullPrice โ‰ฅ 0 currency units/planning period, ex tax โ€” A lower value is rejected before calculation.
Units already sold at full price maximum
unitsSoldAtFullPrice โ‰ค 100,000,000 currency units/planning period, ex tax โ€” A higher value is rejected before calculation.
Markdown rate minimum
markdownRate โ‰ฅ 0 proportion of regular unit price discounted โ€” A lower value is rejected before calculation.
Markdown rate maximum
markdownRate โ‰ค 1 proportion of regular unit price discounted โ€” A higher value is rejected before calculation.
Expected markdown sell-through minimum
expectedMarkdownSellThroughRate โ‰ฅ 0 proportion of the relevant inventory or price basis โ€” A lower value is rejected before calculation.
Expected markdown sell-through maximum
expectedMarkdownSellThroughRate โ‰ค 1 proportion of the relevant inventory or price basis โ€” A higher value is rejected before calculation.
Baseline full-price sell-through minimum
baselineSellThroughWithoutMarkdownRate โ‰ฅ 0 proportion of the relevant inventory or price basis โ€” A lower value is rejected before calculation.
Baseline full-price sell-through maximum
baselineSellThroughWithoutMarkdownRate โ‰ค 1 proportion of the relevant inventory or price basis โ€” A higher value is rejected before calculation.
Holding cost per leftover unit minimum
holdingCostPerLeftoverUnit โ‰ฅ 0 currency units/planning period, ex tax โ€” A lower value is rejected before calculation.
Holding cost per leftover unit maximum
holdingCostPerLeftoverUnit โ‰ค 10,000,000 currency units/planning period, ex tax โ€” A higher value is rejected before calculation.
Salvage value per leftover unit minimum
salvageValuePerLeftoverUnit โ‰ฅ 0 currency units/planning period, ex tax โ€” A lower value is rejected before calculation.
Salvage value per leftover unit maximum
salvageValuePerLeftoverUnit โ‰ค 10,000,000 currency units/planning period, ex tax โ€” A higher value is rejected before calculation.

4. Assumptions and source classification

  • Demand, lead times, costs, tax and targets are supplied by the user.
  • No jurisdiction, supplier service level, industry benchmark or forecast is embedded.
  • The engine retains full 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 the quality and timing alignment of entered records.
  • The model does not replace inventory, 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

  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