HomeChemistry ToolsOxidation Number Calculator with Steps | StatsUnlock

Oxidation Number Calculator with Steps | StatsUnlock

Oxidation Number Calculator

Find the oxidation number of every atom in a compound or ion, the element that is oxidised or reduced in a reaction, the metal in a coordination compound, or each carbon in an organic molecule. Every answer shows the rule used at each step, the check that the numbers add up to the charge, a number-line figure and four charts.

ChemistryOxidation NumberOxidation StateRedoxStep by StepFree

⚡ 0. Quick Answer

To calculate an oxidation number, give the atoms with fixed values their numbers (group 1 metals +1, oxygen −2, hydrogen +1, fluorine −1), then choose the unknown so that all the oxidation numbers add up to the charge on the compound or ion. For chromium in potassium dichromate, K2Cr2O7:

2(+1) + 2x + 7(−2) = 0 → 2x = 12 → x = +6

Rule of thumb: the sum of the oxidation numbers equals the overall charge: 0 for a neutral compound, −2 for Cr2O72−. An oxidation number that goes up in a reaction means oxidation; one that goes down means reduction.

🔑 Key Takeaways

  • An oxidation number is the charge an atom would carry if every bond were fully ionic, with the electrons given to the more electronegative atom.
  • Free elements are 0; a monatomic ion equals its charge; F is −1; group 1 is +1 and group 2 is +2; H is usually +1 and O usually −2.
  • The oxidation numbers add up to the charge, so one unknown can always be solved: Cr is +6 in K2Cr2O7, Mn is +7 in KMnO4 and S is +6 in H2SO4.
  • Exceptions are found by the same sum: O is −1 in H2O2 and +2 in OF2; H is −1 in NaH. A fraction such as Fe +8/3 in Fe3O4 is an average.
  • In a reaction, the element whose oxidation number rises is oxidised and the one whose number falls is reduced: in MnO4− + 5Fe2+, Mn goes +7 → +2 and Fe goes +2 → +3, a transfer of 5 electrons.

📚 1. What Is an Oxidation Number, and How Does an Oxidation Number Calculator Work?

An oxidation number (or oxidation state) is a bookkeeping charge. Imagine every bond in a compound broken so that the more electronegative atom takes all the shared electrons: the charge left on each atom is its oxidation number. IUPAC defines it this way in its 2016 recommendation (Karen, McArdle & Takats, 2016). In water, oxygen takes both bonding pairs, so O is −2 and each H is +1.

An oxidation number calculator applies the standard rules in the order textbooks teach them, then uses one fact to finish the job: the oxidation numbers of all the atoms add up to the overall charge. Whatever is left unknown is solved from that sum. The calculator also tracks oxidation numbers across a reaction to find what is oxidised and reduced, works out the metal in a coordination compound from its ligands, and counts bonds to give each carbon in an organic molecule its own oxidation number.

A worked one-liner: in KMnO4, K is +1 and each O is −2, so +1 + x + 4(−2) = 0 and Mn is +7.

Contributions to the charge in K2Cr2O7: two K give +2, two Cr give +12, seven O give minus 14, total 0 K₂Cr₂O₇: atoms × oxidation number must add up to 0 2 K × (+1)+2 2 Cr × (+6)+12 7 O × (−2)−14 +2 + 12 − 14 = 0, so each Cr is +12 ÷ 2 = +6 orange: positive (electrons given away) · blue: negative (electrons taken)
Each element’s share of the charge in potassium dichromate. The contributions balance at zero, which fixes chromium at +6.

Who uses it: oxidation numbers are taught in NCERT Class 11 (“Redox Reactions”) and asked every year in JEE and NEET; GCSE, A level, AP Chemistry and IB courses use them to balance redox equations and name compounds such as iron(III) chloride. Analysts use them to work out redox titrations, and electrochemists to count the electrons in a cell reaction.

SpeciesElementEquationOxidation number
K2Cr2O7Cr2(+1) + 2x + 7(−2) = 0+6
KMnO4Mn+1 + x + 4(−2) = 0+7
H2SO4S2(+1) + x + 4(−2) = 0+6
CO2Cx + 2(−2) = 0+4
Cr2O72−Cr2x + 7(−2) = −2+6

What this free oxidation number calculator solves

One tool covers every oxidation number calculation in a typical course. It works as an oxidation number calculator with steps for compounds and ions, a change in oxidation number calculator for redox reactions, an oxidation number calculator for coordination compounds, and an oxidation number calculator for organic compounds that gives each carbon separately. Press Try it to load an example into the calculator, then press the button to see the full working.

ProblemWhat it works outExample
Oxidation number of an element in a compoundEvery element, the rule used, and the sum checkK2Cr2O7 → Cr +6
Polyatomic ionsThe sum equals the ion’s chargeCr2O72− → Cr +6
ExceptionsPeroxides, hydrides, OF2H2O2 → O −1
Fractional oxidation numbersExact fractions, explained as averagesFe3O4 → Fe +8/3
Change in oxidation numberOxidised, reduced, agents, electrons transferredMnO4− + Fe2+ → 5 e−
DisproportionationOne element both oxidised and reducedCl2 → Cl− + ClO3−
Coordination compoundsMetal oxidation number, coordination number, d-electron countK4[Fe(CN)6] → Fe +2
Organic compoundsEach carbon by counting bondsCH3CH2OH → C −3, C −1

Free, with no sign-up. Everything runs in your browser: nothing you type is sent to a server or stored.

En español: ¿cómo se calcula el número de oxidación? Asigna los valores fijos (O −2, H +1, metales del grupo 1 +1) y despeja la incógnita para que la suma sea igual a la carga: en K2Cr2O7, 2(+1) + 2x + 7(−2) = 0, así que el Cr es +6.

How accurate is this oxidation number calculator?

The rules follow the IUPAC definition and the priority order used in textbooks: fixed values first, then the sum. Results are exact fractions, never rounded decimals, so Fe3O4 gives +8/3 rather than 2.67. Every answer is checked before it gets the Verified badge: the atoms × oxidation numbers must add up to the charge, and in a balanced redox equation the electrons lost must equal the electrons gained. The calculator also warns when a value is above an element’s group maximum (a sign of peroxide bonds, as in CrO5) or when it had to assume a value. The R and Python scripts in Sections 10 and 11 return the same +6 for chromium in K2Cr2O7.

Studies of how students learn redox find that oxidation numbers are easy to calculate but often confused with ionic charges and with the gain or loss of real electrons (Garnett & Treagust, 1992; Österlund, Berg & Ekborg, 2010). That is why the results label each value with the rule it came from and show where it sits on the number line.

🧮 2. Enter Your Formula in the Oxidation Number Calculator

1. What do you want to find?

2. Compound or ion

Write ion charges with ^, for example MnO4^- or SO4^2-, or type the charge in its own box.

⌨ Quick picks and symbol keys tap to insert into the active box
Common examples
Charges, brackets, arrows

Press Enter in any box to calculate. Nothing is calculated until you press the button.

📊 3. Your Results: Oxidation Number Calculator with Steps

Oxidation number: ___ . Enter or load a problem above, then press Find the Oxidation Numbers. Every element’s oxidation number, the rule behind it, the steps, a number-line figure and four charts will appear here.

🧠 4. What Does Your Oxidation Number Mean?

Solve a problem above to fill this box with your own numbers: ___ . The sub-sections below explain every part of the output.

4.1 Positive, negative and zero

A positive oxidation number means the atom has, on paper, given electrons to more electronegative partners; a negative one means it has taken them. Zero means neither, as in every free element (O2, I2, S8, Fe). The size tells you how many: Mn at +7 in KMnO4 has given away all seven of its valence electrons, which is why permanganate is such a strong oxidising agent.

4.2 The highest and lowest possible values

For main-group elements the highest oxidation number is the number of valence electrons (the group number, or group − 10 for groups 13 to 18), and the lowest is that number minus 8. Sulfur ranges from −2 (H2S) to +6 (H2SO4); nitrogen from −3 (NH3) to +5 (HNO3). Transition metals reach their group number at most: Cr +6, Mn +7. A species at its maximum can only be reduced; at its minimum it can only be oxidised.

ElementLowestExampleHighestExample
Carbon−4CH4+4CO2
Nitrogen−3NH3+5HNO3
Sulfur−2H2S+6H2SO4
Chlorine−1NaCl+7HClO4
Chromium0Cr metal+6K2Cr2O7
Manganese0Mn metal+7KMnO4

4.3 Fractional oxidation numbers are averages

An oxidation number such as +8/3 for iron in Fe3O4 does not mean any atom carries a fraction of an electron. Magnetite contains one Fe2+ and two Fe3+: (2 + 3 + 3) ÷ 3 = 8/3. The same happens in S4O62− (average +5/2) and in KO2 (O at −1/2). The algebraic method always gives the average; the structure gives each atom.

4.4 A value above the maximum means a peroxide

If the sum puts an element above its group number, the rule “O is −2” has failed somewhere. CrO5 gives Cr +10, which is impossible: the molecule has two O–O peroxide groups, so four oxygens are −1 and chromium is really +6. Peroxodisulfate (S2O82−) gives +7 for S for the same reason; the true value is +6. The calculator flags these cases.

4.5 Oxidation number, charge, valency and formal charge

These four are easy to mix up (Parkin, 2006). The charge is real and belongs to a whole ion. The oxidation number is a bookkeeping charge per atom with every bond made ionic. Valency is the number of bonds an atom forms, with no sign. Formal charge splits each bond equally instead of giving it to the more electronegative atom. In carbon monoxide, C has oxidation number +2 but formal charge −1, and the molecule has no charge at all.

4.6 Oxidation and reduction: OIL RIG

Oxidation is loss of electrons, so the oxidation number goes up; reduction is gain, so it goes down. The oxidising agent contains the element that is reduced, and the reducing agent contains the element that is oxidised. In a balanced equation the electrons lost equal the electrons gained: in MnO4− + 5Fe2+ + 8H+ → Mn2+ + 5Fe3+ + 4H2O, one Mn gains 5 and five Fe lose 1 each.

4.7 Coordination compounds and d-electron counts

