Why a Graph
When we started Forreast, we made a decision that defined everything that followed: we would build our intelligence platform on a graph database, not a relational one. Not because graphs are fashionable, but because the world we needed to model is fundamentally relational. Companies do not exist in isolation. They have owners, subsidiaries, suppliers, customers, investors, regulators, and competitors. Each of those relationships carries meaning, direction, and weight. A relational database can store entities. A graph database can store the system.
That decision led us to NebulaGraph, and to the construction of what we call the WorldGraph: a continuously updated network of over two million entities and the relationships that connect them.
What the WorldGraph Contains
The WorldGraph is not a list of companies. It is a model of the global economy's connective tissue. Each node is an entity—a company, a person, a fund, a jurisdiction, a vessel, a facility. Each edge is a relationship with a type, a direction, and a temporal dimension. A company supplies another company. A person controls a company. A fund invests in a company. A facility belongs to a company. A company is sanctioned by a jurisdiction.
The entity types we track include:
Companies: Public and private, across all major jurisdictions. Each carries financial data, ownership structures, operational details, and regulatory status.
People: Directors, officers, significant shareholders, political figures. Each is linked to the entities they control or influence.
Funds and financial instruments: Investment vehicles, holdings, and positions, connected to the entities they invest in and the people who manage them.
Physical assets: Vessels, facilities, infrastructure—linked to their owners, operators, and the supply chains they serve.
Jurisdictions and regulatory bodies: The frameworks that govern entities, connected through sanctions, registrations, and regulatory actions.
How It Is Built
The WorldGraph is constructed from hundreds of data sources, each contributing a different layer of the network. SEC filings provide ownership and investment data. Trade registries provide corporate structures. Sanctions lists provide regulatory designations. Shipping databases provide vessel ownership and movement. News and regulatory announcements provide event data.
The challenge is not collection. The challenge is integration. The same company may appear under different names across different sources. The same person may be listed with different transliterations. A subsidiary relationship may be stated in one filing and contradicted in another. Building the WorldGraph required us to solve the entity resolution problem at scale: determining when two records from different sources refer to the same real-world entity, and merging them without introducing false positives.
Our entity resolution pipeline combines deterministic matching—using identifiers like LEI, ISIN, and registration numbers—with probabilistic matching that uses name similarity, address proximity, and network topology. When a new entity enters the graph, it is compared against existing nodes using both approaches, and either merged with an existing entity or created as a new node. This process runs continuously, and the graph grows and refines itself as new data arrives.
What the Graph Enables
The power of the WorldGraph is not in its size. Two million entities is a number; what matters is what you can do with it. The graph structure enables analysis that is impossible with tabular data:
Path analysis. Given two entities, the graph can find every path that connects them—through ownership, supply, investment, or personal relationships. This reveals hidden dependencies and conflicts of interest that no spreadsheet could surface.
Centrality scoring. By computing graph metrics like betweenness centrality and eigenvector centrality, we can identify entities that occupy structurally critical positions in the network—the choke points whose failure would propagate most widely.
Community detection. The graph naturally clusters into communities—groups of entities that are densely connected to each other and sparsely connected to the rest of the network. These communities often correspond to industrial sectors, corporate groups, or informal alliances that are not visible in any single data source.
Impact propagation. When an event occurs—a sanctions designation, a financial distress signal, a supply disruption—we can trace its impact through the network, identifying which entities are affected and how severely, within seconds rather than weeks.
The Engineering Reality
Building and maintaining a graph of this scale is an engineering challenge. NebulaGraph was chosen because it handles billion-edge graphs with horizontal scalability, supports nGQL for expressive graph queries, and separates storage and compute so we can scale each independently. The graph is partitioned across multiple storage nodes, and queries are distributed for parallel execution.
But the harder problem is data quality. A graph is only as good as its edges. A missing relationship is a blind spot; a wrong relationship is a false signal. We maintain provenance for every edge in the graph—every relationship carries metadata about its source, its confidence level, and its last verification date. This allows us to distinguish between relationships confirmed by primary sources and those inferred from secondary signals, and to weight analysis accordingly.
One Picture
The promise of the WorldGraph is not that it contains everything. It is that it reveals the structure of what it contains. When you look at two million entities in a table, you see rows. When you look at them in a graph, you see the system. You see where the choke points are, where the concentrations of risk sit, where the opportunities for disruption lie, and where the hidden connections create exposure.
This is the picture we built the WorldGraph to provide. Not a dashboard, not a report, not a score. A picture of the system as it actually is—interconnected, dynamic, and comprehensible only when viewed as a whole.
