Skip to content
Sign in
Beta calculator validation — what an empirical fit can and cannot be checked against

Validation of the beta calculator

One number on this screen is exact and the rest rest on empirical fits. This report separates them, checks each to the standard its own character allows, and lists what it could not establish instead of leaving the gap unmarked.

Subject
The beta calculator at /calc/beta/, both of its modes, and the engine module src/engine/beta.ts.
Report date
2026-09-19
Source revision
09c0347
Archived source
10.5281/zenodo.22794265
Nuclides with beta data
35 of 147
Checks performed
370
Acceptance criteria
Energy conservation: relative difference below 1e-12. Fit form: below 1e-9. Stored data against its own branches: below 0.002. No accuracy criterion is applied to the fits themselves, for the reason given below.
Not established
5 items, listed at the end
Result
All checks pass.

Scope

This report covers the beta calculator: the infinite-medium and surface dose rates, the range and the absorber transmission, and the bremsstrahlung comparison between materials, for the 35 nuclides in the data set that carry beta data. It does not cover skin dose, which this calculator deliberately does not attempt, nor the gamma emissions of the same nuclides, which the gamma report covers.

Why this report is built differently from the other four

The unit converter rests on definitions, so its report could be complete. The decay and specific-activity reports rest on evaluated measurements, so they could be set against independent evaluations. The gamma report deals with a derived quantity whose published compilations use different conventions, so it validates the derivation and the inputs instead of the output.

This calculator rests on something else again: empirical fits. A fit is not a definition and it is not evaluated data. It is a curve somebody drew through measurements, and there is no authority that says what its true value is. Asking whether the Katz–Penfold range is "correct" has no answer. Three questions do have answers, and they are what this report asks:

  1. Is the implementation the published form? Coefficient for coefficient, branch for branch.
  2. Does it stay inside the range it was fitted over? Or does it answer where no data exists?
  3. How does it stand against independent modern data — for the same quantity?

The third question is where this kind of report goes wrong most easily, and the trap is the same one the gamma report documents: two numbers with the same name that are not the same quantity. It is handled explicitly below.

The one exact result

The infinite-medium dose rate is not a fit. It follows from conservation of energy in four lines, and it is the only number on the beta screen that can be validated to the same standard as the unit converter.

B-U-01 — Infinite-medium dose rate from conservation of energy

In the code: infiniteMediumDoseRate in src/engine/beta.ts · Cited: 15th CGPM (1975), Resolution 9 · 15th CGPM (1975), Resolution 8

  1. Take a medium uniformly contaminated with a beta emitter, large compared with the beta range in every direction.
  2. Every beta emitted inside it also stops inside it, because the range is short compared with the dimensions. Energy leaving one volume element is balanced by energy arriving from its neighbours.
  3. So the energy deposited per kilogram per second equals the energy emitted per kilogram per second. Nothing about geometry, self-absorption or scattering survives the argument.
  4. A concentration of C becquerel per kilogram emits C betas per second per kilogram, each carrying Ē on average, so the deposited power is C·Ē joule per second per kilogram.
  5. One gray is one joule per kilogram, so the dose rate is C·Ē gray per second, and ×3600 for gray per hour.
  6. This is an exact result, not an approximation. It is the one number on this screen that does not rest on an empirical fit.

B-U-02 — Megaelectronvolt to joule, and the hour

In the code: the MEV_J * 3600 chain in infiniteMediumDoseRate · Cited: 15th CGPM (1975), Resolution 9

  1. The energy carried by the betas is tabulated in keV, and the gray is defined in joules per kilogram, so one conversion is needed.
  2. One electronvolt is the work done moving the elementary charge through one volt, so 1 eV = 1.602 176 634 × 10⁻¹⁹ J exactly, the elementary charge being fixed by the SI.
  3. 1 MeV = 1.602 176 634 × 10⁻¹³ J, again exactly.
  4. One becquerel per kilogram of an emitter whose mean beta energy is 1 MeV therefore deposits 1.602 176 634 × 10⁻¹³ J/(kg·s) = 1.602 176 634 × 10⁻¹³ Gy/s.
  5. Multiplying by 3600 s/h gives 5.767 835 882 4 × 10⁻¹⁰ Gy/h per (MeV · Bq/kg).
  6. Every dose rate this tool reports is that number times the mean energy in MeV times the concentration.

