diff --git a/kustomize/base/initdb/001_init.sql b/kustomize/base/initdb/001_init.sql index 03ffe35..3ae848b 100644 --- a/kustomize/base/initdb/001_init.sql +++ b/kustomize/base/initdb/001_init.sql @@ -211,3 +211,63 @@ CREATE TABLE IF NOT EXISTS public.dlob_stats_latest ( CREATE INDEX IF NOT EXISTS dlob_stats_latest_updated_at_idx ON public.dlob_stats_latest (updated_at DESC); + +-- Depth snapshots within bps bands around mid-price (per market, per band). +-- Filled by a derived worker that reads `dlob_l2_latest`. +CREATE TABLE IF NOT EXISTS public.dlob_depth_bps_latest ( + market_name TEXT NOT NULL, + band_bps INTEGER NOT NULL, + market_type TEXT NOT NULL DEFAULT 'perp', + market_index INTEGER, + ts BIGINT, + slot BIGINT, + mid_price NUMERIC, + best_bid_price NUMERIC, + best_ask_price NUMERIC, + bid_base NUMERIC, + ask_base NUMERIC, + bid_usd NUMERIC, + ask_usd NUMERIC, + imbalance NUMERIC, + raw JSONB, + updated_at TIMESTAMPTZ NOT NULL DEFAULT now(), + PRIMARY KEY (market_name, band_bps) +); + +CREATE INDEX IF NOT EXISTS dlob_depth_bps_latest_updated_at_idx + ON public.dlob_depth_bps_latest (updated_at DESC); + +CREATE INDEX IF NOT EXISTS dlob_depth_bps_latest_market_name_idx + ON public.dlob_depth_bps_latest (market_name); + +-- Slippage/impact estimates for "market" orders at common USD sizes. +-- Filled by a derived worker that reads `dlob_l2_latest`. +CREATE TABLE IF NOT EXISTS public.dlob_slippage_latest ( + market_name TEXT NOT NULL, + side TEXT NOT NULL, + size_usd INTEGER NOT NULL, + market_type TEXT NOT NULL DEFAULT 'perp', + market_index INTEGER, + ts BIGINT, + slot BIGINT, + mid_price NUMERIC, + best_bid_price NUMERIC, + best_ask_price NUMERIC, + vwap_price NUMERIC, + worst_price NUMERIC, + filled_usd NUMERIC, + filled_base NUMERIC, + impact_bps NUMERIC, + levels_consumed INTEGER, + fill_pct NUMERIC, + raw JSONB, + updated_at TIMESTAMPTZ NOT NULL DEFAULT now(), + PRIMARY KEY (market_name, side, size_usd), + CONSTRAINT dlob_slippage_latest_side_chk CHECK (side IN ('buy', 'sell')) +); + +CREATE INDEX IF NOT EXISTS dlob_slippage_latest_updated_at_idx + ON public.dlob_slippage_latest (updated_at DESC); + +CREATE INDEX IF NOT EXISTS dlob_slippage_latest_market_name_idx + ON public.dlob_slippage_latest (market_name);