In a complex the metal’s oxidation number is the charge of the complex ion minus the ligand charges. Neutral ligands (NH3, H2O, CO, en) add nothing; anionic ones (Cl−, CN−, C2O42−) add their charge. Once you have it, the d-electron count is group number minus oxidation number: Fe(II) in K4[Fe(CN)6] is d6, and Co(III) in [Co(NH3)6]3+ is also d6.

4.8 Organic carbon: the oxidation ladder

Each bond from carbon to a more electronegative atom (O, N, halogen) counts +1, each bond to H counts −1, and C–C bonds count 0. That gives the ladder used in organic chemistry: CH4 (−4), CH3OH (−2), HCHO (0), HCOOH (+2), CO2 (+4). Turning ethanol into acetic acid moves the CH2OH carbon from −1 to +3, an oxidation (Menzek, 2002).

4.9 A field note on where these problems go wrong

In marking oxidation number work, the same slips appear again and again: forgetting to multiply by the number of atoms (writing 2 + x − 2 = 0 for K2Cr2O7), setting the sum to 0 for an ion, giving oxygen −2 in a peroxide, and treating the oxidation number as a real ionic charge (Cr6+ does not exist in dichromate). Concept-inventory research finds these errors persist into university (Brandriet & Bretz, 2014). The calculator shows the multiplication in every step and checks the sum against the charge.

✍ 5. How to Write an Oxidation Number Answer

▶ Solve a problem above to fill all five cards with your own answer.

1. Exam answer with working
___ + x = charge → x = ___
📌 Conventions examiners look for
  • Write the equation with every atom counted: 2(+1) + 2x + 7(−2) = 0.
  • Set the sum equal to the charge of the ion, not 0, for an ion.
  • Always give the sign: +6, not 6.
2. Final answer only
___
📌 Conventions
  • Oxidation numbers carry the sign before the number (+6); ionic charges put it after (6+).
  • In names, use Roman numerals: chromium(VI), iron(III).
3. Lab report sentence
The oxidation number of ___ in ___ is ___.
📌 Conventions
  • For a titration, state the change: manganese is reduced from +7 to +2.
  • Above the symbol, an oxidation number may be written as a Roman numeral: FeIII.
4. Teacher’s answer-key line
Answer: ___
📌 Conventions
  • Accept fractions such as +8/3 as averages, or the split values (+2 and +3) for Fe3O4.
  • Use the Batch tab to make a whole worksheet answer key.
5. Plain text for chat, forums or a spreadsheet
___
📌 Conventions
  • Write subscripts and charges as plain text: Cr2O7^2-, Cr +6.

∑ 6. Rules and Formulas for Calculating Oxidation Numbers

The rules for calculating oxidation numbers are applied in order: a rule higher on the list wins when two disagree. The final rule, that the oxidation numbers add up to the charge, turns the problem into one equation with one unknown.

①
The Sum Rule (the formula used to calculate the unknown)
Σ (ni × ONi) = z  ·  x = (z − Σ known) ÷ nx
niNumber of atoms of element i in the formula
ONiOxidation number of element i
zOverall charge: 0 for a compound, the ion charge for an ion
ExampleK2Cr2O7: x = (0 − [2(+1) + 7(−2)]) ÷ 2 = (0 − (−12)) ÷ 2 = +6
②
Elements and Monatomic Ions
free element: ON = 0  ·  monatomic ion: ON = ion charge
ExampleI2, O3, S8, Cu: 0.  Fe3+: +3.  Cl−: −1
③
Fixed Values, in Priority Order
F = −1  >  group 1 = +1, group 2 = +2 (Al +3, Zn +2, Ag +1)  >  H = +1  >  O = −2  >  Cl, Br, I = −1
H−1 when bonded only to metals or boron (NaH, CaH2, NaBH4, LiAlH4)
O−1 in peroxides (H2O2, BaO2), −1/2 in superoxides (KO2), +2 in OF2
Cl, Br, IPositive when bonded to O or a more electronegative halogen: Cl +7 in HClO4, I +1 in ICl
④
Change in Oxidation Number and Electrons Transferred
ΔON = ONproduct − ONreactant  ·  e− = Σ (coefficient × atoms × |ΔON|)
ΔON > 0Oxidation (electrons lost); ΔON < 0: reduction
ExampleMnO4− → Mn2+: +7 → +2, ΔON = −5, so 5 electrons gained per Mn
⑤
Coordination Compounds
ON(metal) = charge of complex ion − Σ (ligands × ligand charge)  ·  dn: n = group − ON
ExampleK4[Fe(CN)6]: complex −4; −4 − 6(−1) = +2; Fe(II) is d6
⑥
Each Carbon in an Organic Compound
ON(C) = (bonds to O, N, S, halogen) − (bonds to H)  ·  C–C bonds count 0
ExampleCH3CH2OH: CH3 = 0 − 3 = −3; CH2OH = 1 − 2 = −1; average −2
⑦
From a Lewis Structure
ON = valence electrons − electrons assigned (lone pairs + both electrons of each bond to a less electronegative atom + one electron of each bond to the same element)
ExampleH2O2: each O has 6 valence electrons and is assigned 4 lone-pair + 2 (O–H) + 1 (half of O–O) = 7, so ON = 6 − 7 = −1
SourceIUPAC 2016 definition of oxidation state; electronegativities: Pauling scale

🔀 7. How to Calculate the Oxidation Number: Flowchart, Step by Step

This flowchart shows how to calculate the oxidation number of an element in a compound, on the same problem used in the Excel, R, Python and by-hand sections: calculate the oxidation number of Cr in K2Cr2O7.

Start or result Data step Calculation step Yes or no check
StartK2Cr2O7, a neutral compoundFind the oxidation number of Cr
CheckIs it a free element or a single ion?
NoThree elements. Carry on.
YesON = 0, or ON = the ion charge. Done.
1
Write the charge and count the atomscharge 0; K 2, Cr 2, O 7The sum of all oxidation numbers must be 0.
2
Give the fixed valuesK = +1 (group 1); O = −2No F, no peroxide, no metal hydride.
3
Multiply by the number of atoms2 × (+1) = +2; 7 × (−2) = −14Known total = −12
4
Write the sum equation+2 + 2x − 14 = 02x = +12
5
Solve for xx = 12 ÷ 2Cr = +6
CheckIs +6 within chromium’s range (0 to +6)?
Yes+6 is the group number. Accept.
No, stopAbove the maximum means peroxide bonds or a wrong formula.
ResultCr = +6 in K2Cr2O7 (chromium(VI))2(+1) + 2(+6) + 7(−2) = 0Chromium is at its maximum, so dichromate is a strong oxidising agent.

Check any box yourself: the Excel sheet in Section 9, the R script in Section 10 and the Python script in Section 11 all return +6 for this problem.

📝 8. How to Use This Oxidation Number Calculator

  1. Choose what you want to find. Pick a compound or ion, a change in a reaction, the metal in a complex, or each carbon in an organic molecule.
  2. Type the formula or name. Write K2Cr2O7 or potassium dichromate; the preview shows the atoms and the charge as you type.
  3. Add the charge for an ion. Write it in the formula as Cr2O7^2- or in the charge box as 2-.
  4. Pick the element to find. Choose the underlined atom from the list, or leave it on every element.
  5. For a reaction, type the equation. Use -> for the arrow and choose acidic or basic solution for ionic redox equations.
  6. For a complex, use square brackets. Write K4[Fe(CN)6] or [Co(NH3)6]Cl3 with ligands in round brackets.
  7. For an organic compound, write it condensed. Write CH3CH2OH, with = and # for double and triple bonds.
  8. Press the button. Nothing is calculated before you press it, and changing any input clears the old answer.
  9. Read the rule for each element and the check. The Verified badge means the oxidation numbers add up to the charge.
  10. Copy, share or batch. Copy the answer, share a link, download a report, or solve a whole worksheet on the Batch tab.

📈 9. How to Calculate Oxidation Numbers in Excel

Excel turns the sum rule into one small table: one row per element with its number of atoms and its known oxidation number, a column for atoms × oxidation number, and one cell that solves for the unknown. The sheet below uses the headline problem, so it must return +6 for chromium in K2Cr2O7, the same as the oxidation number calculator above.

The key cell: with the charge in B6, the known contributions in D2:D4 and the number of unknown atoms in B3, =(B6-SUM(D2:D4))/B3 gives the oxidation number of the unknown element.

9.1 The functions you need

You wantExcel formulaNote
Contribution of an element=B2*C2Atoms × oxidation number; leave the unknown’s C cell empty
Sum of the known contributions=SUM(D2:D4)Empty cells count as 0
The unknown oxidation number=(B6-SUM(D2:D4))/B3B6 = charge, B3 = atoms of the unknown
Same thing in one cell=(B6-SUMPRODUCT(B2:B4,C2:C4))/B3No helper column
As a fractionFormat Cells → FractionShows 2.6667 as 8/3
With a sign=TEXT(C3,"+0;-0;0")Shows +6 instead of 6
Change in oxidation number=C_after-C_beforePositive: oxidised; negative: reduced
The ion trap. For an ion, B6 must hold the ion’s charge (−2 for Cr2O72−), not 0. Using 0 gives Cr +7, a classic wrong answer.

9.2 Step by step

1 Atoms and the known oxidation numbers

Type each element in A, its number of atoms in B and its known oxidation number in C. Leave the unknown (Cr) blank. In D2 multiply and fill down.

Xoxidation-number.xlsx - ExcelD2fx=B2*C2ABCD1ElementAtomsOx. numberAtoms x ON2K2123Cr204O7-2-14

Known contributions: K +2, O −14; Cr is still blank.

2 Solve for the unknown

Put the charge in B6 and solve for Cr in C3.

=(B6-SUM(D2:D4))/B3
Xoxidation-number.xlsx - ExcelC3fx=(B6-SUM(D2:D4))/B3ABCD1ElementAtomsOx. numberAtoms x ON2K2123Cr264O7-2-146Charge0

(0 − (−12)) ÷ 2 = +6, so chromium is +6.

3 Check: the contributions add up to the charge

Once C3 is filled, D3 updates and the total in D5 must equal the charge.