B-U-03 — A plane surface receives exactly half

In the code: semiInfiniteSurfaceDoseRate in src/engine/beta.ts

  1. At the surface of a uniformly contaminated half-space, the medium below still supplies its betas, but above there is nothing.
  2. By the same conservation argument applied to the half-space, the dose rate at the interface is exactly half the infinite-medium value.
  3. The factor is 1/2 exactly and it carries no assumption about the beta energy, the nuclide or the material.
  4. The tool reports both, because the two answer different questions: immersion in the medium, and standing on it.

B-U-04 — What the infinite-medium result does not cover

In the code: the scope of the dose mode

  1. The derivation needs the medium to be large compared with the beta range in every direction. For water and a 1 MeV endpoint that is a few millimetres, so a bulk sample or a body of water qualifies and a thin film does not.
  2. It gives the dose to the medium, not to skin behind a layer of dead cells, and not to an organ. A skin-dose figure would need a point-kernel integration and a source geometry, which this calculator deliberately does not attempt.
  3. It uses the mean beta energy, so it accounts for the whole spectrum. It does not include the gamma or conversion-electron dose from the same nuclide.
  4. This case carries no arithmetic. It is here so the scope is recorded rather than assumed.

Identities

Each holds for every nuclide, so each is checked at all 35 rather than at one energy. The table shows the value at Sr-90 and the worst disagreement across the set.

Identity Hand Tool Worst
difference
Doubling the concentration doubles the dose rate B-ID-01 2×10⁰ 2×10⁰ 0
Doubling the mean energy doubles the dose rate B-ID-02 2×10⁰ 2×10⁰ 0
The surface value is half the immersion value B-ID-03 5×10⁻¹ 5×10⁻¹ 0
Zero concentration gives zero dose rate B-ID-04 0 0 0
Concentrations add B-ID-05 1×10⁰ 1×10⁰ 2.22e-16
Derivations of the identities

B-ID-01 — Doubling the concentration doubles the dose rate

  1. Ḋ = Ē·C is linear in C, so the ratio is exactly 2 for every nuclide and every energy.
  2. There is no self-shielding term and no saturation: twice the atoms, twice the decays, twice the energy.
  3. Checked at every nuclide in the data set that carries beta data.

B-ID-02 — Doubling the mean energy doubles the dose rate

  1. Ḋ = Ē·C is equally linear in Ē.
  2. This is the identity that would break if the conversion chain acquired an extra energy-dependent factor, which is the mistake a spectrum-weighted quantity invites.
  3. The infinite-medium result deliberately has no such factor — that is what makes it exact.

B-ID-03 — The surface value is half the immersion value

  1. Checked as an identity across every nuclide rather than at one energy, because a factor written into one code path and not the other would show only on some inputs.
  2. The expected value is exactly 0.5 with no tolerance beyond double precision.
  3. If this ever fails, one of the two functions stopped deriving from the other.

B-ID-04 — Zero concentration gives zero dose rate

  1. Trivial, and worth pinning: a constant offset added anywhere in the chain would survive every ratio test above and fail only here.
  2. Ratio identities are blind to additive terms. This case is the one that is not.
  3. Exactly zero is required, not merely small.

B-ID-05 — Concentrations add

  1. Ḋ(C₁ + C₂) = Ḋ(C₁) + Ḋ(C₂), because the relation is linear and homogeneous.
  2. Together with B-ID-04 this fixes the function to a pure proportionality, leaving only the constant to be checked, which B-U-02 derives.
  3. Checked with two unequal concentrations so that a symmetric error would not cancel.

The three empirical fits

For each: what is published, what the code computes, what this report established, and what it did not. The last column is not padding — it is the part a reader needs in order to know how much weight the number can carry.

B-F-01 — Katz–Penfold range, lower branch

Published
R = 412 E₀^(1.265 − 0.0954 ln E₀) mg/cm², for aluminium
Implemented
0.412 * E ** (1.265 - 0.0954 * Math.log(E)) g/cm²
Domain
0.01 MeV up to the branch point
Established
The implemented expression is the published form with mg/cm² carried to g/cm², coefficient for coefficient.
Not established
The original paper is behind a subscription and was not opened for this report, so the stated accuracy of the fit is not reproduced here. What replaces it is the measured relationship to ESTAR below.
Source
Katz, L. and Penfold, A. S., Range-Energy Relations for Electrons and the Determination of Beta-Ray End-Point Energies by Absorption, Reviews of Modern Physics 24, 28-44 (1952). doi:10.1103/RevModPhys.24.28.

