The corrosion rate is a critical metric in materials engineering and asset integrity management. It quantifies the speed at which a metal deteriorates in a specific environment. The most common unit of measurement in the industry is MPY, which stands for Mils Per Year.
One "mil" is equal to one-thousandth of an inch (0.001 inches). Therefore, a corrosion rate of 5 mpy means the metal surface is losing 0.005 inches of thickness every year assuming uniform corrosion.
The Calculation Formula
This calculator uses the standard formula derived from Faraday's Law and ASTM G1 guidelines for calculating corrosion rate from weight loss:
MPY = (534 × W) / (D × A × T)
Where:
W = Weight loss in milligrams (mg). (Note: Our calculator accepts grams and converts automatically).
D = Density of the material in grams per cubic centimeter (g/cm³).
A = Exposed surface area in square inches (in²).
T = Time of exposure in hours.
534 = A conversion factor that accounts for units (hours to years, grams to mg, cm to inches, etc.).
Interpreting the Results
While acceptable corrosion rates vary widely depending on the application (e.g., a pressure vessel vs. a temporary fence), general industrial guidelines for Carbon Steel systems are often categorized as follows:
Corrosion Rate (MPY)
Classification
Typical Action
< 1.0
Outstanding
No action required.
1.0 – 5.0
Excellent
Routine monitoring.
5.0 – 10.0
Good
Monitor; consider treatment adjustments.
10.0 – 20.0
Fair
Treatment required; investigate causes.
20.0 – 50.0
Poor
Immediate corrective action needed.
> 50.0
Unacceptable
Asset integrity compromised; process shutdown may be required.
Why Measure Corrosion Rate?
Calculating the MPY allows engineers to:
Predict Equipment Life: Estimate how many years a pipe or tank will last before wall thickness drops below safety limits.
Evaluate Material Selection: Compare how different alloys perform in the same corrosive fluid.
Assess Inhibitor Efficiency: Determine if chemical treatments are effectively reducing metal loss.
Factors Affecting Accuracy
To ensure accurate calculations, the final weight must be measured after all corrosion byproducts (rust, scale) have been removed from the coupon according to ASTM G1 standards. Incomplete cleaning will result in a lower calculated rate, while over-cleaning (removing base metal) will result in a falsely high rate.
function updateDensity() {
var select = document.getElementById('materialSelect');
var densityInput = document.getElementById('density');
if (select.value !== "") {
densityInput.value = select.value;
}
}
function calculateCorrosion() {
// Get Inputs
var iWeight = parseFloat(document.getElementById('initialWeight').value);
var fWeight = parseFloat(document.getElementById('finalWeight').value);
var area = parseFloat(document.getElementById('surfaceArea').value);
var time = parseFloat(document.getElementById('exposureTime').value);
var density = parseFloat(document.getElementById('density').value);
// Validation
if (isNaN(iWeight) || isNaN(fWeight) || isNaN(area) || isNaN(time) || isNaN(density)) {
alert("Please enter valid numeric values for all fields.");
return;
}
if (iWeight <= 0 || fWeight <= 0 || area <= 0 || time <= 0 || density = iWeight) {
alert("Final weight must be less than Initial weight to calculate corrosion loss.");
return;
}
// Calculations
// 1. Calculate Weight Loss (W) in milligrams. Input is in grams.
var weightLossGrams = iWeight – fWeight;
var weightLossMg = weightLossGrams * 1000;
// 2. Calculate MPY
// Formula: MPY = (534 * W) / (D * A * T)
var mpy = (534 * weightLossMg) / (density * area * time);
// 3. Calculate Metric equivalent (mm/year)
// 1 mpy = 0.0254 mm/y
var mmpy = mpy * 0.0254;
// 4. Determine Rating (Based on Carbon Steel general standards)
var rating = "";
var color = "";
if (mpy < 1.0) {
rating = "Outstanding";
color = "#27ae60"; // Green
} else if (mpy < 5.0) {
rating = "Excellent";
color = "#2ecc71"; // Light Green
} else if (mpy < 10.0) {
rating = "Good";
color = "#f1c40f"; // Yellow
} else if (mpy < 20.0) {
rating = "Fair";
color = "#e67e22"; // Orange
} else if (mpy < 50.0) {
rating = "Poor";
color = "#e74c3c"; // Red
} else {
rating = "Unacceptable";
color = "#c0392b"; // Dark Red
}
// Update DOM
document.getElementById('res-loss').innerHTML = weightLossMg.toFixed(2) + " mg";
document.getElementById('res-mpy').innerHTML = mpy.toFixed(2) + " mpy";
document.getElementById('res-metric').innerHTML = mmpy.toFixed(3) + " mm/y";
var ratingEl = document.getElementById('res-rating');
ratingEl.innerHTML = rating;
ratingEl.style.color = color;
// Show result area
document.getElementById('result-area').style.display = 'block';
}