Fashion resale benchmarks from annual reports

What 2 US-listed companies selling second-hand fashion on consignment report: a median gross margin of 77.0%, from 74.6% to 79.4%. Read 13 October 2026.

Gross margin, fashion resale: gross profit over revenue in each company's latest annual report.
  1. ThredUp79.4%
  2. The RealReal74.6%

Median 77.0%, marked on each bar.

What each annual report states. A dash: the report gives no such figure.
CompanyGross marginAverage order valueReturn rateSubscription share of salesFulfilment cost as a share of sales
ThredUp TDUPForm 10-K for the year ended 31 December 2025, read 13 October 2026 (opens in a new tab)79.4%Revenue $310.8 million, gross profit $246.8 millionNot statedNot statedNot statedNot stated
The RealReal REALForm 10-K for the year ended 31 December 2025, read 13 October 2026 (opens in a new tab)74.6%Revenue $692.8 million, gross profit $516.8 million$594Not statedNot statedNot stated

What the filings state

Beyond the income statement, these are the figures the reports give, in their own words.

Use these figures

Open a calculator with this vertical’s figures already entered, then replace them with your own.

How to read them

Gross profit divided by revenue, both from the income statement of the annual report. Companies differ in what they put in cost of sales: some include store occupancy, warehousing or shipping to the customer, others report those below gross profit. Read a company's margin next to its own accounting policy before comparing two.

The median of these 2 companies is 77.0%, between The RealReal at 74.6% and ThredUp at 79.4%. They are whole companies, most with stores or wholesale beside their own site, so treat the figures as reference points for your own costs.

Embed this chart

Paste this where you want the chart. It carries its sources and a link back to this page.

Show the embed code
<iframe src="https://offersuite.io/benchmarks/embed/resale" title="Gross margin, fashion resale" width="100%" height="480" loading="lazy" style="border:0"></iframe>