=SUM(D2:D4) =IF(D5=B6,"Verified","Check")
Xoxidation-number.xlsx - ExcelD5fx=SUM(D2:D4)ABCD1ElementAtomsOx. numberAtoms x ON2K2123Cr26124O7-2-145TotalVerified0

+2 + 12 − 14 = 0: verified.

4 A whole worksheet of compounds

For a list, keep the charge, the known total and the number of unknown atoms in columns, and solve in one formula per row.

Xoxidation-number.xlsx - ExcelE2fx=(B2-C2)/D2ABCDE1FormulaChargeKnown sumUnknown nON2K2Cr2O70-12263KMnO40-7174H2SO40-6165Na2S2O30-4226Na5P3O100-1535

Five oxidation number calculation examples solved with the same formula.

9.3 Awkward cases

  • Peroxides and hydrides. Type the exception in column C (O = −1 in H2O2, H = −1 in NaH) before solving.
  • Ammonium salts. Solve each ion on its own row block: NH4+ with charge +1 and NO3− with charge −1.
  • Two unknowns. Excel needs one unknown per equation. Split the compound into its ions (Fe2(SO4)3 into Fe3+ and SO42−) or use the calculator.

9.4 Why your Excel answer might differ

SituationWhat happensFix
Cr comes out +7 for dichromate ionCharge left at 0Put −2 in B6
Answer twice too bigDivided by 1 instead of the number of atomsDivide by B3
2.666666667An average oxidation numberFormat as a fraction: 8/3
O comes out positiveFluorine present (OF2)That is correct: O is +2
ToolUnknown oxidation number
Excel / Google Sheets=(B6-SUM(D2:D4))/B3
R(z - known) / counts[x]
Python(z - known) / counts[x] with Fraction
Casio fx-991EX( 0 − ( 2 × 1 + 7 × (−2) ) ) ÷ 2 =

9.5 Charting in Excel

  1. Select the elements and their contributions (A2:A4, D2:D4).
  2. Insert → Charts → Clustered Column. Positive bars (electrons given away) and negative bars (electrons taken) balance at zero, as in Chart 2 above.

9.6 Excel errors you will probably hit

Excel showsWhyFix
#DIV/0!The atom count of the unknown is emptyFill B3
#VALUE!A sign typed as text, such as “+6” with a spaceNumbers only: 6 or -2
Circular referenceD3 uses C3 and C3 uses SUM(D2:D4)Use SUMPRODUCT over the known rows only, or enable iterative calculation

📈 10. How to Calculate Oxidation Numbers in R

This base R script reads a formula (with brackets and an ion charge), applies the fixed rules in priority order, solves the remaining element from the sum rule, prints each element with the rule it used, checks nine textbook compounds and saves one 300 dpi chart. For the headline problem it prints Cr = +6, matching the oxidation number calculator on this page.

base R nothing to install
Copy the whole block. It runs top to bottom in RStudio or with Rscript oxidation_number.R. Change only the formula and find lines.

10.1 The complete script

R, base only, saves oxidation_number.png

# ============================================================
# Oxidation number calculator in R (base R only):
# fixed rules first, then solve the unknown from "sum = charge"
# StatsUnlock - https://statsunlock.com/oxidation-number-calculator/
# ============================================================

# ---- 1. Your compound or ion ----------------------------------------
formula <- "K2Cr2O7"     # write ions as "Cr2O7^2-" or "MnO4^-"
find    <- "Cr"          # the element you want (the underlined atom)

group1 <- c("Li", "Na", "K", "Rb", "Cs")
group2 <- c("Be", "Mg", "Ca", "Sr", "Ba")
fixed  <- c(Al = 3, Zn = 2, Ag = 1)
metals <- c(group1, group2, "Al", "B")   # partners that make H a hydride (-1)

parse_formula <- function(f) {
  charge <- 0
  m <- regmatches(f, regexec("\\^([0-9]*)([+-])$", f))[[1]]
  if (length(m)) {
    charge <- ifelse(m[2] == "", 1, as.numeric(m[2])) * ifelse(m[3] == "+", 1, -1)
    f <- sub("\\^[0-9]*[+-]$", "", f)
  }
  # expand brackets such as Ca(NO3)2 -> CaN2O6 counts
  while (grepl("\\(", f)) {
    m2 <- regmatches(f, regexec("\\(([^()]*)\\)([0-9]*)", f))[[1]]   # innermost bracket and its multiplier
    k <- ifelse(m2[3] == "", 1, as.numeric(m2[3]))
    parts <- regmatches(m2[2], gregexpr("[A-Z][a-z]?[0-9]*", m2[2]))[[1]]
    rep <- paste0(sapply(parts, function(p) {
      el <- sub("[0-9]+$", "", p); n <- sub("^[A-Z][a-z]?", "", p)
      paste0(el, ifelse(n == "", 1, as.numeric(n)) * k)
    }), collapse = "")
    f <- sub(m2[1], rep, f, fixed = TRUE)
  }
  parts <- regmatches(f, gregexpr("[A-Z][a-z]?[0-9]*", f))[[1]]
  counts <- setNames(numeric(0), character(0))
  for (p in parts) {
    el <- sub("[0-9]+$", "", p); n <- sub("^[A-Z][a-z]?", "", p)
    n <- ifelse(n == "", 1, as.numeric(n))
    if (el %in% names(counts)) counts[el] <- counts[el] + n else counts[el] <- n
  }
  list(counts = counts, charge = charge)
}

oxidation_numbers <- function(f) {
  p <- parse_formula(f); counts <- p$counts; z <- p$charge
  els <- names(counts)
  ox <- setNames(rep(NA_real_, length(els)), els)
  rule <- setNames(rep("", length(els)), els)
  if (length(els) == 1) {
    ox[1] <- z / counts[1]; rule[1] <- "element or simple ion"
    return(list(counts = counts, z = z, ox = ox, rule = rule))
  }
  n_unknown <- function() sum(is.na(ox))
  for (e in els) {
    if (e == "F") { ox[e] <- -1; rule[e] <- "F is always -1" }
    else if (e %in% group1) { ox[e] <- 1; rule[e] <- "group 1 is +1" }
    else if (e %in% group2) { ox[e] <- 2; rule[e] <- "group 2 is +2" }
    else if (e %in% names(fixed)) { ox[e] <- fixed[[e]]; rule[e] <- "fixed value" }
  }
  if ("H" %in% els && is.na(ox["H"]) && n_unknown() > 1) {
    hydride <- all(setdiff(els, "H") %in% metals)
    ox["H"] <- ifelse(hydride, -1, 1); rule["H"] <- ifelse(hydride, "H is -1 in a metal hydride", "H is +1")
  }
  if ("O" %in% els && is.na(ox["O"]) && n_unknown() > 1) { ox["O"] <- -2; rule["O"] <- "O is -2" }
  for (e in c("Cl", "Br", "I")) {
    if (e %in% els && is.na(ox[e]) && n_unknown() > 1 && !("O" %in% els) && !("F" %in% els)) { ox[e] <- -1; rule[e] <- "halogen is -1" }
  }
  left <- els[is.na(ox)]
  if (length(left) != 1) stop("More than one unknown: ", paste(left, collapse = ", "))
  known <- sum(counts[!is.na(ox)] * ox[!is.na(ox)])
  ox[left] <- (z - known) / counts[left]; rule[left] <- "solved from sum = charge"
  list(counts = counts, z = z, ox = ox, rule = rule)
}

frac_txt <- function(v) {                    # 2.666667 -> "8/3" without extra packages
  for (d in 1:12) if (abs(v * d - round(v * d)) < 1e-9) return(if (d == 1) as.character(round(v)) else paste0(round(v * d), "/", d))
  format(v, digits = 6)
}
sgn <- function(v) ifelse(v > 0, paste0("+", frac_txt(v)), frac_txt(v))

# ---- 2. Solve and show the working ------------------------------------
r <- oxidation_numbers(formula)
cat("Formula ", formula, ", charge ", r$z, "\n", sep = "")
for (e in names(r$counts)) {
  cat(sprintf("  %-2s  atoms %d  ON %5s  contribution %5s  (%s)\n", e, r$counts[[e]],
              sgn(r$ox[[e]]), sgn(r$counts[[e]] * r$ox[[e]]), r$rule[[e]]))
}
total <- sum(r$counts * r$ox)
cat("  Sum of contributions =", total, ifelse(abs(total - r$z) < 1e-9, "= charge", "!= charge"), "\n")
cat("Oxidation number of", find, "in", formula, "=", sgn(r$ox[[find]]), "\n")

# ---- 3. Checks ----------------------------------------------------------
stopifnot(abs(total - r$z) < 1e-9)
tests <- list(c("K2Cr2O7", "Cr", 6), c("KMnO4", "Mn", 7), c("H2SO4", "S", 6),
              c("Cr2O7^2-", "Cr", 6), c("Na2S2O3", "S", 2), c("Na5P3O10", "P", 5),
              c("H2O2", "O", -1), c("NaH", "H", -1), c("OF2", "O", 2))
for (t in tests) stopifnot(abs(oxidation_numbers(t[1])$ox[[t[2]]] - as.numeric(t[3])) < 1e-9)
stopifnot(abs(oxidation_numbers("Fe3O4")$ox[["Fe"]] - 8 / 3) < 1e-9)
cat("Verdict: Verified (all test compounds agree)\n")

# ---- 4. Figure: each element's contribution to the charge ---------------
vals <- r$counts * r$ox
png("oxidation_number.png", width = 2100, height = 1350, res = 300)
par(mar = c(4, 4.5, 3, 1))
b <- barplot(vals, names.arg = names(vals), col = ifelse(vals > 0, "#ea580c", "#2563eb"),
             ylab = "Atoms x oxidation number", main = paste0(formula, ": contributions add up to ", r$z),
             ylim = range(c(0, vals)) * 1.25)
abline(h = 0, col = "#334155")
text(b, vals, labels = paste0(r$counts, " x (", sapply(r$ox, sgn), ")"), pos = ifelse(vals >= 0, 3, 1), cex = 0.8)
invisible(dev.off())
cat("Saved oxidation_number.png\n")

