Calculate the Effective Rate of Protection (ERP) based on input and output tariffs.
The duty rate applied to the finished good you produce (tf).
The duty rate applied to the raw materials/parts you import (ti).
The percentage of the final price that accounts for the cost of imported inputs (coefficient a). Must be less than 100%.
Effective Rate of Protection (ERP)
0.00%
Understanding the Effective Tariff Rate (ERP)
The Effective Tariff Rate, technically known as the Effective Rate of Protection (ERP), is a crucial concept in international economics and trade policy. While the nominal tariff rate tells you the tax percentage on the final price of a product, the ERP reveals the actual percentage increase in the domestic "value added" per unit of output made possible by the tariff structure.
This calculator helps manufacturers and policy analysts understand how tariff structures affect domestic production incentives. It answers the question: How much protection does the tariff structure actually provide to the domestic manufacturing process?
The Formula
The Effective Rate of Protection is calculated using the following formula:
g = (tf – a × ti) / (1 – a)
g: Effective Rate of Protection (ERP)
tf: Nominal tariff rate on the finished product
ti: Nominal tariff rate on the imported inputs
a: The ratio of the value of imported inputs to the value of the finished product (in the absence of tariffs)
How to Interpret the Results
The relationship between the tariff on inputs and the tariff on the final product dictates the level of protection:
ERP > Nominal Rate: If the tariff on the final product is higher than the tariff on inputs, the effective protection is higher than the nominal rate. This incentivizes domestic manufacturing.
ERP < Nominal Rate: If the tariff on inputs is higher than the tariff on the final product, the effective protection is lower. This is often referred to as "inverted tariff structure."
Negative ERP: If the taxes on inputs are sufficiently high compared to the final product tax, the ERP can become negative. This means the trade policy actually penalizes domestic production of that good compared to importing it finished.
Example Calculation
Imagine a domestic bicycle manufacturer.
Finished Good Tariff (tf): Imported bicycles face a 20% tariff.
Input Tariff (ti): Imported steel and rubber face a 10% tariff.
Input Share (a): The cost of materials is 50% of the bicycle's final value.
Even though the nominal tariff is only 20%, the effective protection for the bicycle assembly factory is 30%. This is because the tariff applies to the full value of the bike, but the manufacturer only pays duties on half the value (the inputs).
function calculateERP() {
// 1. Get input values by ID
var tfInput = document.getElementById('nominalTariffFinal').value;
var tiInput = document.getElementById('nominalTariffInput').value;
var aInput = document.getElementById('inputShare').value;
// 2. Validate inputs
if (tfInput === "" || tiInput === "" || aInput === "") {
alert("Please fill in all fields to calculate the Effective Rate.");
return;
}
var tf = parseFloat(tfInput);
var ti = parseFloat(tiInput);
var a = parseFloat(aInput);
if (isNaN(tf) || isNaN(ti) || isNaN(a)) {
alert("Please enter valid numeric values.");
return;
}
if (a >= 100 || a tf) {
analysisHTML = "Positive Escalation: The effective rate (" + erpPercentage.toFixed(2) + "%) is higher than the nominal rate (" + tf + "%). This structure effectively subsidizes domestic production (value addition).";
} else if (erpPercentage < 0) {
analysisHTML = "Negative Protection: The effective rate is negative. This suggests that tariffs on inputs are so high relative to the finished good that domestic manufacturing is being penalized.";
} else if (erpPercentage < tf) {
analysisHTML = "De-escalation: The effective rate (" + erpPercentage.toFixed(2) + "%) is lower than the nominal rate (" + tf + "%). While still positive, the high cost of inputs reduces the net protection offered to the manufacturer.";
} else {
analysisHTML = "Neutral: The effective rate equals the nominal rate.";
}
analysisText.innerHTML = analysisHTML;
}