Goal
Surface the price spread between adjacent PSA grades — primarily PSA 9 vs PSA 10 — as an explicit metric and track how it evolves. A narrowing spread signals PSA 10s getting relatively cheaper; a widening one signals increasing premium demand. Also feeds into the Opportunity Score (#91) for cross-grade coherence validation.
Design notes
- Derived from existing
cardmarketPsa9 and cardmarketPsa10 (and adjacent grades) — no new scraping needed
- Spread =
cardmarketPsa10 / cardmarketPsa9 ratio (and equivalent for other adjacent grade pairs)
- Store as a derived
PriceType (e.g. gradePremium10over9) or compute on the fly from history
- Surface in the side panel: "PSA 10 trades at 2.4× PSA 9 (was 3.1× 3 months ago)"
- Performance tracking on the spread over time (weekly/monthly) shows the trend
Role in Opportunity Score (#91)
Feeds gradeSpreadSignal in OpportunityScore. Used for cross-grade coherence: if a grade's Fair Value Range looks anomalous relative to adjacent grades, the spread helps validate or discount it.
Blocks
Goal
Surface the price spread between adjacent PSA grades — primarily PSA 9 vs PSA 10 — as an explicit metric and track how it evolves. A narrowing spread signals PSA 10s getting relatively cheaper; a widening one signals increasing premium demand. Also feeds into the Opportunity Score (#91) for cross-grade coherence validation.
Design notes
cardmarketPsa9andcardmarketPsa10(and adjacent grades) — no new scraping neededcardmarketPsa10 / cardmarketPsa9ratio (and equivalent for other adjacent grade pairs)PriceType(e.g.gradePremium10over9) or compute on the fly from historyRole in Opportunity Score (#91)
Feeds
gradeSpreadSignalinOpportunityScore. Used for cross-grade coherence: if a grade's Fair Value Range looks anomalous relative to adjacent grades, the spread helps validate or discount it.Blocks