Alternative Data Platform — Indian equities
Find information that moves stocks in the physical world, before it hits financial statements.
Stack: Python, alternative data, medallion architecture, point-in-time, feature store, FastAPI, Prefect, TimescaleDB, backtesting, quant
What it is
Most market signals show up in a company's numbers after the fact. Alternative data is the bet that you can see the same thing earlier — in power demand, shipping, footfall, satellite imagery — if you can structure it. This platform is built to do that for Indian equities.
It's a scalable skeleton with hard layer contracts plus one fully working vertical slice (POSOCO power demand). Adding the other sources is a plug-in, not a rewrite — copy a template, implement three methods, add a feature recipe, and nothing downstream changes.
The medallion pipeline
- Sources and ingest — pluggable data sources behind one abstract contract
- Bronze — raw, untouched, in object storage (MinIO)
- Silver — normalised records in Postgres
- Gold — a point-in-time feature store
- Signals, backtest, delivery — factor models, an Indian cost model, FastAPI and Grafana
The rule that runs through everything
Point-in-time correctness is structural, not a checkbox. Every feature carries (feature_date, published_date, as_of_date), and every read goes through one function that filters to what was actually knowable at the as-of moment. There is simply no API to see the future — which is the single most common way a backtest lies to you.
At a glance
| Language | Python |
|---|---|
| Working vertical slice | POSOCO |
| Storage | MinIO and Postgres |
| Delivery | FastAPI |
I wanted to build the boring, correct part first — the part that stops you fooling yourself — and only then add sources. The anti-lookahead feature store is the whole point.