Every example and amount on this page is illustrative. It shows the method and is not a benchmark, a quote or advice.

What Revenue Analytics Actually Measures

Revenue analytics measures more than the sales total shown in a store admin. It traces what happened to each order: whether it was placed, cancelled, delivered, returned or refunded; what the customer actually paid after discounts; and which products, customers and channels generated the transaction. The aim is to move from recorded sales to revenue that can be used in a profit calculation.

The first distinction is between booked orders and realized revenue. A cancelled order has no completed sale. A returned order may have an original payment, but its refund reduces the revenue retained by the business. Discounts reduce the amount collected, while shipping charges, taxes and payment treatment need to remain identifiable rather than being folded into product sales without explanation. ORVX calculates realized revenue from delivered orders only and reports return rate by units and refund value against revenue.

Next, analytics attaches costs to those sales. Product cost comes from the merchant’s cost model, allowing revenue to be compared with cost of goods sold and producing gross profit and gross margin. Contribution profit goes further by including costs that vary with selling the order, such as advertising where the analysis calls for it. This is why a product can generate strong revenue but weak contribution after advertising.

Channel reporting adds the source of the sale without confusing channel efficiency with profitability. Store revenue, advertising spend, MER and attributed ROAS answer different questions: MER compares total advertising spend with overall revenue, while attributed ROAS assigns revenue to particular campaigns or channels. Attribution can make a channel look efficient even when discounts, returns or product costs leave little contribution; ROAS vs Profit explains that distinction.

A reliable view therefore preserves the path from order to product, collection, customer and channel. It should show profitability at those levels, not just aggregate revenue, while keeping each merchant’s trading currency separate. That gives a finance manager a number that can be reconciled to orders and refunds, and an operator a clearer view of which sales are actually worth repeating.

What revenue analytics follows from the transaction to contribution
LayerWhat it measures
OrdersPlaced, cancelled, delivered and returned transactions
RevenueAmount retained after discounts and refunds
CostsProduct cost and other variable selling costs
ChannelsRevenue and advertising spend by source, including MER and attributed ROAS
ProfitabilityGross profit and contribution after advertising by product, collection or customer

The Formula, Stated Plainly

Start with realized net revenue, not the sales figure displayed in the store admin. The calculation is: net revenue = gross sales − discounts − refunds, using delivered orders only. Gross sales is the full value of orders placed before those adjustments. It can include cancelled orders, returned orders, unfulfilled orders, discounts that reduced the amount collected, and orders recorded in a different trading currency. That makes it useful for measuring demand, but unsafe as the base for a profitability decision.

From there, subtract the costs that rise with each sale. Gross profit = net revenue − cost of goods sold (COGS). COGS is the product cost attached to the units sold, including the relevant unit cost for each SKU. Contribution after advertising = gross profit − variable selling costs − advertising spend. Variable selling costs can include payment processing, marketplace fees, pick-and-pack charges, delivery subsidies and return handling where those costs apply.

To reach operating profit, subtract fixed operating costs from contribution after advertising: net profit = contribution after advertising − fixed operating costs. Fixed costs include expenses such as salaries, software subscriptions, rent and professional services that do not change directly with the number of orders in the period. If the analysis is focused on whether a product or campaign pays for itself, contribution after advertising is often the useful intermediate measure; if it is assessing the whole business, net profit is the relevant endpoint.

Every figure needs the same period, currency and order-status rules. A £10,000 gross-sales period can become £8,800 of net revenue after £700 of discounts and £500 of refunds; applying product and selling costs to £10,000 would overstate the money available to cover costs. This is why ROAS versus profit matters: revenue and ad efficiency are inputs to the calculation, not profit itself.

A Worked Example From Order to Profit

Consider a Shopify apparel merchant reviewing one month of delivered orders. The store recorded $12,000 in gross sales. It issued $600 in discounts and $900 in refunds for returned items. Cancelled orders are excluded before the calculation, so realized revenue is:

$12,000 − $600 − $900 = $10,500.

The merchant then applies costs to that same revenue base. Product cost comes from the cost model: 100 hoodies at $25 ($2,500), 80 leggings at $15 ($1,200), and 50 T-shirts at $10 ($500), for $4,200 total. Payment fees are $315, fulfilment is $1,050, and advertising spend is $2,100. The result distinguishes gross profit from the amount left after acquiring the sale.

The cost percentages make the bridge easier to inspect. Product cost consumes 40% of realized revenue ($4,200 ÷ $10,500), payment fees consume 3% ($315 ÷ $10,500), fulfilment consumes 10%, and advertising consumes 20%. After all listed costs, $2,835 remains from every $10,500 of realized revenue, or $0.27 per revenue dollar. That is the monthly result under this cost model, not a per-order result: no order count is provided, so dividing by orders would create a different figure that cannot be calculated from these inputs.

The layers also answer different operating questions. Gross profit shows whether the products generate enough spread before selling and delivery costs. Contribution shows what remains after the costs directly associated with completing and acquiring sales. Net profit here means contribution after the stated advertising spend; it should not be treated as an all-in accounting result if other costs are absent from the model. Comparing another month requires the same delivered-order scope, refund treatment, product costs, and cost categories, otherwise a change in the percentage may reflect measurement rather than performance.

  • Gross profit = $10,500 − $4,200 = $6,300; gross margin = $6,300 ÷ $10,500 = 60%.
  • Contribution after payment and fulfilment = $10,500 − $4,200 − $315 − $1,050 = $4,935.
  • Net profit after advertising = $4,935 − $2,100 = $2,835; net margin = $2,835 ÷ $10,500 = 27%.
