QUINN

loading quinn...

Things I make
research2026

Hekir

A company’s peer set quietly load-bears across relative-value trades, pairs, ETF construction, and risk models — yet the market’s default answer is GICS, a committee-assigned taxonomy keyed to a firm’s primary source of revenue. I test an alternative that defines peers by what a firm actually says it does, and ask where the two part ways.

  • Python
  • sentence-transformers
  • all-MiniLM-L6-v2
  • Qdrant
  • UMAP
  • Docker

I embedded the business descriptions of 502 S&P 500 firms with all-MiniLM-L6-v2 (a 384-dimensional sentence-transformer that runs locally with no API), loaded the vectors into a Qdrant collection, and queried each firm’s ten nearest semantic neighbors. The neighbors land in the firm’s own GICS sector 65.2% of the time against a size-based random expectation of 10.9% — a 6× lift — so the embeddings recover sector structure strongly without ever being told what a sector is.

The remaining third of crossings is the interesting part, and it isn’t noise. Measured as lift over a firm-count baseline (so a sector’s raw size is divided out) and significance-tested against a 2,000-iteration label-permutation null, the off-diagonal structure concentrates at a handful of economically sensible boundaries — Energy→Utilities, Materials→Consumer Staples, Communication Services→Information Technology — and runs asymmetrically, in a donor-to-attractor pattern where small, heterogeneous sectors reach into large, coherent ones.

At the firm level the crossings isolate names GICS arguably misplaces: Broadridge (filed under Industrials, but its five nearest neighbors are all banks and exchanges), Berkshire Hathaway (a genuine multi-sector conglomerate with no clean single-label peer set at all), and Ecolab. The payoff is a data-driven peer basket that doesn’t depend on a committee’s call — and a diagnostic for where sector ETFs may be carrying firms that don’t behave like their labelmates.

Gallery

UMAP projection of the 502 embeddings, colored by GICS sector. Sectors form visible neighborhoods; UMAP is non-metric, so only local structure is interpretable.
Cross-sector affinity as lift over a firm-count baseline (red = above chance, blue = below). The donor-to-attractor asymmetry survives the size correction.

Papers & documents

Beyond GICS — full write-upOpen ↗

Your browser can't display this PDF inline.

Open the PDF ↗