Mars feed · proc2 · dbname=mars, schema mars
Entity DAG & Relationships
The v2 entity-resolution graph on proc2 Postgres — companies, persons, investors,
advisors and institutions as UUID-keyed nodes, wired to deals, filings, positions and articles
through 43 declared foreign keys. Read-only via argos_readonly.
Row counts are live planner estimates (2026-07-09).
5 entity node types
43 foreign keys
~1.2M persons · ~257K companies
Keys are UUIDs (*_id)
Relationship map
The five entity types and how they connect. Edges are labelled with the deal /
junction tables that carry the relationship; the two hubs — companies_v2 and
persons_v2 — is where almost everything points.
officers · work_history · form_144 · bios
deal_investors · funding · 13D/13G · credit
merger_advisors → deals
education
mergers (acquirer ↔ target)
family rollup (parent_investor)
parent institution
companies_v2
~257,174 · the hub
persons_v2
~1,206,032
investors_v2
~100,110
advisors_v2
~5,863
institutions_v2
~5,150
Entities (nodes)
Deals & events
Relationships (junction)
Articles & sources
Identity resolution
Reference maps
Table catalog — grouped by layer, with foreign keys
Every entry shows its primary key, live row estimate, and outgoing foreign keys
(→ parent via column ;
self-references in purple ).
How the DAG resolves. Every node is UUID-keyed and carries entity_resolution_pending /
integrity_tier / confidence plus name_variants for alias folding.
identity_decisions_v2 is the append-only audit log of the resolver — one row per merge / split /
keep decision with reason + metadata, so any consolidation (e.g. Anthropic's two
domains → one company, or a fund family rolled up under parent_investor_id) is fully reversible.
Provenance flows through the article layer: deal_articles_v2 links each deal to the
article_meta_v2 doc(s) that sourced it (deal_kind discriminates funding vs merger vs
credit vs real-estate). Not shown: ingestion/staging tables (bios_crawl_queue_v2,
bios_processing_v2, bios_brochure_scan_v2) and the frozen v1 tables
(companies, funding_rounds, mergers_resolved, article_labels)
kept as fallback. All reads go to the proc2 replica at 172.31.91.195.