Blog · Board and management reporting
Build an ecommerce reporting package from order, return and product-cost exports. Follow the spreadsheet formulas, compare product and channel results, and reconcile the totals before using them.
Ecommerce reporting turns order, return and cost exports into a reconciled view of net sales and gross profit by product and channel. Start with the sales bridge, then add costs; a count of orders cannot tell you how much revenue survived discounts and returns.
The useful package answers what sold, what was reversed and what margin remained. The ecommerce dashboard example covers the shorter operating view once these report totals are ready.
Choose the reporting period, currency and included order statuses. Keep sales tax and customer shipping charges outside the merchandise example below. The company uses processed-date merchandise activity for September 2026, including refunds against older orders when processed during that month.
Distinguish physical returns from financial reversals. A customer can receive a goodwill refund without sending goods back; a canceled item can reverse revenue without ever being shipped. Shopify's sales-report documentation explicitly distinguishes physical returns from the broader sales-reversal category and explains that sales reports differ from payment reports.
Write your own report definitions beside the export labels. In this example, the refunds column contains only merchandise revenue reversals after the original discount. No other reversals occurred. A refund including tax must be split before entering that column.
Use the order-line export for order ID, line ID, product, channel, activity date, quantity, gross merchandise amount and allocated discounts. Use a refund export for the adjustment ID, original line ID, processing date and merchandise reversal. Obtain product costs and approved inventory cost recoveries from finance.
Match refund lines to original order lines before summarizing. Keep unmatched adjustments visible as exceptions. Allocate order-wide discounts across lines using a documented method, and ensure their allocated sum equals the original order discount.
The following illustrative US retailer has a deliberately small file with a different order on every row. Refunds and cost recoveries have already been matched to those lines. In a production export, several lines can share an order ID, so count distinct orders separately from product lines.
| Order ID | Channel | Product | Gross sales (USD) | Discounts (USD) | Merchandise refunds (USD) | Sold cost (USD) | Recovered cost (USD) |
|---|---|---|---|---|---|---|---|
| O101 | Direct | Mugs | 1,000 | 100 | 180 | 500 | 100 |
| O102 | Direct | Bags | 2,000 | 100 | 190 | 1,000 | 100 |
| O103 | Marketplace | Mugs | 1,500 | 0 | 300 | 750 | 150 |
| O104 | Marketplace | Bags | 1,000 | 0 | 0 | 500 | 0 |
| Total | 5,500 | 200 | 670 | 2,750 | 350 |
Recovered cost means finance approved reversing that cost from expense. Do not assume every refunded item returned to saleable inventory. For the underlying accounting measure, see cost of goods sold.
Paste the table into columns A:H, with headers in row 1. Add net sales in I, net product cost in J, gross profit in K and gross margin in L. Enter these formulas in row 2 and fill through row 5:
I2 = D2-E2-F2
J2 = G2-H2
K2 = I2-J2
L2 = IF(I2=0,"",K2/I2)
Format column L as a percentage. Display percentages to one decimal place; keep the underlying values unrounded.
| Order ID | Net sales (USD) | Net product cost (USD) | Gross profit (USD) | Gross margin |
|---|---|---|---|---|
| O101 | 720 | 400 | 320 | 44.4% |
| O102 | 1,710 | 900 | 810 | 47.4% |
| O103 | 1,200 | 600 | 600 | 50.0% |
| O104 | 1,000 | 500 | 500 | 50.0% |
| Total | 4,630 | 2,400 | 2,230 | 48.2% |
The total margin is =SUM(K2:K5)/SUM(I2:I5). It is not the average of line percentages. Gross profit margin explains that denominator and the distinction between margin and markup.
Put the channel label in N2. These Excel formulas return its net sales, net cost and gross profit:
=SUMIFS($I$2:$I$5,$B$2:$B$5,N2)
=SUMIFS($J$2:$J$5,$B$2:$B$5,N2)
=SUMIFS($K$2:$K$5,$B$2:$B$5,N2)
For a product summary, replace the criteria range $B$2:$B$5 with $C$2:$C$5 and use a product label. Microsoft documents SUMIFS for adding values that satisfy the specified conditions. Covirage is not affiliated with Microsoft or Shopify.
| View | Group | Net sales (USD) | Net cost (USD) | Gross profit (USD) |
|---|---|---|---|---|
| Channel | Direct | 2,430 | 1,300 | 1,130 |
| Channel | Marketplace | 2,200 | 1,100 | 1,100 |
| Product | Mugs | 1,920 | 1,000 | 920 |
| Product | Bags | 2,710 | 1,400 | 1,310 |
Each view independently totals $4,630 of sales, $2,400 of cost and $2,230 of gross profit. Never add the product view to the channel view: they describe the same transactions.
The sales bridge must close: $5,500 less $200 less $670 equals $4,630. The cost bridge must also close: $2,750 less $350 equals $2,400. Finally, $4,630 less $2,400 equals $2,230 of gross profit.
Tie each input column back to its source export, then reconcile the approved sales and cost totals to finance's ledger. Explain timing or scope differences explicitly. A report can add correctly while still omitting an entire refund file.
Bring a sample of your own order, refund and product-cost exports; Covirage maps the columns, and its tools compute and check the product and channel figures. The external AI model explains the result with every figure traced to its rows. Create a free Covirage account and set up your business.
See revenue driver analysis for the supporting business questions.
Include distinct orders, gross merchandise sales, discounts, merchandise refunds, net sales, net product cost and gross profit. Show product and channel views, the reporting dates, the return treatment and any missing costs so readers can interpret the totals.
No. An order report records sales activity, while a deposit reflects payment timing and settlement deductions. Fees, reserves, taxes and refunds can affect deposits. Reconcile settlement activity separately rather than treating a bank receipt as net merchandise sales.
Use the approved reporting policy. A period activity report records adjustments when processed; a cohort analysis follows returns back to the original orders. Label the basis clearly and preserve both dates rather than silently moving transactions between periods.