Start the exercise

Fictional teaching model. No peptide sequence, measured sample or instrument performance is represented. The ±5 ppm criterion is invented for this exercise.

The worksheet contains no answers. Work on paper or in a spreadsheet; a calculator is enough. CSV files use decimal points and the same English column names in every language.

Four observations, one fictional retention zone

All four rows belong to the invented retention group R1. Their positive charge numbers are supplied. No isotope envelope is provided from which to infer charge; no peak intensities are implied.

Your starting data — use these six-decimal observations as written

Scroll sideways, or focus the table area and use the left and right arrow keys.

RowSynthetic observed m/zSupplied charge z
A1235.577638+1
B618.289367+2
C1257.558369+1
D1235.589993+1

The hypotheses and inputs

Use a hypothetical neutral mass M = 1234.567890 Da. This number is an arithmetic model input, not an exact mass calculated from a real peptide formula. Consider only these three positive-ion hypotheses:

Allowed hypotheses; M, p and s are the numerical masses in Da

Scroll sideways, or focus the table area and use the left and right arrow keys.

Ion hypothesisCharge zCalculation
[M + H]⁺+1M + p
[M + 2H]²⁺+2(M + 2p) / 2
[M + Na]⁺+1M + s

Set p = 1.0072764665789 Da for the proton and s = 22.989221 Da for the approximate sodium-ion increment. Keep all supplied digits until the final display.

The sodium value is a rounded teaching approximation: the NIST sodium-23 atomic mass, 22.9897692820 u, minus the CODATA electron mass, 0.0005485799090441 u. Ionization energy is neglected in this approximation. The unrounded subtraction is 22.9892207020909559; the exercise fixes s at six decimal places. Da and u name the same mass unit.

NIST CODATA 2022 · NIST: ²³Na · BIPM: Da / u

For this exercise only, a hypothesis is within the criterion when the absolute ppm error is ≤5. A real method needs an appropriate, justified acceptance criterion; this page supplies none for laboratory use.

Calculate, compare, then qualify

  1. Calculate the expected m/z for each allowed ion. For each observation, compare only hypotheses with its supplied charge number.
  2. Subtract calculated m/z from observed m/z. Divide that signed difference by the calculated m/z of the same ion, then multiply by one million.
  3. Keep the sign in your result. Compare the absolute value with 5 ppm and record either “within the fictional criterion” or “outside”. If no allowed hypothesis passes, leave the assignment unresolved.
  4. Explain why row B needs a different denominator from row A, why row C suggests a sodium-adduct candidate, and what further evidence would be needed for a structural assignment.

Signed error convention used throughout this worksheet

ppm = (observed m/z − calculated m/z) / calculated m/z × 1,000,000

Positive means the observation is higher than the calculation; negative means lower. Do not take an absolute value until you compare with the criterion. This definition fixes the sign convention, which should always be checked when reading another report.

Check your reasoning

Show the worked answer key

Closest charge-compatible hypothesis in each row; D remains outside

Scroll sideways, or focus the table area and use the left and right arrow keys.

RowHypothesisCalculated m/zSigned ppmFictional ±5 ppm
A[M + H]⁺1235.575166+2.000Within
B[M + 2H]²⁺618.291221−2.999Within
C[M + Na]⁺1257.557111+1.000Within
D[M + H]⁺1235.575166+12.000Outside

The summary displays calculated m/z to six decimals and ppm to three. The calculations below and the CSV retain the full supplied mass inputs. Differences from exactly +2, −3, +1 and +12 ppm arise because the observations are fixed at six decimals.

Row A · [M + H]⁺

Calculated m/z: 1234.567890 + 1.0072764665789 = 1235.5751664665789

Signed ppm: (1235.577638 − 1235.5751664665789) / 1235.5751664665789 × 10⁶ = +2.000310 ppm

A is consistent with the singly protonated hypothesis within the fictional criterion. The sodium hypothesis is far outside; passing one comparison does not establish a unique molecular structure.

Row B · [M + 2H]²⁺

Calculated m/z: (1234.567890 + 2 × 1.0072764665789) / 2 = 618.2912214665789

Signed ppm: (618.289367 − 618.2912214665789) / 618.2912214665789 × 10⁶ = −2.999342 ppm

B is consistent with the doubly protonated hypothesis. Add two proton masses before dividing by 2. Divide its m/z difference by 618.2912214665789, not by the neutral mass 1234.567890.

Row C · [M + Na]⁺

Calculated m/z: 1234.567890 + 22.989221 = 1257.557111

Signed ppm: (1257.558369 − 1257.557111) / 1257.557111 × 10⁶ = +1.000352 ppm

C is consistent with the sodium-adduct hypothesis within this limited candidate set. Treat it as a candidate assignment; the exercise does not provide independent evidence that sodium caused a real signal.

Row D · [M + H]⁺

Calculated m/z: 1234.567890 + 1.0072764665789 = 1235.5751664665789

Signed ppm: (1235.589993 − 1235.5751664665789) / 1235.5751664665789 × 10⁶ = +11.999702 ppm

D is closest to the singly protonated hypothesis, but its approximately +12 ppm error is outside ±5 ppm. Do not force the assignment, widen the criterion after seeing the answer, or call the row an identified impurity.

Why the denominator matters

For B, using the neutral mass in the denominator gives about −1.502 ppm instead of −2.999 ppm. It still falls inside this invented limit, but it answers the wrong relative-error question. The numerator is an m/z difference, so the reference in this exercise is the corresponding calculated ion m/z.

What remains unresolved?

The calculation tests consistency with a small list of hypotheses. It cannot establish a sequence, distinguish all isomers, locate a modification, or prove purity or amount. A shared retention zone does not remove those ambiguities. There is no elemental formula or fragment spectrum in this exercise, so the model cannot be promoted to a structural identification.

When reading a real result, check the proposed ion, charge evidence, mass convention and calibration context, then examine the applicable reference comparison and any fragment evidence. Which additional evidence is appropriate depends on the analytical question.

Read what method validation shows

Return to the LC–MS interpretation guide

Reproduce the answer key

Download observations.csv, parameters.csv and solve.py into the same folder. With Python 3.9 or later, run the command below. It writes my-solutions.csv with every charge-compatible comparison, including rejected alternatives. No extra packages or network connection are needed.

python3 solve.py

CSV fields: row_id identifies A–D; retention_group is the fictional R1 grouping; observed_mz is the supplied six-decimal number; charge_number is the positive integer z; data_origin is synthetic. The answer CSV adds ion_hypothesis, calculated_mz, signed delta_mz, signed_error_ppm, denominator_mz and within_fictional_tolerance (true/false).

For teaching

Give learners the observations and worksheet first. Ask for the signed numerator and denominator before showing the answer key. Accept equivalent rounding when the original inputs were retained. A correct classification with the wrong denominator is still a calculation error; an “outside” row is a prompt to investigate, not to invent an identity.

Sources and reuse

  1. NIST CODATA 2022: proton and electron masses (pp. 2–3)
  2. NIST: sodium-23 atomic mass
  3. IUPAC Gold Book: adduct ion
  4. IUPAC Gold Book: exact mass
  5. IUPAC Gold Book: accurate mass
  6. BIPM: SI Brochure, 9th ed., v4.01 (2026), Table 8 (i): Da / u

Original synthetic data and teaching text by ChemVerify / Peak & Mass, created with AI assistance, 12 November 2026. CC BY 4.0; credit the publication and link this resource. External references retain their own terms. The fictional criterion and observations are our teaching choices, not NIST or IUPAC recommendations.

Creative Commons Attribution 4.0 International