Stoichiometry Calculator
Type a chemical equation and one known amount to get the amount of any other substance, with steps. The equation is balanced for you, and every answer shows the 3-step method, the factor-label line, a full stoichiometry table and four charts. Mass to mass, mole to mole, gas volume, solution, limiting reagent and percent yield.
⚡ 0. Quick Answer
A stoichiometry calculator uses a balanced equation to turn the amount of one substance into the amount of another, in three steps: convert to moles, multiply by the mole ratio, convert to the unit you want. For 4.00 g of hydrogen burning, 2 H2 + O2 → 2 H2O:
Rule of thumb: never go from grams to grams directly. Only moles follow the coefficients, so every stoichiometry calculation passes through moles. Here 4.00 g of H2 needs 31.7 g of O2 and makes 35.7 g of water.
🔑 Key Takeaways
- A stoichiometry calculator converts an amount of one substance into another using the mole ratio from a balanced equation.
- Every stoichiometry calculation has 3 steps: given amount → moles, moles × mole ratio, moles → the unit you want.
- 4.00 g of H2 makes 35.7 g of water, because 2 H2 + O2 → 2 H2O gives a 1 : 1 ratio of H2 to H2O.
- With two reactants, the limiting reagent is the one with the smallest moles ÷ coefficient: 10.0 g H2 and 64.0 g O2 make 72.1 g of water, and O2 runs out first.
- The equation must be balanced first; mass is conserved, so reactants used and products formed weigh the same (35.7 g each in the example).
📚 1. What Is a Stoichiometry Calculator?
Stoichiometry is the calculation of quantities in chemical reactions: how much product a given amount of reactant makes, or how much of one reactant is needed to use up another. The word comes from the Greek stoicheion (element) and metron (measure). A stoichiometry calculator does these calculations from a balanced chemical equation and one known amount. This one is a chemistry stoichiometry calculator, an equation balancer and a unit conversion calculator in one: type the reaction as you would write it, and it balances the equation, finds every coefficient and mole ratio, and shows the work for each step.
The key fact is that the coefficients in a balanced equation are mole ratios. In 2 H2 + O2 → 2 H2O, 2 mol of hydrogen react with 1 mol of oxygen to make 2 mol of water. They are not mass ratios: 2 g of hydrogen does not react with 1 g of oxygen. That is why every stoichiometry problem is solved through moles.
A worked one-liner: how many moles of ammonia form from 3.00 mol of hydrogen in N2 + 3 H2 → 2 NH3? n(NH3) = 3.00 × 2/3 = 2.00 mol.
Who uses it: CBSE and ICSE students meet stoichiometry in NCERT Class 10 and Class 11 (“Some Basic Concepts of Chemistry”); JEE and NEET use it in nearly every physical chemistry problem; IGCSE, GCSE, A level, AP Chemistry and IB students use it for every reacting-mass and titration question. In chemical engineering the subject is usually taught as stoichiometry and process calculations, where the same mole ratios feed material balances; lab staff use it to scale a recipe or work out a yield.
| Problem type | You know | You want | Middle step | Example |
|---|---|---|---|---|
| Mole to mole | moles of A | moles of B | mole ratio only | 3.00 mol H2 → 2.00 mol NH3 |
| Mass to mass (gram to gram) | grams of A | grams of B | ÷ MA, ratio, × MB | 4.00 g H2 → 35.7 g H2O |
| Mass to volume (gas) | grams of A | litres of gas B | ÷ MA, ratio, × Vm | 25.0 g CaCO3 → 5.67 L CO2 |
| Solution stoichiometry | volume and molarity of A | volume of B | c × V, ratio, ÷ c | 25.0 mL 0.100 M NaOH → 25.0 mL 0.0500 M H2SO4 |
| Limiting reagent | amounts of two reactants | yield and excess | moles ÷ coefficient, smallest wins | 10.0 g H2 + 64.0 g O2 → 72.1 g H2O |
What this free online stoichiometry calculator solves
One page covers every stoichiometry word problem in a typical course. Press Try it to load an example into the calculator, then press Calculate to see the full working.
| Problem type | What it works out | Example | |
|---|---|---|---|
| Gram to gram (mass to mass) | Grams of any reactant or product from grams of another | 4.00 g H2 → 35.7 g H2O | |
| Mole to mole | Moles from moles, using the mole ratio only | 3.00 mol H2 → 2.00 mol NH3 | |
| Grams to moles and moles to grams | Any mix of mass and moles in and out | Choose the amount type and the answer unit | |
| Gas stoichiometry (mass to volume) | Litres of gas at STP, SATP, RTP or your own T and P | 25.0 g CaCO3 → 5.67 L CO2 | |
| Solution (molarity) stoichiometry | Titration volumes and moles from c × V | 25.0 mL 0.100 M NaOH → 25.0 mL H2SO4 | |
| Limiting reagent | Which reactant runs out, the excess left and the yield | 10.0 g H2 + 64.0 g O2 → 72.1 g H2O | |
| Theoretical and percent yield | Theoretical yield, then actual ÷ theoretical × 100 | 69.94 g Fe, 85.8% yield | |
| Redox and ionic equations | Balances with H+, OH− and H2O added | 0.0200 mol MnO4− → 0.100 mol Fe2+ | |
| Avogadro's number and molecular calculations | Atoms, molecules or formula units in or out | 3.01 × 1023 Na atoms → 29.2 g NaCl | |
| Reaction sequence (multi-step) | The product of one reaction becomes the reactant of the next | 12.0 g C → CO → 37.2 g Fe (Section 14) | See it |
| A whole worksheet | Many problems at once, with a downloadable answer key | Batch tab in Section 2 | Open |
Free, with no sign-up. Everything runs in your browser: nothing you type is sent to a server or stored.
How accurate is this stoichiometry calculator?
The calculator balances the equation with exact whole-number arithmetic, so the mole ratio is never rounded. Molar masses use the CIAAW 2024 standard atomic weights for all 118 elements (Prohaska et al., 2022), or rounded exam values if you choose them. Every step keeps full precision; only the final answer is rounded, to the significant figures of the numbers you typed. Each answer is checked two ways before it gets the Verified badge: the mass of reactants used must equal the mass of products formed, and the mole ratio is applied in reverse to give back the starting moles. The R and Python scripts in Sections 10 and 11 return the same 35.7 g for the headline problem.
Research on how students learn stoichiometry finds that the hardest part is not the arithmetic but knowing which ratio to use and when to convert to moles (Schmidt & Jignéus, 2003; Fach et al., 2007). That is why every result shows the three steps separately and as one factor-label line.
| What you get | Why it matters |
|---|---|
| Automatic balancing (including acidic and basic redox) | The most common stoichiometry error is using an unbalanced equation |
| Mass, moles, gas volume, solution and particles, in and out | One stoichiometry calculator for every textbook problem type |
| The 3 steps and the factor-label line | The written working examiners mark, in the order they mark it |
| A table of every species at once | Answers “how much oxygen is needed and how much water forms” together |
| Limiting reagent, excess and percent yield | Real reactions rarely use exact amounts |
| Batch mode, CSV export and a share link | A whole stoichiometry worksheet in one go |
🧮 2. Enter Your Problem in the Stoichiometry Calculator
Symbol keys (arrows, states, charges, brackets, hydrates, common compounds and ions)
Type it like this: H2 + O2 -> H2O, with spaces around each plus sign. You do not need to balance it. Brackets: Ca(OH)2; hydrates: CuSO4.5H2O; ions: Fe^3+, SO4^2-; electrons: e-. States such as (aq) and arrows such as ⇌ are accepted and ignored for the maths. Capitals matter: Co is cobalt, CO is carbon monoxide.
2. What kind of problem?
3. What do you know?
4. What do you want to find?
Press Enter in any box to calculate. Nothing is calculated until you press the button.
Given units: g, mg, kg, mol, mmol, L, mL or particles. Answer unit: g, mol, L or particles. Gas volumes use the gas conditions chosen on the One problem tab.
📊 3. Your Results: Stoichiometry Calculator with Steps and Work Shown
🧠 4. What Does Your Stoichiometry Answer Mean?
4.1 The mole ratio is the heart of every stoichiometry calculation
All stoichiometry calculations involve one important step: converting to moles so you can use the mole ratio. The ratio comes straight from the coefficients. In 2 H2 + O2 → 2 H2O the ratios are 2 mol H2 : 1 mol O2 : 2 mol H2O, so 1.984 mol of hydrogen needs 0.992 mol of oxygen and makes 1.984 mol of water. Write the ratio as a fraction with the substance you want on top and the substance you know underneath, and the units cancel.
4.2 Why grams do not follow the coefficients
Each substance has a different molar mass, so equal moles are unequal grams. In the headline problem 4.00 g of hydrogen reacts with 31.7 g of oxygen, eight times the mass, although only half the moles. Chart 1 (moles) and Chart 2 (grams) in your results show this side by side: the bars have the coefficient pattern in Chart 1 and a completely different pattern in Chart 2.
4.3 Reading the stoichiometry table
The table under the steps lists every substance in the equation with its coefficient, molar mass, moles and grams. Reactants show the amount used, products the amount formed. It answers several questions at once: how much oxygen is needed, how much water forms and how much of every other product appears, all from one known amount. The totals row checks the law of conservation of mass: grams used equals grams formed.
| Substance | Coefficient | M (g/mol) | Moles | Grams |
|---|---|---|---|---|
| H2 (given) | 2 | 2.016 | 1.984 | 4.00 |
| O2 (needed) | 1 | 31.998 | 0.992 | 31.7 |
| H2O (formed) | 2 | 18.015 | 1.984 | 35.7 |
4.4 Theoretical yield, actual yield and percent yield
The answer a stoichiometry calculator gives for a product is the theoretical yield: the most that can form if every particle of the limiting reactant reacts. Real experiments lose some product to side reactions, incomplete reaction and transfer losses, so the actual yield is lower. Percent yield = actual ÷ theoretical × 100. For 100.0 g of Fe2O3 the theoretical yield of iron is 69.94 g; if you collect 60.0 g, the percent yield is 85.8%. A percent yield above 100% means the product is wet or impure, not that you made extra.
4.5 The limiting reagent decides the yield
With amounts of two reactants, divide each one’s moles by its coefficient. The smallest result belongs to the limiting reagent; it runs out first and sets the yield. For 10.0 g H2 (4.960 mol ÷ 2 = 2.480) and 64.0 g O2 (2.000 mol ÷ 1 = 2.000), oxygen is limiting even though there are fewer grams of hydrogen. The water formed is 4.000 mol, or 72.1 g, and 1.94 g of hydrogen is left over. Chart 3 shows this test as bars.
4.6 Gas volumes and the molar volume
For a gas product the calculator multiplies moles by the molar volume at the conditions you chose. The same 0.2498 mol of CO2 fills 5.67 L at IUPAC STP (22.711 L/mol), 5.60 L at the older STP of 0 °C and 1 atm (22.414 L/mol), and 6.19 L at SATP. Always state the conditions. Most CBSE and older US textbooks still use 22.4 L/mol, while IUPAC and many university courses use 22.7 L/mol.
4.7 Significant figures in stoichiometry
Coefficients are exact counts and molar masses have four or more figures, so the measured amount you type usually limits the precision. 4.00 g has three significant figures, so the answer is 35.7 g, not 35.744 g. For solution problems both the volume and the molarity count: 25.0 mL of 0.100 M gives three figures. The calculator keeps full precision through every step and rounds once, so the factor-label line and the step-by-step working agree.
4.8 A field note on where stoichiometry goes wrong
In marking stoichiometry work, the same three errors appear again and again: using an unbalanced equation, multiplying grams by the mole ratio, and turning the ratio upside down. Studies of students solving algorithmic stoichiometry problems report the same pattern: many can carry out the steps without understanding why the ratio applies to moles (Schmidt & Jignéus, 2003; Sanger, 2005). The calculator balances first, labels every factor with its unit and substance, and shows the ratio with the wanted substance on top, so each of these errors becomes visible.
4.9 Multi-step and reaction-sequence stoichiometry
When one reaction feeds another, the product moles of the first become the given moles of the second. For the blast furnace sequence 2 C + O2 → 2 CO, then Fe2O3 + 3 CO → 2 Fe + 3 CO2, find the moles of CO from the carbon, then use the second ratio. You can chain problems in this stoichiometry calculator by choosing Answer in: moles for the first and typing that value as the given amount of the second, or multiply the two mole ratios together (Section 6, formula ⑤).
✍ 5. How to Write a Stoichiometry Answer
📌 Conventions examiners look for
- Write the balanced equation first.
- Label each amount with its substance: n(H2), not just n.
- Show the mole ratio as a fraction, wanted over given.
- Give the final answer with a unit and the right significant figures.
📌 Conventions
- Every unit except the answer’s should cancel.
- Write the substance next to each unit so the cancelling is clear.
📌 Conventions
- Name the limiting reagent.
- Give actual yield and percent yield to the precision of your balance.
- State the gas conditions for any volume.
📌 Conventions
- Accept a last-digit difference if students used rounded atomic weights.
- Use the Batch tab to make a whole stoichiometry worksheet answer key.
📌 Conventions
- Write subscripts as plain digits: H2O, CO2.
- Write the arrow as -> and powers of ten as e: 6.02e23.
∑ 6. Stoichiometry Formulas Used by the Calculator
These seven cards are the stoichiometry calculation notes in one place: every formula the calculator uses, with a worked number for each, covering stoichiometry calculations with chemical formulas and equations.
🔀 7. How to Calculate Stoichiometry: Flowchart, Step by Step
This flowchart shows how to do stoichiometry calculations, on the same problem used in the Excel, R, Python and by-hand sections: what mass of water forms when 4.00 g of hydrogen burns in oxygen?
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 1.984 mol and 35.7 g for this problem.
📝 8. How to Use This Stoichiometry Calculator
- Type the chemical equation. Write it as H2 + O2 -> H2O with spaces around each plus sign. It does not need to be balanced; the calculator balances it for you.
- Check the capital letters and charges. Co is cobalt and CO is carbon monoxide. Write ions as Fe^3+ or SO4^2-, and pick acidic or basic for ionic redox equations.
- Choose the problem type. Pick one known amount for mass to mass, mole to mole, gas and solution problems, or two or more reactants for a limiting reagent problem.
- Pick the substance you know. The list fills from your equation. Choose its amount type: mass, moles, gas volume, solution or number of particles.
- Enter the amount and unit. Type the number exactly as measured, including trailing zeros such as 4.00, because they set the significant figures. For a solution, add its molarity.
- Pick the substance to find. Choose the answer unit: grams, moles, litres of gas, volume of a solution or number of particles.
- Set the gas conditions and atomic weights. Choose IUPAC STP, the older 22.4 L/mol STP, SATP, RTP or custom temperature and pressure, and CIAAW or rounded exam weights.
- Add the actual yield if you have one. Type the mass you collected and the calculator gives the percent yield.
- Press Calculate Stoichiometry. Nothing is calculated before you press it, and changing any input clears the old answer.
- Read the steps, table and charts, then copy or share. Copy the 3-step working or the factor-label line, download a report, share a link, or solve a whole worksheet on the Batch tab.
📈 9. How to Do Stoichiometry Calculations in Excel
Excel cannot balance an equation, so you type the balanced coefficients yourself and let the sheet do the three steps. Lay out one row per substance with its coefficient and molar mass; then each step is one formula. The sheet below uses the headline problem, 4.00 g of hydrogen burning, so it must return 1.98413 mol and 35.7 g of water, the same as the stoichiometry calculator above.
=E2/C2*B4/B2*C4. That is grams to grams stoichiometry.9.1 The functions you need
| You want | Excel formula | Note |
|---|---|---|
| Step 1: grams to moles | =E2/C2 | Mass divided by molar mass |
| Step 2: mole ratio | =F2*B4/B2 | Wanted coefficient on top |
| Step 3: moles to grams | =G4*C4 | Moles times molar mass |
| Moles to litres of gas | =G4*22.711 | Use 22.414 for 0 °C and 1 atm |
| Solution: moles from volume | =E2/1000*D2 | mL ÷ 1000 × molarity |
| Limiting reagent test | =MIN(F2:F3) | F = moles ÷ coefficient |
| Name the limiting reagent | =INDEX(A2:A3,MATCH(MIN(F2:F3),F2:F3,0)) | Returns the substance |
| Percent yield | =actual/theoretical*100 | Format as a number, not % |
| Round to 3 significant figures | =ROUND(G2,3-1-INT(LOG10(ABS(G2)))) | Change the 3 for other s.f. |
=F2*B2/B4 looks almost the same as =F2*B4/B2 but gives the ratio upside down. The coefficient of the substance you want always goes on top.9.2 Step by step
1 Lay out the balanced equation as a table
One row per substance: name in A, coefficient in B, molar mass in C. For 2 H2 + O2 → 2 H2O the coefficients are 2, 1 and 2.
Coefficients 2, 1, 2; molar masses 2.016, 31.998, 18.015 g/mol.
2 Step 1: convert the given mass to moles
Type the 4.00 g of hydrogen in E2; in F2 divide it by its molar mass.
=E2/C2
4.00 g of H2 is 1.98413 mol.
3 Steps 2 and 3: mole ratio, then grams
Moles of every substance are the given moles times its coefficient over the given coefficient. Fill G2 down to G4, then multiply by the molar mass in column H.
=$F$2*B2/$B$2 =G2*C2 =ROUND(H4,3-1-INT(LOG10(ABS(H4))))
Water formed: 1.98413 mol and 35.744 g, rounded to 35.7 g; oxygen needed: 31.744 g.
4 Find the limiting reagent
For two reactants, divide each one’s moles (column E) by its coefficient in column F: =E2/B2. The smallest value is the limiting reagent, and it sets the yield.
O2 gives 2.000, less than H2’s 2.480, so oxygen limits and the yield of water is 72.1 g.
9.3 Awkward cases
- Gas volumes. Multiply the moles by the molar volume for your conditions, or use
=G4*0.08314462618*(T+273.15)/P_barfor any temperature and pressure. - Solutions. Convert mL to L before multiplying by molarity:
=25/1000*0.1gives 0.0025 mol. - Reaction sequences. Put each reaction in its own block and point the second block’s given moles at the first block’s product moles.
- Particles. Divide by
6.02214076E+23to get moles first.
9.4 Why your Excel answer might differ from R, Python or this page
| Situation | What happens | Fix |
|---|---|---|
| Last digit differs | Rounded molar masses (2 and 18 instead of 2.016 and 18.015) | Use the same weights; 4.00 ÷ 2 × 18 = 36.0 g with exam values |
| Answer is 4 times too big or small | Mole ratio upside down | Wanted coefficient on top |
| Answer about 9 times off | Grams multiplied by the ratio directly | Convert to moles first |
| Rounded too early | A rounded mole value was typed in a later step | Point formulas at the unrounded cell |
| Tool | Grams to grams stoichiometry |
|---|---|
| Excel / Google Sheets | =E2/C2*B4/B2*C4 |
| R | given_g / M[[given]] * coef[[wanted]] / coef[[given]] * M[[wanted]] |
| Python | given_g / M[given] * coef[wanted] / coef[given] * M[wanted] |
| Casio fx-991EX | 4 ÷ 2.016 × 2 ÷ 2 × 18.015 = |
9.5 Charting in Excel
- Select the substance names and their moles (A2:A4, G2:G4).
- Insert → Charts → Column. The bar heights follow the coefficients, as in Chart 1 above.
- Repeat with the grams column (H2:H4) to see that masses do not follow the coefficients.
9.6 Excel errors you will probably hit
| Excel shows | Why | Fix |
|---|---|---|
#DIV/0! | An empty molar mass or coefficient cell | Fill every row of the table |
#VALUE! | A unit typed in a number cell, such as 4.00 g | Keep units in the header row |
#N/A from MATCH | MIN looked at a different range | Use the same range in MIN and MATCH |
| Wrong answer after fill down | The given cell was not locked | Use $F$2 and $B$2 |
📈 10. How to Do Stoichiometry Calculations in R
This base R stoichiometry calculator program takes the balanced equation as named coefficients, checks that it really is balanced, works out each molar mass from the formula, runs the three steps, prints a stoichiometry table, checks that mass is conserved, finds the limiting reagent, and saves one 300 dpi chart. For 4.00 g of hydrogen it prints 1.9841 mol and 35.7 g of water, matching the stoichiometry calculator on this page.
Rscript stoichiometry.R. Change only the lines in part 1 (and start_g for a limiting reagent problem).10.1 The complete script
R, base only, saves stoichiometry.png
# ============================================================
# Stoichiometry in R: grams -> moles -> mole ratio -> grams
# StatsUnlock - https://statsunlock.com/stoichiometry-calculator/
# Base R only. No packages to install.
# ============================================================
# ---- 1. Your problem: the BALANCED equation as coefficients -----
reactants <- c(H2 = 2, O2 = 1) # 2 H2 + O2 -> 2 H2O
products <- c(H2O = 2)
given <- "H2"; given_g <- 4.00 # the amount you know, in grams
wanted <- "H2O" # the substance you want
sig_figs <- 3 # significant figures in your data
# CIAAW 2024 standard atomic weights (g/mol); add any element you need
W <- c(H = 1.008, Li = 6.94, C = 12.011, N = 14.007, O = 15.999, F = 18.998,
Na = 22.990, Mg = 24.305, Al = 26.982, Si = 28.085, P = 30.974,
S = 32.06, Cl = 35.45, K = 39.098, Ca = 40.078, Mn = 54.938,
Fe = 55.845, Cu = 63.546, Zn = 65.38, Br = 79.904, Ag = 107.87,
I = 126.90, Ba = 137.33, Au = 196.97, Pb = 207.2)
# Count atoms, multiplying through brackets and the hydrate dot
parse_formula <- function(f) {
total <- c()
parts <- strsplit(f, "[.*]")[[1]]
for (i in seq_along(parts)) {
part <- parts[i]; mult <- 1
if (i > 1 && grepl("^[0-9]+", part)) {
mult <- as.numeric(sub("^([0-9]+).*", "\\1", part))
part <- sub("^[0-9]+", "", part)
}
tok <- regmatches(part, gregexpr("[A-Z][a-z]?|[0-9]+|[][()]", part))[[1]]
stack <- list(numeric(0)); j <- 1
while (j <= length(tok)) {
t <- tok[j]; j <- j + 1
if (t %in% c("(", "[")) { stack[[length(stack) + 1]] <- numeric(0); next }
n <- 1
if (j <= length(tok) && grepl("^[0-9]+$", tok[j])) { n <- as.numeric(tok[j]); j <- j + 1 }
top <- length(stack)
if (t %in% c(")", "]")) {
inner <- stack[[top]] * n; stack[[top]] <- NULL; top <- top - 1
for (k in names(inner)) stack[[top]][k] <- sum(stack[[top]][k], inner[k], na.rm = TRUE)
} else {
stack[[top]][t] <- sum(stack[[top]][t], n, na.rm = TRUE)
}
}
for (k in names(stack[[1]])) total[k] <- sum(total[k], stack[[1]][k] * mult, na.rm = TRUE)
}
total
}
molar_mass <- function(f) {
counts <- parse_formula(f)
if (any(!names(counts) %in% names(W))) stop("Add the atomic weight of ", paste(setdiff(names(counts), names(W)), collapse = ", "))
sum(counts * W[names(counts)])
}
# ---- 2. Check the equation is balanced ---------------------------
side_atoms <- function(side) {
tot <- c()
for (f in names(side)) {
a <- parse_formula(f) * side[[f]]
for (k in names(a)) tot[k] <- sum(tot[k], a[k], na.rm = TRUE)
}
tot[order(names(tot))]
}
if (!isTRUE(all.equal(side_atoms(reactants), side_atoms(products)))) stop("The equation is not balanced")
coef <- c(reactants, products)
M <- sapply(names(coef), molar_mass)
# ---- 3. The three steps ------------------------------------------
if (given_g <= 0) stop("The amount must be greater than zero")
n_given <- given_g / M[[given]] # step 1: grams -> moles
ratio <- coef[[wanted]] / coef[[given]] # step 2: mole ratio
n_wanted <- n_given * ratio
m_wanted <- n_wanted * M[[wanted]] # step 3: moles -> grams
cat(sprintf("Step 1 n(%s) = %.2f g / %.3f g/mol = %.4f mol\n", given, given_g, M[[given]], n_given))
cat(sprintf("Step 2 n(%s) = %.4f mol x %g/%g = %.4f mol\n", wanted, n_given, coef[[wanted]], coef[[given]], n_wanted))
cat(sprintf("Step 3 m(%s) = %.4f mol x %.3f g/mol = %s g\n", wanted, n_wanted, M[[wanted]], signif(m_wanted, sig_figs)))
# ---- 4. Stoichiometry table and mass balance ---------------------
xi <- n_given / coef[[given]] # extent of reaction, mol
tab <- data.frame(substance = names(coef), coef = as.vector(coef), M = round(M, 3),
mol = round(coef * xi, 4), grams = round(coef * xi * M, 3), row.names = NULL)
print(tab)
m_in <- sum(reactants * xi * M[names(reactants)])
m_out <- sum(products * xi * M[names(products)])
stopifnot(abs(m_in - m_out) < 1e-3 * m_in)
cat(sprintf("Verdict: Verified, reactants %.3f g = products %.3f g\n", m_in, m_out))
# ---- 5. Limiting reagent (optional): grams of each reactant -------
start_g <- c(H2 = 10.0, O2 = 64.0)
test <- (start_g / M[names(start_g)]) / reactants[names(start_g)]
lim <- names(which.min(test))
cat(sprintf("Limiting reagent: %s; theoretical yield of %s = %s g\n", lim, wanted,
signif(min(test) * coef[[wanted]] * M[[wanted]], sig_figs)))
# ---- 6. One 300 dpi figure: moles of every substance --------------
png("stoichiometry.png", width = 2100, height = 1350, res = 300)
par(mar = c(4.5, 5, 3, 1))
barplot(coef * xi, names.arg = names(coef), las = 1, border = NA,
col = ifelse(names(coef) %in% names(reactants), "#2563eb", "#16a34a"),
xlab = "Substance (blue used, green formed)", ylab = "Amount (mol)",
main = sprintf("%.2f g %s makes %s g %s", given_g, given, signif(m_wanted, sig_figs), wanted))
invisible(dev.off())
cat("Saved stoichiometry.png\n")Output: Step 1 n(H2) = 4.00 g / 2.016 g/mol = 1.9841 mol, Step 3 m(H2O) = 1.9841 mol x 18.015 g/mol = 35.7 g, Verdict: Verified, reactants 35.744 g = products 35.744 g, Limiting reagent: O2; theoretical yield of H2O = 72.1 g.
10.2 R traps
coef[wanted]keeps the name;coef[[wanted]]gives the plain number. Use double brackets inside arithmetic.signif()rounds to significant figures;round()rounds to decimal places.- R prints 4.00 as 4. Keep track of significant figures yourself with
sig_figs. - The balance check compares sorted atom counts; an unbalanced equation stops the script before any number is printed.
10.3 What each part does
| Part | What it does |
|---|---|
parse_formula() | Counts atoms, multiplying through brackets and the hydrate dot |
side_atoms() | Totals each element on one side; both sides must match |
n_given <- given_g / M[[given]] | Step 1: grams to moles |
ratio <- coef[[wanted]] / coef[[given]] | Step 2: the mole ratio |
m_wanted <- n_wanted * M[[wanted]] | Step 3: moles to grams |
stopifnot(abs(m_in - m_out) ...) | The check: mass is conserved |
which.min(test) | The limiting reagent |
10.4 Balancing in R
The script expects a balanced equation. To balance one in R, build the element-by-species matrix and find its null space with MASS::Null(), then scale to whole numbers; or balance it with the calculator in Section 2 and copy the coefficients from the balanced equation it shows.
10.5 The figure
The script saves stoichiometry.png at 2100 × 1350 pixels and 300 dpi: one bar per substance showing the moles used (blue) and formed (green), 1.98, 0.99 and 1.98 mol for the headline problem.
🐍 11. How to Do Stoichiometry Calculations in Python
This Python stoichiometry calculator program does the same job: it checks the equation is balanced, computes the molar masses, runs the three stoichiometry steps, prints a table of every substance, verifies conservation of mass, finds the limiting reagent and saves a 300 dpi chart. It is the same method the stoichiometry calculator runs in your browser.
Install once: pip install matplotlib
11.1 The complete script
Python, saves stoichiometry.png
# ============================================================
# Stoichiometry in Python: grams -> moles -> mole ratio -> grams
# StatsUnlock - https://statsunlock.com/stoichiometry-calculator/
# pip install matplotlib
# ============================================================
import re
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
# ---- 1. Your problem: the BALANCED equation as coefficients -----
reactants = {"H2": 2, "O2": 1} # 2 H2 + O2 -> 2 H2O
products = {"H2O": 2}
given, given_g = "H2", 4.00 # the amount you know, in grams
wanted = "H2O" # the substance you want
sig_figs = 3 # significant figures in your data
# CIAAW 2024 standard atomic weights (g/mol); add any element you need
W = {"H": 1.008, "Li": 6.94, "C": 12.011, "N": 14.007, "O": 15.999, "F": 18.998,
"Na": 22.990, "Mg": 24.305, "Al": 26.982, "Si": 28.085, "P": 30.974,
"S": 32.06, "Cl": 35.45, "K": 39.098, "Ca": 40.078, "Mn": 54.938,
"Fe": 55.845, "Cu": 63.546, "Zn": 65.38, "Br": 79.904, "Ag": 107.87,
"I": 126.90, "Ba": 137.33, "Au": 196.97, "Pb": 207.2}
def parse_formula(f):
"""Count atoms in a formula such as Ca(OH)2, Al2(SO4)3 or CuSO4.5H2O."""
total = {}
for i, part in enumerate(re.split(r"[.*·]", f)):
mult = 1
m = re.match(r"^(\d+)(.*)$", part)
if m and i > 0: # the 5 in CuSO4.5H2O
mult, part = int(m.group(1)), m.group(2)
tokens = re.findall(r"[A-Z][a-z]?|\d+|[()\[\]]", part)
stack, j = [{}], 0
while j < len(tokens):
t = tokens[j]; j += 1
if t in "([":
stack.append({}); continue
n = 1
if j < len(tokens) and tokens[j].isdigit():
n = int(tokens[j]); j += 1
if t in ")]": # close a bracket, multiply what is inside
for k, v in stack.pop().items():
stack[-1][k] = stack[-1].get(k, 0) + v * n
else: # an element symbol
stack[-1][t] = stack[-1].get(t, 0) + n
for k, v in stack[0].items():
total[k] = total.get(k, 0) + v * mult
return total
def molar_mass(f):
counts = parse_formula(f)
missing = [e for e in counts if e not in W]
if missing:
raise SystemExit(f"Add the atomic weight of {missing} to W")
return sum(n * W[e] for e, n in counts.items())
# ---- 2. Check the equation is balanced ---------------------------
def atoms(side):
tot = {}
for f, c in side.items():
for e, n in parse_formula(f).items():
tot[e] = tot.get(e, 0) + c * n
return tot
if atoms(reactants) != atoms(products):
raise SystemExit(f"Not balanced: {atoms(reactants)} vs {atoms(products)}")
coef = {**reactants, **products}
M = {f: molar_mass(f) for f in coef}
# ---- 3. The three steps ------------------------------------------
if given_g <= 0:
raise SystemExit("The amount must be greater than zero")
n_given = given_g / M[given] # step 1: grams -> moles
ratio = coef[wanted] / coef[given] # step 2: mole ratio
n_wanted = n_given * ratio
m_wanted = n_wanted * M[wanted] # step 3: moles -> grams
print(f"Step 1 n({given}) = {given_g:.2f} g / {M[given]:.3f} g/mol = {n_given:.4f} mol")
print(f"Step 2 n({wanted}) = {n_given:.4f} mol x {coef[wanted]}/{coef[given]} = {n_wanted:.4f} mol")
print(f"Step 3 m({wanted}) = {n_wanted:.4f} mol x {M[wanted]:.3f} g/mol = {m_wanted:.{sig_figs}g} g")
# ---- 4. Stoichiometry table and mass balance ---------------------
xi = n_given / coef[given] # extent of reaction, mol
print(f"{'Substance':10}{'coef':>5}{'M g/mol':>10}{'mol':>10}{'g':>10}")
for f, c in coef.items():
print(f"{f:10}{c:>5}{M[f]:>10.3f}{c * xi:>10.4f}{c * xi * M[f]:>10.3f}")
m_in = sum(c * xi * M[f] for f, c in reactants.items())
m_out = sum(c * xi * M[f] for f, c in products.items())
assert abs(m_in - m_out) < 1e-3 * m_in, "mass is not conserved"
print(f"Verdict: Verified, reactants {m_in:.3f} g = products {m_out:.3f} g")
# ---- 5. Limiting reagent (optional): grams of each reactant -------
start_g = {"H2": 10.0, "O2": 64.0}
test = {f: (g / M[f]) / reactants[f] for f, g in start_g.items()}
lim = min(test, key=test.get)
print(f"Limiting reagent: {lim}; theoretical yield of {wanted} = "
f"{test[lim] * coef[wanted] * M[wanted]:.{sig_figs}g} g")
# ---- 6. One 300 dpi figure: moles of every substance --------------
names = list(coef)
fig, ax = plt.subplots(figsize=(7, 4.5))
ax.bar(names, [coef[f] * xi for f in names],
color=["#2563eb" if f in reactants else "#16a34a" for f in names])
ax.set_xlabel("Substance (blue used, green formed)")
ax.set_ylabel("Amount (mol)")
ax.set_title(f"{given_g:.2f} g {given} makes {m_wanted:.{sig_figs}g} g {wanted}")
fig.tight_layout()
fig.savefig("stoichiometry.png", dpi=300)
print("Saved stoichiometry.png")Output: Step 1 n(H2) = 4.00 g / 2.016 g/mol = 1.9841 mol, Step 2 n(H2O) = 1.9841 mol x 2/2 = 1.9841 mol, Step 3 m(H2O) = 1.9841 mol x 18.015 g/mol = 35.7 g, Limiting reagent: O2; theoretical yield of H2O = 72.1 g.
11.2 Python traps
- Integer coefficients divide to floats in Python 3 (
2/3is 0.667), so the ratio is safe. In Python 2 it would be 0. f"{m:.3g}"rounds to 3 significant figures;round(m, 3)rounds to 3 decimal places.6.02214076e23is how Python writes 6.022 × 1023;6.022*10^23is wrong because^is bitwise XOR.- Dictionary keys are case sensitive:
"CO"and"Co"are different substances, as they should be.
11.3 Using packages
With pip install sympy, sympy.Matrix(A).nullspace() balances an equation from its element matrix. The chempy package offers balance_stoichiometry({'H2','O2'}, {'H2O'}), which returns the coefficients 2, 1 and 2 directly.
11.4 What each part does
| Part | What it does |
|---|---|
atoms(reactants) != atoms(products) | Stops if the equation is not balanced |
n_given = given_g / M[given] | Step 1 |
ratio = coef[wanted] / coef[given] | Step 2 |
m_wanted = n_wanted * M[wanted] | Step 3 |
xi = n_given / coef[given] | Extent of reaction, used to fill the table |
min(test, key=test.get) | The limiting reagent |
11.5 The figure
The script saves stoichiometry.png at 300 dpi with the moles of each substance, reactants in blue and products in green.
📋 12. Stoichiometry Reference Tables and Worksheets
12.1 Mole ratios in common reactions
Each balanced equation and number below was computed by the same engine as the stoichiometry calculator. The last column is a quick check for gram to gram stoichiometry: the grams of the main product made from exactly 1.00 g of the first reactant.
| Reaction | Balanced equation | Key mole ratio | Product from 1.00 g of first reactant |
|---|---|---|---|
| Burning hydrogen | 2 H2 + O2 → 2 H2O | 2 mol H2O : 2 mol H2 | 8.94 g H2O |
| Haber process | N2 + 3 H2 → 2 NH3 | 2 mol NH3 : 1 mol N2 | 1.22 g NH3 |
| Burning methane | CH4 + 2 O2 → CO2 + 2 H2O | 1 mol CO2 : 1 mol CH4 | 2.74 g CO2 |
| Burning propane | C3H8 + 5 O2 → 3 CO2 + 4 H2O | 3 mol CO2 : 1 mol C3H8 | 2.99 g CO2 |
| Respiration | C6H12O6 + 6 O2 → 6 CO2 + 6 H2O | 6 mol CO2 : 1 mol C6H12O6 | 1.47 g CO2 |
| Photosynthesis | 6 CO2 + 6 H2O → C6H12O6 + 6 O2 | 1 mol C6H12O6 : 6 mol CO2 | 0.682 g C6H12O6 |
| Limestone decomposition | CaCO3 → CaO + CO2 | 1 mol CaO : 1 mol CaCO3 | 0.560 g CaO |
| Blast furnace | Fe2O3 + 3 CO → 2 Fe + 3 CO2 | 2 mol Fe : 1 mol Fe2O3 | 0.699 g Fe |
| Thermite | Fe2O3 + 2 Al → Al2O3 + 2 Fe | 2 mol Fe : 1 mol Fe2O3 | 0.699 g Fe |
| Oxygen from KClO3 | 2 KClO3 → 2 KCl + 3 O2 | 3 mol O2 : 2 mol KClO3 | 0.392 g O2 |
| Zinc and acid | Zn + 2 HCl → ZnCl2 + H2 | 1 mol H2 : 1 mol Zn | 0.0308 g H2 |
| Neutralisation | H2SO4 + 2 NaOH → Na2SO4 + 2 H2O | 1 mol Na2SO4 : 1 mol H2SO4 | 1.45 g Na2SO4 |
| Baking soda and acid | NaHCO3 + HCl → NaCl + H2O + CO2 | 1 mol CO2 : 1 mol NaHCO3 | 0.524 g CO2 |
| Rusting | 4 Fe + 3 O2 → 2 Fe2O3 | 2 mol Fe2O3 : 4 mol Fe | 1.43 g Fe2O3 |
| Burning magnesium | 2 Mg + O2 → 2 MgO | 2 mol MgO : 2 mol Mg | 1.66 g MgO |
12.2 Molar masses of common reactants and products
| Substance | Formula | Molar mass (g/mol) | Moles in 1.00 g | Moles in 10.0 g |
|---|---|---|---|---|
| Hydrogen | H2 | 2.016 | 0.496 | 4.96 |
| Oxygen | O2 | 31.998 | 0.0313 | 0.313 |
| Nitrogen | N2 | 28.014 | 0.0357 | 0.357 |
| Water | H2O | 18.015 | 0.0555 | 0.555 |
| Carbon dioxide | CO2 | 44.009 | 0.0227 | 0.227 |
| Carbon monoxide | CO | 28.010 | 0.0357 | 0.357 |
| Ammonia | NH3 | 17.031 | 0.0587 | 0.587 |
| Methane | CH4 | 16.043 | 0.0623 | 0.623 |
| Propane | C3H8 | 44.097 | 0.0227 | 0.227 |
| Glucose | C6H12O6 | 180.156 | 0.00555 | 0.0555 |
| Calcium carbonate | CaCO3 | 100.086 | 0.00999 | 0.0999 |
| Calcium oxide | CaO | 56.077 | 0.0178 | 0.178 |
| Iron(III) oxide | Fe2O3 | 159.687 | 0.00626 | 0.0626 |
| Sodium chloride | NaCl | 58.440 | 0.0171 | 0.171 |
| Sodium hydroxide | NaOH | 39.997 | 0.0250 | 0.250 |
| Hydrochloric acid (HCl) | HCl | 36.458 | 0.0274 | 0.274 |
| Sulfuric acid | H2SO4 | 98.072 | 0.0102 | 0.102 |
| Sodium hydrogen carbonate | NaHCO3 | 84.006 | 0.0119 | 0.119 |
| Potassium chlorate | KClO3 | 122.545 | 0.00816 | 0.0816 |
| Aluminium oxide | Al2O3 | 101.961 | 0.00981 | 0.0981 |
Molar masses from CIAAW 2024 standard atomic weights. Exam papers often use rounded values (H 1, C 12, O 16, Cl 35.5), which change only the last digit.
12.3 Molar volume of a gas for gas stoichiometry
| Condition | Temperature | Pressure | Molar volume Vm |
|---|---|---|---|
| STP (IUPAC, since 1982) | 0 °C (273.15 K) | 100 kPa (1 bar) | 22.711 L/mol |
| STP (older texts, CBSE) | 0 °C (273.15 K) | 101.325 kPa (1 atm) | 22.414 L/mol |
| SATP | 25 °C (298.15 K) | 100 kPa (1 bar) | 24.790 L/mol |
| RTP (GCSE, IGCSE) | about 20 to 25 °C | about 1 atm | 24.0 dm3/mol (agreed value) |
Vm = RT ÷ P with R = 8.314 462 618 J mol−1 K−1. CBSE and older textbooks use 22.4 L at 0 °C and 1 atm; IUPAC STP since 1982 is 0 °C and 1 bar.
12.4 Stoichiometry conversion factors at a glance
| From | To moles | From moles | Unit check |
|---|---|---|---|
| Mass (g) | ÷ M | × M | g × mol/g = mol |
| Gas volume (L) | ÷ Vm | × Vm | L × mol/L = mol |
| Solution (L and M) | × c | ÷ c | L × mol/L = mol |
| Particles | ÷ 6.022 × 1023 | × 6.022 × 1023 | particles × mol/particles = mol |
| Moles of A | × (coefficient of B ÷ coefficient of A) gives moles of B | mol A × mol B/mol A = mol B | |
12.5 Stoichiometry worksheet with answers: mole-mole, gram to mole and gram to gram calculations
Twenty-five stoichiometry calculations in the three classic worksheet groups: mole-mole calculations, gram to mole calculations and mass-mass (gram to gram) calculations. Every answer was checked by the calculator engine with CIAAW 2024 atomic weights. Cover the last two columns and try them first; answers with rounded exam weights may differ in the last digit.
Free printable stoichiometry calculations questions and answers (PDF).
| # | Type | Question | Working | Answer |
|---|---|---|---|---|
| Worksheet 1: unit stoichiometry mole-mole calculations | ||||
| 1 | Mole to mole | In N2 + 3 H2 → 2 NH3, how many moles of NH3 form from 2.00 mol of N2? | 2.00 mol × 2/1 | 4.00 mol NH3 |
| 2 | Mole to mole | In 2 H2 + O2 → 2 H2O, how many moles of H2O form from 5.00 mol of O2? | 5.00 mol × 2/1 | 10.0 mol H2O |
| 3 | Mole to mole | In C3H8 + 5 O2 → 3 CO2 + 4 H2O, how many moles of O2 react with 0.500 mol of C3H8? | 0.500 mol × 5/1 | 2.50 mol O2 |
| 4 | Mole to mole | In 4 Al + 3 O2 → 2 Al2O3, how many moles of Al2O3 form from 4.00 mol of Al? | 4.00 mol × 2/4 | 2.00 mol Al2O3 |
| 5 | Mole to mole | In 2 KClO3 → 2 KCl + 3 O2, how many moles of O2 form from 3.00 mol of KClO3? | 3.00 mol × 3/2 | 4.50 mol O2 |
| 6 | Mole to mole | In 4 Fe + 3 O2 → 2 Fe2O3, how many moles of Fe react with 1.50 mol of O2? | 1.50 mol × 4/3 | 2.00 mol Fe |
| 7 | Mole to mole | In CH4 + 2 O2 → CO2 + 2 H2O, how many moles of H2O form from 0.250 mol of CH4? | 0.250 mol × 2/1 | 0.500 mol H2O |
| 8 | Mole to mole | In Zn + 2 HCl → ZnCl2 + H2, how many moles of H2 form from 0.600 mol of HCl? | 0.600 mol × 1/2 | 0.300 mol H2 |
| Worksheet 2: gram to mole and mole to gram calculations (answer key) | ||||
| 9 | Gram to mole | In 2 H2 + O2 → 2 H2O, how many moles of H2O form from 8.00 g of O2? | 8.00 g ÷ 31.998 × 2/1 | 0.500 mol H2O |
| 10 | Gram to mole | In 2 Mg + O2 → 2 MgO, how many moles of MgO form from 4.86 g of Mg? | 4.86 g ÷ 24.305 × 2/2 | 0.200 mol MgO |
| 11 | Gram to mole | In CaCO3 → CaO + CO2, how many moles of CO2 form from 50.0 g of CaCO3? | 50.0 g ÷ 100.086 × 1/1 | 0.500 mol CO2 |
| 12 | Mole to gram | In 2 Na + Cl2 → 2 NaCl, how many grams of Cl2 are needed to make 0.400 mol of NaCl? | 0.400 mol × 1/2 × 70.900 | 14.2 g Cl2 |
| 13 | Mole to gram | In N2 + 3 H2 → 2 NH3, how many grams of H2 are needed to make 2.50 mol of NH3? | 2.50 mol × 3/2 × 2.016 | 7.56 g H2 |
| 14 | Gram to mole | In C6H12O6 + 6 O2 → 6 CO2 + 6 H2O, how many moles of CO2 form from 18.0 g of C6H12O6? | 18.0 g ÷ 180.156 × 6/1 | 0.599 mol CO2 |
| 15 | Mole to gram | In Fe2O3 + 3 CO → 2 Fe + 3 CO2, how many grams of Fe form from 0.250 mol of Fe2O3? | 0.250 mol × 2/1 × 55.845 | 27.9 g Fe |
| 16 | Gram to mole | In 2 Al + 6 HCl → 2 AlCl3 + 3 H2, how many moles of H2 form from 2.70 g of Al? | 2.70 g ÷ 26.982 × 3/2 | 0.150 mol H2 |
| Worksheet 3: gram to gram (mass-mass) calculations (answers) | ||||
| 17 | Gram to gram | In 2 H2 + O2 → 2 H2O, how many grams of H2O form from 8.00 g of H2? | 8.00 g ÷ 2.016 × 2/2 × 18.015 | 71.5 g H2O |
| 18 | Gram to gram | In N2 + 3 H2 → 2 NH3, how many grams of NH3 form from 14.0 g of N2? | 14.0 g ÷ 28.014 × 2/1 × 17.031 | 17.0 g NH3 |
| 19 | Gram to gram | In CH4 + 2 O2 → CO2 + 2 H2O, how many grams of CO2 form from 8.00 g of CH4? | 8.00 g ÷ 16.043 × 1/1 × 44.009 | 21.9 g CO2 |
| 20 | Gram to gram | In 4 Al + 3 O2 → 2 Al2O3, how many grams of Al2O3 form from 5.40 g of Al? | 5.40 g ÷ 26.982 × 2/4 × 101.961 | 10.2 g Al2O3 |
| 21 | Gram to gram | In 2 KClO3 → 2 KCl + 3 O2, how many grams of O2 form from 12.25 g of KClO3? | 12.25 g ÷ 122.545 × 3/2 × 31.998 | 4.798 g O2 |
| 22 | Gram to gram | In C3H8 + 5 O2 → 3 CO2 + 4 H2O, how many grams of H2O form from 22.0 g of C3H8? | 22.0 g ÷ 44.097 × 4/1 × 18.015 | 36.0 g H2O |
| 23 | Gram to gram | In Fe2O3 + 2 Al → Al2O3 + 2 Fe, how many grams of Fe form from 80.0 g of Fe2O3? | 80.0 g ÷ 159.687 × 2/1 × 55.845 | 56.0 g Fe |
| 24 | Gram to gram | In NaHCO3 + HCl → NaCl + H2O + CO2, how many grams of CO2 form from 2.10 g of NaHCO3? | 2.10 g ÷ 84.006 × 1/1 × 44.009 | 1.10 g CO2 |
| 25 | Gram to gram | In CuO + H2 → Cu + H2O, how many grams of Cu form from 7.95 g of CuO? | 7.95 g ÷ 79.545 × 1/1 × 63.546 | 6.35 g Cu |
📈 13. Stoichiometry Calculation Examples
Eight stoichiometry calculation examples run through the calculator, from a textbook gram to gram problem to an Avogadro’s number problem. Each figure is drawn from the computed numbers: one bar per substance, length proportional to its moles, blue for reactants used and green for products formed.
Burning 4.00 g of hydrogen
The textbook mass to mass stoichiometry problem.
What mass of water forms when 4.00 g of hydrogen burns completely in oxygen?
| Species | Role | Coefficient | M (g/mol) | Moles | Grams |
|---|---|---|---|---|---|
| H2 | Reactant | 2 | 2.016 | 1.984 | 4.000 |
| O2 | Reactant | 1 | 31.998 | 0.9921 | 31.74 |
| H2O | Product | 2 | 18.015 | 1.984 | 35.74 |
What it means: 4.00 g of H2 is 1.984 mol. The 2 : 2 ratio gives 1.984 mol of water, which is 35.7 g. The 31.7 g of oxygen used plus the 4.00 g of hydrogen equals the 35.7 g of water: mass is conserved.
How to write it: m(H2O) = 4.00 g ÷ 2.016 g/mol × 2/2 × 18.015 g/mol = 35.7 g
Ammonia from 3.00 mol of hydrogen
Mole to mole needs only the ratio.
In the Haber process, N2 + 3 H2 → 2 NH3, how many moles of ammonia form from 3.00 mol of hydrogen?
| Species | Role | Coefficient | M (g/mol) | Moles | Grams |
|---|---|---|---|---|---|
| N2 | Reactant | 1 | 28.014 | 1.000 | 28.01 |
| H2 | Reactant | 3 | 2.016 | 3.000 | 6.048 |
| NH3 | Product | 2 | 17.031 | 2.000 | 34.06 |
What it means: n(NH3) = 3.00 × 2/3 = 2.00 mol. It uses 1.00 mol (28.0 g) of nitrogen and makes 34.1 g of ammonia. No molar masses are needed for the mole answer itself.
How to write it: n(NH3) = 3.00 mol H2 × (2 mol NH3 / 3 mol H2) = 2.00 mol
CO2 from heating 25.0 g of limestone
Mass to volume: finish with the molar volume.
What volume of carbon dioxide at STP (0 °C, 1 bar) is released when 25.0 g of calcium carbonate is heated?
| Species | Role | Coefficient | M (g/mol) | Moles | Grams |
|---|---|---|---|---|---|
| CaCO3 | Reactant | 1 | 100.086 | 0.2498 | 25.00 |
| CaO | Product | 1 | 56.077 | 0.2498 | 14.01 |
| CO2 | Product | 1 | 44.009 | 0.2498 | 10.99 |
What it means: 25.0 g ÷ 100.086 g/mol = 0.2498 mol of CaCO3, which gives 0.2498 mol of CO2 (1 : 1). At 22.711 L/mol that is 5.67 L, or 5.60 L at the older 22.414 L/mol. The solid left is 14.0 g of CaO.
How to write it: V(CO2) = 25.0 g ÷ 100.086 g/mol × 1/1 × 22.711 L/mol = 5.67 L
Titrating NaOH with sulfuric acid
Molarity times volume gives moles.
What volume of 0.0500 M H2SO4 neutralises 25.0 mL of 0.100 M NaOH?
| Species | Role | Coefficient | M (g/mol) | Moles | Grams |
|---|---|---|---|---|---|
| H2SO4 | Reactant | 1 | 98.072 | 0.001250 | 0.1226 |
| NaOH | Reactant | 2 | 39.997 | 0.002500 | 0.09999 |
| Na2SO4 | Product | 1 | 142.036 | 0.001250 | 0.1775 |
| H2O | Product | 2 | 18.015 | 0.002500 | 0.04504 |
What it means: n(NaOH) = 0.100 × 0.0250 = 2.50 mmol. H2SO4 + 2 NaOH needs half that, 1.25 mmol, and 1.25 mmol ÷ 0.0500 M = 25.0 mL. The 2 : 1 ratio and the 1 : 2 concentrations cancel, so the volumes match.
How to write it: V = 0.0250 L × 0.100 M × 1/2 ÷ 0.0500 M = 0.0250 L = 25.0 mL
10.0 g of H2 with 64.0 g of O2
The reactant with fewer grams is not always the limiting one.
Hydrogen (10.0 g) and oxygen (64.0 g) react. Which runs out first, and how much water forms?
| Species | Role | Coefficient | M (g/mol) | Moles | Grams |
|---|---|---|---|---|---|
| H2 | Reactant | 2 | 2.016 | 4.000 | 8.065 |
| O2 | Reactant | 1 | 31.998 | 2.000 | 64.00 |
| H2O | Product | 2 | 18.015 | 4.000 | 72.06 |
What it means: H2: 4.960 mol ÷ 2 = 2.480; O2: 2.000 mol ÷ 1 = 2.000. Oxygen gives the smaller number, so it is limiting. 4.000 mol of water forms, 72.1 g, and 1.94 g of hydrogen is left over.
How to write it: O2 is limiting; theoretical yield = 4.000 mol × 18.015 g/mol = 72.1 g H2O
Iron from 100.0 g of iron(III) oxide
Theoretical yield first, then compare.
In a blast furnace model, Fe2O3 + 3 CO → 2 Fe + 3 CO2. 100.0 g of Fe2O3 gives 60.0 g of iron. What is the percent yield?
| Species | Role | Coefficient | M (g/mol) | Moles | Grams |
|---|---|---|---|---|---|
| Fe2O3 | Reactant | 1 | 159.687 | 0.6262 | 100.0 |
| CO | Reactant | 3 | 28.010 | 1.879 | 52.62 |
| Fe | Product | 2 | 55.845 | 1.252 | 69.94 |
| CO2 | Product | 3 | 44.009 | 1.879 | 82.68 |
What it means: 100.0 g ÷ 159.687 g/mol = 0.6262 mol Fe2O3, × 2 = 1.252 mol Fe, × 55.845 g/mol = 69.94 g theoretical yield. 60.0 ÷ 69.94 × 100 = 85.8%.
How to write it: Theoretical yield 69.94 g; % yield = 60.0 ÷ 69.94 × 100 = 85.8%
Permanganate and iron(II) in acid
Balance with H+ and H2O first.
How many moles of Fe2+ react with 0.0200 mol of MnO4− in acidic solution?
| Species | Role | Coefficient | M (g/mol) | Moles | Grams |
|---|---|---|---|---|---|
| MnO4− | Reactant | 1 | 118.934 | 0.02000 | 2.379 |
| Fe2+ | Reactant | 5 | 55.845 | 0.1000 | 5.585 |
| H+ (added) | Reactant | 8 | 1.008 | 0.1600 | 0.1613 |
| Mn2+ | Product | 1 | 54.938 | 0.02000 | 1.099 |
| Fe3+ | Product | 5 | 55.845 | 0.1000 | 5.585 |
| H2O (added) | Product | 4 | 18.015 | 0.08000 | 1.441 |
What it means: The balanced equation is MnO4− + 5 Fe2+ + 8 H+ → Mn2+ + 5 Fe3+ + 4 H2O, so n(Fe2+) = 0.0200 × 5 = 0.100 mol. It also uses 0.160 mol of H+, which is why permanganate titrations need excess acid.
How to write it: n(Fe2+) = 0.0200 mol MnO4− × (5 / 1) = 0.100 mol
3.01 × 1023 sodium atoms to salt
Particles in, grams out.
How many grams of sodium chloride form from 3.01 × 1023 atoms of sodium in 2 Na + Cl2 → 2 NaCl?
| Species | Role | Coefficient | M (g/mol) | Moles | Grams |
|---|---|---|---|---|---|
| Na | Reactant | 2 | 22.990 | 0.4998 | 11.49 |
| Cl2 | Reactant | 1 | 70.900 | 0.2499 | 17.72 |
| NaCl | Product | 2 | 58.440 | 0.4998 | 29.21 |
What it means: 3.01 × 1023 ÷ 6.022 × 1023 = 0.500 mol Na, giving 0.500 mol NaCl (2 : 2) = 29.2 g. It needs 17.7 g of chlorine.
How to write it: m(NaCl) = 3.01 × 1023 ÷ 6.022 × 1023 × 2/2 × 58.44 g/mol = 29.2 g
✏️ 14. How to Calculate Stoichiometry Problems by Hand, Step by Step
This is the written method examiners expect, on the same problem as Sections 7, 9, 10 and 11: what mass of water forms when 4.00 g of hydrogen burns in oxygen?
14.1 The written method
- Write and balance the equation. 2 H2 + O2 → 2 H2O.
- Write what you know and what you want under the equation. 4.00 g under H2, ? g under H2O.
- Work out the molar masses you need. M(H2) = 2 × 1.008 = 2.016 g/mol; M(H2O) = 2 × 1.008 + 15.999 = 18.015 g/mol.
- Step 1: convert to moles. n(H2) = 4.00 g ÷ 2.016 g/mol = 1.984 mol.
- Step 2: use the mole ratio. n(H2O) = 1.984 mol × 2/2 = 1.984 mol.
- Step 3: convert to the unit asked for. m(H2O) = 1.984 mol × 18.015 g/mol = 35.74 g.
- Round once, at the end. 4.00 has 3 significant figures, so m = 35.7 g.
- Check. Oxygen used = 0.992 mol × 31.998 = 31.7 g, and 4.00 + 31.7 = 35.7 g. Mass is conserved.
For a gas, replace step 3 with V = n × Vm. For a solution, use n = c × V in step 1 or V = n ÷ c in step 3. For a limiting reagent problem, do step 1 for every reactant and divide each by its coefficient before step 2.
14.2 How to calculate moles in stoichiometry
Turn whatever you are given into moles first: n = m ÷ M for a mass, n = V ÷ Vm for a gas, n = c × V for a solution and n = N ÷ NA for particles. Then multiply by the mole ratio. For 4.00 g of H2: n = 4.00 ÷ 2.016 = 1.984 mol, and n(H2O) = 1.984 × 2/2 = 1.984 mol.
14.3 How to calculate mass in stoichiometry
Multiply the moles of the wanted substance by its molar mass: m = n × M. Water from the example: 1.984 mol × 18.015 g/mol = 35.7 g. Oxygen used: 0.992 mol × 31.998 g/mol = 31.7 g.
14.4 How to calculate volume in stoichiometry
For a gas, multiply moles by the molar volume: 0.2498 mol of CO2 × 22.711 L/mol = 5.67 L at 0 °C and 1 bar. For a solution, divide moles by molarity: 1.25 mmol of H2SO4 ÷ 0.0500 mol/L = 25.0 mL.
14.5 How to calculate theoretical yield using stoichiometry
Find the limiting reagent, take its moles through the mole ratio to the product, and convert to grams. With 10.0 g of H2 and 64.0 g of O2, oxygen limits and the theoretical yield is 4.000 mol × 18.015 = 72.1 g of water. Percent yield is then actual ÷ theoretical × 100; collecting 60.0 g of iron when 69.94 g was possible is an 85.8% yield.
14.6 On a scientific calculator
On a Casio fx-991EX or fx-82MS the whole calculation is one line: 4 ÷ 2.016 × 2 ÷ 2 × 18.015 = gives 35.744. Working left to right keeps full precision; do not round 1.984 before multiplying.
For particles, use the ×10x (or EXP) key for 6.022 × 1023, never × 10 ^ 23 typed by hand. Key names differ between models; check your manual.
14.7 Do it in the lab: testing stoichiometry with baking soda and acid
Predicting the mass of CO2 lost from NaHCO3 + HCl
- Weigh about 2 g of sodium hydrogen carbonate (baking soda) into a dry conical flask, and record the mass to 0.01 g.
- Measure 30 mL of 1.0 M hydrochloric acid, an excess, into a beaker. Weigh the flask, the solid and the beaker of acid together.
- Pour the acid onto the solid a little at a time, swirling, until no more bubbles form. Put the empty beaker back on the balance with the flask.
- Reweigh. The loss in mass is the carbon dioxide that escaped.
- Predict the CO2 with the stoichiometry calculator (NaHCO3 + HCl → NaCl + H2O + CO2, 1 : 1 ratio) and work out the percent yield.
Hazards: 1.0 M hydrochloric acid irritates the eyes and skin. Wear eye protection, add the acid slowly so the mixture does not froth over, and wipe up spills with plenty of water. The products (salt water and CO2) are low hazard. Follow your school’s risk assessment.
Main errors: CO2 stays dissolved in the solution (yield too low), acid spray escapes with the gas (yield too high), and the acid is not in excess (yield too low because NaHCO3 is not limiting).
| Measurement | Value | Working |
|---|---|---|
| Sodium hydrogen carbonate used | 2.10 g | n = 2.10 ÷ 84.006 = 0.0250 mol |
| Flask, solid and acid before | 152.36 g | |
| Flask and contents after | 151.34 g | |
| Mass of CO2 lost (actual yield) | 1.02 g | 152.36 − 151.34 |
| Predicted CO2 (theoretical yield) | 1.10 g | 0.0250 mol × 1/1 × 44.009 |
| Percent yield | 92.7% | 1.02 ÷ 1.100 × 100 |
Example data. A yield of 92.7% is typical for this experiment: some CO2 stays dissolved in the acid. The mass loss (1.02 g) has three significant figures, so the yield is good to about ±1%.
14.8 Stoichiometry practice problems with answers (word problems)
Ten stoichiometry word problems, easy to hard, covering every problem type the calculator solves, including a multi-step reaction sequence (problem 9). Open each one to see the worked answer.
1. Propane, C3H8, burns in oxygen. How many moles of CO2 form from 2.00 mol of propane?
C3H8 + 5 O2 → 3 CO2 + 4 H2O; n = 2.00 mol; n(CO2) = 2.00000 mol C3H8 × (3 mol CO2 / 1 mol C3H8) = 6.00000 mol. Answer: 6.00 mol CO2
2. What mass of magnesium oxide forms when 12.0 g of magnesium burns in oxygen?
2 Mg + O2 → 2 MgO; n = m ÷ M = 12.0 g ÷ 24.305 g/mol = 0.493726 mol; n(MgO) = 0.493726 mol Mg × (2 mol MgO / 2 mol Mg) = 0.493726 mol; m = n × M = 0.493726 mol × 40.304 g/mol = 19.8991 g. Answer: 19.9 g MgO
3. 6.54 g of zinc reacts with excess hydrochloric acid. What volume of hydrogen forms at STP (0 °C, 1 bar)?
Zn + 2 HCl → ZnCl2 + H2; n = m ÷ M = 6.54 g ÷ 65.380 g/mol = 0.100031 mol; n(H2) = 0.100031 mol Zn × (1 mol H2 / 1 mol Zn) = 0.100031 mol; V = n × Vm = 0.100031 mol × 22.711 L/mol = 2.27179 L. Answer: 2.27 L H2
4. What mass of sodium carbonate reacts with 20.0 mL of 0.150 M hydrochloric acid?
Na2CO3 + 2 HCl → 2 NaCl + H2O + CO2; n = c × V = 0.150 mol/L × 0.020000 L = 0.00300000 mol; n(Na2CO3) = 0.00300000 mol HCl × (1 mol Na2CO3 / 2 mol HCl) = 0.00150000 mol; m = n × M = 0.00150000 mol × 105.988 g/mol = 0.158982 g. Answer: 0.159 g Na2CO3
5. 28.0 g of nitrogen and 9.00 g of hydrogen react. Which is limiting, and what mass of ammonia forms?
N2 + 3 H2 → 2 NH3; n = m ÷ M = 28.0 g ÷ 28.014 g/mol = 0.999500 mol; n = m ÷ M = 9.00 g ÷ 2.016 g/mol = 4.46429 mol; N2: 0.99950 ÷ 1 = 0.99950; H2: 4.4643 ÷ 3 = 1.4881; extent ξ = 0.99950 mol; NH3: 2 × 0.99950 = 1.9990 mol = 34.0 g; H2: 4.4643 − 2.9985 = 1.47 mol = 2.96 g. Answer: N2 is limiting; 34.0 g NH3
6. Heating 50.0 g of calcium carbonate gives 25.2 g of calcium oxide. What is the percent yield?
CaCO3 → CaO + CO2; n = m ÷ M = 50.0 g ÷ 100.086 g/mol = 0.499570 mol; n(CaO) = 0.499570 mol CaCO3 × (1 mol CaO / 1 mol CaCO3) = 0.499570 mol; m = n × M = 0.499570 mol × 56.077 g/mol = 28.0144 g; % yield = actual ÷ theoretical × 100 = 25.20 g ÷ 28.014 g × 100 = 90.0%. Answer: 28.0 g CaO, 90.0% yield
7. What mass of oxygen is needed to make 1.204 × 1024 molecules of water from hydrogen?
2 H2 + O2 → 2 H2O; n = N ÷ NA = 1.204 × 1024 ÷ 6.02214076 × 1023 = 1.999289 mol; n(O2) = 1.999289 mol H2O × (1 mol O2 / 2 mol H2O) = 0.9996445 mol; m = n × M = 0.9996445 mol × 31.998 g/mol = 31.98663 g. Answer: 31.99 g O2
8. Copper reacts with silver nitrate solution. What mass of silver forms from 3.18 g of copper?
Cu + 2 AgNO3 → Cu(NO3)2 + 2 Ag; n = m ÷ M = 3.18 g ÷ 63.546 g/mol = 0.0500425 mol; n(Ag) = 0.0500425 mol Cu × (2 mol Ag / 1 mol Cu) = 0.100085 mol; m = n × M = 0.100085 mol × 107.870 g/mol = 10.7962 g. Answer: 10.8 g Ag
9. Reaction sequence: 12.0 g of carbon is burned to CO (2 C + O2 → 2 CO), and all the CO reduces Fe2O3 to iron. What mass of iron can form?
Step A: n(C) = 12.0 ÷ 12.011 = 0.9991 mol, so n(CO) = 0.9991 mol (2 : 2). Step B: Fe2O3 + 3 CO → 2 Fe + 3 CO2, so n(Fe) = 0.9991 × 2/3 = 0.6661 mol × 55.845 = 37.2 g Fe
10. What volume of ammonia gas forms from 10.0 L of nitrogen, both measured at the same temperature and pressure?
N2 + 3 H2 → 2 NH3; n = V ÷ Vm = 10.000 L ÷ 22.711 L/mol = 0.440316 mol; n(NH3) = 0.440316 mol N2 × (2 mol NH3 / 1 mol N2) = 0.880632 mol; V = n × Vm = 0.880632 mol × 22.711 L/mol = 20.0000 L. Answer: 20.0 L NH3
Want more practice on paper? Print the worksheet and check your answers.
14.9 Mistakes that lose marks
Research on stoichiometry finds students often apply the mole ratio to masses, or confuse the subscripts in a formula with the coefficients in front of it (Yarroch, 1985; Sanger, 2005; Dori & Hameiri, 2003).
- Using an unbalanced equation, so the mole ratio is wrong.
- Multiplying grams by the mole ratio instead of moles.
- Turning the mole ratio upside down: the substance you want goes on top.
- Using 16 g/mol for oxygen gas instead of 32 g/mol for O2, or 1 g/mol for H2 instead of 2.
- Forgetting to change mL to L before using molarity.
- Using the reactant in excess instead of the limiting reagent to find the yield.
- Rounding the moles in the middle of the calculation.
✅ 15. When Should You Use a Stoichiometry Calculator?
- You know the amount of one substance in a reaction and need another.
- You need the mass of reagent to weigh out for a reaction.
- You need a theoretical yield, a percent yield or the limiting reagent.
- You are working out a titration result from a balanced equation.
- There is no reaction, just one substance: use a grams to moles conversion.
- The reaction is at equilibrium and does not go to completion: use an equilibrium (ICE) table with K.
- You only know percent composition: use an empirical formula method.
- The gas is at high pressure or near condensation: use a real-gas equation.
Four real examples
| Situation | Problem type | Result |
|---|---|---|
| Heating 25.0 g of limestone, CaCO3 → CaO + CO2 | Mass to gas volume | 5.67 L CO2 at IUPAC STP |
| Titrating 25.0 mL of 0.100 M NaOH with 0.0500 M H2SO4 | Solution stoichiometry | 25.0 mL of acid |
| Blast furnace: 100.0 g Fe2O3, 60.0 g of iron collected | Theoretical and percent yield | 69.94 g theoretical, 85.8% yield |
| Breathing out the CO2 from 90.0 g of glucose | Mass to gas volume at SATP | 74.3 L CO2 |
Decision tree
- Is there a balanced (or balanceable) reaction? No: this is a single-substance conversion. Yes: go on.
- Do you know the amount of only one substance? Yes: one known amount mode. No: go on.
- Do you know amounts of two or more reactants? Yes: limiting reagent mode.
- Do you have an actual yield? Yes: type it in to get the percent yield.
🔧 16. Stoichiometry Calculator Troubleshooting and Common Mistakes
"This equation cannot be balanced"
Cause: a substance is missing or a formula is wrong, so no whole-number coefficients exist. CO2 + H2O -> C6H12O6 has no O2 product. Fix: add the missing substance (CO2 + H2O -> C6H12O6 + O2) and check each formula.
"Element symbols start with a capital letter"
Cause: a lowercase formula such as h2o. Fix: type H2O. Check pasted text from phones, which may change capitals.
My answer differs from the textbook in the last digit
Cause: a different set of atomic weights. Fix: switch to rounded exam values in Section 2. With H = 1 and O = 16, 4.00 g of H2 gives 36.0 g of water instead of 35.7 g.
My gas volume is about 1% different from the book
Cause: the book uses 22.4 L/mol (0 °C, 1 atm) and the calculator default is 22.711 L/mol (0 °C, 1 bar). Fix: pick the older STP in the gas conditions box.
The substance I want is not in the list
Cause: the lists fill from the equation, so a typo makes a different substance. Fix: check the formula preview under the equation box; the lists update as you type.
"Enter the molarity of the solution"
Cause: a solution amount or a solution answer needs a concentration. Fix: type it in mol/L, for example 0.100. Volumes can be in mL or L; the calculator converts.
My percent yield is over 100%
Cause: the product was wet or impure, a mass was misread, or the wrong product was chosen. Fix: dry the product to constant mass and check that the species to find is the one you weighed.
The limiting reagent mode says I need two reactants
Cause: only one reactant amount was typed. Fix: enter at least two, or switch to one known amount mode if the other reactant is in excess.
An ionic redox equation will not balance
Cause: H+, OH− or H2O is missing. Fix: choose acidic or basic solution, and the calculator adds them (MnO4− + Fe2+ in acid balances with 8 H+ and 4 H2O).
My power of ten is ignored
Cause: a symbol the box cannot read. Fix: type 3.01e23 or 3.01 x 10^23.
⚖️ 17. Assumptions and Limitations of the Stoichiometry Calculator
| Assumption | What it requires | How to check | If it fails |
|---|---|---|---|
| The reaction goes to completion | The limiting reagent is used up | A large equilibrium constant, or excess of the other reactant | The real yield is lower than the theoretical yield |
| Only the reaction you typed happens | No side reactions | Known chemistry of the system | Product yield is overestimated |
| The equation is the right one | Correct formulas and products | Compare with a data book | Every number is wrong, even though it balances |
| Pure reagents | All the mass is the substance in the formula | Purity on the label | Moles of reagent are overestimated |
| Ideal gas (gas volumes only) | Low pressure, temperature well above the boiling point | Is the substance a gas at those conditions? | Volumes a few percent off for real gases; meaningless for liquids such as water at 25 °C |
Limitations. A stoichiometry calculator gives the amounts a balanced equation allows; it cannot tell you whether a reaction actually happens, how fast it goes or where its equilibrium lies. When an equation has more than one independent set of coefficients (two reactions written as one), the calculator reports it rather than guessing. Molar masses of ions ignore the electron mass.
🎯 18. Conclusion
What the answer is
A stoichiometry calculator converts a known amount to moles, applies the mole ratio from the balanced equation, and converts back to the unit you need. For the headline problem, 4.00 g of hydrogen makes 35.7 g of water and uses 31.7 g of oxygen.
What it means chemically
The coefficients of a balanced equation count particles, so moles, not grams, follow them. Every reacting-mass, gas-volume, titration and yield calculation rests on that one idea.
Watch out for
Balance the equation first, convert to moles before using the ratio, put the substance you want on top of the ratio, find the limiting reagent when two amounts are given, and round only once at the end.
Next steps
Practise with the 25 worked stoichiometry calculations in Section 12.5 and the ten word problems in Section 14.8, or paste a whole worksheet into the Batch tab to check every answer at once.
❓ 19. Frequently Asked Questions
What is a stoichiometry calculator?
A stoichiometry calculator uses a balanced chemical equation and one known amount to find the amount of any other reactant or product. This one balances the equation for you and works in grams, moles, gas volume, solution volume and particles, with every step shown.
How do you calculate stoichiometry in chemistry?
Balance the equation, then follow three steps: convert the known amount to moles, multiply by the mole ratio (wanted coefficient over known coefficient), and convert the moles to the unit you want. For 4.00 g of H2 in 2 H2 + O2 -> 2 H2O: 4.00 / 2.016 = 1.984 mol, x 2/2 = 1.984 mol H2O, x 18.015 = 35.7 g.
What are the 3 steps of a stoichiometry calculation?
Step 1: change the given amount to moles (divide grams by molar mass, litres of gas by molar volume, or multiply litres of solution by molarity). Step 2: multiply by the mole ratio from the balanced equation. Step 3: change moles of the wanted substance to grams, litres or particles.
All stoichiometry calculations involve what important step?
All stoichiometry calculations involve converting to moles and using the mole ratio from the balanced equation. Coefficients compare moles, not grams, so you can never go straight from grams of one substance to grams of another.
How do you do gram to gram (mass to mass) stoichiometry?
Divide the given grams by the given substance's molar mass, multiply by the mole ratio, then multiply by the wanted substance's molar mass. 4.00 g H2 x (1 mol / 2.016 g) x (2 mol H2O / 2 mol H2) x (18.015 g / 1 mol) = 35.7 g of water.
How do you do mole to mole stoichiometry?
Multiply the known moles by the mole ratio from the balanced equation. In N2 + 3 H2 -> 2 NH3, 3.00 mol of hydrogen gives 3.00 x 2/3 = 2.00 mol of ammonia.
How do you calculate moles from grams in stoichiometry?
Divide the mass in grams by the molar mass in g/mol: n = m / M. This is always step 1 of a mass stoichiometry problem. 4.00 g of H2 (M = 2.016 g/mol) is 1.984 mol.
How do you calculate theoretical yield using stoichiometry?
Find the limiting reagent, convert it to moles, multiply by the mole ratio to the product, then convert to grams. That is the theoretical yield. For Fe2O3 + 3 CO -> 2 Fe + 3 CO2, 100.0 g of Fe2O3 gives 69.94 g of iron; collecting 60.0 g is a percent yield of 85.8%.
How do you calculate volume in gas stoichiometry?
Find the moles of the gas from the mole ratio, then multiply by the molar volume: V = n x Vm. Heating 25.0 g of CaCO3 gives 0.2498 mol of CO2, which is 5.67 L at 0 °C and 1 bar (22.711 L/mol), or 5.60 L at 0 °C and 1 atm (22.414 L/mol).
How do you do solution (molarity) stoichiometry?
Use n = c x V to turn a solution into moles, apply the mole ratio, then V = n / c for the other solution. 25.0 mL of 0.100 M NaOH is 2.50 mmol; H2SO4 + 2 NaOH needs half that, 1.25 mmol, which is 25.0 mL of 0.0500 M H2SO4.
How do you find the limiting reagent?
Convert each reactant to moles and divide by its coefficient. The smallest result is the limiting reagent. For 10.0 g H2 (4.960 / 2 = 2.480) and 64.0 g O2 (2.000 / 1 = 2.000), oxygen is limiting and 72.1 g of water forms.
What is a mole ratio and how do you find it?
A mole ratio is the ratio of the coefficients of two substances in a balanced equation. In 2 H2 + O2 -> 2 H2O, the ratio of H2O to O2 is 2 : 1. Write it as a fraction with the substance you want on top.
How do you use Avogadro's number in stoichiometry?
Divide a number of particles by 6.022 x 10^23 to get moles before using the mole ratio, or multiply moles by it at the end. 3.01 x 10^23 sodium atoms is 0.500 mol, which makes 0.500 mol or 29.2 g of NaCl in 2 Na + Cl2 -> 2 NaCl. These are the same molecular calculations practised in the Labster virtual lab on stoichiometry and Avogadro's number.
How do you do multi-step or reaction sequence stoichiometry?
Use the moles of product from the first reaction as the given moles for the second, or multiply the mole ratios of each step together. Keep full precision between steps and round only the final answer.
Does the equation have to be balanced for stoichiometry?
Yes. The mole ratio comes from the coefficients, so an unbalanced equation gives a wrong answer. This stoichiometry calculator balances the equation automatically, including ionic redox equations in acidic or basic solution.
What does "stoichiometry is the calculation of quantities in chemical reactions" mean?
It means stoichiometry uses the balanced equation to predict how much of each substance reacts or forms. If you know any one amount, you can find all the others, because the coefficients fix their ratios.
How do you do stoichiometry calculations in Excel?
Put each substance's coefficient and molar mass in columns, then use =E2/C2 for moles, =F2*B4/B2 for the mole ratio and =G4*C4 for grams, or the one-line =E2/C2*B4/B2*C4. Section 9 shows the sheet for 4.00 g of hydrogen.
How do you do stoichiometry in Python or R?
Store the coefficients and molar masses, then compute given_g / M[given] * coef[wanted] / coef[given] * M[wanted]. Sections 10 and 11 have complete R and Python scripts that also check the equation is balanced, check mass conservation and find the limiting reagent.
How many significant figures should a stoichiometry answer have?
The same as the least precise measured amount. Coefficients are exact and molar masses are known to four or more figures, so 4.00 g gives a 3-figure answer, 35.7 g. Keep every digit until the last step.
Where can I find stoichiometry worksheet answers?
Section 12.5 has 25 stoichiometry calculations with worked answers in the classic groups: mole to mole, gram to mole and gram to gram. Section 14.8 has ten word problems with answers, and the Batch tab checks a whole worksheet at once and downloads the answer key.
📑 20. Cite This Tool
StatsUnlock Team. (2026). Stoichiometry calculator [Interactive chemistry tool]. StatsUnlock. https://statsunlock.com/stoichiometry-calculator/@misc{statsunlock_stoich_2026, title={Stoichiometry Calculator}, author={{StatsUnlock Team}}, year={2026}, note={Interactive chemistry tool}, url={https://statsunlock.com/stoichiometry-calculator/}}Stoichiometric amounts were calculated with the StatsUnlock Stoichiometry Calculator (2026) from balanced equations using mole ratios, n = m / M and CIAAW 2024 standard atomic weights.🔗 21. Related Tools
Quick arithmetic for molar masses and mole ratios.
Open tool →Rearrange n = m / M, n = cV or V = nR T / P for any unknown.
Open tool →Test whether two measured percent yields really differ.
Open tool →How many repeat runs a yield experiment needs.
Open tool →How big a difference between two methods or catalysts is.
Open tool →Check an experiment can detect the yield change you expect.
Open tool →The chance of a false positive or a missed real effect.
Open tool →How much yield variation an ANOVA factor explains.
Open tool →Rearranging a stoichiometry formula is algebra, and judging whether two measured yields really differ is statistics; these tools cover both.
📖 22. Glossary of Stoichiometry Terms
| Term | Plain-English meaning |
|---|---|
| Actual yield | The mass of product you really collect in an experiment. |
| Avogadro constant (NA) | Exactly 6.022 140 76 × 1023 mol−1: the number of particles in one mole. |
| Balanced equation | An equation with the same number of each atom, and the same charge, on both sides. |
| Coefficient | The number in front of a formula in an equation; it counts moles of that substance. |
| Conservation of mass | The mass of reactants used equals the mass of products formed. |
| Excess reagent | A reactant left over when the reaction stops. |
| Extent of reaction (ξ) | How far the reaction has gone, in mol; each substance changes by its coefficient × ξ. |
| Factor-label method | Writing each conversion as a fraction so the units cancel; also called dimensional analysis. |
| Limiting reagent | The reactant that runs out first and sets the amount of product. |
| Molar mass (M) | The mass of one mole of a substance, in g/mol. |
| Molar volume (Vm) | The volume of one mole of an ideal gas at stated conditions, for example 22.711 L/mol at 0 °C and 1 bar. |
| Molarity (c) | Moles of solute per litre of solution, mol/L or M. |
| Mole (mol) | The SI unit of amount of substance: exactly 6.022 140 76 × 1023 particles. |
| Mole ratio | The ratio of two coefficients in a balanced equation. |
| Percent yield | Actual yield ÷ theoretical yield × 100. |
| Reaction stoichiometry | The quantitative relationship between reactants and products in a reaction. |
| Significant figures | The digits in a measurement that carry meaning; they set how far to round. |
| Stoichiometry | The calculation of quantities of reactants and products from a balanced equation. |
| STP | Standard temperature and pressure: IUPAC uses 0 °C and 1 bar; older books use 0 °C and 1 atm. |
| Theoretical yield | The most product the limiting reagent can make, from stoichiometry. |
📚 23. References
Peer-reviewed sources for the methods and data used in this stoichiometry calculator: the mole and the Avogadro constant, standard atomic weights, and research on how students learn stoichiometry, mole ratios and limiting reagents.
- Chandrasegaran, A. L., Treagust, D. F., Waldrip, B. G., & Chandrasegaran, A. (2009). Students’ dilemmas in reaction stoichiometry problem solving: Deducing the limiting reagent in chemical reactions. Chemistry Education Research and Practice, 10(1), 14–23. https://doi.org/10.1039/B901456J
- Dori, Y. J., & Hameiri, M. (2003). Multidimensional analysis system for quantitative chemistry problems: Symbol, macro, micro, and process aspects. Journal of Research in Science Teaching, 40(3), 278–302. https://doi.org/10.1002/tea.10077
- Fach, M., de Boer, T., & Parchmann, I. (2007). Results of an interview study as basis for the development of stepped supporting tools for stoichiometric problems. Chemistry Education Research and Practice, 8(1), 13–31. https://doi.org/10.1039/B6RP90017H
- Furió, C., Azcona, R., & Guisasola, J. (2002). The learning and teaching of the concepts ‘amount of substance’ and ‘mole’: A review of the literature. Chemistry Education Research and Practice, 3(3), 277–292. https://doi.org/10.1039/B2RP90023H
- Gabel, D. L., & Sherwood, R. D. (1984). Analyzing difficulties with mole-concept tasks by using familiar analog tasks. Journal of Research in Science Teaching, 21(8), 843–851. https://doi.org/10.1002/tea.3660210806
- Güttler, B., Bettin, H., Brown, R. J. C., Davis, R. S., Mester, Z., Milton, M. J. T., ... Stock, M. (2019). Amount of substance – the Avogadro constant and the SI unit “mole”. Metrologia, 56(4), 044002. https://doi.org/10.1088/1681-7575/ab1fae
- Krishnan, S. R., & Howe, A. C. (1994). The mole concept: Developing an instrument to assess conceptual understanding. Journal of Chemical Education, 71(8), 653–655. https://doi.org/10.1021/ed071p653
- Marquardt, R., Meija, J., Mester, Z., Towns, M., Weir, R., Davis, R., & Stohner, J. (2018). Definition of the mole (IUPAC Recommendation 2017). Pure and Applied Chemistry, 90(1), 175–180. https://doi.org/10.1515/pac-2017-0106
- Meija, J., Coplen, T. B., Berglund, M., Brand, W. A., De Bièvre, P., Gröning, M., ... Prohaska, T. (2016). Atomic weights of the elements 2013 (IUPAC Technical Report). Pure and Applied Chemistry, 88(3), 265–291. https://doi.org/10.1515/pac-2015-0305
- Mills, I. M., Mohr, P. J., Quinn, T. J., Taylor, B. N., & Williams, E. R. (2006). Redefinition of the kilogram, ampere, kelvin and mole: A proposed approach to implementing CIPM recommendation 1 (CI-2005). Metrologia, 43(3), 227–246. https://doi.org/10.1088/0026-1394/43/3/006
- 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
- Newell, D. B., Cabiati, F., Fischer, J., Fujii, K., Karshenboim, S. G., Margolis, H. S., ... Ullrich, J. N. (2018). The CODATA 2017 values of h, e, k, and NA for the revision of the SI. Metrologia, 55(1), L13–L16. https://doi.org/10.1088/1681-7575/aa950a
- 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
- Pekdağ, B., & Azizoğlu, N. (2013). Semantic mistakes and didactic difficulties in teaching the “amount of substance” concept: A useful model. Chemistry Education Research and Practice, 14(1), 117–129. https://doi.org/10.1039/C2RP20132A
- 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
- Sanger, M. J. (2005). Evaluating students’ conceptual understanding of balanced equations and stoichiometric ratios using a particulate drawing. Journal of Chemical Education, 82(1), 131–134. https://doi.org/10.1021/ed082p131
- Schmidt, H.-J., & Jignéus, C. (2003). Students’ strategies in solving algorithmic stoichiometry problems. Chemistry Education Research and Practice, 4(3), 305–317. https://doi.org/10.1039/B3RP90018E
- Staver, J. R., & Lumpe, A. T. (1995). Two investigations of students’ understanding of the mole concept and its use in problem solving. Journal of Research in Science Teaching, 32(2), 177–193. https://doi.org/10.1002/tea.3660320206
- Tiesinga, E., Mohr, P. J., Newell, D. B., & Taylor, B. N. (2021). CODATA recommended values of the fundamental physical constants: 2018. Reviews of Modern Physics, 93(2), 025010. https://doi.org/10.1103/RevModPhys.93.025010
- 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
