# VC portfolios that hold competitors

Three files measuring how often one venture firm's portfolio holds two companies
that describe themselves the same way, for the 40 investors with the largest
portfolios in the FundingWatcher startup file.

Source: FundingWatcher, September 2026. Licensed CC BY 4.0.

## firms.csv

One row per firm, 40 rows.

| Column | Meaning |
| --- | --- |
| firm, permalink, types | investor name, Crunchbase permalink, Crunchbase investor types |
| portfolio | portfolio companies in the file with a usable domain |
| with_vector | of those, the ones with an embedding |
| coverage_pct | with_vector / portfolio |
| possible_pairs | with_vector choose 2 |
| pairs_85, pairs_80 | pairs at cosine 0.85 and 0.80 after cleaning; counts under 5 print `<5` |
| expected_85, expected_80 | mean pairs in 50 size-matched random portfolios |
| excess_85, excess_80 | observed minus expected |
| ratio_85, ratio_80 | observed / expected |
| share_in_pair_85_pct | share of with_vector sitting in at least one pair |
| share_in_pair_85_random_pct | the same share inside the random draws |
| pairs_85_per_1000_possible | pairs per 1,000 possible pairs |

## pairs.csv

One row per pair at cosine 0.80 or above, after cleaning, 3,687 rows: firm, both
company names, both domains, both one-line descriptions, the cosine score to six
decimal places, both founded years, `flag_year_gap`, which is 1 when the founded
years are more than 8 apart and the pair may be the same market in two eras
rather than two companies funded into the same fight, and `unicorn_a` and
`unicorn_b`, 1 when that company carries the unicorn flag in the startup file.

## excluded_pairs.csv

The 42 pairs dropped before counting, with the reason: same entity under two
names or two domains, one company acquired the other, or both were bought by the
same acquirer.

No vectors are published.

METHOD.md carries the thresholds, the control design and the funnel.