B-F-02 — Katz–Penfold range, upper branch

Published
R = 530 E₀ − 106 mg/cm², above the branch point
Implemented
0.530 * E - 0.106 g/cm²
Domain
above the branch point
Established
The implemented expression is the published form. The branch point is taken as 2.5 MeV; the code used 3 MeV until this report, which affected exactly one nuclide in the data set and by 0.687%.
Not established
The branch point was not read from the original paper. The evidence for 2.5 MeV is that the two branches come closest there, which is measured in B-F-04 and is consistent with, but not proof of, that value.
Source
Katz, L. and Penfold, A. S., Range-Energy Relations for Electrons and the Determination of Beta-Ray End-Point Energies by Absorption, Reviews of Modern Physics 24, 28-44 (1952). doi:10.1103/RevModPhys.24.28.

B-F-03 — Beta mass absorption coefficient

Published
not located
Implemented
17 / E ** 1.14 cm²/g
Domain
applied over the same range as the range fit
Established
Nothing beyond the arithmetic. The transmission it feeds is monotonic in thickness and is cut to zero at the range, which is checked as an identity.
Not established
No published source for this expression was located, and the site carried no citation for it. It is reported here as unsourced rather than presented as validated. A user needing a defensible attenuation figure should not rely on it.

Form fidelity

The published relation is quoted in mg/cm²; the code works in g/cm². Each row recomputes the published expression from its own coefficients and compares. The branch point is at 2.5 MeV and the fit's lower limit at 0.01 MeV.

Branch E
[MeV]
Published
[g/cm²]
Tool
[g/cm²]
Difference
lower 0.01 1.6077953×10⁻⁴ 1.6077953×10⁻⁴ 1.69e-16
lower 0.05 3.9561176×10⁻³ 3.9561176×10⁻³ 0
lower 0.2 4.2012647×10⁻² 4.2012647×10⁻² 1.65e-16
lower 1 4.12×10⁻¹ 4.12×10⁻¹ 0
lower 2 9.4578883×10⁻¹ 9.4578883×10⁻¹ 1.17e-16
lower 2.4999 1.2119559×10⁰ 1.2119559×10⁰ 0
upper 2.5001 1.219053×10⁰ 1.219053×10⁰ 0
upper 3 1.484×10⁰ 1.484×10⁰ 0
upper 3.54 1.7702×10⁰ 1.7702×10⁰ 0
upper 10 5.194×10⁰ 5.194×10⁰ 1.71e-16

Where the branch point is, and how firmly

The code branched at 3 MeV until this report and now branches at 2.5 MeV. That value was not read from the original paper, which is behind a subscription and was not opened. The evidence available here is internal: the two branches were fitted separately and do not meet, so the branch point cannot be recovered from continuity, but the gap between them can be measured. Scanning from 2 to 3.2 MeV puts the minimum at 2.583 MeV, where the two differ by 0.572%.

That is consistent with a branch point of 2.5 MeV and inconsistent with nothing in particular; it is evidence, not proof, and it is listed as such at the end. What it does rule out is the value the code used before, which had no evidence behind it at all. The change affected exactly one nuclide in the data set, praseodymium-144 at 2.996 MeV, by 0.687%.

Against NIST electron data — and the quantity trap

NIST publishes stopping powers and ranges for electrons. It is independent of the 1952 fit and it is the natural thing to compare against. It is also the easiest place in this report to say something false, because the obvious comparison is between two quantities that are not the same.

NIST ESTAR, Appendix, definition of CSDA range
“CSDA range: a very close approximation to the average path length traveled by a charged particle as it slows down to rest, calculated in the continuous-slowing-down approximation. In this approximation, the rate of energy loss at every point along the track is assumed to be equal to the total stopping power. Energy-loss fluctuations are neglected. The CSDA range is obtained by integrating the reciprocal of the total stopping power with respect to energy.”

