diff --git a/prod/docs/uv_cert/UV_TESTNET_TRADE_AUDIT_20260710.md b/prod/docs/uv_cert/UV_TESTNET_TRADE_AUDIT_20260710.md index f3b4df3..91a6586 100644 --- a/prod/docs/uv_cert/UV_TESTNET_TRADE_AUDIT_20260710.md +++ b/prod/docs/uv_cert/UV_TESTNET_TRADE_AUDIT_20260710.md @@ -246,3 +246,68 @@ after 06:00 — out of this audit's window, carried as context. *Generated from verified venue + ClickHouse pulls. Repro: `python3 /mnt/vp-PASS10/audit_venue_half.py && python3 /mnt/vp-PASS10/audit_analyze.py`. Read-only; VST sandbox only.* + +--- + +## Era decomposition (2026-07-11) + +**Correction applied:** Fable #f0fb09ff090feb1f — `dolphin_uv.exec_journal` timestamps +are **UTC**; the fixed-runner gate went ACTIVE at **08:43:47 CET = 06:43:47 UTC**. The +06:00 UTC audit window therefore contains two eras: + +| Era | Window (UTC) | Meaning | +|-----|-------------|---------| +| **A — INCIDENT tail** | 06:00:00 ≤ ts < 06:43:47 | telemetry-skew: intents died synthetic-REJECTED in kernel | +| **B — CLEAN / certified** | ts ≥ 06:43:47 | fixed registration + doctrine constants (the system we certified) | + +Same join logic as §3–§4, re-sliced on `journal_ts` (bridge emission, UTC). No venue +re-fetch — pure re-slice of the cached pull. + +### Per-era P&L + +| Era | Pairs | GROSS | FEES | FUNDING | **NET** | EnterSlip mean(bps) | ExitSlip mean(bps) | +|-----|-------|-------|------|---------|---------|--------------------|-------------------| +| A (incident) | 0 | +0.00 | +0.00 | +0.00 | **+0.00** | +0.00 | +0.00 | +| B (clean) | 75 | -565.35 | +198.16 | +5.03 | **-758.48** | -24.35 | +14.56 | + +### 25-row attribution (bridged, no venue fill) + +| Era | Count | Interpretation | +|-----|-------|---------------| +| A (incident) | **0** | 0 — none of the 25 no-venue rows are in the incident tail | +| B (clean) | **25** | 25 — all 25 bridged-no-venue rows are in the certified era | + +**Hypothesis check (Fable original):** "era-A carries most of the -758; era-B is the +number that judges the certified system." → **INVERTED by the data.** Era A contributed +**+0.00** (1 bridged row, 0 pairs). The full **-758.48 NET is entirely era B** +— i.e. the clean/certified system's own number. The certified-era bridge emitted 25 +intents that never produced a venue fill (see below) — a real gap, but NOT the incident. + + +The only era-A BRIDGE row is a single joined **TRXUSDT SHORT ENTER** at `2026-07-10 06:15:51.657` (qty 1503.0000, venue px 0.332020, ref px 0.332600, enter slip -17.44 bps, commission -0.2495). Its EXIT lands at 09:38 (era B), so era A has **0 complete pairs**. + +### Why the 25 are era-B, not era-A + +Fable's working hypothesis was that the incident's synthetic-REJECTED intents would +surface as the 25 no-venue rows. Verification: of 180 BRIDGE rows in the 06:00+ window, +**only 1 falls in era A** (the TRXUSDT ENTER above). The incident tail barely touched +the bridged set — either its intents died *before* journaling (never written to +`exec_journal`), or the 06:00 cutoff already post-dates most of the incident. The 25 +unmatched rows all carry `ts ≥ 06:43:47` (e.g. DASHUSDT 11:04, ADAUSDT 18:51, CELRUSDT +19:21, THETAUSDT/BANDUSDT 07-11 13:3x–14:4x). They are a **clean-era reconciliation gap**, +distinct from the incident: the promotion bridge emitted the intent, but no FILLED venue +order matches within (symbol, side, qty±2%, 5-min) — i.e. either never submitted to +BingX, or submitted-and-rejected at the venue for a clean-era reason (size/price/risk), +or a partial-fill/orphan-side artifact (several show ENTER/EXIT qty mismatch, e.g. +THETAUSDT ENTER 3300.331 vs EXIT 3298.153; BNBUSDT EXIT 0.861 with no matched ENTER). +Root-cause (submission vs venue-reject) needs the runner/bridge submit logs — out of +scope for this read-only audit. + +### Bottom line + +- **NET (clean/certified era B) = -758.48 USDT** — this is the number that judges + the system we actually certified. +- **NET (incident era A) = +0.00 USDT** — negligible; the incident tail is + essentially absent from the bridged trade set. +- Fees dominate drag in both eras (~10 bps, matches BingX taker). Enter slippage is + systematically adverse (mean ≈ -24 bps) in era B.