{"as_of": "2026-11-14T12:48:45Z", "rubric": {"scale": "0-100 with letter A-F", "letters": {"A": "90-100", "B": "80-89", "C": "70-79", "D": "60-69", "F": "<60"}, "weights": {"freshness": 0.3, "completeness": 0.25, "coverage": 0.2, "uptime": 0.15, "validation": 0.1}, "formulas": {"freshness": "Standing feeds: 100 if age<=promised; linear to 0 at 2*promised; 40 if unmeasured. Live-fetch products: path-health from usage.db last success age (6h+ window) blended with success rate, and/or self-probe success/latency — request-time data, not feed age.", "completeness": "% of declared key_fields non-null (or company avg_completeness)", "coverage": "mean of measured/target ratios clipped to 100", "uptime": "usage.db success rate last 24h (2xx/3xx/402/404=up); else probe_ok 95 / fail 20 / unknown 60", "validation": "ecom: 100*(1-flagged_pct/20); company: avg_completeness; else 100"}, "recompute_every_minutes": 30, "sources_policy": "Public RPCs, redistributable public APIs, SEC EDGAR, Shopify products.json, public HTML/RSS. No Yahoo Finance, CoinGecko/GeckoTerminal, GoPlus, Blockscout, Arkham, Nansen, Whale Alert, Cielo, or Chainalysis."}, "product": {"product": "meme-history", "title": "Meme price history", "family": "meme", "path": "/v1/meme/history", "grade": "A", "score": 100.0, "as_of": "2026-11-14T12:48:51Z", "freshness_seconds": 0, "refresh_promised_seconds": 900, "coverage": "history_days=30", "coverage_detail": {"history_days": {"measured": 30.0, "target": 30, "ratio": 1.0}}, "sources": ["Own 15-min on-chain swap snapshots (meme.sqlite)"], "components": {"freshness": 100.0, "completeness": 100.0, "coverage": 100.0, "uptime": 100.0, "validation": 100.0}, "component_detail": {"freshness": {"age_seconds": 0, "promised_seconds": 900}, "completeness": {"fields_checked": 1, "fields_present": 1, "fields": {"trending": true}}, "coverage": {"history_days": {"measured": 30.0, "target": 30, "ratio": 1.0}}, "uptime": {"success_rate_24h": 1.0, "source": "usage.db"}, "validation": {"note": "no extra validation for this product"}}, "probe": {"path": "/v1/free/meme-trending", "http_status": 200}, "notes": null, "last_checked": "2026-11-14T12:48:45Z"}, "sample_checks": null, "data_as_of": {"timestamp_utc": "2026-11-14T12:48:45Z", "unix": 1794660525, "time_source": "as_of", "onchain": true, "block": {"chain": "base", "number": 57350731, "basis": "head_block_at_data_time"}, "blocks": {"base": {"number": 57350731, "basis": "head_block_at_data_time"}, "ethereum": {"number": 26413326, "basis": "head_block_at_data_time"}, "arbitrum": {"number": 524156685, "basis": "head_block_at_data_time"}, "polygon": {"number": 97303369, "basis": "head_block_at_data_time"}, "optimism": {"number": 159530872, "basis": "head_block_at_data_time"}, "bnb": {"number": 133546426, "basis": "head_block_at_data_time"}, "gnosis": {"number": 49275434, "basis": "head_block_at_data_time"}, "solana": {"number": 469333495, "basis": "head_block_at_data_time"}}}, "receipt": {"sha256": "70d911590c9dc6b42ee5760185a1026bd4931716b5c0439aefd376f36aa9e2cf", "hash_of": "UTF-8 JSON of this response with the 'receipt' key removed, keys sorted, separators (',', ':')", "as_of": "2026-11-14T12:48:45Z", "as_of_basis": "from the response", "block": {"chain": "base", "number": 57350731, "basis": "head_block_at_data_time"}, "issued_at": "2026-11-14T13:12:30Z", "route": "/v1/quality/meme-history", "paid": true, "verify": "/v1/free/receipts/verify?sha256=70d911590c9dc6b42ee5760185a1026bd4931716b5c0439aefd376f36aa9e2cf"}}