> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alura.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Trending listings

> How sort=trending ranks your own listings: units sold in a period against the period before, the 5-unit minimum, change and previous_units

> [!NOTE]
>
> **Version 2026-10.** This page covers `sort=trending` on your own listings (`GET /v1/workspace/listings` and `search_my_listings`), and the `previous_units` and `change` it adds to each listing's `period`. The units it compares are your real sales, counted as [Listing stats](/methodology/listing-stats) describes. It isn't the research [trending](/features/trending) list, which ranks other sellers' products by estimates.

## The formula

Trending compares the units a listing sold in the period you ask for with the units it sold in the period just before, of the same length:

```text theme={null}
change = round( (units in the period - units in the period before) / units in the period before, 4 decimals )
```

`change` is a fraction: `0.33` means 33% more units than the period before, `-0.5` means half as many. In the response, `period.units` holds the units of the period and `period.previous_units` those of the period before.

**The periods.** `period` is `7d`, `30d`, `90d` or `365d`, and `30d` by default. Each ends yesterday, in UTC: `7d` is the last 7 complete days. Or give `from` and `to`, both included. The period before has the same number of days and ends the day before `from`. Trending needs a period with an end, so `period=all` returns `400 invalid_request`.

## Which listings rank

* **At least 5 units in the period.** A listing that sold fewer is left out, so a jump from 1 sale to 2 doesn't rank first. The minimum applies to the period you asked for, not the one before.
* **Nothing sold before.** When the period before had 0 units, `change` is `null`: a rise from nothing has no percentage. These listings count as larger rises than any listing with a `change`, and among themselves rank by their units.
* **Order.** Use `sort=-trending` (descending) for the largest rise first, with the listings that sold nothing before at the top. `sort=trending` reverses it: the largest fall first. Listings with the same `change` are ordered by listing ID.

## When shops and listings are left out

Trending reads Alura's daily sales data, so both periods must be inside the shop's [coverage](/guides/your-shop-coverage): from `sales_from` through `sales_through`, with no gap day in either period.

* **A shop that doesn't cover both periods** is left out, and a `sales_not_covered` notice names it. Its listings don't appear in the results. The other shops still rank.
* **A listing with an unknown input** in either period, such as an order line with an unknown quantity, is left out. An `unknown_sales_inputs` notice names up to 50 such listings and gives the total count.

A listing left out this way isn't a listing without sales. Alura doesn't know its numbers for those periods.

## Limits

* **Small numbers still swing.** 5 units against 1 is a `change` of `4`, or +400%. Look at `period.units` and `previous_units` before you act on a large `change`.
* **Seasons look like trends.** A Christmas listing rises every November against October.
* **Recent days can still change.** Orders that Etsy updates later, such as cancellations, change past days after the next sync.

## Version history

| Version | Change |
| - | - |
| 2026-10 | First published version. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.