{"tool": "data-quality-gate", "what_it_does": "Deterministic data-reliability gate for AI agents. POST a JSON dataset, get back a RELIABLE / USABLE_WITH_CLEANING / UNRELIABLE verdict, a 0-100 score, and exact facts pinpointing every problem -- so your agent knows whether to trust data before it acts on it.", "quick_example": {"case": "financial / crypto price data aggregated from several sources", "input": [{"symbol": "BTC/USDT", "source": "ex_a", "price": 67432.5}, {"symbol": "BTC/USDT", "source": "ex_b", "price": 67428.1}, {"symbol": "SOL/USDT", "source": "ex_a", "price": 178.45}, {"symbol": "SOL/USDT", "source": "ex_c", "price": 1784.5}], "detected": "SOL/USDT quoted 178.45 vs 1784.5 across sources (ratio 10x) -- a decimal or feed error", "prevents": "an agent trading on a price that is 10x wrong", "note": "price_divergence is reported as additional facts (facts-only); it does not yet affect the score or verdict"}, "why_deterministic": "No LLM, no sampling, no estimation. The verdict is a pure function of the input: the same dataset always yields the exact same facts, score, and verdict. An agent can cache, audit, or replay it and get an identical result -- unlike a probabilistic 'LLM-as-judge'.", "what_it_catches": ["impossible_values -- out-of-range values (e.g. negative price/age/quantity); hard-caps the verdict", "duplicates -- exact and near/fuzzy duplicate rows that silently skew aggregates", "nulls -- null rate per field", "completeness -- missing fields per row", "types -- type inconsistency per field", "outliers -- statistical outliers via Tukey/IQR", "price_divergence -- same asset quoted very differently across sources/exchanges (financial/trading data)"], "second_example": {"case": "scraped/aggregated product feed an agent is about to ingest", "input": [{"sku": "A1", "price": 19.99, "stock": 5}, {"sku": "A2", "price": 19.99, "stock": 5}, {"sku": "A2", "price": 19.99, "stock": 5}, {"sku": "A3", "price": -5, "stock": -12}], "verdict": "USABLE_WITH_CLEANING", "why": "score capped by impossible values (price -5, stock -12)", "detected": "1 exact duplicate (sku A2), 1 impossible price (-5), 1 impossible stock (-12)", "prevents": "an agent ingesting a feed with a negative price and negative inventory into its catalog/decisions"}, "why_it_saves_tokens": "Each response includes a benchmark comparing the token count of your raw dataset vs the compact verdict (measured offline with tiktoken cl100k_base, no LLM). On realistic scraper-sized datasets (hundreds/thousands of rows), the verdict lets an agent judge reliability without ingesting every row -- a positive reduction_pct means tokens saved. On tiny toy inputs the verdict can be larger than the data, so reduction_pct is negative there; the saving shows up at real scale.", "when_to_call": "Per-batch, before your agent acts on data it did not produce or fully trust -- before a trade, before aggregating multiple sources, before feeding a RAG pipeline or a catalog. Built to be called repeatedly, once per batch, not as a real-time/streaming feed.", "characteristics": ["stateless", "deterministic", "no data retention", "single POST call"], "usage": {"method": "POST", "path": "/api", "headers": {"Content-Type": "application/json"}, "body_examples": [{"rawJson": [{"id": 1, "price": 10}, {"id": 2, "price": null}]}, [{"id": 1, "price": 10}, {"id": 2, "price": null}]]}, "response": "Full run_quality_gate output: meta, facts (per-check detail), score (0-100 with per-check breakdown), verdict, and benchmark (token-saving estimate).", "pricing": "0.01 USD per call, paid via x402 -- no account, no API key, no signup.", "payment": {"x402Enabled": true, "activeNetworks": ["solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", "eip155:8453"]}}