# How These Spreads Were Collected

Data was streamed **live** from Binance using the **ccxt.pro WebSocket API** (`watch_order_book`).

## Technical details

- **Library:** CCXT (Python, `ccxt.pro`)
- **Method:** `exchange.watch_order_book(symbol)` -- persistent WebSocket connection, not REST polling
- **Snapshots per symbol:** 5
- **Symbols:** BTC/USDT, ETH/USDT
- **Data points:** top-of-book best bid, best ask, and computed spread
- **Cleanup:** `await exchange.close()` called in a `try/finally` block to release the WebSocket

Unlike yesterday's REST-polled prices (~15 min lag), these snapshots reflect the order book state at the moment the WebSocket pushed each update -- typically sub-second freshness.
