Methodology

How this index is calculated

The lug²lug market index measures asking prices in the enthusiast secondhand market: the listings on r/Watchexchange and WatchUSeek, where collectors sell to each other. That is a different market from the dealer and auction flow the other published watch indices measure, and this page is the full statement of how ours is built, what it can support, and what it cannot.

The corpus

What it measures

Asking prices.

A sale price is never observed. Forum sellers do not publish what they accepted, and we do not infer it. Everything on this surface is what somebody asked.

Two panels, built separately, never blended.

The listing-ask panel is every asking price matched to a catalog reference, live or closed. The closing-ask panel is the last price a seller asked before their listing closed. A closed listing may have been withdrawn or sold, so the second is also an asking price: it reads a little high, and it serves as an independent cross-check on the first.

A listing counts only when it is matched to a catalog reference.

A post that cannot be resolved to a specific watch in the lug²lug catalog stays out of the panel at every stage. That is what makes the index a matched-model index: every price belongs to a known watch.

Nothing before 2022.

Older forum threads exist only where nobody pruned them, and the direction of that survivorship bias is unknown. The index is indexed to 2022 = 100 and does not extend behind it.

Construction

How a year's figure is built

Matched model.

A year’s change is the average change across watches listed in both that year and the one before. A watch that appears for the first time this year contributes nothing to this year’s change, which is why a newly crawled brand can never move the line on arrival.

One vote per watch. Nothing is value-weighted.

Every matched watch contributes equally regardless of price. A dollar-weighted index of this panel would be a tracker for whichever brand happens to list the most expensive watches, which is a different measurement wearing this one’s name.

Per-watch prices are aggregated before they are compared.

Within a window, a watch’s many listings collapse to one figure per window, so a single heavily reposted listing cannot outvote the rest of the panel.

Intervals come from a bootstrap clustered by watch.

The 95% interval printed beside every figure is a bootstrap interval resampled at the level of the watch: listings of the same watch move together, and resampling listings would produce intervals several times too narrow. Extreme relatives are winsorized before the mean, and impossible ones are dropped; both counts are stored with the point.

Levels are chained, and the chain is honest about breaking.

An index level is the product of the yearly links, starting from 2022 = 100. Where a year cannot publish a link, the level chain cannot continue through it, and no level is drawn, so no gap is bridged with an assumption. That is why about a third of the cuts show a year-by-year ladder and no level line.

Annual only.

Every figure on this surface is annual, with no quarterly, monthly or weekly line anywhere, unlabeled sparklines included. Measured quarterly standard errors run several percentage points against quarterly moves of a few percent, so a quarterly line would be a picture of our own sampling noise.

Thresholds

When a figure is published

A cut has to earn its number. The floors are fixed in the series registry and stay the same on every page.

  • 40 matched watches in both years before a cut may publish a point estimate.
  • 25 matched watches before it may publish a range.
  • 120 matched watches for the overall index, which is a stronger claim and carries a stronger floor.
  • Below 25, the cut publishes its coverage and says nothing about direction.

A wide interval on a large panel is a finding. A reading of −0.6% with an interval of ±2.0 points on a thousand matched watches is a precise flat: it says the market did not move, and it says so with more confidence than most published watch figures say anything.

The ladder

The five verdicts

Every figure on this surface is gated by a verdict computed when the index is rolled up and stored with the point, so no client re-decides one. The five are different kinds of answer.

VerdictWhat you seeWhat it means
movedA signed percentage, e.g. +7.4%The 95% interval excludes zero. This is the only verdict allowed to use a directional word.
held“No clear move”, with the intervalThe interval is tight and straddles zero. The group did not move enough to be detected.
band_onlyA range, e.g. −14% to −4%Enough watches for a range. The point estimate is withheld on purpose: readers anchor on a centre regardless of the interval printed beside it.
unclear“Not enough to call it”, and no intervalA figure exists behind the year but is too unsteady to publish. The interval is withheld too: publishing the band under a reading we refused to publish would be the same claim through a side door.
coverage_onlyThe count aloneOnly the panel size is published. Below the publication floor, nothing about direction is said.
The second axis

Against the index

Every cut on this surface is a subset of the same panel. That has a consequence people miss: a cut’s absolute figure is mostly the whole market’s move wearing the cut’s name. In one recent year-to-date pass, thirty-two cuts cleared the significance bar and every one of them was positive: one common factor printed thirty-two times.

So each cut also reports its change minus the change in the index it belongs to, measured on the same watches in the same pass, with its own interval and its own verdict. That second line is the part that is about the cut.

It is a difference between two asking-price changes. It is never colour-coded: rising asking prices are good news for a seller and bad news for a buyer, so a green-up chart is wrong for half the audience on every render.

