{"version":"phase1-v2","summary":"Scores are computed only from Bittuitive's own automated, unpaid probes plus the public listing data. Nobody can pay for a better score, and Bittuitive's own endpoints are scored by exactly the same rules.","window":"rolling 7 days","score_range":"0-100 (null = not yet probed)","components":{"availability":{"max_points":35,"rule":"share of probes in the window where the endpoint answered without a 5xx/404/410/timeout/connection error"},"challenge_validity":{"max_points":25,"rule":"average validity of the HTTP 402 payment challenge. L402: WWW-Authenticate L402/LSAT with macaroon= and a parseable BOLT11 invoice = 1.0; invoice but non-standard token = 0.5; challenge without parseable invoice = 0.25. x402: payment requirements (v2 PAYMENT-REQUIRED header or v1 JSON body) with scheme, network, payTo, asset and amount = 1.0; partial = 0.5. No 402 challenge = 0."},"latency":{"max_points":15,"rule":"median latency of probes where the endpoint was up (no up probes = 0): <= 300 ms full points, >= 3000 ms zero, linear in between. Measured from Bittuitive's node (home connection, US East), so it includes network distance."},"price_consistency":{"max_points":15,"rule":"share of valid challenges whose advertised price (BOLT11 amount in sats, or USDC amount for x402) matches the directory-listed price within 5%. If no listed price exists or can't be compared, half points (zero if no valid challenge was ever seen)."},"listing_completeness":{"max_points":10,"rule":"HTTPS with valid TLS 3, description 2, listed price 2, name 1, category 1, provider 1"}},"confidence":{"low":"< 6 probes in window","medium":"6-47 probes","high":">= 48 probes"},"probing":{"user_agent":"BittuitiveScoreboard/0.1 (+https://api.bittuitive.ai/scoreboard)","frequency":"about hourly, never more than once per endpoint per 30 minutes","requests":"single unpaid request; invoices are never paid; POST endpoints receive an empty JSON body","timeout_seconds":10,"concurrency":4,"opt_out":"add 'User-agent: BittuitiveScoreboard' + 'Disallow: /' to robots.txt (or a site-wide 'Disallow: /' for '*'); HTTP 429 triggers a 6-hour backoff for that host","probe_set":"up to 300 endpoints per cycle: Bittuitive's own, then a reserved minimum per data type (bitcoin 100; crypto, stocks, weather, traffic and other 40 each, or fewer if fewer exist), leftover slots by priority (bitcoin first); providers interleaved, L402 and healthy listings first; at most 5 endpoints per host"},"data_types":{"values":["bitcoin","crypto","stocks","weather","traffic","other"],"rule":"assigned automatically, recomputed at every discovery run: keyword rules over the listing's name, description, provider, directory category (402index), tags (x402 Bazaar) and URL. Payment boilerplate (e.g. 'accepts USDC on Base', 'pay via Lightning') is ignored, so the payment rail does not decide the category. Bitcoin beats generic crypto words unless another chain/asset is named (multi-asset feeds are 'crypto'). Ambiguous words need context: 'lightning' with storm words is weather; 'routing' needs road/map context (Lightning or LLM routing is not traffic); 'forecast' and 'temperature' need weather context; 'in stock', 'stock photos' and web/SEO traffic are excluded. Anything unmatched is 'other'. Scores are not affected by the category.","list":"/api/v1/scoreboard/categories"},"not_yet_included":["data accuracy (cross-checking responses against reference sources) - needs paid calls, Phase 3","agent feedback - only from agents that paid for a call routed through Bittuitive, proven by the Lightning preimage / payment hash (L402) or tx id (x402), Phase 4","post-payment behaviour (does the API actually deliver after payment) - Phase 3"],"design_doc":"DESIGN.md in the Bittuitive repo"}