How indubitablysrivathsan/hippodrome works
Hippodrome combines Indian horse-racing data ingestion and a DuckDB-backed browsing API with a research workflow that transforms betting odds into entropy signals for market analysis. The README documents the four-stage processing sequence and DSP topics; the tree also shows parsers, API routes and a React interface. Several modules and later pipeline steps were not sampled, so links involving those components reflect documented workflow or are omitted where wiring is uncertain.
Main entry points: main.py API application · 03_build_signal.py Entropy signal · db.py Database access · migration.py DuckDB migration
Components 27
Data ingestion
- Document parsers
data - DuckDB migration
db/migration.py - Race database
Signal research
- Parse odds
pipeline/01_parse_odds.py - Race features
pipeline/02_build_race_features.py - Entropy signal
pipeline/03_build_signal.py - Calibration bins
pipeline/04_build_calibration.py - Entropy distribution
analysis/entropy_distribution.py - Market efficiency
analysis/market_efficiency.py - Calibration analysis
analysis/calibration_curve.py - LZ compressibility
analysis/lz_compressibility.py - Regime detection
analysis/regime_detection.py
Horse racing API
- API application
api/main.py - Database access
api/db.py - Venue routes
api/routes/venues.py - Meeting routes
api/routes/meetings.py - Race routes
api/routes/races.py - Runner routes
api/routes/runners.py - Horse and people routes
api/routes - Schema and stats
api/routes/schema.py
Browser interface
- Web application
frontend/src/App.jsx - Data pages
frontend/src/pages - Fetch state
frontend/src/api/useFetch.js - API client
frontend/src/api/client.js
Other components
- Race source data
- Browser user
- HTTP API
Connections 30
- Race source data → Document parsers: parse documents
- Race source data → DuckDB migration: load source files
- DuckDB migration → Race database: writes records
- Race source data → Parse odds: raw race CSVs
- Parse odds → Race features: market entries
- Race features → Entropy signal: race features
- Entropy signal → Calibration bins: build bins
- Entropy signal → Entropy distribution: analyze signal
- Entropy signal → Market efficiency: analyze signal
- Entropy signal → LZ compressibility: read signal
- Entropy signal → Regime detection: analyze signal
- Calibration bins → Calibration analysis: read bins
- API application → Venue routes: registers
- API application → Meeting routes: registers
- API application → Race routes: registers
- API application → Runner routes: registers
- API application → Horse and people routes: registers
- API application → Schema and stats: registers
- Venue routes → Database access: database access
- Meeting routes → Database access: database access
- Race routes → Database access: database access
- Runner routes → Database access: database access
- Horse and people routes → Database access: database access
- Schema and stats → Database access: database access
- Browser user → Web application: browses
- Web application → Data pages: routes views
- Data pages → Fetch state: loads data
- Fetch state → API client: requests
- API client → HTTP API: HTTP requests
- HTTP API → API application: dispatches