MARS · Company manifest

What we know, and about what

898K rows in companies_v2. But not every row is the same kind of thing. This manifest splits them by entity_kind so the gap chase points at real operating companies — not fund vehicles, SEC shells, or mis-minted individuals that shouldn't have domains, descriptions, or bios in the first place.

No prior snapshot — deltas will show on next run.

898,529
Total rows
95,940
Real operating cos
10.7%
of graph is real op-co
45,321
Op-cos with persons

Composition by entity_kind

Real operating companies in copper. Partial-signal op-cos in warn tone. Everything else is either a vehicle, a shell (mostly correct as-is), or a cleanup target.

KindRows%Bar
Operating company · rich 62,312 6.93%
Operating company · thin 27,129 3.02%
Operating company · no domain 6,499 0.72%
Investment vehicle 174,660 19.44%
Foundation / nonprofit 17,259 1.92%
SPAC shell 2,445 0.27%
Individual (mis-minted) 7,009 0.78%
SEC shell · unknown 562,302 62.58%
Unknown 38,914 4.33%

SEC shell breakdown — where the volume hides

The sec_shell_unknown bucket (729,174 rows) has no domain and no business signal, but the CIK carries structural clues about what each shell actually is. Broken down by evidence type below. The Form 4 issuer bucket is the highest-value fill target — those are public companies missing a domain.

BucketRows% of shellsBar
G. CIK-only, no evidence 330,974 45.4%
F. vehicle_name only (probable vehicle) 236,795 32.5%
C. form_d + non-vehicle name (subsidiary OR standalone op-co) 110,519 15.2%
B. form_d + vehicle_name (probable vehicle) 37,473 5.1%
D. form_4 issuer (public co missing domain — HIGH VALUE) 11,561 1.6%
A. pooled_fund_vehicle (correct shell) 1,849 0.3%
E. has_article (real op-co, missing domain) 3 0.0%

What real operating companies have populated

Coverage across the 95,940 real operating companies. Denominators here mean something because we've filtered out SEC shells and fund vehicles that legitimately don't need most of these fields.

FieldPopulated%
primary_domain89,27893.1%
description58,95261.4%
sector68,56671.5%
country82,80086.3%
founded_year1,4891.6%
employee_count00.0%
ticker (public)5,2275.4%
cik (SEC-filing)36,43038.0%
≥1 funding round25,73326.8%
≥1 M&A event45,70547.6%
persons attached (via work history)45,32147.2%

Gap-fill priority — what to work on to close the CB/PB gap

  1. Form 4 issuers with no domain — public companies. Backfill via Atlas ticker → company website. Cheapest and highest confidence.
  2. op-co thin bucket — has domain, missing description / sector / bios. Domain-based crawl target (bios pipeline via Brave + Qwen).
  3. op-co no-domain bucket — has funding/merger but lost the domain. Article-based domain recovery via article_meta_v2.
  4. Form D non-vehicle-name bucket — mix of subsidiary issuers vs real standalone companies. Qwen tier chain to split, ~$5–10.
  5. Individuals in wrong table — 7K persons mis-minted into companies_v2. Cleanup pass, move to persons_v2.
  6. New op-co discovery — beyond fill. News corpus (signals owns) + international sources (intl / lp_data verticals) surface companies we don't have at all.