Coverage

The cuts

Beyond the overall index, the panel is cut six ways: by brand, by kind of watch, by price band, by case size, by movement, and by whether the watch is still made. Each published cut gets its own page with its full history.

A brand is one cluster.

Watches from one brand move together, so a brand cut carries much less independent information than its count suggests. That is why most brand cuts publish a range even when their panel looks large.

Price bands are set from market price.

A watch is in the under-$500 band because of what it goes for secondhand. That is also why price-band pages carry no list of the watches in them: naming the members would publish each member’s market price, and per-watch prices are not part of this free surface.

Cuts stay keyed by catalog watch.

Keying the panel by (brand, reference) was built and tested, and it does not produce a catalog-free key, so the panel stays keyed by the catalog watch.

Discipline

Revision and freezing

The current year is provisional and revises monthly.

A year-to-date reading widens its window every month, so it moves. It is marked provisional wherever it appears.

A closed year freezes, and a frozen figure that changes must declare it.

Forum listings backfill for weeks after a window shuts, so an annual figure genuinely moves for a while. A point freezes after its window has been closed long enough for that to settle. After that, a published figure that changes has to be recorded as a restatement with a reason, because the one sentence a competitor gets to say otherwise is “their 2024 number changed after we quoted it”.

Every publication is kept.

Each published vintage of a point is appended to an immutable record, so what a figure said on the day it was quoted remains recoverable.

The stock clock

Retail stock, and what a transition is

Alongside the index, we keep a separate log of retail stock: whether a watch is in stock, on pre-order, sold out or discontinued at the brand’s own store. The index measures what enthusiasts asked each other for a used watch. This measures what the seller’s storefront said. They are never combined into one figure.

A row is a change.

The catalog is probed nightly and the time of every probe is recorded against the watch. A row lands in the stock log only when the answer moved: at this time, this watch stopped being in stock and started being sold out, and this is how we know. A probe that finds the same state as the night before writes nothing.

Two of the sources are conclusions.

Most rows come from something a storefront said: a catalog API, structured data on the product page, a meta tag, or a page idiom. Two are inferred. pdp-404 is recorded when a product page has returned 404 three nights running, and feed-vanish when a row has been missing from a catalog feed three nights running. Both are usually right, and both are late by up to three days by construction, which is precisely the interval that matters for a limited release. Every surface marks them, because a sell-out date reached this way is a floor.

The log opened on September 4, 2026.

Until that day the sync computed a stock change, acted on it and discarded it, in four separate places. There is no history to backfill from. A watch we had already read was written in with one anchor row dated to its last check before the log opened, and an anchor records when the clock started.

So a watch with no transitions has not been seen to change. That is the only statement the log supports, and it is worded that way everywhere it appears.

Some watches have no clock yet.

A watch was written into the log only if we had already read a stock state for it. Thousands have never returned one: a store we cannot reach, a brand with no product page we can parse, a watch that is not sold new anywhere we can see. Those watches have no anchor row and no clock, and are left out of the count of watches being watched.

That shortfall can last. A watch joins the log the first time a probe actually answers for it, and for some of them no probe ever will. The market page prints the number of watches with a clock running beside the size of the catalog, so the fraction is visible.

Silence is absence of observation.

A brand behind a bot wall emits no events and therefore looks perfectly steady. So does a brand whose store we have not reached in a month. Nothing on this site reads a quiet history as a stable one, and the date of the last check travels with the history wherever it is shown.

Dated changes only.

The log publishes dated stock changes and nothing derived from them. Sell-out speed, restock cadence, time to restock, and any percentile built over them each need a denominator this log lacks.

Limits

Scope and limits

Every price is an asking price.

No sale price is observed anywhere in this pipeline.

It describes groups of watches.

Per-watch annual moves are dominated by sampling noise at this panel size, measured at roughly the size of the moves themselves. No per-watch trend line is drawn anywhere on this surface. The only per-watch rates published at all are the handful whose interval clears zero, and they are labelled as such.

It follows the same watches getting older.

A matched-model index of used goods carries some drift from age alone, and that drift stays in the figure. Read a figure as what an owner holding these watches saw.

It covers the enthusiast market.

The panel is what enthusiasts list to each other, which skews to microbrands, Japanese brands and the sub-$2,000 field. Rolex carries a fraction of the matched references Seiko does here because Rolex trades mostly through dealers and auctions, outside the market we measure. Read a Rolex cut here as “what forum sellers asked”.

Informational only.

This is a measurement of asking prices in one corner of one hobby. Nothing here is investment advice or a recommendation to buy or sell.

Questions, corrections, or a figure that looks wrong? contact@lug2lug.org. Full site disclosures are at /disclosures. The index itself is at /market.