Reference
Returns
How much comes back, why, and what it actually costs once the refund, the fees and any stock written off are all counted.
Cost
What a return, or a group of returns, actually cost — the sale price refunded, the fees Amazon kept on net, and any stock that had to be written off, added together.
Good: Compare against Refunded alone — Cost is the fuller figure, so a row can cost more, or less, than its refund suggests once the other two parts are counted.
From: returns_totals()['total'] in public/inc/returns.php: refunded + fees kept + goods lost, per bucket or per product.
Date
The day the return was recorded.
Good: Not a figure.
From: returns.return_date, via returns_evidence() in public/inc/returns.php.
Events
How many separate return transactions were filed under this reason — distinct from Units, since one event can return several units at once.
Good: Read alongside Units — a reason with many events and few units each is mostly single-unit returns; the reverse is bulk returns.
From: returns_by_reason()['n'] in public/inc/metrics.php, a count of return rows.
Fees returned to you
On net, more of Amazon's fees came back on these refunds than were kept — the referral fee returning outweighed the refund fee charged.
Good: Shown under this name only when the balance runs in the seller's favour; the more usual case is labelled "Fees Amazon kept" instead, on the same tile.
From: returns_totals()['fees_kept'] in public/inc/returns.php, from order_fees Refund-event rows other than the principal.
Mostly because
Whichever reason bucket accounts for the most units returned for this product.
Good: Not a figure — points to the fix worth trying first for that product.
From: computed in public/returns.php from returns_by_product()['top_bucket'] in public/inc/returns.php: the bucket with the most units.
Product
The listing this row is about.
Good: Not a figure.
From: the product catalogue, joined by SKU or ASIN.
Rate
This product's own return rate — units back as a share of units sold, for that product alone.
Good: This table colours it green under 3%, amber to 8%, red above — but also compare against this product's own history, since some categories run higher naturally.
From: computed in public/returns.php: units returned ÷ units sold for that SKU × 100.
Reason
Amazon's own reason code the buyer selected, in plain words.
Good: Not a figure.
From: returns.reason via returns_by_reason() in public/inc/metrics.php, relabelled by the page.
Refund rate (Amazon)
The return rate Amazon itself reports in the Sales & Traffic report — a separate measurement from Return rate beside it, built a different way.
Good: Read beside Return rate rather than instead of it — a gap between the two means the two measurements disagree, not that either is wrong.
From: traffic_totals()['refund_rate'] in public/inc/metrics.php, from Amazon's own Sales & Traffic report.
Refunded
How much was handed back to buyers for the returns in this bucket.
Good: Read beside Written off and Cost, not alone.
From: returns_by_bucket()['refunded'] in public/inc/returns.php.
Refunded to buyers
The sale price handed back to buyers across every return in the period.
Good: Compare against Reimbursements — one is money going out, the other money coming in. Not the whole cost of a return; see Cost further down the page for that.
From: returns_totals()['refunded'] in public/inc/returns.php.
Reimbursements
Money Amazon paid back to the account in the period, for stock lost or damaged in its own warehouses — separate from a refund, which goes to the buyer.
Good: Money recovered rather than a cost, so not judged against zero. Compare against Stock written off to see how much of what was lost was actually paid for.
From: reimbursements_total() in public/inc/metrics.php, summed by approval date.
Return rate
This page's own measurement of units returned as a share of units sold in the period.
Good: Compare with the prior period, shown on the badge beside it, and against Refund rate (Amazon) beside it.
From: computed in public/returns.php from returns_summary() and sales_totals(): units returned ÷ units sold × 100.
Share
What portion of all returned units this reason accounts for.
Good: Shares across the table add to 100%; read one beside the others, not against a fixed number.
From: computed in public/returns.php: that reason's units ÷ total returned units.
Stock written off
The value, at landed cost, of stock that came back unsellable and had to be written off.
Good: Compare against Refunded to buyers — a return can cost both the sale price and the stock. Shown as a dash rather than zero when the units involved have no cost on file.
From: returns_totals()['goods_lost'] in public/inc/returns.php.
Units
How many units were part of these returns.
Good: Not judged alone — read beside Cost or Refunded for the money behind it.
From: returns_by_bucket()['units'] / returns_by_reason()['units'] in public/inc/returns.php or public/inc/metrics.php, summed from returns.quantity.
Units back
How many units of this product came back in the period.
Good: Compare against Units sold via Rate, not alone.
From: returns_by_product()['units'] in public/inc/returns.php.
Units returned
How many units came back to Amazon across every return in the period.
Good: Compare with the prior period, shown on the badge beside it, and against Units sold via Return rate.
From: returns_summary()['units'] in public/inc/metrics.php.
Units sold
How many units of this product sold in the same period — a separate query from the returns count, and not the same buyers: returns lag the sale by weeks, so the two are different cohorts.
Good: Shown as a dash rather than zero when the product sold nothing in the window; read beside Units back via Rate with that lag in mind.
From: computed in public/inc/returns.php (returns_by_product()), summed from orders.quantity for that SKU.
Unsellable
How many units in this row came back in a condition that could not be resold.
Good: Not a target — read beside Cost, since these units are typically the more expensive part of a return.
From: returns_by_bucket()['destroyed_units'] / returns_by_product()['destroyed_units'] in public/inc/returns.php, from returns.disposition via return_resaleable().
What they said
The buyer's own words about why they returned it, with Amazon's own menu path shown ahead of anything the buyer actually typed.
Good: Not a figure — the most direct signal on this page; read alongside the money and product columns on the same row.
From: returns_comments() and return_comment_parts(), assembled in returns_evidence() in public/inc/returns.php.
What went wrong
Which of six groups this return's reason falls into — a listing problem, a product problem, mishandling in transit, a parcel that never arrived, the buyer's own choice, or a code this page does not yet recognise.
Good: Not a figure — read the sentence beside or beneath it for what, if anything, can be done about that group.
From: return_bucket_label() applied to return_bucket() in public/inc/returns.php.
Written off
The value, at landed cost, of unsellable units in this bucket.
Good: Read beside Refunded — some buckets return sellable stock and cost nothing here, others do not.
From: returns_by_bucket()['goods_lost'] in public/inc/returns.php.