Skip to main content

How our numbers are made

Every auction house figure on this site is either seen on the auction house or worked out from what was seen. This page says which is which, how each one is computed, and what we do not publish.

Seen, or worked out

A figure is exact when it is read straight off auction house scans: what is listed, at what price, and how that price moved between scans. It is estimated when it has to be worked out, because no feed reports individual sales: sales per day, traded value, sell-through and days of supply.

The site draws the difference the same way everywhere. Exact figures sit in a solid frame in plain ink. Estimated figures sit in a dashed frame, start with ≈ and carry their 95% range, the sample behind them and a confidence tier. A figure an edition cannot support says so in words, and is never shown as zero.

Seen on the auction house

Listed now
46 units
  • 46 listings
Market value
58g 40s 0c
Price change
-2.1% 24 hours+6.8% 7 days
Realm against region
-4.1% against the region median

Worked out from the scans

Est. sold per day
estimated 12
6 to 21 a day, at 95%
Confidence: Medium thin sample
Est. sell-through
estimated 42%
18% to 67%, at 95%
Confidence: Medium thin sample
Est. days of supply
estimated 3.8
2.2 to 7.4 days, at 95%
Confidence: Medium thin sample
Example figures for one item on TBC Anniversary, drawn by the same components the item pages use. The ranges are what the methods below give for these inputs.

Where each edition’s numbers come from

WoW Forever prices come from players’ own auction house scans, which arrive as beta players scan: the Companion’s in-game addon reads the auction house and its desktop helper uploads the scan, so every item carries the age of its own latest scan. Retail prices come from Blizzard’s auction house API, collected hourly. TBC Anniversary, MoP Classic and Season of Discovery prices come only from TradeSkillMaster: TBC Anniversary hourly, Season of Discovery about twice a day and MoP Classic daily.

A slower feed is not a worse feed, but it limits what can be shown honestly. The table shows what each edition’s feed supports.

What each edition’s feed supports
FigureWoW Forever (Beta)RetailMists of Pandaria ClassicTBC AnniversarySeason of Discovery
Source and cadencePlayer scans, no fixed scheduleBlizzard, hourlyTradeSkillMaster, dailyTradeSkillMaster, hourlyTradeSkillMaster, about twice a day
Listed now, market valueExactExactExactExactExact
Price changesExact, since the last scanExact, from 1 hExact, from 1 dayExact, from 1 hExact, from 12 h
CandlesA line insteadExactA line insteadExactA line instead
Est. sold per dayNot measuredestimated Estimatedestimated Estimatedestimated EstimatedNot measured
Est. sell-throughNot measuredNot measuredestimated Estimatedestimated EstimatedNot measured
Est. days of supplyNot measuredestimated Estimatedestimated Estimatedestimated EstimatedNot measured
Depth and bulk costLatest scan onlyExactNot measuredNot measuredNot measured
Realm against regionNot measuredExactExactExactExact
Horde against AllianceExactNot measuredNot measuredExactExact
Trading hoursNot measuredExactNot measuredExactNot measured

Market value describes what is listed

On Retail and WoW Forever, market value is the average price per unit of everything listed at a scan, weighted by quantity, once outlying listings are left out: on Retail those priced far above the item’s median price, on WoW Forever those far above or far below it, whenever there are enough listings to judge. On TBC Anniversary, MoP Classic and Season of Discovery it is TradeSkillMaster’s own market value, stored as TradeSkillMaster publishes it.

Either way it describes what sellers are asking, not what buyers paid. Where a figure is a traded price, its label says so.

market value on Retail and WoW Forever = sum of (price per unit × quantity) ÷ sum of quantity

price per unit
each listing’s price per unit, once outlying listings are left out
quantity
the units in that listing

The price we compare

Every price change, percentile, realm or faction comparison, swing and candle uses one number: the lowest price per unit listed at each scan (the lowest buyout per unit, or the commodity unit price). So those figures all describe the same price.

Price changes

A price change is exact: the current lowest price per unit against the one seen a window earlier. The earlier scan must lie within a quarter of the window of that moment, so a 24-hour change always compares prices 18 to 30 hours apart. If it lies more than a tenth of the window away, the change is marked with a collection gap.

With no scan close enough, the change is not shown: “feed too slow” when the scans are spaced too far apart for the window, and “no data” otherwise. A market whose newest scan is older than twice its freshness window has no current price, so none of its changes is shown. The steps follow each edition’s feed; on WoW Forever the first step runs from the item’s previous scan and names that scan’s age.

The steps of the price-change ladder, per edition
EditionSteps
WoW Forever (Beta)since the last scan, 7 days, and 30 days
Retail1 hour, 24 hours, 7 days, and 30 days
Mists of Pandaria Classic24 hours, 7 days, and 30 days
TBC Anniversary1 hour, 24 hours, 7 days, and 30 days
Season of Discovery12 hours, 24 hours, 7 days, and 30 days

What is listed, and where today’s price stands

These figures are read straight off the scans. None needs a model; each needs enough history or enough realms, and says so when it has too little. The last column names the editions whose feed supports each one.

Figures read straight off the scans
FigureHow it is computedEditions
Listed valuemarket value × the quantity listed nowEvery edition
Against its own historywhere today’s price sits among the item’s daily closing prices over the last 90 days, today left out and ties counted half; needs 14 closes, thin below 30Every edition
Realm against regionthis realm’s price against the median of the region’s realms, each faction’s house on its own where factions trade apart; needs 5 realms, thin below 10Retail, Mists of Pandaria Classic, TBC Anniversary, and Season of Discovery
Horde against Alliancethe Horde price against the Alliance price, on the same realm, or across the region when no realm is chosenWoW Forever (Beta), TBC Anniversary, and Season of Discovery
Daily swingthe standard deviation of the day-to-day change in the log of the closing price over the last 30 completed days, taken only between consecutive days that both have a close; needs 10 changes, thin below 20Every edition

Est. sold per day is a ceiling

No feed reports individual sales. On Retail we count, over the last 14 days, the units in listings that disappeared between two scans before they could have expired, plus the commodity units bought out of listings still standing, and divide by the days those scans cover, not the calendar window. With fewer than three measuring scans, or under one day of coverage, the figure is not shown.

Cancelled listings are counted as sold, so the figure is a ceiling. Until enough labelled sales exist to measure the cancelled share, the low end of the range assumes up to 10% of the counted units were cancellations. An item whose every listing left between two scans records nothing that cycle; on one measured realm that was 1.05% of all departures, and the high end of the range carries it. The range is the exact Poisson range of the sale events, scaled to units.

On Retail, when the scans behind the figure are spaced on average more than twice the feed’s promised interval apart, the figure is marked “feed too slow”: whatever was posted and bought between two scans is missed.

On TBC Anniversary and MoP Classic the figure starts from TradeSkillMaster’s regional sales rate, which TradeSkillMaster defines as the units sold per auction house per day, averaged over the region. This house’s figure is that rate scaled by its listed quantity against the average house’s; that split is an estimate whose error is not measured. The range is the Poisson range of one day of this house’s sales.

est. sold per day on Retail = (units gone before they could expire + commodity units bought from standing listings) ÷ days the scans cover

units gone
units in listings that disappeared between two consecutive scans before their duration ran out
commodity units bought
units bought out of a commodity listing that is still listed
days the scans cover
the span the scans cover, not the calendar window

Est. traded value per day

Est. traded value per day is est. sold per day times a price per unit. On Retail that price is the median of the lowest listed price per unit across the same 14 days of scans: buyers take the cheapest listing first, and no feed reports the price a sale actually happened at. On TBC Anniversary and MoP Classic it is TradeSkillMaster’s regional average sale price.

est. traded value per day = est. sold per day × price per unit

est. sold per day
the ceiling above, with its range
price per unit
on Retail, the median lowest listed price over 14 days; on TBC Anniversary and MoP Classic, TradeSkillMaster’s regional average sale price

Sell-through is a range, never a point

Est. sell-through (TBC Anniversary and MoP Classic only) is TradeSkillMaster’s share of postings that sold, published as a Wilson 95% range with its centre as the figure. Five sales out of five postings therefore read 78%, not 100%.

