Skip to the content.

ShockNet user documentation

What is ShockNet?

ShockNet is an adjustable economic model for studying how shocks (currently only supply shocks) pass from country to country under certain assumptions. There are a few pieces of terminology to understand first.

The basics of ShockNet’s model

ShockNet contains data distilled from the Global Trade Analysis Project (GTAP) data-base. It bakes this data into a graph model using TigerGraph Graph DB that captures the links between producers, importers, and countries, and the relative importance (% of total) of the various flows and activities. The diagram shows an example of these links.

Initial model baked into ShockNet

The fundamental assumption is that if some supply shock comes from a producer, then all other production / imports that take that producer’s output might be affected - depending on how important the link is. It allows the user to set thresholds on the scale of flows that will cause a shock to pass from one producer to another, e.g. “assume that if more than 10% of a producer’s inputs by value are experiencing a supply shock, then the producer will pass the shock on.” I describe more about the adjustable assumptions later

Concept: shock transfers

Fundamental to ShockNet is the passing of shocks from one producer to another, and on to create chains of shocks. The question can be reasonably asked, what does this correspond to in the real world?

The model is concerned with supply shocks, assuming this means less of a producer’s output will be available (e.g. the harvest of rice fails in some country). It can be fairly assumed that if the total supply (amount available) of a product significantly decreases, then either the price will significantly increase and/or the users of the product will have to reduce their usage of it. If they are not able to substitute some other product (e.g. I can make my food product from wheat rather than rice) then the only way they can reduce usage is to reduce their own production, which then passes along reduced supply to those who use their output.

Since ShockNet is currently a simple model, with no current notion of demand, substitutability, or elasticities, it assumes that a producer receiving a shock (a producer of one of their inputs has produced less, so less is available), they will either lower their production, or pay more for the input and charge more for the output they produce. If they reduce production, then prices will tend to rise for their product, so the outcome is the same and they effectively pass the same type of shock along to those who depend on their outputs under this assumption - the prices of the output become higher.

Controls common to all analyses

ShockNet allows the user to update the assumptions over how significant a flow needs to be for it to transfer a shock. The intended interaction style is:

Setting model assumptions

If ShockNet is completely new to you, I recommend starting from the section What is Shocknet? before returning here.

When you adjust assumptions, you use the controls on the left of the page, and click the “Update model assumptions” button. After a short wait, you should see the new values reflected on the right hand side of the page, as below.

Model assumption values reflected to current assumptions

The settings you can adjust are described below.

IMPORTANT NOTE: when you update assumptions the analysis you are viewing does not automatically update itself, you have to manually click the “Run analysis” button again if you want it to update.

What each threshold / control means

Thresholds can be set that affect how shocks are assumed to pass between producers:

Thresholds can also be set that affect how shocks are assumed to pass from producers to the countries where they are located (i.e. what makes a producer a Critical industry of their country):

NOTE: for horizon scanning mode, the focus is on producers that you have a desire to protect, and shocks to countries are not a part of the analysis, so the critical industry settings are only used when you choose to investigate how to protect “All critical industries of countryX.”

The effect of the assumptions - a shock transfer graph

In terms of the graph, clicking the “Update model assumptions” button causes some new categories of link to be written, and then all futher analyses only happen using these new categories of links. So for example, if the starting graph looks like:

Starting graph

And you set assumptions that say a shock transfers if an input that is at least 10% of a producer’s total input is shocked or an import that is at least 10% of total imports of the product into the country are shocked (i.e. x% = 10, y% = 10). And you set assumptions that a critical industry is one that produces at least 10% of national output (i.e. z1% = 10, z2% = 0, z3% = 0, z4% = 0, must meet ALL thresholds). Then the new graph (showing only the new categories of links) will look like:

Shock transfer graph

All further analysis will happen based on this new shock transfer graph, until the assumptions are changed again (which causes all of these links to be deleted and replaced with the links that meet the new assumptions). The meaning of a link in this new graph is “a shock can potentially pass between these entities” or equivalently “if a shock occurs to the source of the link, it will pass to the destination of the link.”

Effects analysis mode

If ShockNet is completely new to you, I recommend starting from the section What is Shocknet? before returning here.

Once assumptions are set the effects analysis mode allows you to ask “under these assumptions, if a crisis begins with some set of supply shocks, what countries will experience a crisis” and to drill into how the model predicts various chains of shocks.

Selecting producers experiencing a shock

You select the producers whose supply shock begin the crisis you want to model. The controls are laid out with the inputs to the left, and the currently selected list of producers to the right. You can add either all of the producers from a single country (e.g. simulating a widespread embargo of that country):

Adding all producers of a country

Or, more likely a single producer of a country (e.g. all of the rice output from Nepal is affected):

Adding a single producer

You can reset the current selection and start again if you make a mistake with your selections.

NOTE: there are some pseudo-producers available to select as the starting point of the crisis, that represent non-producable inputs of Land, Capital, Natural Resources, Skilled and Unskilled Labour. Although nobody strictly produces these, the purpose of leaving them in is to simulate hypotheticals like “if there were some economic condition that massively affected the availability of investment Capital in China, what might happen” or “if India institutes a policy that makes land much harder to acquire, what might happen.”

Once you have setup the producers that you would like to simulate a supply shock for, press “Run analysis” to show how the model predicts the crisis will spread. At a conceptual level, this is looking at the links from your producers to countries, e.g. in the running example if “Textiles production of Korea” is selected then the analysis finds the path shown in red:

Effects mode graph

Analysis output

The analysis plots the affected countries onto a world-map as a visual reference. They are colour-coded by the amount of output that critical industries of the country receiving a shock account for. If you hover over any country, link or bubble marker, you will see details about it.

Effects mode map

All countries that will a shock to some critical industry of theirs under these settings will be coloured a shade of pink/red. All countries not receiving a shock to their critical industries will be left green. If shocks transfer within one of these countries, without affecting a critical industry, a red bubble marker is drawn on the country.

If you click on any country, you will see details on the chain of shocks that the model predicts in the window below.

Effects mode shock details

There is also a panel showing all of the shock chains that the model predicted, ordered by the length of the chain from longest to shortest.

Effects mode shock chains

Horizon scanning mode

If ShockNet is completely new to you, I recommend starting from the section What is Shocknet? before returning here.

Once assumptions are set the horizon scanning mode allows you to ask “under these assumptions, how might a future crisis reach a producer I would like to protect, and how might that be avoided”.

Selecting producers you would like to protect

You select the producers that you wish to protect from a crisis. The controls are laid out with the inputs to the left, and the currently selected list of producers to the right. You can add either all of the critical producers from a single country (i.e. I don’t know which industries to protect, help me work out what’s important to the country I want to protect):

Adding all critical producers of a country

Or, more likely a single producer of a country (e.g. I know that Oil production is crucial to Saudi Arabia and wish to protect it) - you can select any producer, even those that aren’t critical industries of a country:

Adding a single producer

You can reset the current selection and start again if you make a mistake with your selections.

Once you have set up the producers to protect, press “Run analysis” to show how the model predicts the crisis can reach your selected producers. At a conceptual level, this is looking at the possible chains of links from any other producers to your producers, e.g. in the running example if “Clothes production of Guatemala” is selected then the analysis finds the paths shown in red:

Horizons mode graph

Analysis output

The analysis shows the network of shocks, predicted to reach the selected producers under the current assumptions. The nodes are producers, colour-coded by the country they are located in, the links represent the transfer of shocks. If you hover over a producer or link, you can see more detail about it.

The producers to protect are always shown at the top of the diagram, e.g. one with just one selected:

Horizons mode network diagram showing single producer

Whereas with multiple selected (e.g. all criticial industries of India under the current assumptions):

Horizons mode network diagram showing many producers

The analysis also tries to highlight what can be done to protect a particular producer, from the point of view of a policy maker of the country where that producer is located. It assumes the following:

Hence the details view, shows for each producer to protect, the local shock transfers involving produceable inputs, ordered by the value of the flow, and with details on how many shock chains that reach the producer would be eliminated by removing that shock transfer (reducing / replacing that flow with a local supply or a substituted input).

Horizons mode transfer analysis

So for example, if we are investigating six critical industries of India under some assumptions, the table shows us there is one only local flow that is involved in a shock chain that can reach Construction, three within chains that can reach the Transport sector, and there are none for the four remaining critical industries.

Of these, we can see that eliminating the use of Petrol / Coal products by the Transport sector would isolate the Transport sector from the most incoming shock chains, whereas the smallest shock transfer in a chain that can reach the Transport sector, is the use of Indian Oil by the Indian Petrol / Coal products sector, so this could the easiest flow to reduce or substitute (but it will have little impact on reducing the overall risk to the Transport sector given it only eliminates 2 chains out of 19).

Group analysis mode

If ShockNet is completely new to you, I recommend starting from the section What is Shocknet? before returning here.

Once assumptions are set the groups analysis mode allows you to ask “under these assumptions, which countries are likeliest to pass shocks to and from each other”.

You have the option to select whether you wish to see groups of countries that both pass shocks to each other AND receive shocks from each other (STRONG groups) or simply countries that can either pass shocks to each other AND/OR receive shocks from each other (WEAK groups).

The analysis plots the affected countries onto a world-map as a visual reference. The countries in the same group under the current assumptions, are plotted with the same colour:

Groups analysis output

Any countries not forming a group with any other under the current assumptions are shown with a white bubble marker. If you hover over any country, you will see the country codes of the other countries in the same group.

Support or Contact

For more info about ShockNet, refer to the Github repo