NMR accuracy · measured 17 October 2026 · MolKraft 0.21
How close are the estimates?
On 5,421 measured spectra of molecules never seen in training, the free rules were off by 4.49 ppm on average for ¹³C and MolKraft's model by 1.17 ppm; for ¹H, 0.52 against 0.19 ppm.
Estimates help you plan and check an assignment. They do not replace a measured spectrum.
The headline set
5,421 measured spectra of molecules never seen in training, and never used to fit or tune either engine; 3,920 ¹³C and 1,484 ¹H spectra had signals to score. Average error (MAE) and the 90th percentile are in ppm; "no value" is the share of signals an engine left without an estimate.
| Nucleus | Spectra | Signals | Rules MAE | Rules 90th pct | Rules no value | Model MAE | Model 90th pct | Model no value | Inside the 95 % range |
|---|---|---|---|---|---|---|---|---|---|
| ¹³C | 3,920 | 35,455 | 4.49 | 10.30 | 0.0 % | 1.17 | 2.74 | 0.0 % | 96.0 % |
| ¹H | 1,484 | 8,475 | 0.52 | 1.28 | 5.8 % | 0.19 | 0.45 | 0.0 % | 94.2 % |
Three held-out sets
The same comparison on three ways of holding spectra out. The gap between the two engines is much the same in each.
| Set | ¹³C spectra | ¹³C rules | ¹³C model | ¹³C in range | ¹H spectra | ¹H rules | ¹H model | ¹H in range |
|---|---|---|---|---|---|---|---|---|
| Never seen (headline set) | 3,920 | 4.49 | 1.17 | 96.0 % | 1,484 | 0.52 | 0.19 | 94.2 % |
| Held out by ring systemWhole ring systems kept out of training, so these are scaffolds the model had not met | 2,807 | 4.54 | 1.35 | 95.6 % | 1,555 | 0.47 | 0.19 | 95.3 % |
| Random held-out sample | 3,387 | 4.35 | 1.20 | 96.2 % | 1,732 | 0.43 | 0.15 | 96.9 % |
The figure in the app
The app's NMR panel quotes one rounded figure for compounds held out from training: 0.2 ppm for ¹H and 1.4 ppm for ¹³C. It is the cautious end of the held-out sets above, including whole ring systems the model never met and the CDCl₃ setting, so it is a little higher than the headline set's 0.19 and 1.17 ppm.
By kind of molecule
Across small, drug-like and large molecules, the model's average ¹³C error was between 23 % and 37 % of the rules'. It is largest on the most complex molecules, which are also the fewest.
| Kind | ¹³C spectra | ¹³C rules | ¹³C model | ¹H spectra | ¹H rules | ¹H model |
|---|---|---|---|---|---|---|
| Simple | 1,023 | 4.27 | 0.99 | 144 | 0.39 | 0.20 |
| Intermediate | 1,959 | 4.54 | 1.14 | 575 | 0.56 | 0.20 |
| Drug-like | 843 | 4.50 | 1.22 | 627 | 0.51 | 0.18 |
| Complex | 95 | 4.60 | 1.72 | 155 | 0.55 | 0.20 |
Simple: up to 12 heavy atoms, at most one ring, only C, H, N, O and halogens. Drug-like: 18 to 40 heavy atoms, two or more rings, two or more N or O. Complex: more than 40 heavy atoms or five or more rings. Intermediate: the rest.
The 95 % range, and the "lower" mark
Each model value comes with a range meant to hold the measured value 95 times in 100. In these tests it held for 95.6 to 96.2 % of ¹³C values and 94.2 to 96.9 % of ¹H values: about 95 in 100.
Atoms in surroundings the model knows less well are marked "lower". Their values were about twice as far off as the rest, and their range was a little too narrow, so treat a "lower" value as a rough guide.
Values left out
On the headline set the free rules gave no value for 5.8 % of ¹H signals (they have no rule for hydrogens on most heteroaromatic rings other than pyridine) and for 0.0 % of ¹³C signals. The model does not predict structures with an element it was not trained on, or with carbon–metal bonds; the app then shows the rules' values, so you see a value wherever the rules have one.
How we measured
Both engines were run on published spectra they were not fitted on, held out in three ways: a random sample, whole ring systems kept out of training (so the model had not met those scaffolds), and spectra never used to build or tune either engine (the headline set). For each signal we compare one predicted value with the measured one: one value per group of equivalent atoms, with OH and NH protons left out, as in the app. We report the average error, the 90th percentile and how often each engine gives no value, and check the model's 95 % range against the same data.
Most of the spectra do not record their solvent, and the figures above use that setting. With CDCl₃, the app's default, the model's average error rose by at most 0.13 ppm for ¹³C and 0.02 ppm for ¹H on these sets. The rules take no solvent, so theirs do not change.
The numbers are for the NMR model and rules in MolKraft 0.21. When either changes, the same sets are run again before the release and this page changes with it.
Limits
- All the spectra come from one collection of published spectra. Wrong assignments in it count against both engines, and natural products, inorganic and organometallic chemistry are thin in it.
- No other product was measured, so this page makes no comparison with any.
- ¹⁹F, ³¹P and ¹¹B have their own MolKraft models. Their figures will be added here; they are tested on fewer, less varied spectra.