NIST ESTAR, Appendix, definitions of projected range and detour factor
“Projected range: average value of the depth to which a charged particle will penetrate in the course of slowing down to rest. This depth is measured along the initial direction of the particle. Detour factor: ratio of the projected range to the CSDA range. As the result of multiple scattering, the trajectory of the particle is wiggly rather than straight, and the detour factor is always smaller than unity.”

Katz–Penfold's R comes from absorption curves, so it is a depth. NIST's CSDA range is a path length. Their ratio is what NIST calls the detour factor, and NIST states it is always smaller than one. Measured across the fit's range in aluminium, our range divided by the NIST path length runs from 0.454 to 0.794 over 39 tabulated energies. That spread is not an error in the fit. It is the detour factor, and a report that printed it as a 25% discrepancy would be wrong.

What it does tell a user is concrete: the thickness this calculator quotes is the depth betas reach, which is less than the distance they travel. It is the right quantity for asking how thick a shield must be.

E
[MeV]
This tool
[g/cm²]
NIST CSDA
[g/cm²]
Ratio
0.01 1.6078×10⁻⁴ 3.539×10⁻⁴ 0.454
0.0175 5.17903×10⁻⁴ 9.284×10⁻⁴ 0.558
0.03 1.51013×10⁻³ 2.367×10⁻³ 0.638
0.045 3.25665×10⁻³ 4.783×10⁻³ 0.681
0.06 5.51207×10⁻³ 7.855×10⁻³ 0.702
0.09 1.12664×10⁻² 1.568×10⁻² 0.719
0.15 2.65178×10⁻² 3.659×10⁻² 0.725
0.25 5.93837×10⁻² 8.217×10⁻² 0.723
0.4 1.19321×10⁻¹ 1.652×10⁻¹ 0.722
0.55 1.86917×10⁻¹ 2.575×10⁻¹ 0.726
0.8 3.09203×10⁻¹ 4.206×10⁻¹ 0.735
1 4.12×10⁻¹ 5.546×10⁻¹ 0.743
1.25 5.43783×10⁻¹ 7.231×10⁻¹ 0.752
1.5 6.77394×10⁻¹ 8.913×10⁻¹ 0.760
1.75 8.11643×10⁻¹ 1.058×10⁰ 0.767
2 9.45789×10⁻¹ 1.224×10⁰ 0.773
2.5 1.21201×10⁰ 1.55×10⁰ 0.782
3 1.484×10⁰ 1.869×10⁰ 0.794

Bremsstrahlung: only the part that can be compared

The tool computes the bremsstrahlung fraction as f ≈ 3.5 × 10⁻⁴ · Z · Emax, so the ratio between two materials is exactly the ratio of their atomic numbers. NIST tabulates the radiation yield for monoenergetic electrons, while that expression is meant for a beta spectrum whose mean energy is roughly a third of the endpoint. The absolute values are therefore not compared — that would repeat the gamma-constant mistake. The ratio between two materials at one energy is free of the difference, so that is what is checked.

Pair Tool
(= Z ratio)
NIST
lowest
NIST
highest
Reading
Water against acrylic B-E-02 1.14 1.11 1.14 agrees
Aluminium against acrylic B-E-03 2.00 2.20 2.64 tool understates the penalty
Iron against acrylic B-E-04 4.00 4.59 6.06 tool understates the penalty
Lead against acrylic B-E-05 12.62 14.66 24.22 tool understates the penalty

The two low-Z materials agree with the atomic-number ratio to within a few percent, which is what makes the comparison trustworthy at all. Going up in atomic number the rule of thumb falls behind: for lead against acrylic it gives 12.6, while NIST puts the real ratio between 14.7 and 24.2.

The direction matters. The advice the tool gives — shield betas with a low-Z material first, and add lead outside it only if the bremsstrahlung still matters — is strengthened by this, because lead is worse than the rule of thumb says. A user reading the absolute figure as a prediction of dose would be under-estimating it.

The stored beta energies, checked against themselves

Each nuclide carries its beta branches with an endpoint, a mean energy and an intensity, and separately the two summary values the calculator uses. Those summaries must follow from the branches, which is checkable with no outside source.

CheckNuclidesWorstResult
The stored mean beta energy is the intensity-weighted mean of the branches B-D-01 35 1.04e-3 (Rh-106) passes
The stored endpoint is the highest branch endpoint B-D-02 35 — passes