Output: Cr atoms 2 ON +6 contribution +12 (solved from sum = charge), Oxidation number of Cr in K2Cr2O7 = +6, Verdict: Verified. With formula <- "Fe3O4" it prints +8/3.

10.2 R traps

  • Escape the caret in regular expressions: "\\^", or the charge is not read.
  • Named vectors keep the element order of the formula; counts[el] on a missing name gives NA, so test with %in% first.
  • The script stops with a message when two elements have no rule (for example Fe2(SO4)3); split the salt into its ions.

10.3 What each part does

PartWhat it does
parse_formula()Counts atoms, expands brackets and reads the charge
for (e in els) ...Fixed values: F, group 1, group 2, Al, Zn, Ag
hydride <- ...H is −1 only when every partner is a metal or boron
(z - known) / counts[left]The sum rule
stopifnot(...)The checks

10.4 The figure

The script saves oxidation_number.png at 2100 × 1350 pixels and 300 dpi: one bar per element showing atoms × oxidation number, orange above zero and blue below.

🐍 11. How to Calculate Oxidation Numbers in Python

This script does the same job in plain Python with exact fractions: it parses the formula, applies the fixed rules, solves the unknown from the sum rule, prints the working, checks ten compounds (including Fe3O4 at +8/3) and saves a 300 dpi chart. It is the same method the oxidation number calculator runs in your browser.

matplotlib for the chart only

Install once: pip install matplotlib

11.1 The complete script

Python, saves oxidation_number.png

# ============================================================
# Oxidation number calculator in Python:
# fixed rules first, then solve the unknown from "sum = charge"
# StatsUnlock - https://statsunlock.com/oxidation-number-calculator/
# pip install matplotlib
# ============================================================
import re
from fractions import Fraction
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt

# ---- 1. Your compound or ion ----------------------------------------
formula = "K2Cr2O7"     # write ions as "Cr2O7^2-" or "MnO4^-"
find = "Cr"             # the element you want (the underlined atom)

GROUP1 = {"Li", "Na", "K", "Rb", "Cs"}
GROUP2 = {"Be", "Mg", "Ca", "Sr", "Ba"}
FIXED = {"Al": 3, "Zn": 2, "Ag": 1}
METALS = GROUP1 | GROUP2 | {"Al", "B"}          # partners that make H a hydride (-1)

def parse(f):
    """Return (atom counts, charge) for a formula such as Ca(NO3)2 or SO4^2-."""
    charge = 0
    m = re.search(r"\^(\d*)([+-])$", f)
    if m:
        charge = (int(m.group(1)) if m.group(1) else 1) * (1 if m.group(2) == "+" else -1)
        f = f[:m.start()]
    def group(s, i):
        out, order = {}, []
        while i < len(s) and s[i] != ")":
            if s[i] == "(":
                inner, i, sub_order = group(s, i + 1)
                i += 1                                  # skip ")"
                n = re.match(r"\d*", s[i:]).group(); i += len(n)
                for k, v in inner.items():
                    out[k] = out.get(k, 0) + v * (int(n) if n else 1)
                order += [k for k in sub_order if k not in order]
            else:
                el = re.match(r"[A-Z][a-z]?", s[i:]).group(); i += len(el)
                n = re.match(r"\d*", s[i:]).group(); i += len(n)
                out[el] = out.get(el, 0) + (int(n) if n else 1)
                if el not in order: order.append(el)
        return out, i, order
    counts, _, order = group(f, 0)
    return {k: counts[k] for k in order}, charge

def oxidation_numbers(f):
    counts, z = parse(f)
    ox, rule = {}, {}
    if len(counts) == 1:                             # element or monatomic/homonuclear ion
        el = next(iter(counts))
        ox[el] = Fraction(z, counts[el]); rule[el] = "element or simple ion"
        return counts, z, ox, rule
    def unknown():
        return [e for e in counts if e not in ox]
    for e in counts:
        if e == "F": ox[e], rule[e] = Fraction(-1), "F is always -1"
        elif e in GROUP1: ox[e], rule[e] = Fraction(1), "group 1 is +1"
        elif e in GROUP2: ox[e], rule[e] = Fraction(2), "group 2 is +2"
        elif e in FIXED: ox[e], rule[e] = Fraction(FIXED[e]), "fixed value"
    if "H" in counts and "H" not in ox and len(unknown()) > 1:
        hydride = all(e in METALS for e in counts if e != "H")
        ox["H"], rule["H"] = (Fraction(-1), "H is -1 in a metal hydride") if hydride else (Fraction(1), "H is +1")
    if "O" in counts and "O" not in ox and len(unknown()) > 1:
        ox["O"], rule["O"] = Fraction(-2), "O is -2"
    for e in ("Cl", "Br", "I"):
        if e in counts and e not in ox and len(unknown()) > 1 and "O" not in counts and "F" not in counts:
            ox[e], rule[e] = Fraction(-1), "halogen is -1"
    left = unknown()
    if len(left) != 1:
        raise ValueError("More than one unknown: " + ", ".join(left) + ". Use the online calculator.")
    x = left[0]
    known = sum(counts[e] * ox[e] for e in ox)
    ox[x] = (z - known) / counts[x]; rule[x] = "solved from sum = charge"
    return counts, z, ox, rule

def sign(v):
    return ("+" if v > 0 else "") + str(v)

# ---- 2. Solve and show the working ------------------------------------
counts, z, ox, rule = oxidation_numbers(formula)
print(f"Formula {formula}, charge {z}")
for e, n in counts.items():
    print(f"  {e:2s}  atoms {n}  ON {sign(ox[e]):>5s}  contribution {sign(n * ox[e]):>5s}  ({rule[e]})")
total = sum(counts[e] * ox[e] for e in counts)
print("  Sum of contributions =", total, "= charge" if total == z else "!= charge")
print(f"Oxidation number of {find} in {formula} = {sign(ox[find])}")

# ---- 3. Checks ----------------------------------------------------------
assert total == z, "oxidation numbers must add up to the charge"
for f, el, expected in [("K2Cr2O7", "Cr", 6), ("KMnO4", "Mn", 7), ("H2SO4", "S", 6),
                        ("Cr2O7^2-", "Cr", 6), ("Na2S2O3", "S", 2), ("Na5P3O10", "P", 5),
                        ("H2O2", "O", -1), ("NaH", "H", -1), ("OF2", "O", 2)]:
    assert oxidation_numbers(f)[2][el] == expected, f
assert oxidation_numbers("Fe3O4")[2]["Fe"] == Fraction(8, 3)
print("Verdict: Verified (all test compounds agree)")

# ---- 4. Figure: each element's contribution to the charge ---------------
els = list(counts)
vals = [float(counts[e] * ox[e]) for e in els]
fig, ax = plt.subplots(figsize=(7, 4.5))
bars = ax.bar(els, vals, color=["#ea580c" if v > 0 else "#2563eb" for v in vals])
ax.axhline(0, color="#334155", linewidth=1)
for b, e in zip(bars, els):
    ax.annotate(f"{counts[e]} x ({sign(ox[e])})", (b.get_x() + b.get_width() / 2, b.get_height()),
                ha="center", va="bottom" if b.get_height() >= 0 else "top", fontsize=10)
ax.set_ylabel("Atoms x oxidation number")
ax.set_title(f"{formula}: contributions add up to {z}")
fig.tight_layout()
fig.savefig("oxidation_number.png", dpi=300)
print("Saved oxidation_number.png")

Output: K atoms 2 ON +1 contribution +2 (group 1 is +1), Oxidation number of Cr in K2Cr2O7 = +6, Verdict: Verified.

11.2 Python traps

  • Use Fraction, not floats: 8/3 stays exact and the sum check is an exact equality.
  • Dictionary keys are case sensitive: "Co" is cobalt, "CO" is carbon monoxide.
  • The regular expression \^(\d*)([+-])$ reads the charge only at the end of the formula.

11.3 Packages

pip install pymatgen gives Composition("K2Cr2O7").oxi_state_guesses(), which guesses oxidation states from a table of common values, and chempy parses formulas and balances reaction equations.

11.4 What each part does

PartWhat it does
parse()Atom counts in formula order, brackets expanded, charge read
oxidation_numbers()The rules in priority order, then the sum rule
(z - known) / counts[x]Solves the unknown
assert ...The checks

11.5 The figure

The script saves oxidation_number.png at 300 dpi with each element’s contribution to the charge.

📋 12. Oxidation Number Tables and Worksheet

12.1 Rules for calculating oxidation numbers, with exceptions

#RuleExampleException
1A free element is 0Na, O2, I2, S8, P4: 0None
2A monatomic ion equals its chargeFe3+ +3, S2− −2None
3Fluorine is −1 in compoundsHF, OF2, SF6None
4Group 1 metals +1, group 2 metals +2NaCl, CaCO3None in ordinary compounds
5Hydrogen is +1H2O, NH3, HCl−1 in metal hydrides: NaH, CaH2, LiAlH4
6Oxygen is −2H2O, CO2, SO42−−1 in peroxides, −1/2 in superoxides, +2 in OF2
7Cl, Br, I are −1NaCl, KBr, HIPositive with O or a lighter halogen: HClO4 +7, ICl +1
8The sum equals the overall chargeK2Cr2O7: 0; Cr2O72−: −2Always holds

12.2 Common oxidation numbers of the elements

The most common oxidation numbers of elements met in courses, with their range (lowest to highest) and their Pauling electronegativity.

ElementGroupElectronegativityCommon oxidation numbersRange
H Hydrogen12.2−1, +1−1 to +1
Li Lithium10.98+10 to +1
C Carbon142.55−4, +4−4 to +4
N Nitrogen153.04−3, +3, +5−3 to +5
O Oxygen163.44−2−2 to +2
F Fluorine173.98−1−1 to 0
Na Sodium10.93+10 to +1
Mg Magnesium21.31+20 to +2
Al Aluminum131.61+30 to +3
Si Silicon141.9−4, +4−4 to +4
P Phosphorus152.19−3, +3, +5−3 to +5
S Sulfur162.58−2, +2, +4, +6−2 to +6
Cl Chlorine173.16−1, +1, +3, +5, +7−1 to +7
K Potassium10.82+10 to +1
Ca Calcium21+20 to +2
Cr Chromium61.66+3, +60 to +6
Mn Manganese71.55+2, +4, +70 to +7
Fe Iron81.83+2, +30 to +6
Co Cobalt91.88+2, +30 to +5
Ni Nickel101.91+20 to +4
Cu Copper111.9+20 to +4
Zn Zinc121.65+20 to +2
Br Bromine172.96−1, +1, +3, +5−1 to +7
Ag Silver111.93+10 to +3
I Iodine172.66−1, +1, +3, +5, +7−1 to +7
Pb Lead141.8+2, +4−4 to +4

