Overview
Track historical marketplace pricing data from Discogs to surface value trends, price movements, and collection valuation insights. Collectors care deeply about the value trajectory of their vinyl — this feature turns raw marketplace stats into actionable intelligence.
Discogs exposes public pricing statistics (lowest, median, highest) for releases via their API. By periodically capturing and storing this data in PostgreSQL, we can build time-series trend analysis that no other Discogs tool provides.
Proposed Endpoints
API Endpoints (api/routers/market.py)
| Endpoint |
Description |
GET /api/market/release/{id}/price |
Current and historical pricing stats for a release |
GET /api/market/artist/{id}/trends |
Aggregate price trends across an artist's discography |
GET /api/market/label/{id}/trends |
Aggregate price trends across a label's catalog |
GET /api/market/collection/summary |
Total estimated value and breakdown for the authenticated user's collection |
GET /api/market/collection/movers?period=30d |
Biggest gainers and losers in the user's collection over a time period |
GET /api/market/hot?genre={style}&period=7d |
Trending releases by price movement across the marketplace |
Data Model
New PostgreSQL tables:
price_snapshots — (release_id, snapshot_date, lowest, median, highest, num_for_sale, currency)
price_alerts — (user_id, release_id, condition, threshold, active)
Background Worker
A periodic task (daily or configurable) that:
- Iterates releases in users' collections
- Fetches current marketplace stats from the Discogs API
- Stores snapshots in
price_snapshots
- Checks against
price_alerts thresholds and flags triggered alerts
Must respect Discogs API rate limits (60 req/min for authenticated requests).
Explore UI — "Market" Pane
Add a Market pane to the Explore sidebar navigation.
Pane Layout
- Collection Value Card — total estimated value (sum of medians), change over 30d, sparkline
- Movers Table — sortable table of biggest gainers/losers with columns: release title, artist, current median, change (absolute + %), mini sparkline
- Release Price Detail — clicking a release opens a Plotly.js chart showing price history (lowest/median/highest bands over time)
- Price Alerts — set threshold alerts ("notify me if median drops below $X") with a small alert management UI
- Hot Releases — trending releases by price movement, filterable by genre/style
UI Details
- Sparklines rendered inline using Plotly.js (already a dependency)
- Color-coded price changes: green for gains, red for losses
- Currency display respects user locale
- Empty state: prompt to sync collection first
Implementation Notes
Acceptance Criteria
Overview
Track historical marketplace pricing data from Discogs to surface value trends, price movements, and collection valuation insights. Collectors care deeply about the value trajectory of their vinyl — this feature turns raw marketplace stats into actionable intelligence.
Discogs exposes public pricing statistics (lowest, median, highest) for releases via their API. By periodically capturing and storing this data in PostgreSQL, we can build time-series trend analysis that no other Discogs tool provides.
Proposed Endpoints
API Endpoints (
api/routers/market.py)GET /api/market/release/{id}/priceGET /api/market/artist/{id}/trendsGET /api/market/label/{id}/trendsGET /api/market/collection/summaryGET /api/market/collection/movers?period=30dGET /api/market/hot?genre={style}&period=7dData Model
New PostgreSQL tables:
price_snapshots—(release_id, snapshot_date, lowest, median, highest, num_for_sale, currency)price_alerts—(user_id, release_id, condition, threshold, active)Background Worker
A periodic task (daily or configurable) that:
price_snapshotsprice_alertsthresholds and flags triggered alertsMust respect Discogs API rate limits (60 req/min for authenticated requests).
Explore UI — "Market" Pane
Add a Market pane to the Explore sidebar navigation.
Pane Layout
UI Details
Implementation Notes
Acceptance Criteria