…
- scores: assessAsk()/dealScore()/plausibility gates — an ask is compared only with a
transaction-based RIV of the SAME variant (>=5 sales, confidence >=0.5, match >=0.7);
asks <10% or >10x RIV are flagged riv_anomaly, never surfaced as deals
- valuation worker: discounts reset each pass, representative variant prefers the default
(raw/base) variant when it qualifies, changes measured on the representative variant's
own series, no cross-variant fallback for value_opportunity, numeric(8,6) overflow guard
- taxonomy: parse PSA/DNA n, (8.5), Authentic-only slabs; a grader without a readable grade
gets its own 'grader|unknown' variant instead of polluting raw
- resolver/writers: refineGrade() re-parses titles for sales, listings, observations, lots
- web: VsRiv primitive (Data/identity anomaly label), opportunity/gainers/losers/listings
sort + filter directions fixed (negative = below RIV), scanner verdict via assessAsk with FX
- indices: RARE publishes only when its 25-constituent minimum is met
- security: atomic ai_quotas upsert with unique key, scanner choose ownership check,
anonymous research thread authz
- db: migration 0006 (hot-path indexes, ai_quotas unique); ri regrade repair command
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>