# Validation Suite

The **Validation** tab is your one-click answer to "how do I know GDBS got the right answer?"

For each canonical reference, we ship:

- the **expected β_N** from the published paper;
- the **computed β_N** when our solver is fed the published geometry;
- the **error percentage** vs the published value;
- the **tolerance band** below which we mark green / above which we mark red;
- the **DOI link** straight to the paper.

## Built-in references

| ID | Reference | Source | Tolerance |
|---|---|---|---|
| iter_baseline | ITER baseline (β_N=1.8, q_95=3, I_p=15 MA) | ITER Physics Basis 1999 | ±15% |
| diii_d_advanced | DIII-D AT (β_N=4.0, κ=1.8, δ=0.4) | Lazarus 1996 | ±20% |
| jet_baseline | JET DT H-mode (β_N=1.5) | Wesson 2004 | ±15% |
| nstx_spherical | NSTX (A=1.4, β_t=20%) | Sabbagh 2006 | ±25% |
| w7x_reference | Wendelstein 7-X (β_t=5%) | Klinger 2019 | ±30% |
| lhd_reference | LHD (β_t=5.1%) | Komori 2010 | ±30% |
| frc_irvine | TAE Norman FRC (⟨β⟩=0.8) | Binderbauer 2015 | ±30% |
| soloviev_analytic | Soloviev analytic | Soloviev 1968 | ±10% |

## Reading the result

- **Green error %** — within tolerance. Solver matches the published value.
- **Red error %** — outside tolerance. Either the solver has a regression, or the published value uses physics our solver doesn't yet include (e.g. NSTX low-A often needs RWM physics we add at v2).

## How to add your own reference

Edit `wasm/src/plasma/validation_refs.rs::canonical_refs()`. Add a `CanonicalRef` entry with source, URL, expected values, and tolerance. Rebuild WASM. The new entry appears automatically in the UI table.

## Why this matters

A research-grade tool is one that other researchers can cite. Citation requires that the reader can verify the result. The Validation Suite is the proof, on-screen, in 60 seconds.
