ForecastLens
Live prediction-market intelligence with calibration, bias, and mispricing signals.
ForecastLens ingests events from Polymarket, Kalshi, and Metaculus, normalizes them into one schema, and surfaces live intelligence through a dashboard, event detail pages, and a public API. It shows calibration, bias, disagreement, and mispricing signals so traders, analysts, journalists, and forecasters can spot interesting opportunities faster. The app also generates plain-English summaries that explain why an event is flagged and what the signal means.
Inspiration
Prediction markets are full of useful signal, but the data is scattered across platforms and hard to interpret quickly. We wanted to build something that turns raw odds into something actually actionable: a way to see where the crowd is calibrated, where it’s biased, and where the market may be mispricing reality.
What it does
ForecastLens ingests events from Polymarket, Kalshi, and Metaculus, normalizes them into one schema, and surfaces live intelligence through a dashboard, event detail pages, and a public API. It shows calibration, bias, disagreement, and mispricing signals so traders, analysts, journalists, and forecasters can spot interesting opportunities faster. The app also generates plain-English summaries that explain why an event is flagged and what the signal means.
How we built it
We built the frontend with Next.js 14, TypeScript, Tailwind CSS, shadcn/ui, Recharts, TanStack Table, and Zustand for a fast, interactive experience. The backend uses FastAPI, Pydantic, SQLite, SQLAlchemy, Alembic, and APScheduler to ingest, normalize, and analyze market data, with Docker and Uvicorn for deployment. We also used Zerve as the AI-native workflow to help drive analysis, structure the pipeline, and move from raw data to usable insights quickly.
Challenges
The hardest part was unifying three very different prediction-market sources into one clean schema without losing traceability. We also had to make the analytics feel trustworthy, which meant balancing simplicity with enough statistical context to avoid misleading signals. Getting the app to work out of the box with sample data, while still supporting live ingestion, took a lot of careful plumbing.
Accomplishments
We’re proud that ForecastLens feels like a real product, not just a notebook or a demo. It combines ingestion, analysis, visualization, and a public API into one cohesive experience, and the confidence-adjusted signal makes the output easy to understand instead of opaque. Most importantly, it gives users a practical way to explore prediction markets without needing to manually stitch together data from multiple platforms.
What we learned
We learned how much value comes from normalization and clear data modeling before jumping into analysis. We also got a better feel for calibration, Brier scores, and how to present uncertainty in a way that is useful instead of intimidating. Building with Zerve reinforced how powerful an AI-native workflow can be when you still keep the product direction and interpretation human-driven.
What's next
Next, we’d like to add more platforms, richer historical backfills, and stronger alerting for fast-moving mispricings. We also want to improve the narrative layer with more nuanced explanations and let users subscribe to custom watchlists or signal thresholds. Longer term, ForecastLens could become a daily intelligence layer for anyone who follows markets, elections, policy, or major world events.
Built With
- alembic
- apscheduler
- docker
- fastapi
- lucide-react
- next.js-14
- pydantic
- python-3.11
- react-query
- recharts
- shadcn/ui
- sqlalchemy
- sqlite
- tailwind-css
- tanstack-table
- typescript
- uvicorn
- zerve-ai-native-workflow
- zustand
Log in or sign up for Devpost to join the conversation.