binance / binance/binance-public-data
bookDepth daily archives: inner ask bands (+0.2%, +1%, +2%) frozen since 2026-09-03 across all USD-M symbols
- Dominant language
- Python
- Stars
- 2.5k
- Forks
- 613
- PR merge metrics
- No merged PRs in 30d
Description
Since **2026-09-03 ~12:00 UTC**, the USD-M `bookDepth` daily archives have stopped updating the
**ask-side bands nearest the mid**. The affected bands emit a constant `depth` and `notional` for
the entire day. All bid bands and the outer ask bands remain correct. The defect is present on every
USD-M symbol checked (SOLUSDT, BTCUSDT, ETHUSDT, AVAXUSDT) and is **propagating outward** one band
at a time.
The published `.CHECKSUM` matches the delivered file in every case, so this is not a transfer or
storage problem — the frozen values are what the exporter is writing.
### Reproduction
Count the DISTINCT values of `notional / depth` per `percentage` band per day. Each daily file
contains 2,880 snapshots (30 s cadence), so a healthy band yields ~2,880 distinct values.
```python
import requests, zipfile, io, pandas as pd
url = ("https://data.binance.vision/data/futures/um/daily/bookDepth/"
"SOLUSDT/SOLUSDT-bookDepth-%s.zip")
for day in ["2026-09-02", "2026-09-03", "2026-09-04", "2026-09-05", "2026-09-06"]:
r = requests.get(url % day, timeout=180)
with zipfile.ZipFile(io.BytesIO(r.content)) as z:
d = pd.read_csv(z.open(z.namelist()[0]))
d["px"] = (d.notional / d.depth).round(6)
counts = {b: d[d.percentage == b]["px"].nunique()
for b in [-1.0, -0.2, 0.2, 1.0, 2.0, 5.0]}
print(day, counts)
```
### Observed (SOLUSDT)
Distinct values of `notional/depth`, out of 2,880 snapshots per day:
| day | −5 | −1 | −0.2 | **+0.2** | **+1** | **+2** | **+3** | +5 |
|---|---:|---:|---:|---:|---:|---:|---:|---:|
| 2026-09-02 | 2878 | 2878 | 2877 | **2879** | **2880** | 2878 | 2879 | 2880 |
| 2026-09-03 | 2878 | 2879 | 2832 | **1455** | **1744** | 2155 | 2878 | 2875 |
| 2026-09-04 | 2876 | 2877 | 2873 | **50** | **1380** | 2873 | 2880 | 2879 |
| 2026-09-05 | 2876 | 2876 | 2878 | **3** | **1259** | 2875 | 2876 | 2876 |
| 2026-09-06 | 2878 | 2877 | 2878 | **4** | **4** | **396** | **2697** | 2879 |
`depth` and `notional` are individually frozen too — on 2026-09-06 the `+0.2` and `+1` bands each
have exactly **4 distinct `depth` values and 4 distinct `notional` values** for the whole day, while
`−0.2` and `−1` have 2,880 each.
Onset is within one hour. Distinct `+0.2` values per hour on 2026-09-03:
`h00–h10 = 120 each` (healthy), `h11 = 87`, `h12 = 48`, `h13 = 1`, `h14–h23 = 1–3`.
### Cross-symbol (2026-09-06, `+0.2` band)
| symbol | frozen implied price | share of day held | distinct values |
|---|---:|---:|---:|
| SOLUSDT | 100.9696 | 76.0% | 4 |
| BTCUSDT | 78216.0684 | 96.6% | 3 |
| ETHUSDT | 2418.5600 | 89.8% | 2 |
| AVAXUSDT | 7.2690 | **100.0%** | **1** |
Each symbol is stuck at its own last-good price, consistent with a per-symbol cache that stopped
refreshing.
### The result is an internally inconsistent (crossed) book
SOLUSDT snapshot `2026-09-06 06:00:03`. True 1-minute kline close at that timestamp: **106.25**.
| percentage | depth | notional/depth |
|---:|---:|---:|
| −0.2 | 591,693 | **104.59** |
| +0.2 | **2,500** | **100.97** |
| +1.0 | 2,890 | 101.40 |
| +2.0 | 2,891 | 101.40 |
| +5.0 | 329,900 | 107.44 |
The ask-side VWAP is **$3.62 below** the bid-side VWAP at the same instant, and cumulative ask depth
is effectively flat from +0.2% to +2% (2,500 → 2,891). The same snapshot on 2026-09-02 is correct
(bid −0.2 = 100.112, ask +0.2 = 100.337, true close 100.25).
### The live API is unaffected
`GET /fapi/v1/depth?symbol=SOLUSDT&limit=1000`, queried 2026-09-07, gives a healthy two-sided book:
bid/ask notional ratio **1.15** within 1% of mid (~$16.6M bid vs ~$14.5M ask). The archive reports
**270.39** for the same band on 2026-09-06. Only the archive export is affected.
### File metadata (no revision has occurred)
| file | Last-Modified | bytes | sha256 vs published .CHECKSUM |
|---|---|---:|---|
| SOLUSDT-bookDepth-2026-09-02.zip | Thu, 03 Sep 2026 08:32:58 GMT | 562,326 | match |
| SOLUSDT-bookDepth-2026-09-03.zip | Fri, 04 Sep 2026 07:52:48 GMT | 525,475 | match |
| SOLUSDT-bookDepth-2026-09-05.zip | Sun, 06 Sep 2026 07:25:44 GMT | 509,147 | match |
| SOLUSDT-bookDepth-2026-09-06.zip | Mon, 07 Sep 2026 07:47:37 GMT | 465,111 | match |
Compressed size falls ~17% while the row count stays at 34,560, which is consistent with
increasingly repetitive (frozen) content.
1. Can the `bookDepth` exports for 2026-09-03 onward be regenerated for USD-M symbols?
2. Is the same defect present on COIN-M and on the monthly aggregates?
3. Please confirm whether the archive is expected to be reissued, so downstream consumers know
whether to treat the window as permanently unusable.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by running the supplied Python reproduction against the listed USD-M daily bookDepth archives and compare the affected bands with the live depth API. Review the downloaded ZIP contents and published .CHECKSUM files, then check whether COIN-M and monthly aggregates show the same pattern. Done means the affected archive window and reissue status are confirmed with reproducible band-level results.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100