12.3 Oxidation numbers in common compounds and polyatomic ions

Every row was computed by the same engine as the oxidation number calculator.

SpeciesNameElementOxidation numberWorking
NO3−nitrateN+53(−2) + 1x = -1 → x = +5
NO2−nitriteN+32(−2) + 1x = -1 → x = +3
NH4+ammoniumN−34(+1) + 1x = 1 → x = −3
N3−azideN−1/33 × (−1/3) = −1
SO42−sulfateS+64(−2) + 1x = -2 → x = +6
SO32−sulfiteS+43(−2) + 1x = -2 → x = +4
S2O32−thiosulfateS+23(−2) + 2x = -2 → x = +2
S4O62−tetrathionateS+5/26(−2) + 4x = -2 → x = +5/2 = 2.500
PO43−phosphateP+54(−2) + 1x = -3 → x = +5
CO32−carbonateC+43(−2) + 1x = -2 → x = +4
C2O42−oxalateC+34(−2) + 2x = -2 → x = +3
CN−cyanideC+21(−3) + 1x = -1 → x = +2
ClO−hypochloriteCl+11(−2) + 1x = -1 → x = +1
ClO2−chloriteCl+32(−2) + 1x = -1 → x = +3
ClO3−chlorateCl+53(−2) + 1x = -1 → x = +5
ClO4−perchlorateCl+74(−2) + 1x = -1 → x = +7
IO3−iodateI+53(−2) + 1x = -1 → x = +5
MnO4−permanganateMn+74(−2) + 1x = -1 → x = +7
MnO42−manganateMn+64(−2) + 1x = -2 → x = +6
CrO42−chromateCr+64(−2) + 1x = -2 → x = +6
Cr2O72−dichromateCr+67(−2) + 2x = -2 → x = +6
O22−peroxideO−12 × (−1) = −2
H2O2hydrogen peroxideO−12(+1) + 2x = 0 → x = −1
N2H4hydrazineN−24(+1) + 2x = 0 → x = −2

12.4 Calculating oxidation numbers: practice worksheet with answers

Twenty-five questions in three groups: compounds, polyatomic ions, and changes in oxidation number. Every answer was checked by the calculator engine. Cover the last column and try them first.

📄 Download the Oxidation Numbers Worksheet (PDF)

Free printable oxidation number worksheet with answers.

#QuestionWorkingAnswer
A. Calculate the oxidation number of the underlined atom in each compound
1Calculate the oxidation number of Cr in K2Cr2O7.2(+1) + 7(−2) + 2x = 0 → x = +6+6
2Calculate the oxidation number of Mn in KMnO4.1(+1) + 4(−2) + 1x = 0 → x = +7+7
3Calculate the oxidation number of S in H2SO4.2(+1) + 4(−2) + 1x = 0 → x = +6+6
4Calculate the oxidation number of C in CO2.2(−2) + 1x = 0 → x = +4+4
5Calculate the oxidation number of Cr in Na2Cr2O7.2(+1) + 7(−2) + 2x = 0 → x = +6+6
6Calculate the oxidation number of Mn in K2MnO4.2(+1) + 4(−2) + 1x = 0 → x = +6+6
7Calculate the oxidation number of P in Na5P3O10.5(+1) + 10(−2) + 3x = 0 → x = +5+5
8Calculate the oxidation number of S in Na2S2O3.2(+1) + 3(−2) + 2x = 0 → x = +2+2
9Calculate the oxidation number of S in Na2S2O5.2(+1) + 5(−2) + 2x = 0 → x = +4+4
10Calculate the oxidation number of I in I2.A free element (I2) has oxidation number 0.0
B. Polyatomic ions and exceptions
11What is the oxidation number of Cr in Cr2O72−?7(−2) + 2x = -2 → x = +6+6
12What is the oxidation number of Mn in MnO4−?4(−2) + 1x = -1 → x = +7+7
13What is the oxidation number of S in SO42−?4(−2) + 1x = -2 → x = +6+6
14What is the oxidation number of N in NH4+?4(+1) + 1x = 1 → x = −3−3
15What is the oxidation number of P in PO43−?4(−2) + 1x = -3 → x = +5+5
16What is the oxidation number of Cl in ClO4−?4(−2) + 1x = -1 → x = +7+7
17What is the oxidation number of O in H2O2?2(+1) + 2x = 0 → x = −1−1
18What is the oxidation number of O in OF2?2(−1) + 1x = 0 → x = +2+2
19What is the oxidation number of H in NaH?1(+1) + 1x = 0 → x = −1−1
20What is the oxidation number of Fe in Fe3O4?4(−2) + 3x = 0 → x = +8/3 = 2.667+8/3
C. Change in oxidation number: what is oxidised and what is reduced?
21MnO4− + Fe2+ → Mn2+ + Fe3+ (in acidic solution)MnO4− + 5 Fe2+ + 8 H+ → Mn2+ + 5 Fe3+ + 4 H2OFe oxidised +2 → +3; Mn reduced +7 → +2; 5 e−
22Cr2O72− + Fe2+ → Cr3+ + Fe3+ (in acidic solution)Cr2O72− + 6 Fe2+ + 14 H+ → 2 Cr3+ + 6 Fe3+ + 7 H2OFe oxidised +2 → +3; Cr reduced +6 → +3; 6 e−
23Zn + CuSO4 → ZnSO4 + CuZn + CuSO4 → ZnSO4 + CuZn oxidised 0 → +2; Cu reduced +2 → 0; 2 e−
24Cu + HNO3 → Cu(NO3)2 + NO + H2O3 Cu + 8 HNO3 → 3 Cu(NO3)2 + 2 NO + 4 H2OCu oxidised 0 → +2; N reduced +5 → +2; 6 e−
25Cl2 + NaOH → NaCl + NaClO3 + H2O3 Cl2 + 6 NaOH → 5 NaCl + NaClO3 + 3 H2ODisproportionation: Cl 0 → −1, +5; 5 e−

📈 13. Oxidation Number Calculation Examples

Eight examples run through the calculator, from potassium dichromate to the carbons of ethanol. Each figure is drawn from the computed numbers: bars to the right of zero are positive oxidation numbers, bars to the left negative.

1
TEXTBOOK CASE

Chromium in K2Cr2O7

The most-asked oxidation number question.

Calculate the oxidation number of Cr in potassium dichromate, K2Cr2O7.

Cr +6chromium(VI)neutralorange oxidiser
ElementAtomsOxidation numberContribution
K2+1+2
Cr2+6+12
O7−2−14
Total0
Chromium in K2Cr2O7: oxidation numbers on a number line−4−3−2−10+1+2+3+4+5+6+7+8K+1Cr+6O−2
Orange bars: positive oxidation numbers. Blue bars: negative. The scale runs from −4 to +8.

What it means: K is +1 and O is −2, so 2(+1) + 2x + 7(−2) = 0 and x = +6. Chromium is at its group maximum, so dichromate can only be reduced, usually to green Cr3+ (+3).

How to write it: Cr = +6 in K2Cr2O7: 2(+1) + 2x + 7(−2) = 0

2
PERMANGANATE

Manganese in KMnO4

Seven electrons given away.

Calculate the oxidation number of Mn in KMnO4, and compare it with K2MnO4.

Mn +7manganese(VII)K2MnO4: +6purple
ElementAtomsOxidation numberContribution
K1+1+1
Mn1+7+7
O4−2−8
Total0
Manganese in KMnO4: oxidation numbers on a number line−4−3−2−10+1+2+3+4+5+6+7+8K+1Mn+7O−2
Orange bars: positive oxidation numbers. Blue bars: negative. The scale runs from −4 to +8.

What it means: +1 + x + 4(−2) = 0 gives Mn = +7. In potassium manganate, K2MnO4, two K make the sum 2 + x − 8 = 0, so Mn = +6: one more K, one less unit of oxidation.

How to write it: Mn = +7 in KMnO4; Mn = +6 in K2MnO4

3
ACID

Sulphur in H2SO4

Sulfur at its highest value.

Calculate the oxidation number of sulphur in sulphuric acid, H2SO4.

S +6H +1O −2maximum
ElementAtomsOxidation numberContribution
H2+1+2
S1+6+6
O4−2−8
Total0
Sulphur in H2SO4: oxidation numbers on a number line−4−3−2−10+1+2+3+4+5+6+7+8H+1S+6O−2
Orange bars: positive oxidation numbers. Blue bars: negative. The scale runs from −4 to +8.

What it means: 2(+1) + x + 4(−2) = 0, so S = +6, equal to its group number minus 10. Sulfur can go no higher, so in reactions concentrated H2SO4 is reduced (to SO2, +4).

How to write it: S = +6 in H2SO4

4
AVERAGE VALUE

Sulphur in sodium thiosulfate

One number for two different atoms.

Calculate the oxidation number of S in Na2S2O3.

S +2 (average)central S +5terminal S −1Na2S2O5: +4
ElementAtomsOxidation numberContribution
Na2+1+2
S2+2+4
O3−2−6
Total0
Sulphur in sodium thiosulfate: oxidation numbers on a number line−4−3−2−10+1+2+3+4+5+6+7+8Na+1S+2O−2
Orange bars: positive oxidation numbers. Blue bars: negative. The scale runs from −4 to +8.

What it means: 2(+1) + 2x + 3(−2) = 0 gives x = +2. That is the average: in the structure the central S is +5 and the terminal S is −1. In sodium metabisulfite, Na2S2O5, the same sum gives +4.

How to write it: S = +2 (average) in Na2S2O3

5
FRACTION

Iron in magnetite, Fe3O4

Why 8/3 is a correct answer.

Calculate the oxidation number of Fe in Fe3O4.

