CHEM-101 · Lesson 5 of 12 · 33 min
Stoichiometry and solution chemistry
Stoichiometry (from the Greek for “element” and “measure”) is the calculation of quantities in chemical reactions. How much ore yields a tonne of iron? How much oxygen does a rocket need to burn its fuel? Which reactant runs out first, and how much product can we expect? A balanced equation answers all these questions, because its coefficients give the ratios in which substances react. This lesson builds the standard stoichiometry calculation, adds limiting reactants and yields, and extends the method to solutions, ending with titrations.
Mole ratios from a balanced equation
The coefficients in a balanced equation give mole ratios. For the synthesis of ammonia,
1 mol of N₂ reacts with 3 mol of H₂ to give 2 mol of NH₃. Each pair of coefficients is a conversion factor: (2 mol NH₃ / 1 mol N₂), (3 mol H₂ / 2 mol NH₃), and so on. This reaction, carried out industrially by the Haber–Bosch process at high pressure over an iron catalyst, makes the nitrogen fertilizers that feed roughly half the world's people. Alberta and the US Gulf Coast both host large ammonia plants, built near cheap natural gas, which supplies the hydrogen.
The standard stoichiometry calculation
Almost every stoichiometry problem follows one path: convert the given quantity to moles, use the mole ratio from the balanced equation, and convert moles of the target substance to the units wanted. Writing the conversion factors in a single chain makes the logic visible and lets the units check the work.
Worked problem
Mass of product from mass of reactant
Iron is made in a blast furnace by Fe₂O₃(s) + 3 CO(g) → 2 Fe(l) + 3 CO₂(g). What mass of iron can be made from 1.00 kg of Fe₂O₃ (159.69 g/mol)?
Show solution
- Moles of Fe₂O₃: 1,000 g ÷ 159.69 g/mol = 6.262 mol.
- Mole ratio: 6.262 mol Fe₂O₃ × (2 mol Fe / 1 mol Fe₂O₃) = 12.52 mol Fe.
- Mass of Fe: 12.52 mol × 55.85 g/mol = 699.5 g.
Answer: 699 g, or 0.699 kg of iron. Check: iron is 2(55.85)/159.69 = 69.9 % of Fe₂O₃ by mass, so 1.00 kg of oxide contains 0.699 kg of iron.
The same chain works for any pair of substances in the equation, reactants or products. The code below wraps it in a small function and applies it to the combustion of propane, the fuel in barbecue cylinders.
def convert(mass_given, M_given, coef_given, coef_target, M_target):
"""Mass of target from mass of given substance, via moles and the mole ratio."""
mol_given = mass_given / M_given
mol_target = mol_given * coef_target / coef_given
return mol_target * M_target
# C3H8 + 5 O2 -> 3 CO2 + 4 H2O
M = {"C3H8": 44.10, "O2": 32.00, "CO2": 44.01, "H2O": 18.02}
coef = {"C3H8": 1, "O2": 5, "CO2": 3, "H2O": 4}
propane_g = 9000 # a full 20 lb (9 kg) cylinder
for target in ["O2", "CO2", "H2O"]:
m = convert(propane_g, M["C3H8"], coef["C3H8"], coef[target], M[target])
print(f"burning 9.0 kg of propane involves {m / 1000:5.1f} kg of {target}")burning 9.0 kg of propane involves 32.7 kg of O2 burning 9.0 kg of propane involves 26.9 kg of CO2 burning 9.0 kg of propane involves 14.7 kg of H2O
The result surprises many people: burning 9 kg of propane produces about 27 kg of carbon dioxide. The extra mass comes from atmospheric oxygen, which combines with the carbon. Conservation of mass holds: 9.0 kg of propane plus 32.7 kg of oxygen (41.7 kg) equals 26.9 kg of carbon dioxide plus 14.7 kg of water (41.6 kg, with the difference due only to rounding).
Limiting reactants
Reactants are rarely mixed in exact stoichiometric proportions. The limiting reactant is the one that runs out first; it determines how much product can form. The other reactants are in excess, and some of each remains when the reaction stops. An everyday analogy: with 10 slices of bread and 3 slices of cheese, you can make only 3 cheese sandwiches (2 bread + 1 cheese each), no matter how much bread remains. Cheese limits.
To identify the limiting reactant, calculate how much product each reactant could make on its own; the reactant that gives the least product is limiting. Equivalently, divide the moles of each reactant by its coefficient: the smallest result identifies the limiting reactant.
Worked problem
Finding the limiting reactant
A mixture of 28.0 g of N₂ and 9.00 g of H₂ reacts to form ammonia. Which reactant is limiting, what mass of NH₃ forms, and how much of the excess reactant remains?
Show solution
- Moles: N₂ 28.0/28.02 = 0.999 mol; H₂ 9.00/2.016 = 4.46 mol.
- Divide by coefficients: N₂ 0.999/1 = 0.999; H₂ 4.46/3 = 1.49. N₂ gives the smaller value, so N₂ is limiting.
- NH₃ formed: 0.999 mol N₂ × 2 = 1.998 mol × 17.03 g/mol = 34.0 g.
- H₂ used: 0.999 × 3 = 2.998 mol; H₂ left: 4.46 − 3.00 = 1.47 mol, or 2.96 g.
Answer: Nitrogen is limiting; 34.0 g of NH₃ forms, and 2.96 g of H₂ remains. Check: 28.0 + 9.00 = 34.0 + 2.96 (within rounding).
def limiting(moles, coefs):
"""Return the limiting reactant and the 'reaction extent' (mol of reaction)."""
extents = {s: moles[s] / coefs[s] for s in moles}
lim = min(extents, key=extents.get)
return lim, extents[lim]
# 2 Al + 3 Cl2 -> 2 AlCl3 ; start with 10.0 g Al and 35.0 g Cl2
M = {"Al": 26.98, "Cl2": 70.90, "AlCl3": 133.33}
moles = {"Al": 10.0 / M["Al"], "Cl2": 35.0 / M["Cl2"]}
coefs = {"Al": 2, "Cl2": 3}
lim, xi = limiting(moles, coefs)
product_g = xi * 2 * M["AlCl3"]
print(f"limiting reactant: {lim}")
print(f"AlCl3 formed: {product_g:.1f} g")
for s in moles:
left = moles[s] - xi * coefs[s]
print(f"{s} remaining: {max(left, 0) * M[s]:.2f} g")limiting reactant: Cl2 AlCl3 formed: 43.9 g Al remaining: 1.12 g Cl2 remaining: 0.00 g
Theoretical, actual and percent yield
The theoretical yield is the maximum amount of product calculated from the limiting reactant. The actual yield, what is really obtained, is almost always less: some reactant forms side products, the reaction may not go to completion, and product is lost during separation and purification. The percent yield compares the two.
Worked problem
Percent yield of aspirin
A student reacts 2.00 g of salicylic acid (C₇H₆O₃, 138.12 g/mol) with excess acetic anhydride to make aspirin (C₉H₈O₄, 180.16 g/mol). The equation has a 1 : 1 ratio. She recovers 2.10 g of purified aspirin. What is the percent yield?
Show solution
- Moles of salicylic acid: 2.00/138.12 = 0.01448 mol.
- Theoretical aspirin: 0.01448 mol × 180.16 g/mol = 2.609 g.
- Percent yield: 2.10/2.609 × 100 % = 80.5 %.
Answer: 80.5 %, a good result for a first-year laboratory synthesis.
A percent yield above 100 % does not mean extra product was created. It signals an error, most often a product that is still wet with solvent or contaminated with another substance.
In multistep syntheses, yields multiply. A pharmaceutical made in ten steps, each with a 90 % yield, has an overall yield of only 0.90¹⁰ = 35 %. This is one reason chemists work hard to shorten synthetic routes.
Atom economy
Percent yield measures how efficiently a reaction was carried out, but not how wasteful the reaction is by design. Atom economy, a central idea of green chemistry, is the fraction of the mass of all reactants that ends up in the desired product, assuming 100 % yield.
An addition reaction such as ethene + water → ethanol has 100 % atom economy, since every atom ends up in the product. A substitution that produces a by-product, such as the classic aspirin synthesis that also produces acetic acid, has lower atom economy (about 75 %). Regulators and industry increasingly track metrics like these; the US Environmental Protection Agency's Green Chemistry Challenge Awards and Canadian green chemistry networks reward processes that design waste out.
Solution concentration: molarity
Many reactions are carried out in solution, where it is easier to measure volumes than masses. The most common concentration unit is molarity, M, the moles of solute per litre of solution (not per litre of solvent). BIOL-107 introduced molarity and dilution for laboratory solutions; here we use them for stoichiometry.
Worked problem
Preparing a solution
How would you prepare 250.0 mL of 0.150 M CuSO₄ from solid copper(II) sulfate pentahydrate (249.69 g/mol)?
Show solution
- Moles needed: 0.150 mol/L × 0.2500 L = 0.03750 mol.
- Mass of the hydrate: 0.03750 mol × 249.69 g/mol = 9.363 g (each formula unit of hydrate supplies one CuSO₄).
- Weigh 9.363 g, dissolve in some water in a 250 mL volumetric flask, then add water to the mark and mix.
Answer: 9.36 g of CuSO₄·5H₂O made up to 250.0 mL. Note that the water of hydration must be included in the molar mass.
Solution stoichiometry
In a solution reaction, volume times molarity gives moles, and from there the standard stoichiometry chain applies unchanged.
Worked problem
Volume of reagent needed
What volume of 0.250 M AgNO₃ is needed to precipitate all the chloride from 50.0 mL of 0.100 M CaCl₂? (2 AgNO₃ + CaCl₂ → 2 AgCl + Ca(NO₃)₂)
Show solution
- Moles of CaCl₂: 0.100 M × 0.0500 L = 5.00 × 10⁻³ mol.
- Moles of AgNO₃: 5.00 × 10⁻³ × 2 = 1.00 × 10⁻² mol.
- Volume: 1.00 × 10⁻² mol ÷ 0.250 mol/L = 0.0400 L.
Answer: 40.0 mL of AgNO₃ solution. Each CaCl₂ supplies two chloride ions, which is why the ratio is 2 : 1.
Titration
A titration measures the concentration of a solution by reacting it with a solution of known concentration, the titrant, delivered from a burette. The equivalence point is reached when the titrant has supplied exactly the stoichiometric amount. An indicator, a substance that changes colour near the equivalence point, signals the end point; phenolphthalein, colourless in acid and pink in base, is the classic choice for strong acid–strong base titrations. Modern laboratories often use a pH meter or an automatic titrator instead.
Because sodium hydroxide absorbs water and carbon dioxide from the air, its solutions are standardized against a primary standard, a pure, stable solid that can be weighed accurately. Potassium hydrogen phthalate (KHP, KHC₈H₄O₄, 204.22 g/mol) is the usual choice; it reacts with NaOH in a 1 : 1 ratio.
# Standardize NaOH with KHP, then use it to find the concentration of an unknown HCl solution.
M_KHP = 204.22
trials = [ # (mass KHP in g, initial burette mL, final burette mL)
(0.5103, 0.45, 25.52),
(0.5048, 1.10, 25.88),
(0.5121, 0.20, 25.37),
]
concs = []
for m, v0, v1 in trials:
mol = m / M_KHP
c = mol / ((v1 - v0) / 1000)
concs.append(c)
print(f"KHP {m:.4f} g, titre {v1 - v0:5.2f} mL -> c(NaOH) = {c:.4f} M")
c_naoh = sum(concs) / len(concs)
spread = max(concs) - min(concs)
print(f"mean c(NaOH) = {c_naoh:.4f} M (range {spread:.4f} M)")
# 25.00 mL of HCl needs 21.36 mL of this NaOH (1 : 1 ratio)
c_hcl = c_naoh * 21.36 / 25.00
print(f"c(HCl) = {c_hcl:.4f} M")KHP 0.5103 g, titre 25.07 mL -> c(NaOH) = 0.0997 M KHP 0.5048 g, titre 24.78 mL -> c(NaOH) = 0.0998 M KHP 0.5121 g, titre 25.17 mL -> c(NaOH) = 0.0996 M mean c(NaOH) = 0.0997 M (range 0.0001 M) c(HCl) = 0.0852 M
Titrations appear well beyond the teaching laboratory: in quality control of vinegar and wine, in measuring water hardness, in clinical chemistry and in environmental monitoring. CHEM-102 develops titration curves and indicators in detail, and CHEM-211 treats titrations as precise analytical methods.
Common mistakes
MistakeUse the mass ratio from the coefficients: 1 g of N₂ reacts with 3 g of H₂.
InsteadCoefficients are mole ratios; convert masses to moles first.
MistakeThe reactant present in the smaller mass is the limiting reactant.
InsteadCompare moles divided by coefficients, not masses.
MistakeA yield of 105 % means the reaction made extra product.
InsteadYields above 100 % indicate an error, such as a wet or impure product.
MistakeMolarity is moles of solute per litre of solvent.
InsteadMolarity is moles per litre of solution.
MistakeWhen preparing a hydrate solution, use the molar mass of the anhydrous salt.
InsteadWeigh the substance actually used; for a hydrate, include the water in the molar mass.
Summary and key terms
- Coefficients in a balanced equation are mole ratios that link any two substances in the reaction.
- The standard calculation is mass → moles → mole ratio → moles → mass (or volume, or particles).
- The limiting reactant runs out first and determines the theoretical yield; identify it by dividing moles by coefficients.
- Percent yield compares actual and theoretical yields; overall yields multiply across steps.
- Atom economy measures the fraction of reactant mass that ends up in the desired product.
- Molarity is moles of solute per litre of solution; dilution follows c₁V₁ = c₂V₂.
- Titrations find concentrations by reacting a solution with a standardized titrant to the equivalence point.
- stoichiometry
- The calculation of quantities of reactants and products in chemical reactions.
- mole ratio
- A ratio of coefficients in a balanced equation, used as a conversion factor.
- limiting reactant
- The reactant that is completely consumed and limits the amount of product.
- theoretical yield
- The maximum amount of product calculated from the limiting reactant.
- percent yield
- Actual yield divided by theoretical yield, times 100 %.
- atom economy
- The percentage of reactant mass incorporated into the desired product.
- molarity
- Moles of solute per litre of solution.
- titration
- Adding a solution of known concentration to react with an unknown until the equivalence point.
- equivalence point
- The point at which stoichiometric amounts of reactants have been combined.
- primary standard
- A pure, stable substance used to determine the exact concentration of a solution.
Practice problems
Work each problem on paper first, then reveal the answer to check.
How many moles of O₂ are needed to burn 3.0 mol of C₃H₈?
Show answer
15 mol.
What mass of CO₂ forms when 10.0 g of CaCO₃ decomposes?
Show answer
10.0/100.09 = 0.0999 mol × 44.01 = 4.40 g.
For 2 H₂ + O₂ → 2 H₂O, which is limiting with 4.0 g H₂ and 16.0 g O₂?
Show answer
H₂ 1.98 mol (÷2 = 0.99); O₂ 0.500 mol (÷1 = 0.500); O₂ is limiting.
In the previous question, what mass of water forms?
Show answer
1.000 mol × 18.02 = 18.0 g.
A reaction has a theoretical yield of 12.5 g and gives 9.8 g. What is the percent yield?
Show answer
78 %.
A five-step synthesis averages 85 % yield per step. What is the overall yield?
Show answer
0.85⁵ = 44 %.
What mass of NaCl is needed for 500.0 mL of 0.200 M solution?
Show answer
0.100 mol × 58.44 = 5.84 g.
How do you make 100.0 mL of 0.50 M HCl from 6.0 M HCl?
Show answer
Dilute 8.3 mL of 6.0 M acid to 100.0 mL (adding acid to water).
25.00 mL of H₂SO₄ is neutralized by 32.40 mL of 0.1000 M NaOH. What is c(H₂SO₄)?
Show answer
mol NaOH 3.240 × 10⁻³; H₂SO₄ is half that; c = 1.620 × 10⁻³/0.02500 = 0.0648 M.
Why is NaOH standardized rather than prepared by weighing?
Show answer
Solid NaOH absorbs water and CO₂ from the air, so its weighed mass is not reliable.
Lesson quiz · 5 questions
Score 60% or more to complete this lesson.
Create a free account to save your progress, take quizzes and earn a certificate.