Blog · Board and management reporting
Reconcile retail POS sales and returns before comparing stores and products. Use receipt counts, net sales and exact spreadsheet formulas to calculate basket value from an export.
Retail POS data analysis starts by reconciling merchandise sales and returns, then comparing stores on net sales, purchase receipts and basket value. Count completed purchases rather than exported lines. A report that mixes receipts, item lines and refunds can make the busiest store look less productive simply because it sells more items per visit.
Export a closed reporting period from the point-of-sale system. Keep receipt ID, store, business date, product group, transaction type and merchandise amount after discounts. Preserve the source line ID if a receipt has several products.
Choose the sales boundary before calculating anything. In this example, merchandise sales exclude sales tax, gift-card issuance and payment movements. Returns use their posting date, even when the original purchase happened earlier. This measures the period's recorded activity, rather than the eventual return rate of a purchase cohort.
Separate completed purchases, returns, voids and canceled transactions. A return amount appears once with a negative sign. If the source already supplies net sales, do not subtract its returns again. The broader retail POS analytics guide covers how these measures support recurring review; this method establishes the figures underneath it.
Consider a US retailer's closed business day. Each completed purchase in this small example contains one product group, so one sale row equals one purchase receipt. Columns A through E contain the following export rows.
| Receipt | Store | Product group | Type | Merchandise amount (USD) |
|---|---|---|---|---|
| P1 | North | Shirts | Sale | 80 |
| P2 | North | Jackets | Sale | 120 |
| P3 | North | Shirts | Sale | 100 |
| R1 | North | Shirts | Return | -40 |
| P4 | South | Shirts | Sale | 60 |
| P5 | South | Jackets | Sale | 90 |
| R2 | South | Jackets | Return | -30 |
For a store summary, put North in H2 and South in H3. In I2, sum sales; in J2, turn the signed return total into a positive deduction:
=SUMIFS($E$2:$E$8,$B$2:$B$8,H2,$D$2:$D$8,"Sale")
=-SUMIFS($E$2:$E$8,$B$2:$B$8,H2,$D$2:$D$8,"Return")
Microsoft documents SUMIFS as summing values that meet multiple criteria. Here those criteria are store and transaction type. Fill both formulas down, keeping the source ranges fixed.
Net sales in K2, purchase receipt count in L2 and return-adjusted basket value in M2 are:
=I2-J2
=COUNTIFS($B$2:$B$8,H2,$D$2:$D$8,"Sale")
=IF(L2=0,"",K2/L2)
COUNTIFS counts rows satisfying every specified condition. That makes the count valid for this receipt-level example. For an item-level export, first create a purchase-receipt summary with one row per store and receipt ID; otherwise the formula counts items. Covirage is not affiliated with Microsoft.
The sales-only basket is sales before returns divided by purchase receipts. The return-adjusted basket uses net sales over the same denominator. Both can help, provided their labels make the treatment clear.
| Store | Sales (USD) | Returns (USD) | Net sales (USD) | Purchase receipts | Sales-only basket (USD) | Return-adjusted basket (USD) |
|---|---|---|---|---|---|---|
| North | 300 | 40 | 260 | 3 | 100.00 | 86.67 |
| South | 150 | 30 | 120 | 2 | 75.00 | 60.00 |
| Total | 450 | 70 | 380 | 5 | 90.00 | 76.00 |
The sales-only basket formula is =IF(L2=0,"",I2/L2). Round displayed dollars to two decimals, but retain full precision in calculations. The total return-adjusted basket is 380 / 5 = $76.00; it is not the average of the two store results.
North has both higher purchase basket value and higher net sales. That does not establish better profitability: these rows contain no inventory cost or labor expense. Return deductions also include purchases from earlier dates, so the adjusted basket is a period reporting measure rather than the value of a typical current purchase.
The first check is the signed export total: 80 + 120 + 100 - 40 + 60 + 90 - 30 = $380. It equals $450 of sales less $70 of returns, and it equals the sum of the stores' net sales. Check that against the POS merchandise control total on the same exclusions and posting dates.
Regrouping the same rows by product must preserve that result:
| Product group | Sales (USD) | Returns (USD) | Net sales (USD) |
|---|---|---|---|
| Shirts | 240 | 40 | 200 |
| Jackets | 210 | 30 | 180 |
| Total | 450 | 70 | 380 |
Replace the store criteria range with column C in the SUMIFS formulas to reproduce this view. Sales receipt counts by product are generally not additive because one basket may contain several groups. A product sales dip also needs an availability check; sell-out gaps by store address that separate question.
Bring your transaction export and its merchandise control totals to Covirage. Covirage maps the columns, its tools compute and check sales, returns and receipt-based measures, and the external AI model explains the results with every figure traced to its rows. Create a free Covirage account and bring a sample of your own export.
See Excel analysis for the supporting file-based workflow.
Bring receipt ID, store, transaction date, product, transaction type and merchandise amount after discounts. Include a line identifier when receipts contain multiple products. Keep taxes and tender amounts in separate columns so they cannot inflate merchandise sales.
Show return receipts separately from completed purchase receipts. A return-only visit does not belong in the purchase count used for basket value. Document how the export treats exchanges and mixed sale-and-return receipts before calculating either count.
Calculate the company result from total sales and total purchase receipts. An unweighted average gives small stores the same influence as busy stores. When returns are included in the numerator, label the result return-adjusted basket value.