Fe +8/3= 2.67Fe2+ + 2 Fe3+FeO·Fe2O3
ElementAtomsOxidation numberContribution
Fe3+8/3+8
O4−2−8
Total0
Iron in magnetite, Fe3O4: oxidation numbers on a number line−4−3−2−10+1+2+3+4+5+6+7+8Fe+8/3O−2
Orange bars: positive oxidation numbers. Blue bars: negative. The scale runs from −4 to +8.

What it means: 3x + 4(−2) = 0 gives x = +8/3. Magnetite is FeO·Fe2O3: one Fe2+ and two Fe3+, and (2 + 3 + 3) ÷ 3 = 8/3.

How to write it: Fe = +8/3 (average of +2, +3, +3)

6
REDOX TITRATION

Permanganate and iron(II)

Five electrons, five irons.

In acid, MnO4− reacts with Fe2+ to give Mn2+ and Fe3+. What is oxidised, what is reduced, and how many electrons move?

Mn +7 → +2Fe +2 → +35 e−1 : 5
ElementBeforeAfterElectrons
Mn+7+25 gained
O−2−2none
Fe+2+35 lost
H+1+1none
Permanganate and iron(II): oxidation numbers on a number line−4−3−2−10+1+2+3+4+5+6+7+8Mn+7 → +2Fe+2 → +3
Arrows run from the oxidation number before the reaction to the one after: orange up (oxidised), blue down (reduced).

What it means: Mn falls by 5 (reduced) and Fe rises by 1 (oxidised), so five Fe2+ are needed for each MnO4−. Balanced: MnO4− + 5 Fe2+ + 8 H+ → Mn2+ + 5 Fe3+ + 4 H2O. MnO4− is the oxidising agent and Fe2+ the reducing agent.

How to write it: Mn: +7 → +2 (reduced, 5 e− gained); Fe: +2 → +3 (oxidised)

7
COORDINATION

Iron in K4[Fe(CN)6]

Count the counter-ions first.

Calculate the oxidation number of Fe in potassium hexacyanoferrate(II), K4[Fe(CN)6].

Fe +2complex −4CN 6d6
ElementAtomsOxidation numberContribution
Fe1+2+2
CN6−1−6
Complex−4
Iron in K4[Fe(CN)6]: oxidation numbers on a number line−4−3−2−10+1+2+3+4+5+6+7+8Fe+2CN (each)−1complex−4
Orange bars: positive oxidation numbers. Blue bars: negative. The scale runs from −4 to +8.

What it means: Four K+ make the complex ion −4. Six CN− contribute −6, so Fe + (−6) = −4 and Fe = +2. Iron is in group 8, so Fe(II) is a d6 ion; with six cyanides, the coordination number is 6.

How to write it: Fe = +2 in K4[Fe(CN)6]; coordination number 6; d6

8
ORGANIC

The two carbons of acetic acid

Same molecule, very different carbons.

Find the oxidation number of each carbon in CH3COOH.

CH3: −3COOH: +3average 0C2H4O2
CarbonAtomsOxidation numberContribution
C1 (CH3)0 to O, 3 to H−30 − 3
C2 (COOH)3 to O, 0 to H+33 − 0
The two carbons of acetic acid: oxidation numbers on a number line−4−3−2−10+1+2+3+4+5+6+7+8C1 CH3−3C2 COOH+3
Orange bars: positive oxidation numbers. Blue bars: negative. The scale runs from −4 to +8.

What it means: The CH3 carbon has three bonds to H: −3. The COOH carbon has three bonds to O (C=O counts 2) and none to H: +3. Their average, 0, is what the formula method gives for C2H4O2.

How to write it: CH3 carbon −3; COOH carbon +3

✏️ 14. How to Calculate Oxidation Numbers by Hand

This is the written method examiners expect, on the same problem as Sections 7, 9, 10 and 11: calculate the oxidation number of Cr in K2Cr2O7.

14.1 How to calculate the oxidation number of an element in a compound, step by step

  1. Write the overall charge. K2Cr2O7 is neutral, so the sum is 0.
  2. Let the unknown be x. Cr = x.
  3. Give the fixed values. K = +1 (group 1), O = −2.
  4. Multiply by the number of atoms. 2 × (+1) = +2; 2 × x = 2x; 7 × (−2) = −14.
  5. Add and set equal to the charge. +2 + 2x − 14 = 0.
  6. Solve. 2x = 12, so x = +6.
  7. Check. 2(+1) + 2(+6) + 7(−2) = 2 + 12 − 14 = 0, and +6 is chromium’s group number, its highest possible value.

14.2 How to calculate the oxidation number of an ion

Set the sum equal to the ion’s charge instead of 0. Dichromate: 2x + 7(−2) = −2, so 2x = 12 and Cr = +6, the same as in K2Cr2O7. Permanganate: x + 4(−2) = −1, so Mn = +7. For the ammonium ion, x + 4(+1) = +1 gives N = −3.

14.3 How to calculate the oxidation number from a Lewis structure

Draw the structure, give both electrons of each bond to the more electronegative atom (split bonds between identical atoms equally), count the electrons each atom ends up with, and subtract from its valence electrons. In H2O2 (H–O–O–H), each O keeps its 4 lone-pair electrons, takes both O–H electrons and one of the O–O pair: 7 electrons, so 6 − 7 = −1. This is the only method that gives the two different S atoms in thiosulfate (+5 and −1) instead of their average, +2.

14.4 How to calculate the oxidation number of coordination compounds

Find the charge of the complex ion from the counter-ions, then subtract the ligand charges. K4[Fe(CN)6]: four K+ make the complex −4; six CN− give −6; so Fe + (−6) = −4 and Fe = +2. [Co(NH3)6]Cl3: three Cl− make the complex +3; NH3 is neutral; so Co = +3.

14.5 How to calculate the oxidation number of carbon in organic compounds

For each carbon, count +1 for every bond to O, N, S or a halogen (a double bond counts 2), −1 for every bond to H, and 0 for bonds to other carbons. In ethanol, CH3–CH2OH, the CH3 carbon is 0 − 3 = −3 and the CH2OH carbon is 1 − 2 = −1. Their average, −2, is what the formula method gives for C2H6O: 2x + 6(+1) + (−2) = 0.

14.6 How to calculate the change in oxidation number

Find the oxidation number of each element before and after, and subtract. In MnO4− + Fe2+ → Mn2+ + Fe3+, Mn changes by +2 − (+7) = −5 (reduced, gains 5 electrons) and Fe by +3 − (+2) = +1 (oxidised, loses 1). To balance the electrons, five Fe2+ are needed for every MnO4−.

14.7 On a scientific calculator

On a Casio fx-991EX or fx-82MS, type the sum rule directly: ( 0 − ( 2 × 1 + 7 × (−) 2 ) ) ÷ 2 = gives 6. For Fe3O4, ( 0 − 4 × (−) 2 ) ÷ 3 = shows 8/3; press S⇔D to see 2.666666667.

Use the negative key (−), not the subtract key, for −2. Key names differ between models; check your manual.

14.8 Do it in the lab: a permanganate titration of iron(II)

Finding the concentration of Fe2+ with KMnO4

  1. Pipette 25.00 cm3 of the iron(II) solution into a conical flask and add about 10 cm3 of 1 mol dm−3 sulfuric acid.
  2. Fill a burette with 0.0200 mol dm−3 KMnO4. No indicator is needed: purple MnO4− turns colourless Mn2+ as it reacts.
  3. Titrate until the first permanent pale pink colour, the end point. Repeat until two titres agree within 0.10 cm3.
  4. Use the change in oxidation number: Mn +7 → +2 gains 5 electrons and Fe +2 → +3 loses 1, so 1 mol MnO4− reacts with 5 mol Fe2+.

Hazards: potassium permanganate is an oxidiser and stains skin and clothes; sulfuric acid at 1 mol dm−3 is an irritant. Wear eye protection and gloves and follow your school’s risk assessment.

Main errors: too little acid (brown MnO2 forms instead of Mn2+), reading the burette at the bottom of the meniscus when the purple solution makes it hard to see (read the top), and iron(II) oxidised by air before the titration.

MeasurementValueWorking
Iron(II) solution pipetted25.00 cm3
KMnO4 concentration0.0200 mol dm−3
Titres (rough, 1, 2)23.50, 23.45, 23.45 cm3Concordant: 23.45 and 23.45
Mean titre23.45 cm3
Moles of MnO4−4.690 × 10−4 mol0.0200 × 23.45 ÷ 1000
Moles of Fe2+2.345 × 10−3 mol5 × 4.690 × 10−4 (Mn gains 5 e−, Fe loses 1)
Concentration of Fe2+0.0938 mol dm−32.345 × 10−3 ÷ 0.02500

Example data. The 1 : 5 ratio comes straight from the change in oxidation number: MnO4− + 5 Fe2+ + 8 H+ → Mn2+ + 5 Fe3+ + 4 H2O. The iron(II) concentration is 0.0938 mol dm−3, or 5.24 g dm−3 of iron.

14.9 How to calculate oxidation number: practice problems with answers

Ten practice problems, easy to hard. Open each one to see the answer.

1. Calculate the oxidation number of N in HNO3.

1 × (+1) = +1; 3 × (−2) = −6; 1(+1) + 3(−2) + 1x = 0 → x = +5. Answer: +5

2. Calculate the oxidation number of Cl in KClO3.

1 × (+1) = +1; 3 × (−2) = −6; 1(+1) + 3(−2) + 1x = 0 → x = +5. Answer: +5

3. Calculate the oxidation number of sulfur in sodium metabisulfite, Na2S2O5.

2 × (+1) = +2; 5 × (−2) = −10; 2(+1) + 5(−2) + 2x = 0 → x = +4. Answer: +4

4. Find both oxidation numbers of N in NH4NO3.

NH4NO3 = NH4+ + NO3−; 4 × (+1) = +4; 4(+1) + 1x = 1 → x = −3; 3 × (−2) = −6; 3(−2) + 1x = -1 → x = +5. Answer: −3 and +5

5. What is the oxidation number of O in potassium superoxide, KO2?

1 × (+1) = +1; 1(+1) + 2x = 0 → x = −1/2 = -0.500. Answer: −1/2

