Net sales are realised sales less refunds. Match cost to the pieces kept, classify returned goods after inspection, then subtract listed variable selling and return costs to calculate contribution. Divide by net sales only when net sales are above zero; contribution excludes overhead such as rent, salaries and finance.

The ticket price is not the money you keep

A ₹1,000 shirt with a ₹500 buying cost appears to offer a wide gap. Discounts, returned pieces and delivery charges change that position. Review a defined batch or selling period with all its adjustments, rather than comparing the buying rate with the ticket.

Shopify's sales-report definitions separate gross sales, discounts and sales reversals. Its profit-report guidance calculates gross margin using net sales and product cost. Other systems can use different labels, so check the report definition before comparing totals.

Follow one batch through its returns

All amounts below are illustrative and tax-exclusive. A shop sells 20 shirts at a ₹1,000 ticket price with a 10% discount on each. Two shirts are returned for full refunds of their discounted price. Both return in saleable condition and go back into stock.

Fictional batch sales and return calculation
LineCalculationAmount
Gross ticket value20 × ₹1,000₹20,000
Discounts20 × ₹100−₹2,000
Refunded product sales2 × ₹900−₹1,800
Net sales₹20,000 − ₹2,000 − ₹1,800₹16,200
Cost of 18 pieces kept18 × ₹500−₹9,000
Gross profit₹16,200 − ₹9,000₹7,200

Gross margin is ₹7,200 ÷ ₹16,200 = 44.44%. The two returned shirts retain their inventory value in this example. If they were damaged and could not be resold, their loss would need separate treatment.

Then include the costs of making those sales

Assume the batch incurred ₹400 packing, ₹500 outward delivery, ₹160 return handling and ₹324 payment charges. These are recorded costs for the example, not suggested rates.

Total additional selling cost is ₹1,384. The amount left after those costs is ₹7,200 − ₹1,384 = ₹5,816, or 35.90% of net sales. All these example selling costs vary with the batch. Call the result contribution after the listed selling costs. Rent, salaries and other unallocated overhead still sit outside it.

Check whether a marketplace settlement already deducted a fee before subtracting that fee again. Use one cost line per charge and retain its settlement or invoice reference.

Decide how to handle timing

A return processed this week may relate to a sale last month. A weekly sales report and a completed-batch view answer different questions. Use the weekly view for current activity; use a linked sale-and-return view to understand the outcome of that batch or promotion.

Do not force the two to match by changing dates. Label the period and method. For still-open return windows, mark the result as provisional and revisit it.

Compare channels on the same basis

  • Use the same tax basis and treatment of discounts.
  • Include each channel's relevant fees, shipping and return handling.
  • Separate saleable returns from damaged stock losses.
  • Keep shared overhead allocation consistent, or show it separately.
  • Check product mix before concluding that a channel itself is worse.

The useful owner question becomes: “After the customer returns and channel charges, which styles leave enough money?” That points to an action—price, purchase cost, promotion terms or return reasons—without confusing turnover with what remains.

ACCA distinguishes contribution from profit after fixed costs. The worked amounts here cover only the costs explicitly listed; do not treat an omitted cost as zero.

Handle damaged returns, partial refunds and zero sales

A saleable return can restore its product cost to inventory only when your accounting basis and inspection support that treatment. A damaged return may require a write-down or separate loss record. Do not put it back at full cost merely because the customer returned it.

For a partial refund, reduce realised sales by the refunded amount and keep the units and cost treatment tied to the actual outcome. If the customer keeps the item, its product cost remains with cost of sales. If it returns, inspect and classify it before reversing cost.

Gross margin percentage uses net sales as its denominator: gross profit ÷ net sales. Contribution percentage uses contribution ÷ net sales. When net sales are zero, the percentage is undefined; report the rupee loss or cost instead of dividing by zero.

Fictional batch summary after discounts, returns and listed selling costs
MeasureCalculation basisResult
Net salesRealised sales less refundsUse batch records
Gross profitNet sales less cost of pieces kept, adjusted for inspected returnsKeep return basis visible
ContributionGross profit less listed variable selling and return costsExcludes rent, salaries, finance and other overhead

Use the same batch or period when comparing channels. This sample can illustrate sales and return records; it does not establish a complete channel-margin calculator.

Questions you might ask

How do I calculate clothing margin after a discount?

Use actual net sales rather than ticket price. Subtract the matching product cost, then divide gross profit by net sales. Show further selling costs separately.

Should I keep the cost of a returned shirt in cost of sales?

In this example, saleable returned shirts go back into inventory and are excluded from the cost of pieces kept. Damaged returns and your accounting method require separate treatment.

Sources and further reading

  1. Shopify sales report definitions
  2. Shopify profit reports
  3. ACCA: contribution and fixed costs