Worked monthly profit calculation
Line itemArithmeticAmount
Gross salesStarting delivered-order sales$12,000
DiscountsDeducted from gross sales−$600
RefundsReturned-item refunds−$900
Realized net revenue$12,000 − $600 − $900$10,500
Product cost$2,500 + $1,200 + $500−$4,200
Payment feesTransaction fees−$315
FulfilmentPacking and delivery−$1,050
AdvertisingCampaign spend−$2,100
Net profit$10,500 − all listed costs$2,835

The Mistakes That Make the Number Wrong

Timing can make a profitable month look weak, or a weak month look strong. An order placed on March 31 but delivered on April 2 belongs in April’s realized-revenue view if the analysis counts delivered orders. Ad spend recorded by invoice date, payment fees recorded by settlement date and refunds recorded by processing date can then land in different periods. Compare like with like: delivered orders, the related costs and refunds, using a clearly defined reporting window.

Duplicated costs are another common distortion. For illustration only, a $500 shipping bill may already be included in an imported fulfillment-cost field and then be added again as a manual expense. The reported profit is $500 too low. The same problem occurs when payment fees, agency retainers or subscription costs appear both in an order-level feed and in an overhead ledger. Every cost needs one source, one period and one allocation rule.

Refunds can disappear when reporting uses the original order export but not the later refund transaction. A $100 order with a $40 refund is not $100 of realized revenue; leaving out the refund overstates revenue and profit by $40 before any related return or restocking cost. Tax creates a similar error: if a customer pays $1,080 including $80 of sales tax, treating the full amount as revenue overstates the amount available to cover product and operating costs.

Inventory cost assumptions change gross profit even when sales do not. Applying a $12 product cost to an item that actually cost $15 understates cost of goods by $3 per unit; across 1,000 units, gross profit is overstated by $3,000. Finally, blended channel data can hide attribution errors. A platform may credit a sale to an ad, while total store revenue and total ad spend tell a different efficiency story. Compare attributed ROAS with MER rather than treating either as profit; ROAS vs Profit explains why. ORVX keeps those measures separate and computes product costs from a product cost model.

Turn the Result Into Better Decisions

Use profit as a comparison tool, not a single health score. Start with products and collections: compare profit per order and margin after product cost, then separate high revenue from high profitability. For illustration only, a $50 product with $20 profit produces a 40% margin; a $90 product with $18 profit produces only 20%. If the second item also creates more returns or support cost, increasing its sales may weaken the business. Keep, scale, test or fix the product based on its economics and its role in the basket.

Apply the same logic to channels and campaigns. Compare contribution after advertising, not attributed sales alone. A campaign generating $4,000 in attributed revenue from $1,000 of spend may look strong, but if product cost, discounts and fulfilment leave $700 before ads, it loses $300 after ads. Compare that result with blended MER, which uses total store revenue and total ad spend, and attributed ROAS, which assigns revenue to campaigns. The two answer different questions; ROAS vs profit explains why.

Discounts should be tested against the incremental profit they create. If a $10 discount raises an order from $40 to $55, but profit falls from $16 to $12, the promotion needs either a higher conversion rate or a larger basket to justify itself. Set a decision threshold in advance, such as retaining a discount only when profit per order stays at least 90% of the non-discount baseline.

For repeat orders, compare first-order profit with customer profit across 30, 60 or 90 days. A first order at negative $5 may be acceptable only if later orders reliably add more than $5 after costs and advertising. If repeat customers remain below break-even, reduce acquisition spend or fix the offer. ORVX surfaces these product, collection and customer comparisons and prioritises actions such as scale, reduce, fix economics, test or stop, with the underlying reason and confidence.

Example decision thresholds using the calculated profit
ComparisonTriggerAction
Product or collectionMargin below the store baseline by 10 percentage pointsReview price, cost, returns and discounting
CampaignContribution after advertising below zeroReduce or stop unless a measured repeat-order case exists
DiscountProfit per order below 90% of baselineTest a smaller discount or a basket-value condition
Repeat customerCumulative profit still negative after the chosen windowReduce acquisition spend or fix retention economics

Build a Revenue View You Can Trust

A trustworthy revenue view starts with one consistent grain: the order line. Keep the order ID, SKU, quantity, listed price, discount, refund, tax, shipping, order date, delivery date, return status, customer ID, sales channel and trading currency. Add product cost separately, because revenue data cannot produce profit without a cost model. Store order status transitions rather than only the latest status, so a cancelled order or later return cannot remain in a delivered-sales report.

Define the reporting rules in the data model, not in a spreadsheet note. Count revenue when the order is delivered; exclude cancelled and returned orders. Reconcile the resulting totals to the Shopify admin by period: order count, gross sales, discounts, refunds, delivered units and refund value should each tie out, with documented explanations for timing differences. Also check for duplicate order IDs, missing SKUs, unmapped costs, mixed currencies and refunds posted after the original sale period. A Shopify analytics dashboard is useful only when these definitions remain visible beside the result.

Use a daily refresh for operational exceptions, a weekly review for missing data and product-cost changes, and a monthly close for final reporting. After close, preserve the period’s inputs and record any restatement rather than silently replacing the number. ORVX connects to Shopify and advertising accounts, keeps each merchant’s currency separate, and reports revenue, cost, profit, returns and ad spend from the connected data. That makes the checks repeatable, but the owner still needs to approve the definitions and investigate exceptions.

Revenue analytics becomes useful when it connects every sale to the costs required to generate and fulfil it. Start with net revenue, apply consistent cost definitions, reconcile the result to your store and payment records, then use profit by product, channel and order type to decide where to scale, cut spend or change pricing.

General information only: tax, duty and import rules change and depend on your situation, so check with an accountant or the official source before acting.