How the calculation works
bundleRevenue = buyUnits * unitPrice
bundleCost = (buyUnits + freeUnits) * unitCost
bundleContribution = bundleRevenue - bundleCost
effectiveDiscountPct = freeUnits / (buyUnits + freeUnits) * 100
bundleMarginPct = bundleContribution / bundleRevenue * 100
requiredBundles = baselineUnits * (unitPrice - unitCost) / bundleContribution
A positive bundle contribution does not establish that the offer improves profit. The required volume depends on what customers would have bought without it.
A worked example
A €60 item costing €24 contributes €36 at full price. Buy one, get one free collects €60 but incurs €48 cost, leaving €12 per bundle and a 20% bundle margin. Matching the contribution from 1,000 full-price unit sales requires 3,000 BOGO bundles, delivering 6,000 units.
Use it carefully
- The model assumes identical unit prices and costs for paid and free items.
- A positive baseline contribution requires positive bundle contribution to have a finite sales-volume break-even.
- Round requiredBundles up for a whole-bundle target; label units and bundles separately.
- For buy one get one free, a 50% initial product margin leaves zero product contribution before any extra order costs.
- For different paid and free products, enter each product's separate cost in a campaign model instead of using this identical-item calculator.
- Order-level payment or shipping costs need separate treatment when they do not scale with the number of units.
Common questions
Is BOGO a 50% discount?
For two identical items where one is paid and one is free, the average price per delivered unit is half the regular price. Customer basket behavior can differ from a 50% discount on a single unit.
Why are bundles and units separated?
One bundle can contain several units. Comparing a bundle count directly with a baseline unit count hides how much inventory and cost the offer consumes.
Related calculations
Further context: Shopify: Buy X get Y discounts. Equations and examples were independently prepared for this calculator.
Bring a CSV to the MarginTrial workbench for contribution bridges, scenarios, and report exports.