Appearance
Grid prices load only when measured tiles intersect the viewport. Received quotes remain available while scrolling; leaving the screen cancels client requests and prevents queued groups. Existing cache lifetimes are unchanged.
Implementation: https://github.com/snag-tcg/poc-tcg-collector/pull/589
Lint and typecheck pass. Jest: 222 suites and 2222 tests pass; 2 suites and 11 tests remain skipped. Native viewport measurement needs device validation; the local Android emulator is offline and no iOS simulator is available.
Follow-up policy: prioritize owned cards when consulted (daily eligibility), then important visible cards (daily), and stable inexpensive visible cards (14 days). This policy is not implemented in the visibility fix. It needs matching server/client freshness rules, provider credit accounting, a global budget and deduplication across users; positive quotes currently expire after 72 hours. A click should not force an unlimited provider refresh.
Read-only production audit found 695615 Cardmarket history rows across 19315 cards and 38 captured dates, from July 28 to September 30. 18611 cards have at least 30 observations. These are aggregate snapshots, not exact FR/NM offers and not a complete continuous market history. A preliminary conservative screen selected 1801 inexpensive stable candidates: current avg30 <= EUR 2, avg7 deviation < 10%, at least 14 observations in the last 30 calendar days, and coefficient of variation of trend/avg < 10%. Thresholds are exploratory.
ReefAPI documents 8 credits per successful product/offers call. For a shared pool of 1000 markets consulted every day, refreshing 10-15% daily and the rest every 14 days costs roughly 39000-51000 credits per 30 days, excluding initial cache population and extra click refreshes. Actual demand and account credits must be measured before promising quota sufficiency.