6. What is the oxidation number of H in LiAlH4?

1 × (+1) = +1; 1 × (+3) = +3; 1(+1) + 1(+3) + 4x = 0 → x = −1. Answer: −1

7. Find the oxidation number of Co in [Co(NH3)5Cl]Cl2.

2 × Cl (−1) = -2, so the complex is +2; 5 × NH3 (0) + 1 × Cl (−1) = -1; x + (-1) = 2 → x = +3; CN = 5 + 1 = 6; Co(III) is d6. Answer: +3

8. Find the oxidation number of each carbon in ethanal, CH3CHO.

bonds to O, N or halogen = 0; bonds to H = 3; C–C bonds = 1 → 0 − 3 = −3; bonds to O, N or halogen = 2; bonds to H = 1; C–C bonds = 1 → 2 − 1 = +1; average of the carbons = −1; formula method gives C = −1. Answer: C1 −3, C2 +1

9. In acid, Cr2O72− oxidises SO2 to SO42− and becomes Cr3+. How many electrons are transferred in the balanced equation?

Cr: +6 → +3 (change −3 per atom); electrons gained 6; S: +4 → +6 (change +2 per atom); electrons lost 6; Cr2O72− + 3 SO2 + 2 H+ → 2 Cr3+ + 3 SO42− + H2O; 6 e− lost = 6 e− gained. Answer: S oxidised +4 → +6; Cr reduced +6 → +3; 6 electrons transferred

10. Hydrogen peroxide decomposes: H2O2 → H2O + O2. What kind of redox reaction is this?

O: −1 → −2, 0; electrons lost 2, electrons gained 2; 2 H2O2 → 2 H2O + O2; 2 e− lost = 2 e− gained. Answer: Disproportionation: O −1 → −2, 0; 2 electrons transferred

📄 Download the Oxidation Numbers Worksheet (PDF)

Want more practice on paper? Print the worksheet and check your answers.

14.10 Mistakes that lose marks

Research on redox learning finds students often treat oxidation numbers as real charges and confuse them with the ion charge on the whole species (Garnett & Treagust, 1992; Rahayu et al., 2011).

  • Forgetting to multiply by the number of atoms: writing 1 + x − 2 = 0 for K2Cr2O7.
  • Setting the sum to 0 for an ion: Cr2O72− then gives +7 instead of +6.
  • Giving O −2 in a peroxide or H +1 in a metal hydride.
  • Writing the sign after the number (6+) for an oxidation number; that is the style for ionic charges.
  • Saying the oxidising agent is oxidised: it is the substance that is reduced.
  • Reporting 2.67 for Fe3O4 without saying it is an average of +2 and +3.
  • Using the formula method for carbon in an organic compound when the question asks about one particular carbon.

✅ 15. When Should You Use an Oxidation Number Calculator?

Use it when:
  • You need the oxidation number of an element in a compound or ion, such as the underlined atom in a question.
  • You want to know what is oxidised and reduced in a reaction, and how many electrons move.
  • You are balancing a redox equation by the oxidation-number method.
  • You need the metal’s oxidation state and d-electron count in a complex, or each carbon in an organic molecule.
It cannot tell you:
  • The real charge on an atom: oxidation numbers are bookkeeping, not measured charges.
  • Which atom is which when the formula hides the structure (S2O32−, Fe3O4): it gives the average.
  • Whether a reaction actually happens: that needs electrode potentials.
  • Oxidation states in metal clusters, radicals or compounds with non-innocent ligands, where even IUPAC needs the full structure.

Four real examples

SituationSpeciesResult
Naming a compoundFeCl3Fe +3: iron(III) chloride
A redox titrationMnO4− + Fe2+1 : 5 mole ratio from 5 e− and 1 e−
The breathalyserCr2O72− → Cr3+Cr +6 → +3, orange to green, as ethanol is oxidised
BleachNaClOCl +1, which is why it is an oxidising agent

Decision tree

  1. Is it one compound or ion? Yes: compound mode. No: go on.
  2. Is there an arrow, with reactants and products? Yes: change-in-oxidation-number mode.
  3. Is there a metal with ligands in square brackets? Yes: coordination mode.
  4. Do you need each carbon in an organic molecule? Yes: organic mode with a condensed formula.

🔧 16. Oxidation Number Calculator Troubleshooting

"Element symbols start with a capital letter"

Cause: a lowercase formula such as kmno4. Fix: press the suggested formula, or type KMnO4. Co is cobalt; CO is carbon monoxide.

My answer for an ion is off by the charge

Cause: the charge was not entered. Fix: write Cr2O7^2- (or 2- in the charge box). Without it the calculator treats the species as neutral.

"Above its maximum" warning

Cause: oxygen is not −2 everywhere, usually because of a peroxide group (CrO5, S2O82−, H2SO5). Fix: read the note under the answer; the true value is given for common cases.

The answer is a fraction

Cause: atoms of the same element are in different environments. Fix: nothing is wrong; +8/3 for Fe3O4 is the average of +2 and +3. Use a Lewis structure for each atom.

"Two or more elements had no fixed rule"

Cause: a species such as KCN or SCN−, where neither C nor N has a fixed value. Fix: the calculator gives the more electronegative element its usual negative value (N −3); check with the structure.

The equation could not be balanced

Cause: an ionic redox equation without H+, OH− or H2O. Fix: choose acidic or basic solution; the oxidation numbers are shown either way.

"Write the complex in square brackets"

Cause: the coordination mode needs to know which atoms are ligands. Fix: type K4[Fe(CN)6] rather than K4FeC6N6, or use the compound mode for the average.

"Looks like a molecular formula" in the organic mode

Cause: C6H6 or C2H6O does not show which atoms are joined. Fix: type a condensed structural formula such as CH3CH2OH; the message also gives the average oxidation number.

My textbook gives +6 and −2 for thiosulfate, not +5 and −1

Cause: two conventions for the S–S bond. Fix: both average to +2, which is what the formula method gives; follow your syllabus for the split values.

⚖️ 17. Assumptions and Limitations of the Oxidation Number Calculator

AssumptionWhat it requiresHow to checkIf it fails
Correct formula and chargeEvery atom counted, the ion charge statedThe preview under the boxEvery value shifts
Ordinary bondingNo O–O or metal–metal bonds unless you split them outValues within the group rangeA value above the maximum (flagged)
Rule priorityF > group 1 and 2 > H > O > halogensThe rule chip on each stepUnusual compounds may need the structure
Condensed organic formulaCarbons written in order, = and # markedThe bond counts in the carbon tableA warning about unused bonds
Known ligand chargesLigands from the list in the coordination boxThe ligand tableAn unknown-ligand message

Limitations. An oxidation number calculator works from the formula, so when atoms of one element sit in different environments it gives their average. The IUPAC definition is based on the bonded structure (Karen, McArdle & Takats, 2016), and for species such as metal nitrosyls, polysulfides or metal clusters the formula alone cannot settle every atom’s value. Electronegativities are Pauling values (Pauling, 1932; Allred, 1961).

🎯 18. Conclusion

Your result: ___ . Solve a problem above to add your own summary here.

What the answer is

An oxidation number is the charge an atom would have if every bond were ionic. Give the fixed values, then solve the unknown so that the total equals the charge. For K2Cr2O7, 2(+1) + 2x + 7(−2) = 0 gives Cr = +6.

What it means chemically

The oxidation number shows how far an atom has been oxidised. An element at its maximum, such as Cr(VI) or Mn(VII), can only gain electrons, which makes dichromate and permanganate strong oxidising agents.

Watch out for

Multiply by the number of atoms, use the ion’s charge for ions, check for peroxides and hydrides, and remember that a fraction is an average.

Next steps

Practise with the worksheet in Section 12.4 and the ten problems in Section 14.9, then use the change in oxidation number to balance redox equations and to work out titration ratios.

❓ 19. Frequently Asked Questions

What is an oxidation number calculator?

An oxidation number calculator finds the oxidation number of every atom in a compound or ion by applying the standard rules and solving the rest from the sum rule. This one also finds what is oxidised and reduced in a reaction, the metal in a coordination compound and each carbon in an organic molecule, with every step shown.

How do you calculate the oxidation number of a compound?

Give the atoms with fixed values their oxidation numbers (group 1 +1, group 2 +2, H +1, O -2, F -1), multiply each by its number of atoms, and choose the unknown so that the total is 0. For H2SO4: 2(+1) + x + 4(-2) = 0, so S is +6.

How do you calculate the oxidation number of an element?

A free element on its own, such as Na, O2, I2 or S8, always has oxidation number 0. Inside a compound, the element's oxidation number is found from the sum rule: all oxidation numbers add up to the overall charge.

What are the rules for calculating oxidation numbers?

Free elements are 0; a monatomic ion equals its charge; F is -1; group 1 metals are +1 and group 2 are +2; H is +1 (but -1 in metal hydrides); O is -2 (but -1 in peroxides and +2 in OF2); Cl, Br and I are -1 unless bonded to O or F; and the sum equals the overall charge.

How do you calculate the oxidation number of Cr in K2Cr2O7?

K is +1 and O is -2, so 2(+1) + 2x + 7(-2) = 0. That gives 2 + 2x - 14 = 0, 2x = 12 and x = +6. Chromium is +6 in potassium dichromate, and also +6 in Na2Cr2O7 and in the Cr2O7^2- ion.

How do you calculate the oxidation number of Cr in Cr2O7^2-?

Set the sum equal to the ion's charge: 2x + 7(-2) = -2, so 2x = 12 and Cr = +6. Setting the sum to 0 by mistake gives +7, which is wrong.

How do you calculate the oxidation number of Mn in KMnO4 and MnO4^-?

In KMnO4: +1 + x + 4(-2) = 0, so Mn = +7. In the permanganate ion MnO4^-: x + 4(-2) = -1, so Mn = +7 as well. In K2MnO4 (manganate), 2(+1) + x + 4(-2) = 0 gives Mn = +6.

How do you calculate the oxidation number of sulphur in H2SO4?

2(+1) + x + 4(-2) = 0, so x = +6. Sulfur is +6 in sulphuric acid, its highest possible oxidation number.

