Method

Source register and method

What ClubTrace reads, the evidence that it may, and exactly what it does with what it reads.

01

Coverage today

Observations
907,256
Normalised References
15,600
Published References
217
Tracked listings, live
72,900
Presumed sales
3,996
Observation days
34
First observation
26 August 2026
Last observation
3 November 2026
Figures published as of
3 November 2026

Figures publish a day behind the newest observation when a collection day has not closed yet. A day counts only once every source has been read to the end of its catalogue, so a run still in flight never moves a published figure.

02

Permitted sources, read daily

SourceRegionTypePermission basisCrawl delayFirst observation
The Golf Club Exchangewww.thegolfclubexchange.com.auAustraliaFixed-price reseller cataloguerobots.txt 200, Allow: / for User-agent: *; only *?lightbox= excluded and never read10 s30 September 2026
GolfClubs4Cashwww.golfclubs4cash.co.ukUKFixed-price reseller cataloguerobots.txt 200, Shopify default: Allow: / for User-agent: *; cart, checkout, account and sort/filter URLs excluded and not read10 s26 August 2026
Golf Partner USAgolfpartnerusa.comUSAFixed-price reseller cataloguerobots.txt 200, Shopify default: Allow: / for User-agent: *; cart, checkout and account paths excluded and not read10 s27 August 2026

User agent: ClubTraceBot/0.1 (+https://clubtrace.nanocorp.app). Nothing behind an authentication wall, nothing on a path robots.txt excludes, and no cart or checkout path is ever touched.

03

Not read

A source that answers an automated request with an anti-bot measure does not qualify, whatever its terms say. These three are asked in writing instead.

  • GolfBidder — golfbidder.co.uk

    robots.txt returns 403 with a block page, to our user agent and a browser one alike

    Not read. Partner or affiliate feed requested in writing.

  • Golf Avenue — golfavenue.com

    robots.txt returns 403

    Not read. Asked in writing.

  • Callaway Golf Pre-Owned — callawaygolfpreowned.com

    robots.txt returns 429

    Not read. Asked in writing.

04

From a listing to a figure

  1. 01

    Observation

    One dated record of one listing at one price, read once a day. Price is stored in the source's own currency and converted at the European Central Bank daily reference rate for that day, so every figure is reproducible from the CSV.

  2. 02

    Reference normalisation

    A Reference is one model, one year, one category. Specification variants — loft, flex, shaft, dexterity, iron set composition — are pooled inside the Reference and carried on the observation. This is a deliberate deviation from one specification per Reference: pooling is what makes a defensible sample size reachable at all, and the specification of every pooled observation is in the CSV. Club number is kept in the Reference for woods, hybrids and wedges, because a #3 wood and a #7 wood are different products.

  3. 03

    Deduplication

    One listing on one source is one tracked listing, keyed on the source's own product identifier. The same club listed on two sources is two observations, by design: the price difference between them is the geography and channel split.

  4. 04

    Outlier exclusion

    Before any median, values outside Q1 − 1.5 IQR to Q3 + 1.5 IQR are dropped, and the number dropped is printed next to the figure. No z-score screen is applied on top, because resale prices are not normally distributed.

  5. 05

    Median, never average

    Every central figure is a median, with a distribution-free 95% confidence interval from the order statistics. Below n = 6 no interval is defensible and none is shown.

  6. 06

    Curve fitting

    The depreciation curve is a least-squares fit of the log of median price on Reference age in months — a constant monthly discount rate. R² is always printed. The launch proxy is 1 February of the model year, because golf model years open in the northern-hemisphere new year; where a brand publishes a real launch date it replaces the proxy.

  7. 07

    Presumed sale

    A tracked listing that disappears from a source it was previously read on is recorded as a presumed sale, dated to the day it disappeared. It is always named as presumed: a delisting is not a receipt.

05

Stated limitations

  • ClubTrace has no proprietary dataset. Every figure comes from public listings on the sources above, and the register is the whole of it.
  • Listing price is an asking price. Where a presumed sale exists, the last observed asking price is the closest thing to a transaction price we hold, and we do not claim it is one.
  • Days listed on a live listing is right-censored: it is a floor on days to sell, not days to sell. Days to sell is published only from presumed sales.
  • The category depreciation curve is a cross-section on one day, not a cohort followed through time. It measures what References of different ages are worth today, which is not the same as what one Reference did over its life.
  • Both current sources are fixed-price reseller catalogues. Reseller pricing is not consumer-to-consumer pricing, and it is not the trade-in price a shop pays.
  • Coverage is the United Kingdom and the United States today. A figure is not a world price.
  • Every correlation-based indicator carries its own sentence saying so, and none of them is a causal estimate.
Write to method@