Where that endpoint belongs to a rare branch (B-D-03). Using the highest endpoint is the conservative choice for shielding, but it can belong to a branch almost nobody sees. In this data set 2 nuclides are affected:

NuclideEndpoint
[keV]
Intensity of
that branch
Branches
Co-60 1492 0.12% 2
I-131 806.9 0.39% 6

For cobalt-60 the shielding thickness this calculator reports is for a branch emitted in about one decay in eight hundred; more than 99.8% of its betas stop in a small fraction of it. The thickness is not wrong — it is the conservative answer to "stop all the betas" — but it is not a description of the typical beta, and a reader comparing it with a measurement would find that confusing without knowing this.

B-D-04 — the ratio of mean to endpoint energy across the set runs from 0.065 (Co-60) to 0.409 (Y-90), with a median of 0.306. The familiar "about one third" holds for single-branch emitters and should not be applied to the rest: the stored mean covers the whole decay while the stored endpoint is the highest branch.

Worked cases

CaseBy handToolDifference
Strontium-90 at one megabecquerel per kilogram B-W-01 · Sr-90 1.1287654822×10⁻⁴ Gy/h 1.1287654822×10⁻⁴ Gy/h 1.27e-11
Yttrium-90 at one megabecquerel per kilogram B-W-02 · Y-90 5.3774110715×10⁻⁴ Gy/h 5.3774110715×10⁻⁴ Gy/h 3.78e-12
Tritium at one megabecquerel per kilogram B-W-03 · H-3 3.2761307812×10⁻⁶ Gy/h 3.2761307812×10⁻⁶ Gy/h 9.77e-13
Strontium-90 at a plane surface B-W-04 · Sr-90 5.643827411×10⁻⁵ Gy/h 5.6438274109×10⁻⁵ Gy/h 1.27e-11
Yttrium-90 range, and what that thickness means B-W-05 · Y-90 1.0945234325×10⁰ g/cm² 1.0945234325×10⁰ g/cm² 1.99e-11
Praseodymium-144 — the nuclide the branch point moved B-W-06 · Pr-144 1.48188×10⁰ g/cm² 1.48188×10⁰ g/cm² 0

B-W-01 — Strontium-90 at one megabecquerel per kilogram

  1. Ē = 195.7 keV = 0.1957 MeV, the intensity-weighted mean over the branches of the decay.
  2. Each becquerel per kilogram deposits 0.1957 × 1.602 176 634 × 10⁻¹³ = 3.135 460 × 10⁻¹⁴ J/(kg·s).
  3. At 10⁶ Bq/kg that is 3.135 460 × 10⁻⁸ Gy/s.
  4. × 3600 s/h = 1.128 765 482 2 × 10⁻⁴ Gy/h, that is 0.1129 mGy/h.
  5. This is the dose to the medium from the strontium alone. In a real sample the yttrium-90 daughter is in equilibrium and contributes about five times more, which the tool does not add.

B-W-02 — Yttrium-90 at one megabecquerel per kilogram

  1. Ē = 932.31 keV = 0.932 31 MeV.
  2. 0.932 31 × 1.602 176 634 × 10⁻¹³ × 10⁶ = 1.493 725 × 10⁻⁷ Gy/s.
  3. × 3600 = 5.377 411 071 5 × 10⁻⁴ Gy/h.
  4. The ratio to strontium-90 at the same concentration is 4.76, which is the ratio of the mean energies and nothing else — the clearest demonstration that this quantity carries no geometry.

B-W-03 — Tritium at one megabecquerel per kilogram

  1. Ē = 5.68 keV = 0.005 68 MeV, the lowest in the data set.
  2. 0.005 68 × 1.602 176 634 × 10⁻¹³ × 10⁶ × 3600 = 3.276 130 781 2 × 10⁻⁶ Gy/h.
  3. Five orders of magnitude below yttrium-90 at the same activity concentration, from the energy alone.
  4. The infinite-medium condition is easily met for tritium: its range in water is a fraction of a micrometre, so any sample qualifies.

B-W-04 — Strontium-90 at a plane surface

  1. The immersion value from B-W-01 is 1.128 765 482 2 × 10⁻⁴ Gy/h.
  2. At the surface of a contaminated half-space exactly half the solid angle is filled with source.
  3. 5.643 827 411 0 × 10⁻⁵ Gy/h, that is 0.0564 mGy/h.
  4. The factor is exact, so this case is really a check that the two code paths still derive from one another.