TradeSkillMaster publishes no sample size or averaging window, so we use the smallest sample the share can rest on: one average auction house’s sold postings in one day (its units sold per day divided by the region’s average listing size). That can only make the range wider than the truth. Below five sold postings, sell-through is not shown. Retail, Season of Discovery and WoW Forever show none.

centre of the range = (sold + 1.92) ÷ (postings + 3.84)

sold
the postings below × TradeSkillMaster’s share of postings that sold
postings
one average auction house’s sold postings in one day: the smallest sample the share can rest on
1.92 and 3.84
half of, and all of, 1.96 squared: the 95% level

Days of supply

Days of supply is the quantity listed now divided by est. sold per day, with its range turned around from the sales range: the most sales give the fewest days. It is not shown when the low end of the sales range is zero, and it is absent wherever sales are.

days of supply = listed now ÷ est. sold per day

listed now
the units listed at the latest scan (exact)
est. sold per day
the ceiling above, with its range

Where no sales are measured

On Season of Discovery, TradeSkillMaster publishes no sale statistics; on WoW Forever, a scan records what is listed, not what sold. On both, est. sold per day, traded value, sell-through and days of supply are absent: each item page says so figure by figure, and the third Markets board ranks by listed value instead.

Candles

On Retail and TBC Anniversary a candle is the first, highest, lowest and last of the lowest listed prices per unit inside each hour or day, with the average quantity listed across that bucket’s scans beside it.

MoP Classic and Season of Discovery draw no candles: with so few scans in each bucket, a candle would open, close, peak and bottom at the same price, so their prices are drawn as a line. WoW Forever draws none either, because its scans come at irregular times.

Hourly feed: daily candles
Daily feed: one price per day
Illustration. Left: an hourly feed, where each day holds many scans and a candle is real. Right: a daily feed, where each day holds one price, drawn as a line.

Depth and the cost of buying in bulk

Where a scan holds every listing at every price, we show how many units sit within 5%, 10% and 25% of the lowest price, and what buying a given quantity would really cost, cheapest first. That is Retail, and WoW Forever for its latest scan only. TradeSkillMaster publishes no listing ladder, so the three classic editions show no depth.

Buying 200 units from a four-price listing ladder: an illustration.
Price per unitListedBought
12g 40s 0c120120
12g 55s 0c6060
13g 10s 0c9020
13g 80s 0c1500
Total for 2002,503g 0s 0c
Average per unit12g 51s 50c
Over the lowest price+0.9%

Both factions, and the whole region

Where Horde and Alliance trade in separate auction houses and no faction is chosen, the page shows the two houses side by side. Their figures are never averaged together; only Horde against Alliance describes both at once.

With no realm chosen, WoW Forever shows its region’s market and a Retail commodity its region-wide market. Otherwise the page adds up what every realm lists now, from each realm’s newest scan (each faction’s house on its own where factions trade apart), with Horde against Alliance across the region where the edition has it, and TradeSkillMaster’s regional sales on TBC Anniversary and MoP Classic, scaled to the houses listing the item. Price changes, the percentile, the day-to-day swing, realm against region and candles describe one market’s own prices, so they are not shown for the whole region: choose a realm to see them. The region’s listed figures are marked stale when the oldest realm scan behind them is older than the freshness window.

Confidence tiers

Every estimate carries a tier: high, medium or low, drawn as a stack of three, two or one coins beside the word. A figure starts at high and can only fall, and each fall names its reason. A figure seen on the auction house shows its tier only when something lowered it.

Thin sample
fewer observations than the figure needs: under 30 sale events is medium and under 10 is low; fewer than 10 realms; fewer than 30 daily closes; fewer than 20 daily changes; on Markets, a change measured on fewer than half of an item’s markets
Thin listings
fewer than 3 listings behind a price; on Markets, no listing at all is low
One price level
every listing at one price, on feeds that also report the highest price; on Markets, a single listing, which is low
Stale source
the newest scan is older than the edition’s freshness window: 3 hours for hourly feeds, 30 hours for twice-daily ones, 36 hours for daily ones, 7 days for player scans and 36 hours for TradeSkillMaster’s regional file; on Markets, when most of an item’s markets are past it
Collection gap
under 80% of the expected scans arrived, or a comparison scan sits more than a tenth of its window off; on Markets, when most of an item’s comparisons are off
Feed too slow
the scans behind a sales estimate are spaced more than twice the promised interval apart; on Markets, a one-day change on a feed that reports once a day or less often, or on no schedule, which is low
  • Confidence: High
  • Confidence: Medium
  • Confidence: Low
