Growth Strategy
Before You Discount: Build a Conversion Hurdle from Contribution, Not Revenue
Model how much a consumer promotion must improve conversion to preserve contribution at equal traffic. Includes a cost contract, tested JavaScript, a worked scenario and a checkout-to-measurement handoff.
A promotion can deliver a better conversion rate and a worse commercial result. That is not a paradox: reducing the amount kept from each order means the next order may need to work much harder. Before debating which headline or coupon to launch, calculate the conversion hurdle implied by the offer. Then keep that arithmetic separate from the evidence that customers will actually respond.
Editorial disclosure: Original, AI-assisted Growthcraft Editorial synthesis. All prices, costs, visits and outcomes below are synthetic, not Akshay's client results or market benchmarks. The JavaScript reference is tested with Node.js 24. This is a planning model, not an accounting standard, financial recommendation, statistical test or prediction of customer demand.
Four decisions to take away
- Resolve the effective checkout price before modelling the offer; the advertised coupon is not the complete economic contract.
- Calculate contribution per order under both offers, with each cost included once.
- Use equal eligible traffic to derive a conversion hurdle, and distinguish percentage-point change from relative lift.
- Treat the hurdle as a question for a valid evidence design—not as a forecast, a significance threshold or automatic launch approval.
Why this deserves a separate review
Shopify's 26 August 2026 profitability guide puts cost and profitability review alongside sales growth. That is a timely qualitative topic signal, not proof of search demand or a new universal margin benchmark. The method here adds a narrow, reproducible decision model for a specific consumer promotion. It does not import the guide's third-party statistics or promise that a discount is the right strategy.
This question differs from estimating incremental media profit or measuring repeat-purchase payback. In those analyses, the outcome or cohort already exists under a chosen convention. Here, a merchant is changing the immediate economic value of an order and asking what conversion response would preserve a reference contribution amount. It is useful before committing creative effort and useful again when reviewing actual results, provided the scope remains comparable.
The model should help a team reject an impossible scenario quickly, identify a fragile offer and specify the evidence needed next. It is not intended to solve every pricing problem. Inventory clearance, strategic loss-leading, bundles that alter product mix and subscriptions with meaningful future value may require different objective functions. Name the business objective before choosing an equation; do not quietly stretch this one until it endorses the desired campaign.
Start with an offer contract, not a coupon label
Write down the eligible basket, customer conditions, exclusions and actual amount paid. Verify representative carts, including an existing discount and an excluded item, using an authorised test flow. Shopify documents that product adjustments precede order adjustments, while multiple percentage order discounts may share the same subtotal. The practical consequence is to inspect the actual eligible combination rather than assume a universal multiplication rule. Account settings and eligibility must be checked.
For the simple model, translate that verified outcome into an effective reduction on one comparable tax-exclusive basket. If a reference basket of 80 becomes 64, the effective reduction is 20%. A separate delivery subsidy belongs in an explicit cost line if it is not already reflected in revenue or shared costs. A gift with a retail value of 15 does not necessarily cost the merchant 15; model its actual scoped economic cost and explain the choice.
A realistic contract also identifies which visits can receive the offer. An all-site conversion rate is not necessarily the correct denominator for a discount shown only to eligible first-time shoppers. Keep targeting rules and qualification criteria stable enough to interpret the comparison. If eligibility changes midway, record a new version rather than combining the observations into one apparently consistent offer.
Build a cost contract that can be reconciled
Separate costs into four categories: shared variable cost per order, a percentage fee on revenue, additional promotion cost per order and an additional fixed campaign cost. Product cost, fulfilment and fixed payment charges can sit in the shared variable line. A promotion-only delivery subsidy belongs in the extra per-order line. Additional production cost for the campaign belongs in the fixed line. A cost cannot sit in two categories.
Real payment fees may be charged on a base that includes tax or shipping, or may combine percentages, fixed amounts and nonrefundable charges. This model applies the supplied percentage to tax-exclusive basket revenue. If that does not approximate the actual fee contract adequately, compute the fee separately and use a more detailed model. A convenient input field should never override the economic definition of the business.
Returns deserve their own note. You may include a documented expected return loss in the variable-cost assumption for planning, but that convention must be comparable across offers. A promotion can change product mix and return behaviour. For a realised review, wait for the chosen maturity window or present an explicitly provisional result. Do not deduct refunded sales from revenue and then deduct the same full refund again as cost. Inventory recovery, handling and sunk delivery expense have different meanings.
Common acquisition spending cancels from the difference only if it is genuinely common. If the promotion needs additional media, include the relevant incremental spending in campaign cost. Fixed overhead remains outside the contribution model; therefore a positive result is not company net profit. Likewise, the model excludes repeat-purchase value. Keep any follow-on value analysis separate rather than using an optimistic lifetime value to conceal an unfavourable immediate comparison.
Derive the equal-traffic hurdle
Let V be the eligible visits in each scenario and b the reference conversion rate as a fraction. Let P be reference basket revenue, f the revenue-based fee fraction and C the shared variable cost. Reference contribution per order is m0 = P × (1 − f) − C. Reference total contribution is B = V × b × m0. This tool requires m0 to be positive; a loss-making reference needs a different diagnostic before optimising a discount against it.
For the promotion, d is the effective discount fraction, S the extra variable cost per order and K the additional fixed campaign cost. Promotion contribution per order is m1 = P × (1 − d) × (1 − f) − C − S. At assumed conversion p, promotion total is A = V × p × m1 − K. The contribution change is A − B. Equal traffic is a modelling constraint, not a claim that two real historical periods had identical audiences.
When m1 is positive, set A equal to B and solve: q = (B + K) / (V × m1). This q is the required conversion fraction. Report 100 × (q − b) as the percentage-point change and q / b − 1 as relative lift when b is positive. At b = 0, relative lift is undefined. Neither quantity supplies a confidence interval, a required sample size or an estimate of price elasticity.
At m1 ≤ 0, more promotional orders cannot improve contribution under these assumptions. With zero reference orders and zero extra campaign cost, zero promotional orders can tie the reference, but that is not a useful growth hurdle. For positive m1, a required rate above 100% is impossible when each visit can produce at most one qualifying order. A rate below 100% is merely mathematically possible; reaching it might still be commercially implausible.
Work through a promotion that grows orders but loses contribution
Use a synthetic EUR basket priced at 80, with shared variable cost 38 and a 2.5% revenue fee. Reference contribution per order is 80 × 0.975 − 38 = 40. At 10,000 eligible visits and 2% conversion, the reference produces 200 expected orders and 8,000 in contribution. The scenario is stated in expected counts, so a fractional result in another example would be legitimate planning arithmetic rather than a fraction of an actual invoice.
Now apply an effective 20% discount and an additional delivery subsidy of 2 per order. Basket revenue becomes 64 and contribution per order becomes 64 × 0.975 − 38 − 2 = 22.40. Assume conversion rises to 3% and extra campaign cost is 500. The promotion produces 300 expected orders, yet contribution is only 300 × 22.40 − 500 = 6,220. The difference is −1,780.
| Quantity | Reference | Promotion assumption |
|---|---|---|
| Eligible visits | 10,000 | 10,000 |
| Conversion | 2% | 3% |
| Expected orders | 200 | 300 |
| Contribution per order | 40.00 | 22.40 |
| Additional campaign cost | 0 | 500 |
| Scoped contribution | 8,000 | 6,220 |
The break-even conversion fraction is 8,500 / 224,000 = 0.03794642857…, or about 3.7946%. Relative to the reference, that is +1.7946 percentage points and +89.73%. Saying “conversion increased by 50%” describes the proposed 2% to 3% change accurately, but does not answer whether the promotion protects contribution. This is exactly the distinction the review must preserve.
Run a minimal reference calculation
The following JavaScript uses fractions for rates, unlike the tool's percentage-entry interface. It is deliberately a small reference for the worked example, not a replacement for the interactive tool's full validation and scope checks. It rejects non-finite inputs, invalid rates, zero visits and nonpositive reference contribution. It uses floating-point planning arithmetic; do not use it to post customer charges or accounting entries.
function contributionHurdle({ price, discount, cost, fee, subsidy,
visits, baseline, proposed, campaign }) {
const values = [price, discount, cost, fee, subsidy,
visits, baseline, proposed, campaign];
if (values.some(n => typeof n !== 'number' || !Number.isFinite(n) || n < 0 || n > 1e9) ||
[discount, fee, baseline, proposed].some(n => n > 1) ||
price === 0 || !Number.isSafeInteger(visits) || visits === 0)
throw new Error('Invalid scenario');
const m0 = price * (1 - fee) - cost;
if (m0 <= 0) throw new Error('Reference contribution must be positive');
const m1 = price * (1 - discount) * (1 - fee) - cost - subsidy;
const reference = visits * baseline * m0;
const promotion = visits * proposed * m1 - campaign;
const raw = m1 > 0 ? (reference + campaign) / visits / m1 : null;
const required = raw !== null && Number.isFinite(raw * 100) ? raw : null;
return { m0, m1, reference, promotion,
change: promotion - reference, required };
}
console.log(contributionHurdle({ price: 80, discount: .2, cost: 38,
fee: .025, subsidy: 2, visits: 10000, baseline: .02,
proposed: .03, campaign: 500 }));
// m0=40; m1=22.4; reference=8000; promotion=6220;
// change=-1780; required approximately 0.03794642857142857
Test the example and then change the discount to zero, remove the subsidy and campaign cost, and match the two conversion rates. Contribution change should become zero and the hurdle should equal the reference rate. At 100% discount, no positive order contribution remains under the stated costs. At zero reference conversion, the absolute hurdle may still be positive if campaign cost exists, while relative lift remains undefined.
Additional invariants are useful: increasing campaign cost cannot lower the hurdle; increasing effective discount cannot increase promotion unit contribution; and scaling every monetary input by the same positive factor leaves the required conversion unchanged. Scaling visits and fixed campaign cost together also preserves the hurdle. These properties catch formula regressions more effectively than checking only one attractive example. They do not validate the quality of the business assumptions.
Connect the model to measurement without confusing the two
Instrument the real checkout price rather than the headline percentage. Google's GA4 discount guide, updated 4 May 2026 and checked today, says the item discount is a monetary amount and the price must reflect the amount paid; Analytics does not subtract the discount automatically. This matters for a revenue bridge, but a correctly collected event still does not establish the causal effect of the offer.
Build an internal reconciliation table keyed by stable order identity, offer version and currency. Keep original revenue, effective reduction, paid revenue and each cost component traceable. Tie totals back to the order system and the documented refund cutoff. A coupon label alone does not identify the full offer when automatic adjustments or delivery rules also apply. Missing costs should have an explicit unresolved state instead of disappearing into a zero-filled export.
For a controlled evaluation, define assignment, eligibility, the outcome and analysis window before exposure. Compare contribution at the appropriate experimental unit, with uncertainty handled by the actual design. Do not compare redeemers with nonredeemers and call the gap incremental lift: redemption is customer behaviour after the offer, not random assignment. If traffic is too low for a suitable controlled test, qualitative offer research may reduce uncertainty, but cannot prove the numerical hurdle will be met.
Decide what to do next
Use three different questions in the review: Is the offer implemented as intended? Are the economics internally consistent? Is there credible evidence about response? A calculator can help with the second, assist in documenting the first and do almost nothing to establish the third. A sensible outcome is sometimes a smaller test, a revised subsidy, a clearer offer or a decision not to discount.
Record the original scenario, the uncertainty, an accountable owner and the next evidence required. Review return maturity, fulfilment capacity and customer expectations alongside contribution. Do not manufacture urgency, misstate the normal price or use a promising model as a reason to bypass commercial or legal review. The next campaign should inherit a clearer decision record, not merely a spreadsheet with a green cell.
Start with the promotion review framework, explore your assumptions in the discount conversion hurdle calculator, and use the evidence review prompt to organise the handoff. For a different question—whether later orders repay acquisition cost—continue to the repeat-purchase contribution guide. Both models help expose assumptions; neither guarantees profitable growth.