Faraday corrosion rate calculator
Convert a corrosion current into thickness lost per year: 1 µA/cm² on iron, at 55.845 g/mol, 7.87 g/cm³ and two electrons, eats away a little over 0.01 mm a year. You get millimetres per year, mils per year and the equivalent weight. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Current density
- 0.000001
- Metal molar mass
- 55.845
- Density
- 7.87
- Electrons
- 2
- I corr
- 0.000001
- Current (A)
- 0.000001
- M
- 55.845
- Rho
- 7.87
A Faraday corrosion rate calculator converts electrochemical measurements into a thickness-loss figure you can compare with design allowances and inspection intervals. Corrosion engineers, materials students, and coating-life models all need that same i-to-mm/y conversion without opening a spreadsheet of unit constants.
What Faraday’s law says about corrosion penetration
Uniform corrosion that proceeds by anodic metal dissolution can be linked to measured corrosion current density through Faraday’s first law of electrolysis. The mass lost per unit area per unit time is proportional to current density i, molar mass M, and inversely proportional to the product of the number of electrons n transferred in the half-reaction and the Faraday constant F.
Dividing that areal mass-loss rate by the metal density ρ converts mass loss into a depth-of-attack rate—the corrosion penetration rate, often written CR equals i times M over n times F times ρ when i is in amperes per square centimetre, M in grams per mole, ρ in grams per cubic centimetre, and F in coulombs per mole; the base unit of CR is then centimetres per second.
Engineers rarely leave the answer in centimetres per second: multiplying by ten and by the number of seconds in a mean Gregorian year yields millimetres per year, and dividing the centimetre-per-second rate by zero point zero zero two five four centimetres per mil yields mils per year (mpy), the unit still common in North American corrosion specifications.
Equivalent weight EW equals M over n appears in many handbook charts; this calculator reports EW alongside both engineering units so you can cross-check textbook tables that start from EW and a conversion constant such as three point two seven times ten to the minus three. The same hard stop applies if electrons are zero, because that would also divide by zero inside the Faraday expression.
FAQ
What formula does this Faraday corrosion rate calculator use?
CR (cm/s) = (i · M) / (n · F · ρ), with i in A/cm², M in g/mol, ρ in g/cm³, n electrons, and F the Faraday constant. The response also converts CR to mm/year and mpy.
What happens when density is zero?
The penetration formula divides by density, so zero density is invalid.
Which units should I use for current density?
If your instrument reports µA/cm², multiply by 1e-6 (for example, 1 µA/cm² → 0.000001).
Does this perform a Tafel fit or polarization analysis?
No. It assumes you already have corrosion current density and only applies Faraday’s law to obtain penetration rate, equivalent weight, and unit conversions.
Is the Faraday corrosion rate calculator free?
The browser tool is free and runs locally.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/chem/corrosion-rate-faraday \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"current_density":0.000001,"molar_mass":55.845,"density":7.87,"electrons":2}'const res = await fetch("https://api.kit.forhosting.com/chem/corrosion-rate-faraday", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"current_density": 0.000001,
"molar_mass": 55.845,
"density": 7.87,
"electrons": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/chem/corrosion-rate-faraday",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"current_density": 0.000001,
"molar_mass": 55.845,
"density": 7.87,
"electrons": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/chem/corrosion-rate-faraday", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"current_density":0.000001,"molar_mass":55.845,"density":7.87,"electrons":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"current_density":0.000001,"molar_mass":55.845,"density":7.87,"electrons":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/chem/corrosion-rate-faraday", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"current_density": 0.000001,
"molar_mass": 55.845,
"density": 7.87,
"electrons": 2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "chem.corrosion_rate_faraday",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs | 1000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Enter corrosion current density i_corr in amperes per square centimetre, metal molar mass in grams per mole, density in grams per cubic centimetre, and the number of electrons transferred when the metal oxidizes; the tool returns the penetration rate in centimetres per second, millimetres per year, and mils per year (mpy), plus equivalent weight EW equals M over n and a full substitution trail. Zero density is rejected with invalid_input because Faraday’s law divides by ρ.
What Faraday’s law says about corrosion penetration
When density is zero the formula is undefined—there is no physical metal volume to convert mass loss into thickness—so the API returns a clear invalid_input error instead of Infinity or a silent NaN.
How to call the API and what comes back
Current density must be non-negative; molar mass and the Faraday constant must be strictly positive; density and electrons must be non-zero. Send a JSON body with four required finite numbers: current_density (aliases i_corr, i, j_corr, current, icorr) in A/cm², molar_mass (aliases M, atomic_weight, atomic_mass, molarMass, mw) in g/mol, density (aliases rho, density_g_cm3, metal_density) in g/cm³, and electrons (aliases n, n_e, z, valence, n_electrons, electrons_transferred). Optionally pass faraday (aliases F, faraday_constant) in C/mol; when omitted the solver uses nine six four eight five point three three two one. Absolute values must stay within the published limit of one trillion so intermediate products remain finite in IEEE double precision on the Worker and in the browser. On success the response echoes rounded inputs, sets equivalent_weight and EW to M over n, rate_cm_per_s to the base Faraday result, rate_mm_per_year and penetration_rate_mm_year to the same millimetre-per-year value, rate_mpy and penetration_rate_mpy to mils per year, formula to the string CR equals i times M over n times F times ρ, rearrange to the EW form, equation to a compact substitution line, message to a short English summary, and steps to an ordered array of given-data and conversion lines. Failed validation—missing fields, non-finite numbers, values outside absolute limits, negative current density, non-positive molar mass or F, zero density, or zero electrons—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item and zero marginal unit price.
Practical tips, units, and related searches
Convert microamperes carefully: one microampere per square centimetre equals one times ten to the minus six amperes per square centimetre, so enter one e minus six rather than one when your polarization fit reported one µA/cm². Typical iron or mild-steel checks use M about fifty-five point eight four five g/mol, n equals two for Fe to Fe two plus, and ρ about seven point eight seven g/cm³; at one µA/cm² the penetration rate is on the order of zero point zero one millimetres per year, matching the handbook constant form three point two seven e minus three times i_µA times EW over ρ. Keep n consistent with the dominant anodic reaction: copper often uses n equals two, aluminium n equals three, and mixed oxides may need a weighted equivalent weight from ASTM G102 practice rather than a single integer n. Prefer positive densities that match the alloy you are modelling—using pure-iron density for a highly alloyed stainless can bias the millimetre-per-year figure even when i_corr is correct. This landing targets people searching for a Faraday corrosion rate calculator, corrosion penetration rate from current density, or mpy from i_corr online; it is not a Tafel-fit polarization analyser, not a remaining-life FEA model, and not a galvanic-couple simulator. Prefer this capability when you already have i_corr, M, ρ, and n and only need the Faraday thickness rate; if your source is a potentiodynamic scan, extract i_corr first. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately set density to zero. Round-trip checks are easy: recompute i times M over n times F times ρ by hand and confirm it equals rate_cm_per_s within twelve-decimal rounding, then confirm mm/year equals that value times ten times thirty-one million five hundred fifty-seven thousand six hundred.
Integration use cases
Convert lab i_corr to mm/year for reports
Materials labs enter fitted corrosion current density with alloy M, ρ, and n, then paste millimetres-per-year and mpy into inspection or coating-life reports without maintaining unit-conversion spreadsheets.
Homework checks for Faraday corrosion problems
Students verify hand-calculated penetration rates and equivalent weights against a deterministic JSON result, including deliberate zero-density rejections that train validation hygiene.
Unit tests for corrosion-rate microservices
Generate known-good iron and aluminium cases plus zero-density and zero-electron invalid_input fixtures for regression suites of internal corrosion APIs.