Informed flow on Kalshi

Does one-sided trade flow reveal what the price does not yet know?  ·  back to the dashboard

Loading…

What this measures

Every other model on this site reads the order book. This one reads the trade tape — who was willing to cross the spread, how big, how concentrated, how one-sided — and asks whether markets being traded that way settle differently from where they were priced. Kalshi is anonymous, so this ranks markets, not people.

1. The signal is real

Each component's direction was written down before any of it was estimated, so under the null each sign is a coin flip. Measured on three frames, the slope of (outcome − mid) on the signed signal, with standard errors clustered on the event.

FrameRowsEvents Slopet Signs correctSign-test p Shuffled-null |t| p95

The Sports frame is measured but never served: Sports, Weather and Crypto are excluded from the live path as a standing invariant. It is shown because injuries and late scratches are where the hypothesis is strongest, and because it is the only frame with enough settled markets inside the tape window to have real power.

Per-component slopes
ComponentSlopet

2. Selecting harder makes it stronger — which is new here

GateRowsRealized slope tMean edgeMedian half-spread

3. It still does not pay, and here is the exact reason

The edge grows when you select harder. The spread grows faster. Every figure below is per contract, net of the exact Kalshi taker fee and a cent of slippage, filled at the ask — never at the midpoint.

ArmBetsP&L / contract tSlope inside gate

4. The rumour screen

Why a language model, and why a control arm

Every mechanical attempt in this project to link market text to outside text has failed on the same point: free-text matching produced a 16% false match rate in one study and exactly one usable match across 2,335 settled markets in another. Deciding whether a headline explains a price move is a language task. But a frontier model knows what happened in 2026 and cannot be instructed to forget, so the control arm is the measurement's validity check, not a nicety.

Label integrity

Each outcome used here is compared against the venue's own result. A previous study in this repo was invalidated by an outcome frame in which 545 weather markets all resolved NO — a defect one aggregate query away from obvious, invisible for weeks because nobody ran it.

Reproduce

Read-only against Postgres and Kalshi's public unauthenticated endpoints. Places no orders.

./scripts/refresh_insider_artifacts.sh
.venv/bin/python -m pytest tests/test_insider.py -q