What is the oxidation number of S in Na2S2O3 and Na2S2O5?

Sodium thiosulfate: 2(+1) + 2x + 3(-2) = 0, so the average S is +2 (the two S atoms are really +5 and -1). Sodium metabisulfite, Na2S2O5: 2(+1) + 2x + 5(-2) = 0, so S is +4.

What is the oxidation number of phosphorus in Na5P3O10?

5(+1) + 3x + 10(-2) = 0, so 3x = 15 and P = +5. Sodium tripolyphosphate contains phosphorus in its highest oxidation state.

What is the oxidation number of C in CO2, and of iodine in I2?

In CO2, x + 2(-2) = 0, so C is +4, its highest value. In I2, iodine is a free element, so its oxidation number is 0.

Can an oxidation number be a fraction?

Yes, as an average. Fe3O4 gives Fe +8/3 because it holds one Fe2+ and two Fe3+; S4O6^2- gives S +5/2; KO2 gives O -1/2. No single atom has a fractional oxidation number.

How do you calculate the change in oxidation number?

Subtract the oxidation number before the reaction from the one after. MnO4^- to Mn2+ is +2 - (+7) = -5, a reduction by 5 electrons. Fe2+ to Fe3+ is +1, an oxidation by 1 electron, so five Fe2+ react with each MnO4^-.

How do you find the oxidising and reducing agents?

Find the element whose oxidation number goes down: the species containing it is the oxidising agent. The species containing the element whose oxidation number goes up is the reducing agent. In Zn + CuSO4, CuSO4 is the oxidising agent and Zn the reducing agent.

How do you calculate the oxidation number in coordination compounds?

Work out the complex ion's charge from the counter-ions, then subtract the ligand charges. In K4[Fe(CN)6] the complex is -4 and six CN- give -6, so Fe = +2. In [Co(NH3)6]Cl3 the complex is +3 and NH3 is neutral, so Co = +3.

How do you calculate the oxidation number of carbon in organic compounds?

For each carbon, count +1 for every bond to O, N or a halogen and -1 for every bond to H; C-C bonds count 0. In CH3CH2OH the carbons are -3 and -1; in CH3COOH they are -3 and +3.

How do you calculate the oxidation number from a Lewis structure?

Give both electrons of every bond to the more electronegative atom, split bonds between identical atoms equally, and subtract the electrons each atom ends up with from its valence electrons. Each O in H2O2 ends up with 7, so its oxidation number is 6 - 7 = -1.

What is the difference between oxidation number and charge?

A charge is real and belongs to a whole ion: dichromate is 2-. An oxidation number is a bookkeeping value for one atom: Cr is +6 in dichromate, but no Cr6+ ion exists. Oxidation numbers carry the sign first (+6); charges carry it last (6+).

How do you calculate oxidation numbers in Excel, Python or R?

Put the atom counts and known oxidation numbers in columns and solve the unknown with =(charge-SUMPRODUCT(atoms,known))/atoms_of_unknown. Sections 10 and 11 have complete, tested R and Python scripts that print +6 for Cr in K2Cr2O7.

Where can I find oxidation number calculation practice questions with answers?

Section 12.4 has a 25-question worksheet with answers on compounds, polyatomic ions and changes in oxidation number. Section 14.9 has ten more worked problems, and the Batch tab solves a whole list at once.

📑 20. Cite This Tool

APA 7th edition
StatsUnlock Team. (2026). Oxidation number calculator [Interactive chemistry tool]. StatsUnlock. https://statsunlock.com/oxidation-number-calculator/
BibTeX
@misc{statsunlock_oxnumber_2026, title={Oxidation Number Calculator}, author={{StatsUnlock Team}}, year={2026}, note={Interactive chemistry tool}, url={https://statsunlock.com/oxidation-number-calculator/}}
Methods wording
Oxidation numbers were assigned with the StatsUnlock Oxidation Number Calculator (2026) using the IUPAC rules (fixed values for F, group 1 and 2 metals, H and O, then the sum equal to the charge).

🔗 21. Related Tools

📖 22. Glossary of Redox Terms

TermPlain-English meaning
Coordination numberThe number of donor atoms bonded to the metal in a complex.
d-electron countGroup number minus oxidation number for a transition metal ion.
DisproportionationA reaction in which one element is both oxidised and reduced.
ElectronegativityHow strongly an atom attracts bonding electrons; F is highest (3.98).
Formal chargeThe charge on an atom if bonding electrons were shared equally.
Half-equationOne half of a redox reaction, showing electrons lost or gained.
HydrideA compound in which hydrogen is −1, bonded to a metal.
LigandA molecule or ion that donates electrons to a metal in a complex.
OIL RIGOxidation Is Loss, Reduction Is Gain (of electrons).
OxidationLoss of electrons; the oxidation number goes up.
Oxidation numberThe charge an atom would have if every bond were ionic.
Oxidation stateThe IUPAC term with the same meaning as oxidation number.
Oxidising agentThe species that takes electrons and is itself reduced.
PeroxideA compound with an O–O bond, in which O is −1.
Polyatomic ionA charged group of atoms, such as SO42−.
Redox reactionA reaction in which oxidation numbers change.
Reducing agentThe species that gives electrons and is itself oxidised.
ReductionGain of electrons; the oxidation number goes down.
Roman numeral (Stock) notationWriting the oxidation number in a name: iron(III) chloride.
SuperoxideA compound with the O2− ion, in which O is −1/2.

📚 23. References

Peer-reviewed sources for the methods and data used in this oxidation number calculator: the IUPAC definition of oxidation state, electronegativity scales, atomic weights, and research on how students learn redox chemistry.

  1. Allred, A. L. (1961). Electronegativity values from thermochemical data. Journal of Inorganic and Nuclear Chemistry, 17(3–4), 215–221. https://doi.org/10.1016/0022-1902(61)80142-5
  2. Brandriet, A. R., & Bretz, S. L. (2014). The development of the Redox Concept Inventory as a measure of students’ symbolic and particulate redox understandings and confidence. Journal of Chemical Education, 91(8), 1132–1144. https://doi.org/10.1021/ed500051n
  3. Calzaferri, G. (1999). Oxidation numbers. Journal of Chemical Education, 76(3), 362. https://doi.org/10.1021/ed076p362
  4. Garnett, P. J., & Treagust, D. F. (1992). Conceptual difficulties experienced by senior high school students of electrochemistry: Electric circuits and oxidation-reduction equations. Journal of Research in Science Teaching, 29(2), 121–142. https://doi.org/10.1002/tea.3660290204
  5. Jensen, W. B. (2007). The origin of the oxidation-state concept. Journal of Chemical Education, 84(9), 1418. https://doi.org/10.1021/ed084p1418
  6. Karen, P. (2015). Oxidation state, a long-standing issue! Angewandte Chemie International Edition, 54(16), 4716–4726. https://doi.org/10.1002/anie.201407561
  7. Karen, P., McArdle, P., & Takats, J. (2014). Toward a comprehensive definition of oxidation state (IUPAC Technical Report). Pure and Applied Chemistry, 86(6), 1017–1081. https://doi.org/10.1515/pac-2013-0505
  8. Karen, P., McArdle, P., & Takats, J. (2016). Comprehensive definition of oxidation state (IUPAC Recommendations 2016). Pure and Applied Chemistry, 88(8), 831–839. https://doi.org/10.1515/pac-2015-1204
  9. Loock, H.-P. (2011). Expanded definition of the oxidation state. Journal of Chemical Education, 88(3), 282–283. https://doi.org/10.1021/ed1005213
  10. Menzek, A. (2002). A new approach to understanding oxidation-reduction of compounds in organic chemistry. Journal of Chemical Education, 79(6), 700. https://doi.org/10.1021/ed079p700
  11. Nakhleh, M. B. (1992). Why some students don’t learn chemistry: Chemical misconceptions. Journal of Chemical Education, 69(3), 191–196. https://doi.org/10.1021/ed069p191
  12. Nurrenbern, S. C., & Pickering, M. (1987). Concept learning versus problem solving: Is there a difference? Journal of Chemical Education, 64(6), 508–510. https://doi.org/10.1021/ed064p508
  13. Österlund, L.-L., Berg, A., & Ekborg, M. (2010). Redox models in chemistry textbooks for the upper secondary school: Friend or foe? Chemistry Education Research and Practice, 11(3), 182–192. https://doi.org/10.1039/C005467B
  14. Parkin, G. (2006). Valence, oxidation number, and formal charge: Three related but fundamentally different concepts. Journal of Chemical Education, 83(5), 791. https://doi.org/10.1021/ed083p791
  15. Pauling, L. (1932). The nature of the chemical bond. IV. The energy of single bonds and the relative electronegativity of atoms. Journal of the American Chemical Society, 54(9), 3570–3582. https://doi.org/10.1021/ja01348a011
  16. Prohaska, T., Irrgeher, J., Benefield, J., Böhlke, J. K., Chesson, L. A., Coplen, T. B., ... Zhu, X. (2022). Standard atomic weights of the elements 2021 (IUPAC Technical Report). Pure and Applied Chemistry, 94(5), 573–600. https://doi.org/10.1515/pac-2019-0603
  17. Rahayu, S., Treagust, D. F., Chandrasegaran, A. L., Kita, M., & Ibnu, S. (2011). Assessment of electrochemical concepts: A comparative study involving senior high-school students in Indonesia and Japan. Research in Science & Technological Education, 29(2), 169–188. https://doi.org/10.1080/02635143.2010.536949
  18. Smith, D. W. (2005). Valence, covalence, hypervalence, oxidation state, and coordination number. Journal of Chemical Education, 82(8), 1202. https://doi.org/10.1021/ed082p1202
  19. Woolf, A. A. (1988). Oxidation numbers and their limitations. Journal of Chemical Education, 65(1), 45. https://doi.org/10.1021/ed065p45
  20. Yarroch, W. L. (1985). Student understanding of chemical equation balancing. Journal of Research in Science Teaching, 22(5), 449–459. https://doi.org/10.1002/tea.3660220507
STATS UNLOCK · statsunlock.com · Oxidation Number Calculator
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Statistical Models

Important Plots & Charts

Calculators and Converters