Skip to content

pzeroai/pzero

Repository files navigation

p[0]

vibe analytics for prediction markets

Natural language analytics dashboard for Kalshi and Polymarket prediction market data. Ask questions in plain English, get charts. Powered by LLM-generated SQL over ClickHouse.

Features

  • Natural language to SQL — ask questions, get interactive charts
  • Multi-platform — Kalshi + Polymarket data side by side
  • Smart charting — auto-selects chart type, date formatting, number formatting (K/M/B)
  • Widget refinement — inline editing of any chart with full conversation history
  • Natural language targeting — reference widgets by name or position ("make the 2nd chart a line chart")
  • Materialized views — pre-computed aggregations for instant common queries
  • Self-correction — automatic SQL retry when queries fail
  • Flexible LLM backend — OpenAI, Anthropic, Gemini, Ollama, or any OpenAI-compatible API

Examples

"Compare the longshot bias (calibration error) between Kalshi and Polymarket"

Longshot Bias Comparison

"Show Kalshi maker vs taker monthly excess return over time"

Maker vs Taker Monthly Excess Return

"Break down maker vs taker excess return by category on Kalshi (top 5)"

Maker vs Taker Excess Return by Category

Architecture

┌──────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│  React Frontend  │     │   Fastify API    │     │   ClickHouse     │
│  Vite + TW4      │────>│   /api/query     │────>│   analytics db   │
│  port 5173       │     │   port 3001      │     │   port 8123      │
└──────────────────┘     └──────────────────┘     └──────────────────┘
                                │
                                v
                         ┌──────────────────┐
                         │   LLM Provider   │
                         │   (OpenAI, etc)  │
                         └──────────────────┘

Tech Stack

Layer Technology
Runtime Bun
API Fastify, ClickHouse, OpenAI SDK
Frontend React 19, Vite 6, Tailwind CSS 4
Charts Recharts
State Zustand
Layout react-grid-layout
Types Shared TypeScript package
LLM Proxy LiteLLM (optional)

Quick Start

Prerequisites

  • Bun v1.0+
  • An OpenAI API key (or any OpenAI-compatible provider)
  • ClickHouse instance + Polygon RPC access (setup guide)

Install

git clone https://github.com/pzeroai/pzero.git
cd p0
bun install

Configure

cp .env.example .env
# Edit .env — at minimum, set LLM_API_KEY

Optional: Import Existing Parquet Data

bun run migrate-parquet
bun run backfill-trade-timestamps

Run

bun run dev

Open http://localhost:5173

Documentation

Acknowledgments

Special thanks to @beckerrjon and prediction-market-analysis for the prediction market dataset that powers this project.

License

MIT

About

vibe analytics for prediction markets

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages