Indonesian tariff dynamics, 2000-2018

An illustration using WITS API on Python

A couple of weeks ago, a colleague of mine, Deasy Pane from Bappenas, invited me for a discussion about Indonesia’s trade and investment situation policy. Indeed, that’s the beauty of zoom right? Collabs know no boundaries! With us was Donny and Chandra, also trade anthusiast at ANU. Some of Bappenas' employee were also there.

In fact, one of Deasy’s Bappenas colleague asked us about Indonesian tariff dynamics. Indeed, Indonesian manufacturing import was a bit volatile during 2000s and early 2010s, which could be driven by changes in tariff and Indonesian overall protectionism dynamics. Commodity boom might also a factor here. Generally, protectionism in terms of tariff was declining during this time. However, the dynamics on overall protectionism is not so straight-forward if we include other measures, and in fact even in terms of tariff, it rises a little bit during Jokowi’s presidency.

Additionally, since my last post I was showing how to use World Bank’s API with Python,, might as well shows how to use WITS' API this time around. To install:

pip install world_trade_data --upgrade

To show tariff regulation (instead of how it might change welfare), I use effective applied simple average tariff and MFN simple average tariff. Here’s what they are:

import pandas as pd
import world_trade_data as wits
tariff=wits.get_indicators('tradestats-tariff')
tariff=tariff.filter(['name','definition'])
tariff=tariff.loc[['AHS-SMPL-AVRG','MFN-SMPL-AVRG']]
#pd.set_option('display.max_colwidth', None)
tariff

name definition
indicatorcode
AHS-SMPL-AVRG AHS Simple Average (%) Effectively Applied Simple Average tariff (%)
MFN-SMPL-AVRG MFN Simple Average (%) Most Favored Nation ( (MFN) Simple Average tar...

Using the API

import pandas as pd
import datetime
#pd.set_option('display.max_rows', 20)
import seaborn as sns; sns.set()
import matplotlib.pyplot as plt
pd.options.display.max_rows=999
b=wits.get_products('tradestats-tariff')
b=b.loc[(b.grouptype=='Sector') & (
    b.index!='Total')].productdescription.values

# MFN tariff, weighted average
a=wits.get_indicator(indicator='MFN-SMPL-AVRG',
reporter='IDN',datasource='tradestats-tariff',
                     year=['2000','2019'])
a=a.reset_index()
a=a.set_index('ProductCode')
c,d,e=a.loc[b[0:4]],a.loc[b[5:10]],a.loc[b[11:]]
c,d,e=c.reset_index(),d.reset_index(),e.reset_index()
a=a.reset_index()

# Effective applied tariff, weighted average
o=wits.get_indicator(indicator='AHS-SMPL-AVRG',
reporter='IDN',datasource='tradestats-tariff',
                     year=['2000','2019'])
o=o.reset_index()
o=o.set_index('ProductCode')
p,q,r=o.loc[b[0:4]],o.loc[b[5:10]],o.loc[b[11:]]
p,q,r=p.reset_index(),q.reset_index(),r.reset_index()
o=o.reset_index()

For some reason, Indonesian tariff is missing in 2014 and 2015. If you see from all of my graph below, you will see a jump from 2013 to 2016. Seems like the API extract the year not as datetime object. It’s a bit of a pain to change it myself cuz then I need to add two NA rows per sectors and I am too lazy to do that.

There are 16 different sectors WITS is giving us, HS-based. I split them into three broader groups so the graph is much more readable. In total, there are 6 graphs in this post. Here’s the sectors:

b
array(['Animal', 'Vegetable', 'Food Products', 'Minerals', 'Fuels',
       'Chemicals', 'Plastic or Rubber', 'Hides and Skins', 'Wood',
       'Textiles and Clothing', 'Footwear', 'Stone and Glass', 'Metals',
       'Mach and Elec', 'Transportation', 'Miscellaneous'], dtype=object)

Effective Applied Tariff, simple average

Three graphs below are the effective applied tariff. After 2008, Indonesia was very diligent in doing FTAs. Among them are ASEAN FTA driven (AFTA). The AFTA turned to plenty of AFTA+1 in 2010. Among them are AKFTA (with South Korea), ACFTA (China), AANZFTA (Australia and New Zealand), and AIFTA with India. Additionally There’s also IJEPA with Japan, perhaps the only bilateral one Indonesia had before IACEPA comes along.

These FTAs eventually lower effective applied tariff.

# FIGURES FOR AHS
plt.figure(figsize=(9,6))
sns.lineplot(data=p,x='Year',y='Value',hue='ProductCode')
plt.axvline('2016', color='black')
plt.axvline('2008', color='black')
<matplotlib.lines.Line2D at 0x165b71fc790>

png

Firstly, primary products. You can straight away see a far higher tariff in food producing sector compared to animal, vegetables, and minerals. The GFC clearly increased Indonesian food protectionism (as with other countries during that time). Overall, other sectors aren’t that highly protected by tariff, which hover around 2-4%. Same thing can’t be said for NTMs, however. But that’s for another post.

plt.figure(figsize=(9,6))
sns.lineplot(data=q,x='Year',y='Value',hue='ProductCode')
plt.axvline('2016', color='black')
plt.axvline('2008', color='black')
<matplotlib.lines.Line2D at 0x165bdbb2760>

png

In some manufacturing, you see a higher tariff. These sectors were highly protected before Asian Financial Crisis (AFC) in 1998. It was lowered after AFC, but also after GFC, interestingly. Indeed, bad times lead to good policy. Another interesting thing is that Indonesia was famed to have a premature deindustrialisation during 2005s if my memory serves. These are times where textiles got more protection, as you can see from the graph.

Lastly, these tariff shot up in 2016 (remember, 2014 and 2015 are missing). What happened? What huge event happened in 2015/2015?

plt.figure(figsize=(9,6))
sns.lineplot(data=r,x='Year',y='Value',hue='ProductCode')
plt.axvline('2016', color='black')
plt.axvline('2008', color='black')
<matplotlib.lines.Line2D at 0x165bdc9ef10>

png

On this group, it seems like in general tariff are progressing to the lower end. Especially after AFC and GFC, protection given to transportation is stripped up, but also in metals, machinery, electronics, and other equipments. These are also sectors that have large intensity of Global Value Chain (GVC). Make sense to lower the trade cost of these stuff as low as possible. Again, you can see a bit of a jump in 2016.

MFN, simple average

Here’s MFN! In general, we should expect a higher level of tariff using MFN. But the trends are pretty much the same: aside from food products, crisis reduce the overall tariff level. 2016, everything jumped up.

This time, let me hear more from you! Please do comment on this blog or mention me on twitter for a discussion!

# FIGURES FOR AHS
plt.figure(figsize=(9,6))
sns.lineplot(data=c,x='Year',y='Value',hue='ProductCode')
plt.axvline('2016', color='black')
plt.axvline('2008', color='black')
<matplotlib.lines.Line2D at 0x165bdd830a0>

png

plt.figure(figsize=(9,6))
sns.lineplot(data=d,x='Year',y='Value',hue='ProductCode')
plt.axvline('2016', color='black')
plt.axvline('2008', color='black')
<matplotlib.lines.Line2D at 0x165bdedc280>

png

plt.figure(figsize=(9,6))
sns.lineplot(data=e,x='Year',y='Value',hue='ProductCode')
plt.axvline('2016', color='black')
plt.axvline('2008', color='black')
<matplotlib.lines.Line2D at 0x165bde1e8b0>

png

Krisna Gupta
Krisna Gupta
Lecturer

Research mainly on international trade and investment policy and its impact on firms. Indonesia in particular is my main geographical focus.

comments powered by Disqus

Related