Data sources
Provenance
- Source: IAEA Live Chart of Nuclides (
nds.iaea.org), JSON/CSV API. - Endpoint:
https://nds.iaea.org/relnsd/v1/data?fields=ground_states&nuclides=...(CSV response; requiresUser-Agent: Livechart/1.0). - Fetched: 2026-09-22 via
src/pydecay/data/_fetch_iaea.py(build-time tool; excluded from the wheel). - Metastable isomers (
Tc-99m,Pa-234m) are absent fromfields=ground_states; they are read fromfields=levelsof the base nuclide and paired with the base ground-state mass excess plus the level excitation energy. - Bundle size: 47 curated isotopes.
- Per-record metadata: every record carries
source,source_url, andfetched.
Year convention
1 y = 31557600 s (Julian year, 365.25 d). Applied uniformly by
UNIT_TO_SECONDS in the fetch script (ys/Y/y and scaled ky, My,
Gy).
Mandatory six
Medical / industrial / dating anchors required by the design spec §6; regeneration fails if any of these are missing:
| Nuclide | Why |
|---|---|
| Co-60 | industrial / radiotherapy |
| Cs-137 | industrial / medical |
| I-131 | medical imaging / therapy |
| C-14 | dating |
| U-238 | natural decay series |
| Tc-99m | medical imaging (metastable) |
Limitations
decay_modesis best-effort from the ground-states endpoint'sdecay_1/decay_1_%(anddecay_2,decay_3) columns; rows may be incomplete depending on what the API reports for a given nuclide.- Branching fractions for chain topology are user-supplied to
DecayChain.branching— the dataset does not drive graph edges. - Full ICRP-107 / ENSDF shipping is deferred (v2 candidate).
half_life_uncertainty_sis currentlynullfor all bundled records.
Cross-check policy
tests/test_crosscheck.py compares every overlapping nuclide against
radioactivedecay (ICRP-107 evaluation). Policy:
- Print relative drift for all overlapping nuclides.
- REL_TOL = 1e-3 locked. Any nuclide outside the accepted-deviation allowlist beyond this tolerance fails the test.
- IAEA wins conflicts with secondary sources; these published
evaluation differences are accepted and allowlisted in
ACCEPTED_DEVIATIONSintests/test_crosscheck.py. - Any accepted deviation is listed below with both values (populated from observed cross-check output — not pre-invented).
Accepted deviations (IAEA vs ICRP-107)
Note for every row: IAEA Live Chart vs ICRP-107 evaluation difference;
accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS.
| Nuclide | pydecay (IAEA, s) | radioactivedecay (ICRP-107, s) | rel diff | note |
|---|---|---|---|---|
| Ar-39 | 8.457437e+09 | 8.488813e+09 | 3.696e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
| C-11 | 1.221840e+03 | 1.223400e+03 | 1.275e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
| Cs-137 | 949252608 | 951980944.7479681 | 2.866e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
| I-123 | 4.760280e+04 | 4.777200e+04 | 3.542e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
| K-40 | 3.938388e+16 | 3.947771e+16 | 2.377e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
| Kr-85 | 3.388971e+08 | 3.394263e+08 | 1.559e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
| Pa-234m | 6.954000e+01 | 7.020000e+01 | 9.402e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
| Ra-224 | 3.137702e+05 | 3.162240e+05 | 7.760e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
| S-35 | 7.548768e+06 | 7.560864e+06 | 1.600e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
| Sr-90 | 912330216 | 908523901.8432001 | 4.190e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
| Tc-99m | 2.162592e+04 | 2.165400e+04 | 1.297e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
| Th-230 | 2.385250e+12 | 2.378761e+12 | 2.728e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
| Th-232 | 4.418064e+17 | 4.433748e+17 | 3.537e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
| Tl-201 | 2.628288e+05 | 2.624832e+05 | 1.317e-03 | IAEA Live Chart vs ICRP-107 evaluation difference; accepted in tests/test_crosscheck.py ACCEPTED_DEVIATIONS |
Systematic note: many year-scale OK rows sit at rel ≈ 2.136e-05 — a
year-convention difference (our Julian 1 y = 31557600 s vs
radioactivedecay's internal year_conv ≈ 3.155691e7 s), two orders of
magnitude below tolerance and harmless.