Qualifiers
Qualifiers is the reference data type that defines your lab-result qualifier codes — J, U, UJ, R, N, NJ, B, and the like — and records what each one means. It is an application-wide, Data Steward-managed catalog, shared by every Project.
A qualifier definition does two jobs. It records the code's disposition — whether a result carrying the code is estimated, rejected, tentatively identified, or biased — so Erde can derive a result's standing from its validated qualifier instead of asking a reviewer to re-enter it by hand. And it records the code's propagation ranks, which decide which qualifier wins when the analysis tools combine several results into one (a summation or a duplicate aggregate).
You maintain Qualifiers like every other reference-data type — open Reference Data from the main navigation, expand the Laboratory group, and select Qualifiers (at /reference-data/qualifiers). For the add, edit, retire, and Load Defaults mechanics common to all types, see Manage reference data.
Fields
A Qualifier carries the standard reference-data fields — Name, Code, Description, Active, and Pinned — plus the disposition flags, propagation ranks, and neutral-qualifier link below. Unlike most reference-data types, Code is required, and it accepts characters a normal code does not (so J+, J-, and UJ- are valid qualifier codes).
| Field | Type | Required | Description |
|---|---|---|---|
| Code | text | Yes | The qualifier code, max 50 characters. Unique within the catalog. Accepts symbols such as + and - so codes like J+ are valid. |
| Name | text | Yes | The descriptive label, max 200 characters. Unique within the catalog. |
| Description | text | No | Optional notes, max 500 characters. |
| Estimated | yes/no | — | The result value is an estimate. Off by default. |
| Rejected | yes/no | — | The result was rejected in validation. Off by default. A result whose validated qualifier maps to a rejected code is excluded from analysis and screening by default. |
| Tentatively Identified | yes/no | — | A tentatively identified compound (TIC). Off by default. |
| Biased High | yes/no | — | The result reads high. Off by default. Cannot be set together with Biased Low. |
| Biased Low | yes/no | — | The result reads low. Off by default. Cannot be set together with Biased High. |
| Detected Rank | integer | No | Propagation rank used when at least one combined result is detected. Lower wins. Positive when set. |
| All Non-Detect Rank | integer | No | Propagation rank used when every combined result is a non-detect. Lower wins. Positive when set. |
| Neutral Qualifier | reference | No | The un-biased equivalent of a biased code (for example J+ points at J). Used to neutralize a combined group that has conflicting bias. |
| Active | yes/no | — | Controls whether the code is selectable in pickers. On by default. |
| Pinned | yes/no | — | Sorts the code to the top of the list. Off by default. |
A code can carry several disposition flags at once — NJ, for instance, is both estimated and tentatively identified.
Disposition: what a code conveys
The disposition flags are what let Erde decide a result's standing from its validated qualifier alone. When a reviewer records a validated qualifier on a result, Erde looks the code up in this catalog and derives whether the result is rejected or estimated — the reviewer does not set those by hand.
The most consequential flag is Rejected. A result whose validated qualifier maps to a rejected code is treated as rejected throughout analysis: it is excluded from the Data Explorer, Crosstab, and Map by default (Data Explorer can opt rejected results back in).
Disposition is derived from the validated qualifier only. A raw lab qualifier — the code the laboratory reported — does not change a result's disposition on its own. A reviewer's validated qualifier does.
The same holds for display: the analysis and screening surfaces — Crosstab, Map, Time Series, and screening — show the validated qualifier only. The raw lab qualifier appears only in the Data Explorer's audit columns, kept there for reference.
Propagation ranks
When an analysis run combines several results into one value — a summation rule such as Total PCBs, or a duplicate aggregate — exactly one qualifier must carry forward onto the combined value. The propagation ranks decide which.
- Lower rank wins. A rank of
1beats a rank of4. - Detected Rank applies when at least one of the combined results is detected; All Non-Detect Rank applies when every combined result is a non-detect. A code can set either, both, or neither.
- A code with no applicable rank does not compete for the win in that case.
Rejected typically ranks 1, so a rejected result dominates a combined group.
Propagation ranks are global — set once on each Qualifier and used by every Project. A Data Management Plan controls how results are aggregated and reported, not what a qualifier means or how it ranks.
Neutral qualifier
A biased code reports a known direction of error — J+ reads high, J- reads low. When the combining results carry a bias in one direction only, that bias is kept: a group of J readings with a single J+ carries J+ forward, because at least one result is known to read high and none reads low. Only when a group mixes opposite directions does the bias cancel — and the Neutral Qualifier is the bias-stripped code Erde substitutes then. Both J+ and J- name J as their neutral, so a conflicting-bias group carries plain J forward. A biased code with no neutral set falls back to the rank winner's code.
Aliases
A qualifier can carry aliases — alternate spellings of the same code that a laboratory or a historical dataset might use. JN for NJ, N J with a space, J (H) — define each as an alias of its canonical code and the result still matches, without anyone editing the historical data.
Aliases are matched the same way codes are: whole-string and case-insensitive, never decomposed or stripped. An alias resolves to its canonical qualifier everywhere a code does — disposition derivation, the rejected-result filter, and qualifier propagation in summation and duplicate aggregation.
To manage a qualifier's aliases, choose Aliases in its row on the Qualifiers list, then add, edit, or remove entries. Two rules keep the mapping unambiguous:
- An alias must be globally unique — it cannot already belong to another qualifier.
- An alias cannot equal any qualifier code — if the text is already a code, it needs no alias.
A blank or duplicate alias is refused.
Coverage scan
When data arrives from labs that use codes you have not defined, their validated qualifiers match nothing and carry no disposition. Scan Coverage — on the Qualifiers toolbar — finds them: it lists every validated qualifier on your results that matches no defined code or alias, most frequent first. Close the gaps from the top down — add the high-volume ones as codes, or alias the variants to a code you already have — instead of fielding a per-result warning.
The standard set
Erde ships a curated EPA/NFG starter set you load on demand with Load Defaults (it never installs automatically). You own this reference data once it is loaded — edit, extend, replace, or ignore any of it. Loading is additive: it adds only the codes not already present, matched by Name or Code.
| Code | Name | Disposition | Detected rank | All-non-detect rank | Neutral |
|---|---|---|---|---|---|
R | Rejected | Rejected | 1 | 1 | — |
J | Estimated | Estimated | 4 | — | — |
J+ | Estimated (biased high) | Estimated, biased high | 4 | — | J |
J- | Estimated (biased low) | Estimated, biased low | 4 | — | J |
U | Non-detect | — | — | 3 | — |
UJ | Non-detect, estimated | Estimated | — | 2 | — |
UJ+ | Non-detect, estimated (biased high) | Estimated, biased high | — | 2 | UJ |
UJ- | Non-detect, estimated (biased low) | Estimated, biased low | — | 2 | UJ |
N | Tentatively identified | Tentatively identified | 5 | — | — |
NJ | Tentatively identified, estimated | Estimated, tentatively identified | 2 | — | — |
NJ+ | Tentatively identified, estimated (biased high) | Estimated, tentatively identified, biased high | 2 | — | NJ |
NJ- | Tentatively identified, estimated (biased low) | Estimated, tentatively identified, biased low | 2 | — | NJ |
B | Blank contamination | — | 6 | — | — |
BJ | Blank contamination, estimated | Estimated | 3 | — | — |
BJ+ | Blank contamination, estimated (biased high) | Estimated, biased high | 3 | — | BJ |
BJ- | Blank contamination, estimated (biased low) | Estimated, biased low | 3 | — | BJ |
Validation rules
| Rule | Effect |
|---|---|
| Code and Name are required and unique | A blank or duplicate is refused. |
| A code cannot be biased both high and low | Setting both raises the error "A qualifier cannot be biased both high and low." |
| A rank, when set, must be positive | A zero or negative rank is refused. |
| Bias without Estimated | Setting a bias flag without Estimated is allowed but warns: "Bias is set but the qualifier is not estimated; bias usually applies to estimated results." |
| A biased code with no Neutral Qualifier | Allowed; warns that a mixed-bias group will not be neutralized. |
Permissions
| Action | Role or policy |
|---|---|
| View qualifiers | Any signed-in user (read-only) |
| Add / edit / delete / seed | Data Steward — the Administrator or Data Manager role |
A qualifier that another code names as its Neutral Qualifier cannot be deleted until that link is cleared. Otherwise a code can be deleted outright — results keep the qualifier text they already carry, but it stops resolving to a disposition (the coverage scan surfaces such gaps). To retire a code instead of deleting it, clear Active. See Manage reference data.
Related
- Validate lab results — where a reviewer records the validated qualifier that drives disposition.
- Manage reference data — the add, edit, retire, and seed mechanics shared by every reference-data type.
- Reference data — why Erde centralizes lookups.
- Data management plans — the summation and duplicate-aggregation rules that read the propagation ranks.
- Lab data reference — the lab report, analysis, and result field tables.