In plain words
Discount allocation is the splitting of an order-level discount across the lines of the order. A $10 code on a cart of two products has to come off something, and the platform spreads it over the lines, usually in proportion to their prices.
It matters as soon as you ask what a single product earned. Each line's revenue is its price less its share of the discount. Leave the allocation out and every product in a discounted order looks as if it sold at full price.
Formula
- Line's share = order discount × line price ÷ sum of the discounted lines' prices
- Line revenue = price × quantity − the discount allocated to the line
Worked example
A $10.00 code on an order of a $40.00 bag and a $9.00 mug is split by price. The engine allocates $8.16 to the bag and $1.84 to the mug, in whole cents that add back to exactly $10.00.
The bag's line revenue is its price less its share, and the mug's likewise. Neither sold at its list price.
The example order
A $40.00 bag of coffee, shipped free, every cost counted
2 declared kinds cost nothing on this option
| Step | Grain | Amount |
|---|---|---|
| Revenue | – | $40.00 |
| Cost of goods | per unit | −$12.00 |
| Pick and pack | per order | −$1.18 |
| Packaging | per parcel | −$0.50 |
| Shipping label | per parcel | −$7.50 |
| Card fee per order | per order | −$0.30 |
| Refunds | percent | −$2.00 |
| Card processing | percent | −$1.16 |
| Contribution margin | – | $15.36 |
| 2 kinds costing nothing | – | $0.00 |
Computed by the margin engine in Offer Suite's own code, in whole cents, from a $40.00 bag of coffee with a $12.00 unit cost.
The discount total on an order is not a product discount
An order's discount total can include a shipping discount, which belongs to no product. And a discount limited to some products is spread over those lines only. Reading one total and dividing it evenly gets both cases wrong.
Using it
When you report revenue per product, use each line's price less the discount allocated to that line. Check how your platform splits a discount, and that the parts add up to the whole. Rounding each line separately can lose or invent a cent per order, which is enough to make two reports disagree.
In Offer Suite
Offer Suite reads the discount Shopify allocated to each line of an order and books line revenue as price times quantity less those allocations. It reads no order-level discount total, because that total includes shipping discounts.
Source: Offer Suite's money definitions, checked against real Shopify orders.