# How prices work

> What displayed prices mean on eBay, Poshmark, Mercari, Depop, Whatnot, OfferUp, Facebook Marketplace, Vinted and TCGplayer, how fresh Soldgraph results are, and what one page of results covers.

## Displayed prices

`result.data[].displayed_price` is the amount and currency the listing shows.

- **eBay sold listings:** the price eBay shows for the sale. When `best_offer_accepted` is true, the sale closed on an accepted Best Offer; eBay does not publish that amount, so the price is the seller's ask. These rows are flagged and left out of `summary.median_excluding_best_offer`.
- **eBay active listings:** the asking price or current bid.
- **Poshmark sold listings:** the listing's asking price, in US dollars or Canadian dollars on Poshmark Canada. Offers and bundles can change what the buyer paid.
- **Poshmark active listings:** the seller's current asking price.
- **Mercari sold and active listings:** the listing amount Mercari shows, not a verified final payment. Sold timestamps come from Mercari and can be missing.
- **Whatnot active listings:** seller asks for Buy It Now inventory from US or Canadian sellers, in that country's currency, excluding shipping and checkout charges. Unequal variant ranges have a null `displayed_price`. No sold search or final sale prices.
- **OfferUp local listings and details:** the seller's current ask, often negotiable in person. Dealer vehicles can be "call for price", with a null `displayed_price`. A listing's `sold` status is set by the seller and carries no sale price.
- **Facebook Marketplace listings and details:** the seller's current ask in USD, often negotiable. A listing's `sold` status is set by the seller and carries no sale price.
- **Vinted listings:** the seller's ask for the item, in the site's currency. `total_price` adds Vinted's buyer protection fee. Shipping is extra. Listing details show the ask in the currency the seller listed in. No sold search or sale prices.
- **Depop active listings:** Depop's headline price, in the currency of the country you searched. It can include buyer fees, shipping or tax. `price_includes` lists which ones.
- **TCGplayer:** `market_price` is TCGplayer's own estimate. `lowest_ask` and `listed_median` are seller asks. Recent sales carry `purchase_price`, the item price without shipping.

We can't verify the final sale price, so sold listing rows have only the displayed price, never a "paid" price. Each row has only the fields its marketplace can fill. The text the marketplace shows stays in fields like `displayed_price_text` and `sold_date_text`. Parsed amounts are always `{ amount, currency }`, next to the original text.

## Coverage and freshness

Each response covers one page from the marketplace, marked `completeness: "provider_page_only"`. `result.count` is the number of rows on that page. `reported_total` is the total the marketplace reports for the search, not a count of verified sales. There's no fixed history window, like 90 days.

Matching searches share a 15-minute cache. Check `cached` and `result.collected_at` to see how fresh a result is. A cache miss starts a [search job](https://soldgraph.com/docs/api/overview.md#search-jobs).

## Your own analysis

Every listing search returns a `summary` with the median, lowest and highest displayed price on the page. It is plain maths over the rows you got, with nothing removed. Anything further, like trends or dropping outliers, is your own calculation.