B-W-05 — Yttrium-90 range, and what that thickness means

  1. E_max = 2278.5 keV = 2.2785 MeV, below the 2.5 MeV branch point, so the lower branch applies.
  2. The exponent is 1.265 − 0.0954 ln 2.2785 = 1.265 − 0.0954 × 0.823 517 331 7 = 1.186 436 446 6.
  3. R = 0.412 × 2.2785^1.186 436 446 6 = 1.094 523 432 5 g/cm².
  4. In acrylic at 1.19 g/cm³ that is 0.9198 cm; in water, 1.0945 cm; in lead at 11.35 g/cm³, 0.9643 mm.
  5. This is a depth, not a path length: NIST's CSDA range for a 2.2785 MeV electron in aluminium is longer, and the ratio is the detour factor measured in B-E-01.

B-W-06 — Praseodymium-144 — the nuclide the branch point moved

  1. E_max = 2996 keV = 2.996 MeV, above the 2.5 MeV branch point, so the upper branch applies.
  2. R = 0.530 × 2.996 − 0.106 = 1.587 88 − 0.106 = 1.481 88 g/cm².
  3. Until this report the code branched at 3 MeV and so used the lower branch here, returning 1.471 764 g/cm² — 0.687% lower.
  4. It is the only nuclide in the data set between 2.5 and 3 MeV, so it is the only answer the correction changed.
  5. The size of the change is well inside the scatter of the fit itself; the reason for making it is that the code now computes the relation it names.

Where the calculator must refuse

Four of these six were open when this report was written. One of them is a kind of failure this project had not seen before: the guard that stops the exponential past the range compared the thickness against a not-a-number, and every comparison with a not-a-number is false, so the guard was skipped and the exponential returned 6.4 × 10⁻¹⁹⁵ — a number, through a check written to prevent exactly that.

InputWhy there is no answerRefused
An energy below the fit's lower limit B-R-01 The relation was fitted from 0.01 MeV upward. Below that there is no fitted data, and an extrapolated curve returns a number that looks like a measurement. yes
A negative energy B-R-02 There is no such beta. The logarithm in the exponent would also return a not-a-number in a way that depends on the platform rather than on the physics. yes
An infinite energy B-R-03 The upper branch is linear, so an infinite energy returns an infinite range, which prints as a thickness. yes
A mass absorption coefficient below the fit's range B-R-04 Before this report this returned 44 715 cm²/g, a value with no physical meaning that then fed the transmission. yes
Transmission at an energy outside the fit B-R-05 The guard compared the thickness against a not-a-number range. Comparisons with a not-a-number are always false, so the guard was skipped and the exponential returned 6.4 × 10⁻¹⁹⁵ — a number, through a check that was supposed to stop it. yes
A negative absorber thickness B-R-06 A negative thickness would make the exponential larger than one, reporting more beta leaving the absorber than entered it. yes

What this report does not establish

Listed rather than described, so that a reader can count them. Nothing here is a reason to distrust the exact result above; all of it bears on the shielding mode.

Not establishedWhy
The accuracy claimed for the Katz–Penfold fit B-N-01 The 1952 paper is behind a subscription and was not opened for this report. The site previously said the fit is accurate to roughly 10% and gave no source; that sentence has been removed rather than re-sourced from memory.
The branch point of 2.5 MeV B-N-02 Taken from secondary descriptions of the paper, not from the paper. The internal evidence in B-F-04 is consistent with it but does not establish it. The alternative in the code until this report, 3 MeV, has no evidence at all.
The mass absorption coefficient 17/E^1.14 B-N-03 No published source was located for this expression, and the site carried no citation for it. It is used only for the transmission figure in the shielding mode.
The absolute bremsstrahlung fraction B-N-04 Only its dependence on atomic number is checked against NIST, because the tool's expression is for a beta spectrum and the NIST tabulation is for monoenergetic electrons. The two are different quantities and are not compared directly.
The nuclide beta energies against an independent evaluation B-N-05 The endpoints and mean energies come from the same evaluated file as the half-lives. They are checked here only for internal consistency; no second evaluation was brought in, as the decay report does for half-lives.

Primary sources