Skip to content

feat: CardMarket listing age / staleness signal #95

Description

@hjacque

Goal

Surface how long the lowest CardMarket listing has been live. A listing sitting unsold for months signals the market disagrees with that price — it may not represent a real floor. Feeds into the Opportunity Score (#91) as a price reliability signal: stale cheap listings are discounted.

Design notes

  • CardMarket listing pages expose the listing date per row — scrape alongside price in the existing CardMarket source
  • Track listingAge (days since posted) for the lowest 1–3 listings
  • Surface as a staleness indicator in the side panel: "lowest listing posted 180 days ago"
  • Flag listings older than a configurable threshold (e.g. 90 days) as potentially stale

Open questions

  • Does CardMarket reliably expose listing dates in the scraped HTML? Needs verification before committing to this approach.
  • Store raw listing date or age-in-days at sync time? Raw date is more flexible for retrospective analysis.

Role in Opportunity Score (#91)

Feeds stalenessSignal in OpportunityScore. A stale listing at a low price is not real market willingness to transact — the longer it has sat unsold, the more the apparent "deal" is discounted. Fresh listings at low prices are a stronger signal.

Blocks

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions