Practical promotion economics

Count every delivered unit in a BOGO offer.

Buy-one-get-one and buy-two-get-one offers change both the customer's payment and the inventory delivered. A useful review separates units, bundles and orders before comparing the offer with full-price sales.

Write the bundle as cash and costs

For identical items at regular price p and variable cost c, a buy-X-get-Y-free bundle collects X × p and incurs (X + Y) × c. Its contribution is the difference. The effective average discount is Y / (X + Y), but the bundle's customer behavior can differ from a percentage reduction on a single unit.

For mixed products, calculate the paid items' realized revenue and every item's separate cost. A free sample costing €2 is economically different from giving away another €20-cost main item, even if both are described as a free gift.

Worked example: buy two, get one free

An identical product sells for €30 and costs €12. A three-unit full-price basket contributes €54. Buy two, get one free collects €60, costs €36 and contributes €24 per bundle. The effective average price is €20 per delivered unit.

MeasureFull-price three unitsBuy two, get one free
Revenue€90€60
Variable cost€36€36
Contribution€54€24
Contribution per delivered unit€18€8

Compare against a stated counterfactual

Suppose the relevant baseline is 600 full-price units, contributing €10,800. Matching that contribution requires 450 promotional bundles: 1,350 delivered units at €24 contribution per bundle. That is 125% more units than the baseline, before additional campaign or order costs.

Do not call this a forecast of 450 orders. Some orders can contain multiple bundles, and existing customers may substitute the offer for purchases they would have made anyway. A unit target cannot identify incremental customers.

Map the bundle worksheet correctly

The bogo-volume-threshold template represents identical delivered items at their realized average unit price. Every paid and free delivered unit belongs in promo_units. The variable cost remains the cost of one delivered unit.

Worksheet itemCSV fieldExample
Delivered units: 450 bundles × 3promo_units1350
Average realized price: €60 / 3promo_price20
Regular unit priceregular_price30
Cost of one delivered itemunit_cost12
Full-price unit comparisonbaseline_units600

Include basket costs and eligibility

Shipping, packaging and payment fees may vary by order rather than by item. Allocate them using the expected basket structure, then disclose that allocation. Dividing a fixed order fee by an unchanged number of units can be wrong when the offer changes basket size.

The commerce platform's eligibility and combination rules also affect the realized offer. Shopify's Buy X get Y documentation describes customer-added qualifying items and discount conditions. Test those rules separately from the economic calculation; a profitable theoretical bundle does not confirm correct checkout behavior.

Frequently asked questions

Is a positive bundle contribution enough to approve BOGO? No. Compare it with what those customers and that inventory would have earned without the offer.

Can I use the average-price mapping for different products? Only with a defensible cost and revenue allocation. Prefer separate SKU rows, and retain the bundle calculation that explains the allocation.

Put it to work

Source context

Guide text and examples were prepared independently for MarginTrial. Sources provide the stated methodological or product context. They do not validate the hypothetical commercial outcomes.

Open the worked case