In plain words
Gross revenue, for one order, is what the customer paid for the products after every discount, plus what they paid for shipping. Tax is excluded, and so is money collected for someone else.
Offer Suite freezes the sale as placed. Shopify rewrites an order's totals when it is edited, so a total read later can double an order that was only partly paid. A line that a paid edit adds after the sale, such as a post-purchase upsell, is stored when it arrives as a line of its own, costed at the order's date and counted in realized revenue and margin beside the sale, while the order's booked gross revenue stays what the sale was. Refunds net against the lines they refund. An edit to a line the order was placed with is recorded apart and is never added to the booked revenue.
Formula
- Line revenue = price × quantity − discounts allocated to the line (− its tax when prices include tax)
- Gross revenue = Σ line revenue + shipping revenue
Worked example
The $40.00 bag with free shipping books $40.00 of gross revenue. With prices that include 8% tax, the same order would book the price net of that tax, because tax is money the store collects for someone else.
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.
Gross revenue is not Shopify's total price
Shopify's total price includes tax and shipping before shipping discounts, and after an edit it reflects the edit. Offer Suite verified each money field against real orders before choosing which to read, and total price is not one of them.
Using it
Book revenue from what the order actually charged, line by line, and keep refunds and edits as separate records. A revenue figure that changes whenever an order is edited cannot be reconciled with the orders you shipped, and a margin built on it moves for reasons that have nothing to do with the offer.
In Offer Suite
Every Shopify money field Offer Suite reads was checked against real dev-store orders, including tax-inclusive and tax-exclusive markets, before it was used.
Source: Offer Suite's money definitions, checked against real Shopify orders.