Graph analytics demo · synthetic data

Find the suppliers your risk scorecard misses

Most supplier risk tools score each company on its own: its finances, its country, its ESG rating. This demo maps a whole semiconductor supply chain as a network and asks a different question: if this one node fails, how much of the chain goes down with it?

The demo's risk view: a scatter of scorecard risk against network criticality, a tiered network graph, and the detail panel for a supplier flagged as a hidden cascade point.
102 companies across five tiers, plus 17 countries and 7 shipping chokepoints
18 hidden cascade points: rated low-risk by the scorecard, critical by the network
−0.18 vs 0.46 how well each score predicts the damage when a node actually fails (rank correlation; higher is better)

The idea

The scorecard view

A typical procurement scorecard rates each supplier on its own attributes: country risk, financial health, single-site exposure, capacity, inventory, ESG. It's useful, but it can't see what a supplier is connected to.

The network view

Treat the supply chain as a graph and measure each node's position: how many supply paths run through it (betweenness), how much important demand depends on it (PageRank), and how much of the chain sits downstream of it (reach).

The gap between them

Where the two disagree, you find hidden cascade points: a healthy photoresist maker in low-risk Japan, the only lithography toolmaker, a quiet distribution hub in Singapore. Safe on paper, and each one a single point of failure for most of the chain.

What's in the network

Countries carry geopolitical risk and host the companies located in them. Chokepoints (Taiwan Strait, Malacca, Suez, Bab-el-Mandeb, Panama, LA/Long Beach, Rotterdam) sit on the shipping routes between them.

How to use it

The demo has three panels on the left and a main view on the right that switches between a Network graph and a world Map. Click any node, row or dot to open its details.

1

Risk ranking

The scatter plots every company by its scorecard risk (left to right) against its network criticality (bottom to top). The shaded top-left zone is the interesting part: nodes the scorecard calls safe that the network says are critical. They're marked ▲ throughout the app.

The table's Impact column is the check on both scores: the share of end-buyer output lost if that node goes offline. Switch to Chokepoints or Countries to rank those instead.

Try: click Kurogane Photochem. Its scorecard risk is 20 out of 100, the lowest of any company, yet losing it costs 94% of end-buyer output.

Risk ranking panel with a supplier selected
2

Fragile clusters

Community detection (Louvain) groups companies that trade mostly with each other. Each cluster is scored for fragility: how much of it relies on a single source, how concentrated it is in a few countries, and how few outside suppliers feed it. Click a cluster to isolate it on the graph.

Fragile clusters panel with the top cluster isolated on the graph
3

Shock simulator

Knock out a company, a country or a chokepoint and watch the disruption travel week by week. Shipments take time to arrive, inventory buys time, alternate suppliers flex up a little, and damaged nodes recover gradually. Nodes turn red as their output drops; press play or drag the timeline to scrub through it.

Try: run Neon supply cut (the visible risk), then Lithography tool plant fire. The scorecard flags the neon supplier as high risk, yet its outage is absorbed completely. The lithography toolmaker looks safe, and its outage cuts end-buyer output to 55% about seven months later.

Shock simulator mid-cascade, with distributors and end buyers shown in red
4

Map view

Switch the main view to Map to see the same network on a globe. Shipments are drawn along the chokepoints they pass through, so selecting the Strait of Malacca shows every flow that depends on it.

Map view showing shipping routes through the Strait of Malacca

Why a graph database?

Every question in this demo is about relationships: who supplies whom, through which port, located in which country, and what sits downstream. That's what graph databases are built for. In a relational database these become chains of joins whose depth you have to know in advance; in a graph they're a single pattern.

Multi-hop questions are one query

Every end buyer exposed to one supplier, however many tiers away:

MATCH (s:Company {name: 'Kurogane Photochem'})
      -[:SUPPLIES*1..6]->(b:Company {tier: 'retailer'})
RETURN DISTINCT b.name

Everything that ships through a chokepoint:

MATCH (a)-[r:SUPPLIES]->(b)
WHERE 'CP_MAL' IN r.route
RETURN a.name, b.name, r.category

The algorithms come built in

Betweenness, PageRank and Louvain community detection, the three algorithms behind this demo, ship with Neo4j's Graph Data Science library. With a database underneath, scores can be refreshed as suppliers and routes change, and analysts can explore the graph directly instead of waiting on a report.

The data model is simple: Company, Country and Chokepoint nodes, joined by SUPPLIES, LOCATED_IN and SHIPS_THROUGH relationships.

See it for yourself

Open the demo →