Alibek, who owns an electronics shop in Almaty, asks for more budget on the laptop (product A): his ad account shows ROAS 5 for it, while the charger with cable (product B) has only 2.5. Each campaign spent 100,000 ₸. The accountant adds the cost of goods and order fulfilment, and the picture flips: A leaves minus 50,000 ₸, B plus 12,500 ₸.
The numbers in this lesson are illustrative. Your job here is to compare what the shop keeps, and then whether it can fulfil the next orders profitably. Revenue and ad spend alone are not enough for that.
Agree what the money includes
Revenue in the calculation is already net of discounts and customer refunds, and excludes indirect taxes. Variable costs include the goods sold, payment acceptance, fulfilment, commissions, packaging and return losses for this group. Advertising gets its own line.
Before advertising, the laptop keeps 10% of revenue and the charger 45%. We call that remainder contribution: the shop pays for advertising and everything else out of it.
| Metric | Product A | Product B |
|---|---|---|
| Revenue after discounts and refunds | 500,000 ₸ | 250,000 ₸ |
| Variable costs excluding advertising | 450,000 ₸ | 137,500 ₸ |
| Contribution before advertising | 50,000 ₸ | 112,500 ₸ |
| Advertising | 100,000 ₸ | 100,000 ₸ |
| Contribution after advertising | Minus 50,000 ₸ | 12,500 ₸ |
A gives 500,000 - 450,000 = 50,000 ₸ before advertising, and after 100,000 ₸ of ads it is at minus 50,000 ₸. B gives 250,000 - 137,500 = 112,500 ₸, then 12,500 ₸ after advertising. Fixed costs and taxes still come off before you reach net profit.
Contribution after advertising
Ad spend of 100,000 ₸ each
Product A: laptop
ROAS 5×
Contribution after ads: minus 50,000 ₸
Product B: charger and cable
ROAS 2.5×
Contribution after ads: 12,500 ₸
Fixed costs and taxes have not been deducted.
Count discounts and returns once
If a discount has already reduced revenue, do not deduct it a second time as an expense. The mistake is easy to make: the marketer takes revenue from the sales report and adds promo-code costs from another spreadsheet.
With a return, follow both the money and the goods. An undamaged item can go back into stock, and then its purchase cost is not a total loss. But shipping both ways, handling and a ruined box did cost money. Decide with accounting what exactly counts as a loss.
A July refund may belong to a June order. The cash report puts it in July; the economics of June orders put it in June. To judge a group of orders, link costs and refunds to the order while keeping the transaction date.
Recent orders will still collect refunds. So next to the result, note how many days the group has been observed and when the figures will update. Otherwise yesterday's campaign will look better than one closed long ago simply because its refunds have not arrived yet.
What a report called "Profit" shows
Gross profit, contribution and net profit subtract different costs, and the column name will not tell you which. Read the definition.
For example, Shopify calculates Gross profit by product as net sales minus recorded product cost. The report includes products whose cost was recorded at the time of sale. If some products had no cost recorded, that can explain a gap with the full sales report.
Product cost in that report is only part of the variable costs in our example: commissions, fulfilment, delivery and advertising are not in it. Take Shopify's gross profit, call it contribution after all costs, and you will raise the budget on a product that loses money, like Alibek's laptop.
One order is enough to reconcile: the amount after discount, the product cost, the related costs and any refund. When orders are linked to payments, you can reproduce the calculation outside the nice dashboard and then apply the same steps to the whole group.
What ROAS covers advertising
If the contribution share holds at 10%, every tenge of revenue leaves 0.10 ₸ before advertising. Covering 100,000 ₸ of ads takes 100,000 / 0.10 = 1,000,000 ₸ of revenue. Break-even ROAS is 1 / 0.10 = 10.
At 45% you need about 222,222 ₸ of revenue: 100,000 / 0.45. Break-even ROAS is about 2.22. That is why the laptop's ROAS 5 does not pay for its ads in our example, while the charger's 2.5 does.
These thresholds assume today's costs and order mix. If growth needs an additional warehouse shift, a different delivery method or a bigger discount, recalculate them.
There is also the question of what the ads actually did. The ad account may credit the campaign with a purchase that would have happened anyway. Added revenue is tested with a marketing effectiveness plan. The threshold says what the economics must look like; which sales would have happened without ads is something the attribution report will not show.
Tie contribution to stock
Even with a positive contribution, you do not move the whole budget to the charger at once. First find out how many chargers are in stock, when the next batch arrives and whether the shop can deliver where it promises. The product card should show what can be bought today, not yesterday's stock count.
For the next volume of orders, estimate acquisition cost and fulfilment costs again. The average cost of the last batch will change if cheap delivery runs out or orders start going to other regions.
The laptop may still pay off if people add other items to it. But that argument needs orders where the items were bought together, and the contribution of the whole basket. If the charger really was bought with the laptop, advertising is split between them by one rule and only once, and the basket total stays the same.
Your own website and a marketplace, Kaspi Magazin for example, are compared on the same line items. Commissions, delivery, returns and how long the money takes to arrive differ from platform to platform. Do not plug in a commission from memory: take it from the platform's current terms for that product.
Why a discount needs more sales
Take another product: price 10,000 ₸, variable costs excluding advertising 7,000 ₸, contribution 3,000 ₸. The shop wants a 10% discount. The new price is 9,000 ₸, costs stay the same, and contribution drops to 2,000 ₸.
The price fell by a tenth, contribution per unit by a third. A hundred units before the promotion left 100 × 3,000 = 300,000 ₸ before advertising. To earn the same after the discount you have to sell 300,000 / 2,000 = 150 units.
In this calculation advertising and delivery stayed the same. If another fifty units need more advertising or delivery gets more expensive, the old contribution will not survive those costs.
Promo-code buyers may include people who would have paid full price. Some simply move a purchase from next month into the promotion days. So a promotion is compared with a suitable period, and you watch what happens to sales after the discount ends.
A repeat purchase becomes a fact later
With a consumable, the next purchase comes naturally. After a laptop, the customer is more likely to need instructions, service or a compatible accessory. The terms of a loyalty programme are chosen for that need and costed with it.
After an order, the shop confirms it, explains delivery clearly and helps the customer get started with the product. An abandoned-cart reminder is switched off as soon as the order is placed, and you write to the person only on the terms they agreed to. Otherwise you get an annoyed customer instead of a second purchase.
Repeat orders are linked to the original group of new buyers and observed over the same period. Future LTV can be shown as a scenario with stated assumptions. But until the forecast money arrives, the confirmed loss on the first purchase stays in the calculation.
Exercise: recalculate the threshold after a promotion
Take a product of your client's and build a calculation that can be reproduced from orders.
0 of 6 done
Back to our product. After the discount it sells for 9,000 ₸ and leaves 2,000 ₸ before advertising. The contribution share is 2,000 / 9,000, about 22.22%, and break-even ROAS for advertising alone is 9,000 / 2,000 = 4.5. Before the promotion it was 10,000 / 3,000, about 3.33.
So the target ROAS the shop lived on before the discount may stop covering costs after it. Alibek's decision puts the new price, contribution, ad spend and stock side by side. The highest ROAS among products does not replace this calculation, and the laptop with ROAS 5 has already shown why.