Refusal log · what we declined, and why
Every trade the desk declined — with a plain-language reason, the structural-haircut breakdown, and a hashed proof you can re-derive yourself. We publish what we refuse, not just what we trade.
Why this is rare
Everyone publishes their wins. Almost nobody publishes what they declined. Refusal comes before economics — a great quote cannot buy its way past a toxic book. The refusal log is the credibility artifact.
How to read it
Each row is a hashed gate verdict (REFUSE or ENTRY) with its yield-decomposition haircuts. Expand "proof" to see the structural reason, per-driver haircuts and the row's hashes. A green chain badge means a from-scratch recompute of every hash agreed.
Chain integrity
source: static / offlineHead hash (fingerprint of the decision history)
—
chain length: — · spec docs/PROOF_CHAIN_SPEC.md
The decision feed (most recent first)
A live feed from /api/rates-desk/refusals. REFUSALS are surfaced prominently — they are the moat. Each row expands into its structural reason, per-driver haircuts, and the hashes you can recompute.
Loading the refusal log…
Verify it yourself
Don't trust us — check us. Download one zero-dependency standalone verifier and the public decision log, run it on a clean machine with none of our code — it re-derives every hash and reports the exact broken_at if a single byte of history was altered after the fact.
Command
python3 verify_spa.py decision_log.jsonl Spec
docs/PROOF_CHAIN_SPEC.md
Verifier
scripts/verify_spa.py
Canonical-JSON rule: json.dumps(obj, sort_keys=True, separators=(',',':'), ensure_ascii=False); hash = sha256(canonical_json).hexdigest(). The chain is append-only — each entry hashes the prior head, so flipping any past decision breaks the link.
Go deeper