data / ml / feat.clusters.equity
Equity clusters · daily feat.clusters.equity
Hierarchical & co-movement clusters refreshed daily.
ML · Premium tier · 2005-01 → today · 11.4k×D rows
Coming soon — not served by the API yet.
Methodology
Clusters are fitted on each date from data available on that date and are never re-fitted retroactively, so yesterday's membership is a historical fact rather than a side effect of today's model. Cluster id numbers are local to a date and level — they are not stable entity identifiers — and membership is what should be joined on. Levels are nested rather than independent, so a symbol belongs to exactly one cluster per level and the hierarchy can be walked upward without re-running the fit.
Schema
| Column | Type | Role |
|---|---|---|
as_of_ts | timestamp | knowledge time · UTC |
effective_ts | date | PIT key · trading date |
symbol | string | ticker in force on effective_ts |
cluster_id | int32 | label at cluster_level |
cluster_level | int32 | 1 = broadest |
method | string | hierarchical · comovement |
distance | float64 | distance to centroid |
cluster_size | int32 | members at this level |
Use cases
- Neutralise a portfolio within co-moving groups.
- Estimate a diversification ratio from realized groupings.
- Sample training pairs from within a cluster.
Background
- Survivorship bias in backtesting: how current constituent lists hide failures
- Point-in-time market data: as-of dates, restatements, and adjustments
Related packages
- feat.transcripts.embed — Earnings transcripts · embeddings