{
  "schemaVersion": "vultax-feature-mirror-v1",
  "slug": "arbitrage-scanner",
  "title": "Bitcoin Exchange Spreads and Arbitrage Costs",
  "description": "Compare the displayed BTC price gap and the existing fee-adjusted estimate against the actual source quotes.",
  "mirrorSummary": "Compare the displayed BTC price gap and the existing fee-adjusted estimate against the actual source quotes.",
  "canonicalUrl": "https://vultax.com/features/arbitrage-scanner",
  "availability": {
    "status": "live",
    "message": "Arbitrage views are available in the crypto workspace. Route detail and controls depend on coverage and plan access."
  },
  "workspace": {
    "label": "Open the Vultax workspace",
    "url": "https://app.vultax.com/predictions/crypto/BTCUSDT"
  },
  "downloads": {
    "json": "https://vultax.com/features/arbitrage-scanner/data.json",
    "markdown": "https://vultax.com/features/arbitrage-scanner/page.md",
    "schema": "https://vultax.com/features/schema.json"
  },
  "tables": [
    {
      "id": "btc-cross-venue",
      "title": "Displayed gap and fee-adjusted estimate",
      "description": "The existing pack’s BTC cross-venue comparison, with its fee assumption shown next to the result.",
      "coverage": "Highest and lowest midpoint venues among the responding BTC books; not an exhaustive search of executable routes.",
      "columns": [
        {
          "key": "buy",
          "label": "Lower-mid venue",
          "format": "text",
          "unit": null
        },
        {
          "key": "sell",
          "label": "Higher-mid venue",
          "format": "text",
          "unit": null
        },
        {
          "key": "gap",
          "label": "Midpoint gap",
          "format": "bps",
          "unit": "basis points"
        },
        {
          "key": "fee",
          "label": "Fee per side",
          "format": "bps",
          "unit": "basis points"
        },
        {
          "key": "estimate",
          "label": "After assumed fees",
          "format": "bps",
          "unit": "basis points"
        },
        {
          "key": "venues",
          "label": "Venues",
          "format": "number",
          "unit": null
        }
      ],
      "rows": [
        {
          "id": "comparison",
          "values": {
            "buy": "coinbase",
            "sell": "okx",
            "gap": 2.5,
            "fee": 10,
            "estimate": -17.6,
            "venues": 5
          }
        }
      ],
      "notes": [
        "The source compares USD and USDT at par and assumes the stated taker fee on each side.",
        "The source field executableBp is an indicative bid/ask calculation after assumed fees. Depth, latency, transfers, account balances and actual fills are not included; it is not an executable return."
      ],
      "kind": "market-snapshot",
      "status": "fresh",
      "statusReason": "Within this table’s source-time freshness window; prices can change between observations.",
      "observedAt": "2026-09-18T19:20:02.000Z",
      "modifiedAt": null,
      "rowCount": 1,
      "sources": [
        {
          "label": "Vultax crypto pack · crossVenue calculation",
          "url": "https://vultax.com/live/crypto.json"
        }
      ],
      "downloads": {
        "json": "https://vultax.com/features/arbitrage-scanner/data.json?dataset=btc-cross-venue",
        "csv": "https://vultax.com/features/arbitrage-scanner/data.csv?dataset=btc-cross-venue"
      }
    },
    {
      "id": "btc-books",
      "title": "BTC bid and ask by exchange",
      "description": "The top-of-book quotes already captured by Vultax’s crypto refresh pack.",
      "coverage": "BTC spot; only the responding exchanges shown below. USD and USDT remain separate quote labels.",
      "columns": [
        {
          "key": "venue",
          "label": "Exchange",
          "format": "text",
          "unit": null
        },
        {
          "key": "quote",
          "label": "Quote currency",
          "format": "text",
          "unit": null
        },
        {
          "key": "bid",
          "label": "Best bid",
          "format": "number",
          "unit": "quote currency"
        },
        {
          "key": "ask",
          "label": "Best ask",
          "format": "number",
          "unit": "quote currency"
        },
        {
          "key": "spread",
          "label": "Spread",
          "format": "bps",
          "unit": "basis points"
        }
      ],
      "rows": [
        {
          "id": "coinbase",
          "values": {
            "venue": "Coinbase",
            "quote": "USD",
            "bid": 81154.5,
            "ask": 81154.8,
            "spread": 0.04
          }
        },
        {
          "id": "kraken",
          "values": {
            "venue": "Kraken",
            "quote": "USD",
            "bid": 81157.3,
            "ask": 81157.4,
            "spread": 0.01
          }
        },
        {
          "id": "okx",
          "values": {
            "venue": "OKX",
            "quote": "USDT",
            "bid": 81174.6,
            "ask": 81174.7,
            "spread": 0.01
          }
        },
        {
          "id": "binance",
          "values": {
            "venue": "Binance",
            "quote": "USDT",
            "bid": 81173.36,
            "ask": 81173.37,
            "spread": 0
          }
        },
        {
          "id": "bybit",
          "values": {
            "venue": "Bybit",
            "quote": "USDT",
            "bid": 81170.4,
            "ask": 81170.5,
            "spread": 0.01
          }
        }
      ],
      "notes": [
        "This is a periodic top-of-book snapshot. It contains no order-level history or heatmap levels.",
        "Quotes are collected sequentially. Displayed size and actual execution are not established by this table."
      ],
      "kind": "market-snapshot",
      "status": "fresh",
      "statusReason": "Within this table’s source-time freshness window; prices can change between observations.",
      "observedAt": "2026-09-18T19:20:02.000Z",
      "modifiedAt": null,
      "rowCount": 5,
      "sources": [
        {
          "label": "Vultax crypto pack · public exchange order-book endpoints",
          "url": "https://vultax.com/live/crypto.json"
        }
      ],
      "downloads": {
        "json": "https://vultax.com/features/orderbook-heatmap/data.json?dataset=btc-books",
        "csv": "https://vultax.com/features/orderbook-heatmap/data.csv?dataset=btc-books"
      }
    }
  ],
  "research": [
    {
      "title": "Why Bitcoin's Price Differs Between Exchanges: 18 Venues Checked Every Minute",
      "url": "https://vultax.com/research/why-bitcoin-price-differs-between-exchanges",
      "publishedAt": "2026-09-14",
      "description": "Vultax read Bitcoin's order books on 18 exchanges every minute for 28 hours. Half stayed within a basis point, the highest and lowest ordinary venues sat a median 5.8 bps apart, and Upbit ran 1.31% above. In a week of readings no gap survived fees; here is what a gap has to clear."
    }
  ],
  "related": [
    {
      "slug": "wash-trading-detection",
      "title": "Crypto Wash Trading Risk and Exchange Data Quality",
      "url": "https://vultax.com/features/wash-trading-detection"
    },
    {
      "slug": "orderbook-heatmap",
      "title": "Bitcoin Order Books and Exchange Depth",
      "url": "https://vultax.com/features/orderbook-heatmap"
    },
    {
      "slug": "vi-iq-score",
      "title": "Vi IQ Bitcoin Market Intelligence Score",
      "url": "https://vultax.com/features/vi-iq-score"
    }
  ],
  "limitations": [
    "Public tables mirror existing Vultax source packs. They do not include account data, private watchlists or the complete app dataset.",
    "Source time, coverage and limitations apply to each table. Missing values are unavailable, not zero."
  ]
}