The three tiers, as every estimate draws them.

When a figure is not measured

A figure that cannot be measured is shown in words, never as zero, with one of four reasons:

  • Not on this edition, or not at this scope: the whole region, or both factions at once.
  • Too few observations.
  • Feed too slow: the scans are spaced too far apart for the figure.
  • No data in this window: the edition’s data is not in place yet, or the market has no recent scan.

The note on a top mover

A top mover may carry a short note naming the likeliest story behind its move, such as “Supply shock”. It comes from a separate classifier that reads the same measured evidence as the numbers. A note appears only when the classifier is confident enough and no measured fact contradicts it; otherwise there is none. It never changes a figure or its tier.

How Markets ranks items

Gainers and losers are ranked by the price change over the window you pick: 24 hours, 7 days or 30 days. A move above +200% or below −95% is left off those two boards, because at that size it is almost always a comparison with a stray scan; the item still counts in breadth. The third board ranks by est. traded value per day where sales are measured, and by listed value everywhere else, Season of Discovery and WoW Forever included; its title says which.

With no faction chosen, both auction houses enter every item’s ranking, and across several markets an item’s price and change are the median of its markets’, never an average. The confidence filter drops rows below the tier you choose, so thin markets can be left out entirely. Breadth counts, for each item class, how many items rose and how many fell; a class needs at least ten items with data before its bar is drawn. Relative strength is an item’s change minus its class’s overall change (the geometric mean of the class’s price moves), in percentage points. A board row’s price is the latest daily close for the 24-hour and 30-day windows, and the latest market value for 7 days (the lowest listed price where there is none).

What each Markets board ranks by
BoardRanked byWhere
Gainersprice change over the window, highest firstevery edition
Losersprice change over the window, lowest firstevery edition
Most tradedest. traded value per daywhere sales are measured
Most listedlisted value: market value (or the lowest listed price where there is none) × quantity listed, added up over the item’s marketseverywhere else, Season of Discovery and WoW Forever included
Breadthitems rising against items falling, per classclasses with 10 or more items with data

The week-ago reference

The 7-day change on Markets compares an item’s current price with a reference from a week earlier: the median of its hourly market values in the two days either side of that point. If that median is more than twice, or less than half, the median from then until now, a brief spike is assumed and the longer median is used instead. These medians can be read from compact daily summaries of the hourly values rather than recomputed from every hour; on a measured sample the two methods differed by at most 0.1%, and the summaries are switched on only after the two have been compared over a full collection cycle.

Crafting profit

The professions pages and the Crafting page in your profile use one formula. Profit is what the craft sells for, less the auction house’s 5% cut and the reagents at their own prices; the margin is that profit as a share of the sale price, the part of each sale you keep.

The cut comes off every completed sale, so a profit without it would count gold your sales never bring in. The deposit is not deducted: it comes back when the item sells. The professions pages count per craft (the crafted item’s price times the number one craft makes), the Crafting page per item made; on a craft that makes one item, the two read the same.

profit = crafted price × units made − auction house cut − reagent cost; margin = profit ÷ (crafted price × units made)

crafted price
the crafted item’s price on the chosen market
units made
how many items one craft makes
auction house cut
5% of the sale price, rounded to the copper
reagent cost
every reagent at its own price

What we do not publish

Some figures look useful and would mislead. We publish none of these:

  • Candles on MoP Classic or Season of Discovery: with so few scans in each bucket they would open and close at the same price.
  • A volatility figure from each day’s high and low on MoP Classic: with a single scan per day it collapses to nearly nothing and would read as riskless.
  • A spread estimate that is undefined on items with a trend, which is most of them.
  • A correlation matrix.
  • An hour-of-week grid for any edition without hourly scans.
  • Seller concentration: no feed carries who is selling.
  • A market sale rate as a single number, or a market figure labelled “sold” without “est.”.