{"tool":"get_exit_method","data":{"source":"overhang","price_usd":0,"what_is_measured":{"question":"Collateral is marked at an oracle price. What can it actually be sold for, at size, right now?","marked_value":"The protocol's own mark: deposited tokens x the oracle price the lending market is using, refetched live every sweep. Never read off disk — a mark read from a seed file froze the whole board at one value for six days.","realisable_value":"Live sell quotes into USDC at real clip sizes, SELL DIRECTION ONLY, because a liquidated borrower is a seller and a buy quote flatters the number.","headline_metric":"liquidator_margin_bps = liquidation_bonus_bps - exit_haircut_bps(size). Negative means a rational liquidator declines at that clip, the debt sits, and the protocol carries it.","max_exitable_usd":"The largest clip whose liquidator margin is still >= 0, found by bisection rather than a fixed ladder. resolution_usd is the width of the remaining bracket, so max_exitable_usd is never read as exact.","zero_bad_debt_caveat":"Zero bad debt today does not disprove any of this. It means nobody has been forced to test it at size."},"corroboration_rule":{"rule":"A terminal verdict requires SIX consecutive agreeing floor observations from the symbol's own tape. A single sample is never sufficient.","why":"A single unverified external response could previously write the most severe conclusion in the system. Five rows reached the tape that way: three where one bad response said no route on an asset that routed cleanly in 2,024 of its other 2,027 floor probes, and two where an HTTP 200 carried an implausible price.","discriminator":"Persistence, not magnitude. A threshold on the number would suppress genuine illiquidity, so it cannot be the mechanism. Assets that fail on every single sweep are real findings and are published; an isolated failure is not.","contradicted_floor":"When the symbol's own history contradicts a terminal-looking floor sample, the collector buys ONE fresh floor sample rather than writing a hole. If it clears, the normal bisection runs from it and a real number is returned. If it fails too, the verdict is withheld.","withheld_form":"A withheld verdict is written as *_unconfirmed with max_exitable_usd NULL and is kept out of every published total. get_exit_quote never returns that null: it falls back to the last corroborated measurement and labels the answer last_corroborated with its age.","never_aborts":"Every sweep writes a row even when it measured nothing, so a data gap and a quiet market never look the same."},"status_vocabulary":{"clears_full_ladder":"The whole marked reserve exits with the liquidator still in profit.","partial":"Some of the reserve exits profitably; max_exitable_usd is the boundary, resolution_usd its uncertainty.","not_tradable_any_size":"The primary router REFUSES to quote the token at all, at any size (TOKEN_NOT_TRADABLE). This is permissioning, NOT illiquidity. Nothing was learned about depth because nothing was ever offered.","no_route_any_size":"A route was sought and none found (NO_ROUTES_FOUND). The token is quotable; the book had no path. This IS a liquidity finding.","why_those_two_differ":"They were one status until 2026-09-02 and collapsing them writes \"no liquidity\" over \"we never asked\". A liquidator must not read them as the same fact: one may be resolved by a listing, the other cannot.","unliquidatable_at_smallest_tested":"The smallest clip tested routed, but the haircut exceeded the liquidation bonus.","measurement_failed":"We failed, not the market — a throttled or errored probe. Excluded from every total.","unconfirmed_suffix":"Terminal verdict withheld pending corroboration; max_exitable_usd is NULL by design, not missing."},"retroactive_split_note":"Rows written before the split stored both refusals as no_route_any_size. No historical row was rewritten. The documented view reserves_adjudicated derives the split from the wire-level reason recorded on each row's floor quote, and this tool reads that view rather than reimplementing the logic.","control_design":{"what":"A SIZE-MATCHED control. The same question is asked of wrapped SOL, the deepest USDC pair on Solana and deliberately NOT a member of the measured board, at the exact dollar clip where a measured reserve failed.","why":"Two reserves clearing 100% were also the two smallest on the board. A risk curator reads that and says: your controls clear because they are small, not because they are deep. Size-matching converts an ASSET control into a METHOD control, which is the objection that actually needs answering.","probes":14517,"routed":14517,"transient":0,"biggest_clip_usd":27350981,"avg_haircut_bps":124.22,"latest":{"ts":1790766902,"symbol":"SOL","size_usd":25204629,"routed":1,"haircut_bps":293.92}},"coverage":{"gated_from_ts":1786406400,"gate_reason":"Rows before this are a known frozen-mark window where the mark was read off disk rather than refetched. They are excluded from every query this service runs.","window_first_ts":1786406492,"window_last_ts":1790766902,"window_first_utc":"2026-08-11T00:01:32.000Z","window_last_utc":"2026-09-30T11:15:02.000Z","sweeps":4839,"reserve_rows":58068,"symbols":12,"cadence_sec_median":900,"rows_by_status":[{"status":"partial","n":40043},{"status":"clears_full_ladder","n":8321},{"status":"not_tradable_any_size","n":5279},{"status":"no_route_any_size","n":4335},{"status":"not_tradable_unconfirmed","n":50},{"status":"no_route_unconfirmed","n":17},{"status":"unliquidatable_unconfirmed","n":16},{"status":"unliquidatable_at_smallest_tested","n":7}],"refusal_split":[{"observation":"no_route","n":20,"symbols":2},{"observation":"not_tradable","n":9661,"symbols":2}],"symbols_covered":[{"symbol":"FWDI","protocol":"kamino","market":"Superstate Opening Bell Market","rows_":4839,"last_ts":1790766902,"latest_status":"not_tradable_any_size","latest_marked_usd":25204628.97},{"symbol":"SPYx","protocol":"kamino","market":"xStocks Market","rows_":4839,"last_ts":1790766902,"latest_status":"partial","latest_marked_usd":4342453.44},{"symbol":"MSTRx","protocol":"kamino","market":"xStocks Market","rows_":4839,"last_ts":1790766902,"latest_status":"partial","latest_marked_usd":4042072.41},{"symbol":"USCC","protocol":"kamino","market":"Superstate Opening Bell Market","rows_":4839,"last_ts":1790766902,"latest_status":"not_tradable_any_size","latest_marked_usd":3278287.59},{"symbol":"GOOGLx","protocol":"kamino","market":"xStocks Market","rows_":4839,"last_ts":1790766902,"latest_status":"partial","latest_marked_usd":3089057.23},{"symbol":"QQQx","protocol":"kamino","market":"xStocks Market","rows_":4839,"last_ts":1790766902,"latest_status":"partial","latest_marked_usd":3007777.25},{"symbol":"TSLAx","protocol":"kamino","market":"xStocks Market","rows_":4839,"last_ts":1790766902,"latest_status":"partial","latest_marked_usd":2649964.66},{"symbol":"NVDAx","protocol":"kamino","market":"xStocks Market","rows_":4839,"last_ts":1790766902,"latest_status":"partial","latest_marked_usd":2623885.21},{"symbol":"CRCLx","protocol":"kamino","market":"xStocks Market","rows_":4839,"last_ts":1790766902,"latest_status":"clears_full_ladder","latest_marked_usd":1003490.07},{"symbol":"HOODx","protocol":"kamino","market":"xStocks Market","rows_":4839,"last_ts":1790766902,"latest_status":"clears_full_ladder","latest_marked_usd":660333.59},{"symbol":"cbBTC","protocol":"kamino","market":"xStocks Market","rows_":4839,"last_ts":1790766902,"latest_status":"clears_full_ladder","latest_marked_usd":460289.31},{"symbol":"AAPLx","protocol":"kamino","market":"xStocks Market","rows_":4839,"last_ts":1790766902,"latest_status":"partial","latest_marked_usd":444126.7}]},"verify_yourself":"Every figure above is computed from the tape at request time; nothing here is hardcoded. The collector is open source at https://github.com/seekdaseek/overhang — the corroboration rule is src/corroborate.mjs, the bisection is src/bisect.mjs, and the adjudication view is in src/db.mjs."},"paid":false}