Equity Curve (realized PnL, anchored to live balance)
Daily Realized PnL
Slippage Distribution (plan entry → actual fill, bps, signed to direction)
Metrics
Executed Orders — plan (thesis) vs sent (exchange) vs actual fill; slippage = fill − plan entry
Plan-vs-Execution Adherence — did the order sent to the exchange match the thesis plan?
Per-Order Check
About this dashboard
This is the real execution dashboard for the two live Bybit mainnet portfolios (TOP and SCREENED). It is distinct from the paper-sim site — every row here is an order that was actually placed on Bybit.
Data pipeline
Built daily by build_execution_dashboard.py in the workspace. It reads the engine's order log (bybit_exec/log/executions_*.jsonl) and reconciles each order against the live Bybit API:
- plan — entry / stop / TP derived from the DMA thesis (what SHOULD be traded).
- sent — the levels actually sent to the exchange on the order.
- actual — the real fill price (
avgPrice), real exit (fromclosed-pnlor mark-to-market on open positions), realized PnL and R-multiple. - slippage — actual fill vs plan entry, in price and bps, signed to direction (positive = worse). Because entries are limit (maker) orders, slippage is usually ~0; this table is the audit trail that proves it.
- adherence — for each order, did the sent entry/stop/TP/direction match the thesis plan?
Reconciliation rules
- Orders are deduped by
orderId— the daily wrapper can log the same order twice (double-run) and the pre-account-scope era logged the full book on both wallets. - Each trade is attributed to the account that owns the order (which API-key pair returns it), not the log row's label — labels were unreliable during the double-exposure era.
- Testnet-era orders (pre-2026-08-29) can't be resolved on the mainnet keys → tagged
TESTNETand excluded from metrics. - Orders still resting (
New) are marked PENDING; a resting limit that never filled is not a decided trade.