From 4937edd7f460395c11df5827037a5b0535e77a3e Mon Sep 17 00:00:00 2001 From: dc Date: Tue, 22 Sep 2026 17:53:55 +0000 Subject: [PATCH 01/14] feed: add a special missings post, and revert the blog edits The special missings material that was added to the v4.0 blog post belongs in its own post: that article is a release announcement for v4.0, not a teaching piece. This reverts the blog change and publishes the content under /feed/. The new post covers what SAS special missings are, how the SASjs Adapter carries them between the browser and SAS, and how Data Controller's validation rules treat them - NOTNULL passes, MINVAL fails, MAXVAL passes, and the regex rules apply as they would to any other value. The LinkedIn version of the copy, and the image prompt for the cover, are recorded in a comment at the foot of the file. --- content/feed/sas-special-missings/index.md | 94 ++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 content/feed/sas-special-missings/index.md diff --git a/content/feed/sas-special-missings/index.md b/content/feed/sas-special-missings/index.md new file mode 100644 index 0000000..ba16032 --- /dev/null +++ b/content/feed/sas-special-missings/index.md @@ -0,0 +1,94 @@ +--- +title: '28 Ways to Be Missing in SAS' +description: A SAS numeric missing is not a lone wolf - there are 28 of them, and Data Controller has handled all of them since v4. How they work, and what the validation rules do with them. +date: '2026-09-22 09:00:00' +author: 'Allan Bowe' +authorLink: https://www.linkedin.com/in/allanbowe/ +tags: + - Special Missings + - Data Quality +--- + +# 28 Ways to Be Missing in SAS + +A numeric missing value in SAS is not a lone wolf. The ordinary missing (`.`) is one of **28** distinct missing values available for a numeric variable - the other 27 are written with a single character, the letters `A` to `Z` or an underscore (`._`). + +They exist because "missing" is usually not the whole story. A survey question that was never reached, a reading that was illegible, a value the respondent refused to give - in a well run process those are different facts, and a lone `.` throws the difference away. Special missings record *why* the value is missing. + +## They are numbers, not text + +- Arithmetic on them yields missing - `.A + 1` is `.` +- `proc means`, `proc summary` and friends exclude them, exactly as they exclude `.` +- They sort below every non-missing number, in the order `._`, then `.`, then `.A` to `.Z` +- The `NMISS()` and `CMISS()` functions count them as missing +- Converting one to text drops the period - `cats(.A)` is the string `A` + +In a SAS dataset they are written with a leading period (`.A`, `.B` ... `._`). In Data Controller you type just the letter or the underscore - no period - and the letter is not case sensitive. Two letters, or a letter mixed with a number, are refused rather than guessed. + +## Carrying them between the browser and SAS + +The Data Controller frontend and the SAS backend exchange data as JSON, and JSON has no way to express a letter as a numeric value - `A` is a string. The conversion is handled in the open source [SASjs Adapter](https://github.com/sasjs/adapter#variable-types): + +- The adapter infers each column's SAS type from the values it is given. All numeric values means numeric; all strings means character; and a column holding a single character (`a`-`z`, `_` or `.`) alongside numeric values is numeric, with the lone characters written to SAS as special missings. +- `null` becomes `.` or an empty string, according to the type derived for that column. +- Two cases cannot be inferred from the values alone: a numeric column containing *only* special missings looks like a single character column, and a character column containing only nulls looks numeric. For those, the adapter accepts an explicit format for the column - and Data Controller sends one automatically, because it already knows each column's SAS format from the metadata returned by the backend. +- A value that is neither a number nor a single valid character is refused rather than guessed (for example `aaaa`, or `!` in a numeric column), and a literal `.` is refused in favour of `null` for a regular missing. + +There is nothing to configure. Special missings are available by default, for numeric cells. + +Once in SAS they are ordinary values, so they are what the approval DIFF screen compares, and the DIFF's formatted / unformatted switch shows either the formatted representation or the raw value - useful for confirming exactly which missing was set. + +## What the validation rules do with them + +A special missing is a value somebody deliberately set, so the rules treat it as a value - it is not blank, and it is not exempt: + +- `NOTNULL` - passes, because it is not null +- `MINVAL` - fails, because a special missing sorts below every number and so is below any minimum +- `MAXVAL` - passes, for the same reason it is below any maximum +- `CASE` (`UPCASE` / `LOWCASE`) - compared as text, so `A` passes `UPCASE` but `a` does not +- `HARDREGEX` / `SOFTREGEX` - checked against the pattern like any other value; unlike blanks and the plain `.`, special missings are **not** exempt, so a numeric column that carries them needs a pattern which allows for a single letter + +That is usually what you want - a value recorded as "not collected" should not quietly satisfy a completeness or range rule. It does mean a range rule on a column that uses special missings will warn on those rows, which is the signal to either accommodate them in the rule or not use special missings on that column. + +`video: [Managing Special Missing Values with Data Controller for SAS](https://www.youtube-nocookie.com/embed/ggrcNr23Jzw)` + +The recording shows the full cycle: typing special missings into numeric cells, the rejections, submitting the changes, approving them, and reviewing the DIFF - including a change from one special missing to another, and the formatted / unformatted switch on date and datetime columns. + + From 27ff40b739a9d7e1c12da6a11aa6d26e3663e21c Mon Sep 17 00:00:00 2001 From: dc Date: Tue, 22 Sep 2026 18:10:28 +0000 Subject: [PATCH 02/14] blog: correct the video label on the v4.0 special missings post The special missings video was labelled "Retain Formulas when Loading Excel to SAS", which is a different video. Restores the one-line correction that was in the earlier revision of this branch, kept separate from the feed post. --- content/blog/v4-0-formats-special-missings/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/v4-0-formats-special-missings/index.md b/content/blog/v4-0-formats-special-missings/index.md index 4caebfb..8bc2e27 100644 --- a/content/blog/v4-0-formats-special-missings/index.md +++ b/content/blog/v4-0-formats-special-missings/index.md @@ -61,7 +61,7 @@ Did you know that, in addition to a regular missing value in SAS (`.`), there ar These values can now be both viewed and edited in Data Controller following an update to the [SASjs Adapter](https://github.com/sasjs/adapter#variable-types). -`video: [Retain Formulas when Loading Excel to SAS](https://www.youtube-nocookie.com/embed/ggrcNr23Jzw)` +`video: [Managing Special Missing Values with Data Controller for SAS](https://www.youtube-nocookie.com/embed/ggrcNr23Jzw)` There is nothing extra to configure for special SAS numerics - they are simply available by default, for numeric cells. From a56c2f8d48367ee1c259fd0303f111162caaacdc Mon Sep 17 00:00:00 2001 From: dc Date: Tue, 22 Sep 2026 21:17:41 +0000 Subject: [PATCH 03/14] docs(feed): record the final cover image prompt on the special missings post Replaces the placeholder one-liner with the prompt actually intended for the cover: the pack of wolves on a snow plain at dusk with one animal standing apart, plus the negative constraints, the output spec (./cover.jpeg at 1200x627, previewImg in front matter) and a fallback single-subject variant. Two deliberate choices are recorded so they are not lost on a regenerate: - No text, letters or numbers anywhere in the image. The subject is letters standing in for numbers, so a stray glyph undercuts the cover. - No exact head count of 28. Generators cannot count, and a crowded pack reads worse than a dozen clear animals; the number belongs in the headline. Links to the full prompt and variants on paste.4gl.io. --- content/feed/sas-special-missings/index.md | 29 +++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/content/feed/sas-special-missings/index.md b/content/feed/sas-special-missings/index.md index ba16032..ff20070 100644 --- a/content/feed/sas-special-missings/index.md +++ b/content/feed/sas-special-missings/index.md @@ -90,5 +90,32 @@ The video shows the whole cycle - entering them, the rejections, submit, approve #sas #datacapture #mdm #dataquality -Image prompt: a pack of 28 wolves fanning out across a snowy plain at dusk, one wolf standing apart to the left, wide cinematic composition, cool blue-grey palette with a single warm amber accent on the lone wolf, soft depth of field, no text and no logos, 16:9, editorial cover art for a technical blog post about the 28 SAS missing values. Save the generated image as ./cover.jpeg and set previewImg: './cover.jpeg' in the front matter above. +Image prompt: Cinematic editorial cover illustration: a large pack of wolves, a +dozen or more, spread wide and moving together across a vast snow plain at dusk, +seen from a low wide angle. One wolf stands apart from the group on the left of +frame, turned back toward the pack. The pack is rendered in cool blue-grey and +silver; the lone wolf catches the only warm light in the scene, a single low +amber sun. Overcast dusk sky, faint falling snow, long soft shadows, generous +empty sky and snow to the upper third so the wide crop breathes. Painterly +digital illustration, muted desaturated palette, soft depth of field with the +distant wolves falling out of focus, no text, no letters, no numbers, no logos, +no watermark. + +Constraints: no text, no letters, no numbers, no digits, no symbols, no +captions, no logos, no watermark, no signature, no border, no frame, no collar, +no harness, no humans, no buildings, and do not ask for an exact head count of +28 - a crowded pack reads worse than a dozen clear animals, and the number +belongs in the headline, not the artwork. The no-text rule matters more than +usual here: the subject is letters standing in for numbers, so a stray glyph +anywhere undercuts the cover. + +Output: save as ./cover.jpeg at 1.91:1 (1200x627, matching the other feed +covers and doubling as the LinkedIn share card), and set +previewImg: './cover.jpeg' in the front matter above. Do not also embed the +image in the markdown body. Full prompt, variants and rationale: +https://paste.4gl.io/?513711f5bde3610e#9LZCA9xzQHDy3CycXmsWU5AoVNtjBZmPotUHHtHTAerF + +Fallback variant if the pack composition comes back muddled: a single wolf +standing alone on a snow plain at dusk, its shadow stretching toward a distant +pack reduced to small silhouettes on the horizon. --> From 6d554930be42d36f47ecd4337883409dfa77d0f7 Mon Sep 17 00:00:00 2001 From: dc Date: Tue, 22 Sep 2026 21:36:39 +0000 Subject: [PATCH 04/14] docs(feed): add the cover image to the special missings post Cover art for "28 Ways to Be Missing in SAS": a pack of wolves on a snow plain at dusk with one animal standing apart, carrying the post's opening line - a numeric missing is not a lone wolf, there are 28 of them. Source image was 4:3, so it is cropped to 1.91:1 (1200x627) to match the other feed covers and double as the LinkedIn share card. The crop was chosen to keep both the lone wolf on the left and the full pack on the right in frame, losing only sky above the clouds and foreground snow. Sets previewImg in the front matter; the template renders it, so it is not embedded in the body as well. Verified through gatsby build - the image pipeline emits 300/600/1200-wide variants. --- content/feed/sas-special-missings/cover.jpeg | Bin 0 -> 151671 bytes content/feed/sas-special-missings/index.md | 1 + 2 files changed, 1 insertion(+) create mode 100644 content/feed/sas-special-missings/cover.jpeg diff --git a/content/feed/sas-special-missings/cover.jpeg b/content/feed/sas-special-missings/cover.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4d64eeee7c8fe14d70702d46210f6d8d0eac98fd GIT binary patch literal 151671 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 GfB)H$)WW3z literal 0 HcmV?d00001 diff --git a/content/feed/sas-special-missings/index.md b/content/feed/sas-special-missings/index.md index ff20070..0ddcca3 100644 --- a/content/feed/sas-special-missings/index.md +++ b/content/feed/sas-special-missings/index.md @@ -7,6 +7,7 @@ authorLink: https://www.linkedin.com/in/allanbowe/ tags: - Special Missings - Data Quality +previewImg: './cover.jpeg' --- # 28 Ways to Be Missing in SAS From 3e3933933224510b64846eb3444151d56dd0653f Mon Sep 17 00:00:00 2001 From: dc Date: Wed, 23 Sep 2026 07:17:46 +0000 Subject: [PATCH 05/14] blog: scope the validation section to Data Controller rules and note the MISSING= gotcha - heading + intro now say these are Data Controller's MPE_VALIDATIONS rules, applied in the browser - new paragraph on options MISSING: a regular missing prints as . unless the option changes it (eg to blank); special missings are never affected - CASE split out of the rule list: it is a character rule, and a special missing always reaches the browser as an uppercase letter - HARDREGEX and SOFTREGEX separated (SOFTREGEX warns rather than blocks, and is ignored when the column also has a HARDREGEX) - LinkedIn copy kept in sync Behaviour confirmed against the deployed services on a real Viya estate. --- content/feed/sas-special-missings/index.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/content/feed/sas-special-missings/index.md b/content/feed/sas-special-missings/index.md index 0ddcca3..3fc03d2 100644 --- a/content/feed/sas-special-missings/index.md +++ b/content/feed/sas-special-missings/index.md @@ -24,6 +24,8 @@ They exist because "missing" is usually not the whole story. A survey question t - The `NMISS()` and `CMISS()` functions count them as missing - Converting one to text drops the period - `cats(.A)` is the string `A` +A display gotcha worth knowing: a regular missing prints as `.`, unless `options MISSING=` changes that character - set it to blank and a regular missing renders as an empty cell. The option affects only the regular missing; `._` and `.A`-`.Z` always print as their own letter. So a blank cell in a SAS listing is still unambiguously a regular missing, and a lone letter is still a special one. Data Controller itself is unaffected either way - it sends a regular missing to the browser as `null` and a special missing as its letter. + In a SAS dataset they are written with a leading period (`.A`, `.B` ... `._`). In Data Controller you type just the letter or the underscore - no period - and the letter is not case sensitive. Two letters, or a letter mixed with a number, are refused rather than guessed. ## Carrying them between the browser and SAS @@ -39,15 +41,17 @@ There is nothing to configure. Special missings are available by default, for nu Once in SAS they are ordinary values, so they are what the approval DIFF screen compares, and the DIFF's formatted / unformatted switch shows either the formatted representation or the raw value - useful for confirming exactly which missing was set. -## What the validation rules do with them +## What the Data Controller validation rules do with them -A special missing is a value somebody deliberately set, so the rules treat it as a value - it is not blank, and it is not exempt: +These are Data Controller's own rules, configured per column in the `MPE_VALIDATIONS` table and applied in the browser as you edit and submit. A special missing is a value somebody deliberately set, so the rules treat it as a value - it is not blank, and it is not exempt: - `NOTNULL` - passes, because it is not null - `MINVAL` - fails, because a special missing sorts below every number and so is below any minimum - `MAXVAL` - passes, for the same reason it is below any maximum -- `CASE` (`UPCASE` / `LOWCASE`) - compared as text, so `A` passes `UPCASE` but `a` does not -- `HARDREGEX` / `SOFTREGEX` - checked against the pattern like any other value; unlike blanks and the plain `.`, special missings are **not** exempt, so a numeric column that carries them needs a pattern which allows for a single letter +- `HARDREGEX` - checked against the pattern like any other value; unlike blanks and the plain `.`, special missings are **not** exempt, so a numeric column that carries them needs a pattern which allows for a single letter +- `SOFTREGEX` - the same check, but a failure is only a warning rather than a block, and it is ignored entirely if the column also has a `HARDREGEX` rule + +`CASE` (`UPCASE` / `LOWCASE`) is a character rule and does not come into it: SAS hands the browser a special missing as an uppercase letter, so there is no case to enforce, and a `CASE` rule on a numeric column would reject the column's numbers rather than the missing. That is usually what you want - a value recorded as "not collected" should not quietly satisfy a completeness or range rule. It does mean a range rule on a column that uses special missings will warn on those rows, which is the signal to either accommodate them in the rule or not use special missings on that column. @@ -70,6 +74,7 @@ They are real numeric values, not text: - PROC MEANS excludes them, like any other missing - they sort below every number: ._ then . then .A to .Z - NMISS() and CMISS() count them as missing +- a regular missing prints as . unless options MISSING changes it - and that option never touches a special missing The hard part is every tool that is not SAS. JSON has no way to say "this number is a letter" - A is just a string. So a value that is perfectly legal in a SAS dataset quietly breaks in the browser, in Excel, in an API. @@ -79,11 +84,13 @@ We solved that in the open source SASjs Adapter, and it has been in Data Control - where the type cannot be inferred - a numeric column holding ONLY special missings - Data Controller passes the column format explicitly - you type the letter on its own: a or A, no period, and case does not matter -And they behave like values in DC's validation rules, which is usually what you want: +And they behave like values in Data Controller's validation rules, which is usually what you want: - NOTNULL passes - it is not null - MINVAL fails - it sorts below every number; MAXVAL passes for the same reason - HARDREGEX checks it against the pattern, unlike blanks and plain . +- SOFTREGEX warns instead of blocking (and is ignored if the column also has a HARDREGEX) +- CASE is a character rule, so it has no place on a numeric column So a value recorded as "not collected" cannot quietly satisfy a completeness or range rule. From 2fe1bc2eea5dd2abb1254ef9a0f5eb1837488555 Mon Sep 17 00:00:00 2001 From: dc Date: Wed, 23 Sep 2026 07:29:04 +0000 Subject: [PATCH 06/14] blog: add formula, range-value and NOTNULL-constraint caveats to the special missings post Verified on a real SAS estate: - a physical NOT NULL (or primary key) constraint rejects a special missing, and getdata merges that constraint into a frontend NOTNULL rule - which passes a special missing, so the editor is more lenient than the constraint - a special missing as a MINVAL rule value fails every cell; as a MAXVAL rule value it fails every real number - a HARDFORMULA/SOFTFORMULA reading a special-missing cell returns #VALUE! - PRX and the JS engine agree on the value; SAS pads the numeric-to-character conversion, so an anchored pattern re-used in SAS needs strip() --- content/feed/sas-special-missings/index.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/content/feed/sas-special-missings/index.md b/content/feed/sas-special-missings/index.md index 3fc03d2..47e049b 100644 --- a/content/feed/sas-special-missings/index.md +++ b/content/feed/sas-special-missings/index.md @@ -50,6 +50,11 @@ These are Data Controller's own rules, configured per column in the `MPE_VALIDAT - `MAXVAL` - passes, for the same reason it is below any maximum - `HARDREGEX` - checked against the pattern like any other value; unlike blanks and the plain `.`, special missings are **not** exempt, so a numeric column that carries them needs a pattern which allows for a single letter - `SOFTREGEX` - the same check, but a failure is only a warning rather than a block, and it is ignored entirely if the column also has a `HARDREGEX` rule +- `HARDFORMULA` / `SOFTFORMULA` - a formula that reads a special-missing cell does not compute; the grid's spreadsheet engine returns `#VALUE!` for that row, where the plain `.` contributes 0 + +One mismatch to be aware of: the `NOTNULL` rule above is the editor's, and it is more forgiving than the SAS constraint it mirrors. A real NOT NULL - or primary key - constraint on the target table rejects a special missing, so on a column carrying one the editor will let the value through and the load will then fail on the constraint. + +Two other sharp edges. A range rule's *value* has to be a number: put a special missing in `MINVAL` and every cell in the column fails, put one in `MAXVAL` and every real number fails. And although the regex pattern is written in SAS PRX syntax, the check itself runs in the browser - SAS only parses the pattern (`PRXPARSE`) when the rule is saved - so the two engines can disagree on exotic patterns, and SAS pads a numeric-to-character conversion, so a pattern re-used in SAS needs `strip()` for an anchored match. `CASE` (`UPCASE` / `LOWCASE`) is a character rule and does not come into it: SAS hands the browser a special missing as an uppercase letter, so there is no case to enforce, and a `CASE` rule on a numeric column would reject the column's numbers rather than the missing. @@ -86,10 +91,11 @@ We solved that in the open source SASjs Adapter, and it has been in Data Control And they behave like values in Data Controller's validation rules, which is usually what you want: -- NOTNULL passes - it is not null +- NOTNULL passes - it is not null (though a real SAS NOT NULL constraint is stricter, and does reject a special missing) - MINVAL fails - it sorts below every number; MAXVAL passes for the same reason - HARDREGEX checks it against the pattern, unlike blanks and plain . - SOFTREGEX warns instead of blocking (and is ignored if the column also has a HARDREGEX) +- a HARDFORMULA/SOFTFORMULA that reads a special-missing cell returns #VALUE! rather than a number - CASE is a character rule, so it has no place on a numeric column So a value recorded as "not collected" cannot quietly satisfy a completeness or range rule. From 0ee0b4ea7c6d4776e1d359706e6f0d3544fb2394 Mon Sep 17 00:00:00 2001 From: dc Date: Wed, 23 Sep 2026 07:48:44 +0000 Subject: [PATCH 07/14] blog: NOTNULL now rejects special missings; range rules and formulas do not support them The validator fix lands in dc/dc (PR #323), so the post describes the fixed behaviour rather than the mismatch: a special missing fails NOTNULL, matching a physical SAS NOT NULL / primary key constraint. Also records what ROUND and SOFTSELECT/HARDSELECT do with one, and groups MINVAL/MAXVAL/HARDFORMULA/SOFTFORMULA under 'not supported'. --- content/feed/sas-special-missings/index.md | 36 +++++++++++++--------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/content/feed/sas-special-missings/index.md b/content/feed/sas-special-missings/index.md index 47e049b..dbc9ee4 100644 --- a/content/feed/sas-special-missings/index.md +++ b/content/feed/sas-special-missings/index.md @@ -43,22 +43,24 @@ Once in SAS they are ordinary values, so they are what the approval DIFF screen ## What the Data Controller validation rules do with them -These are Data Controller's own rules, configured per column in the `MPE_VALIDATIONS` table and applied in the browser as you edit and submit. A special missing is a value somebody deliberately set, so the rules treat it as a value - it is not blank, and it is not exempt: +These are Data Controller's own rules, configured per column in the `MPE_VALIDATIONS` table and applied in the browser as you edit and submit. -- `NOTNULL` - passes, because it is not null -- `MINVAL` - fails, because a special missing sorts below every number and so is below any minimum -- `MAXVAL` - passes, for the same reason it is below any maximum +- `NOTNULL` - fails. A special missing is NULL as far as a NOT NULL (or primary key) constraint is concerned, so the rule rejects it - and so does a physical SAS NOT NULL constraint on the target table - `HARDREGEX` - checked against the pattern like any other value; unlike blanks and the plain `.`, special missings are **not** exempt, so a numeric column that carries them needs a pattern which allows for a single letter - `SOFTREGEX` - the same check, but a failure is only a warning rather than a block, and it is ignored entirely if the column also has a `HARDREGEX` rule +- `SOFTSELECT` - never blocks, so a special missing passes; `HARDSELECT` is a strict membership test and rejects one +- `ROUND` - harmless. It only rounds values that are numbers, so a special missing is left exactly as it was typed + +Special missings are **not supported** in a column that carries a range rule or a formula: + +- `MINVAL` / `MAXVAL` - a special missing sorts below every number, so `MINVAL` rejects it and `MAXVAL` accepts it while rejecting the column's real numbers. The rule's own value has to be a number too: put a special missing in `MINVAL` and every cell in the column fails, put one in `MAXVAL` and every real number fails - `HARDFORMULA` / `SOFTFORMULA` - a formula that reads a special-missing cell does not compute; the grid's spreadsheet engine returns `#VALUE!` for that row, where the plain `.` contributes 0 -One mismatch to be aware of: the `NOTNULL` rule above is the editor's, and it is more forgiving than the SAS constraint it mirrors. A real NOT NULL - or primary key - constraint on the target table rejects a special missing, so on a column carrying one the editor will let the value through and the load will then fail on the constraint. - -Two other sharp edges. A range rule's *value* has to be a number: put a special missing in `MINVAL` and every cell in the column fails, put one in `MAXVAL` and every real number fails. And although the regex pattern is written in SAS PRX syntax, the check itself runs in the browser - SAS only parses the pattern (`PRXPARSE`) when the rule is saved - so the two engines can disagree on exotic patterns, and SAS pads a numeric-to-character conversion, so a pattern re-used in SAS needs `strip()` for an anchored match. - `CASE` (`UPCASE` / `LOWCASE`) is a character rule and does not come into it: SAS hands the browser a special missing as an uppercase letter, so there is no case to enforce, and a `CASE` rule on a numeric column would reject the column's numbers rather than the missing. -That is usually what you want - a value recorded as "not collected" should not quietly satisfy a completeness or range rule. It does mean a range rule on a column that uses special missings will warn on those rows, which is the signal to either accommodate them in the rule or not use special missings on that column. +One thing worth knowing about the regex rules: although the pattern is written in SAS PRX syntax, the check itself runs in the browser - SAS only parses the pattern (`PRXPARSE`) when the rule is saved - so the two engines can disagree on exotic patterns, and SAS pads a numeric-to-character conversion, so a pattern re-used in SAS needs `strip()` for an anchored match. + +In short, a special missing counts as a value for the pattern and dropdown rules, and as a missing value for everything that asks for a number. `video: [Managing Special Missing Values with Data Controller for SAS](https://www.youtube-nocookie.com/embed/ggrcNr23Jzw)` @@ -89,16 +91,20 @@ We solved that in the open source SASjs Adapter, and it has been in Data Control - where the type cannot be inferred - a numeric column holding ONLY special missings - Data Controller passes the column format explicitly - you type the letter on its own: a or A, no period, and case does not matter -And they behave like values in Data Controller's validation rules, which is usually what you want: +How they behave in Data Controller's validation rules: -- NOTNULL passes - it is not null (though a real SAS NOT NULL constraint is stricter, and does reject a special missing) -- MINVAL fails - it sorts below every number; MAXVAL passes for the same reason +- NOTNULL fails - a special missing is null to a NOT NULL (or primary key) constraint, and a real SAS NOT NULL constraint rejects it too - HARDREGEX checks it against the pattern, unlike blanks and plain . - SOFTREGEX warns instead of blocking (and is ignored if the column also has a HARDREGEX) -- a HARDFORMULA/SOFTFORMULA that reads a special-missing cell returns #VALUE! rather than a number -- CASE is a character rule, so it has no place on a numeric column +- SOFTSELECT lets it through; HARDSELECT rejects it +- ROUND leaves it alone, because it only rounds numbers -So a value recorded as "not collected" cannot quietly satisfy a completeness or range rule. +Special missings are not supported where a range rule or a formula is configured: + +- MINVAL rejects it; MAXVAL accepts it but rejects the column's real numbers +- a HARDFORMULA/SOFTFORMULA that reads a special-missing cell returns #VALUE! rather than a number + +In short: a value for the pattern and dropdown rules, a missing value for anything that wants a number. The video shows the whole cycle - entering them, the rejections, submit, approve, and the DIFF. From d542ac442f083e24d012d1c08e78cfac337e3838 Mon Sep 17 00:00:00 2001 From: dc Date: Wed, 23 Sep 2026 08:19:34 +0000 Subject: [PATCH 08/14] blog: NOTNULL simply works the same as SAS (no special missings) Also reflects the HARDSELECT fix: a strict dropdown now accepts a special missing when the list contains it. --- content/feed/sas-special-missings/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/feed/sas-special-missings/index.md b/content/feed/sas-special-missings/index.md index dbc9ee4..428f066 100644 --- a/content/feed/sas-special-missings/index.md +++ b/content/feed/sas-special-missings/index.md @@ -45,10 +45,10 @@ Once in SAS they are ordinary values, so they are what the approval DIFF screen These are Data Controller's own rules, configured per column in the `MPE_VALIDATIONS` table and applied in the browser as you edit and submit. -- `NOTNULL` - fails. A special missing is NULL as far as a NOT NULL (or primary key) constraint is concerned, so the rule rejects it - and so does a physical SAS NOT NULL constraint on the target table +- `NOTNULL` - works the same as SAS: cannot use special missings. A special missing is NULL to a NOT NULL (or primary key) constraint, so the rule rejects it, and so does a physical constraint on the target table - `HARDREGEX` - checked against the pattern like any other value; unlike blanks and the plain `.`, special missings are **not** exempt, so a numeric column that carries them needs a pattern which allows for a single letter - `SOFTREGEX` - the same check, but a failure is only a warning rather than a block, and it is ignored entirely if the column also has a `HARDREGEX` rule -- `SOFTSELECT` - never blocks, so a special missing passes; `HARDSELECT` is a strict membership test and rejects one +- `SOFTSELECT` - never blocks, so a special missing passes; `HARDSELECT` is a strict membership test, so it passes only when the dropdown list contains it - `ROUND` - harmless. It only rounds values that are numbers, so a special missing is left exactly as it was typed Special missings are **not supported** in a column that carries a range rule or a formula: @@ -93,10 +93,10 @@ We solved that in the open source SASjs Adapter, and it has been in Data Control How they behave in Data Controller's validation rules: -- NOTNULL fails - a special missing is null to a NOT NULL (or primary key) constraint, and a real SAS NOT NULL constraint rejects it too +- NOTNULL works the same as SAS - no special missings: one is null to a NOT NULL (or primary key) constraint - HARDREGEX checks it against the pattern, unlike blanks and plain . - SOFTREGEX warns instead of blocking (and is ignored if the column also has a HARDREGEX) -- SOFTSELECT lets it through; HARDSELECT rejects it +- SOFTSELECT lets it through; HARDSELECT only when the dropdown list contains it - ROUND leaves it alone, because it only rounds numbers Special missings are not supported where a range rule or a formula is configured: From bf9fca1b9ac08bf71e1a126e76af2d08eee42bef Mon Sep 17 00:00:00 2001 From: dc Date: Wed, 23 Sep 2026 08:37:07 +0000 Subject: [PATCH 09/14] blog: the dropdowns support special missings, simply --- content/feed/sas-special-missings/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/feed/sas-special-missings/index.md b/content/feed/sas-special-missings/index.md index 428f066..282576f 100644 --- a/content/feed/sas-special-missings/index.md +++ b/content/feed/sas-special-missings/index.md @@ -48,7 +48,7 @@ These are Data Controller's own rules, configured per column in the `MPE_VALIDAT - `NOTNULL` - works the same as SAS: cannot use special missings. A special missing is NULL to a NOT NULL (or primary key) constraint, so the rule rejects it, and so does a physical constraint on the target table - `HARDREGEX` - checked against the pattern like any other value; unlike blanks and the plain `.`, special missings are **not** exempt, so a numeric column that carries them needs a pattern which allows for a single letter - `SOFTREGEX` - the same check, but a failure is only a warning rather than a block, and it is ignored entirely if the column also has a `HARDREGEX` rule -- `SOFTSELECT` - never blocks, so a special missing passes; `HARDSELECT` is a strict membership test, so it passes only when the dropdown list contains it +- `SOFTSELECT` / `HARDSELECT` - both support special missings; a soft dropdown never blocks a value, and a hard one lists them alongside the ordinary values - `ROUND` - harmless. It only rounds values that are numbers, so a special missing is left exactly as it was typed Special missings are **not supported** in a column that carries a range rule or a formula: @@ -96,7 +96,7 @@ How they behave in Data Controller's validation rules: - NOTNULL works the same as SAS - no special missings: one is null to a NOT NULL (or primary key) constraint - HARDREGEX checks it against the pattern, unlike blanks and plain . - SOFTREGEX warns instead of blocking (and is ignored if the column also has a HARDREGEX) -- SOFTSELECT lets it through; HARDSELECT only when the dropdown list contains it +- SOFTSELECT and HARDSELECT both support them - ROUND leaves it alone, because it only rounds numbers Special missings are not supported where a range rule or a formula is configured: From 0bda92b0911f6a712d8a04f2e2176ad0235bbff2 Mon Sep 17 00:00:00 2001 From: dc Date: Wed, 23 Sep 2026 15:38:37 +0000 Subject: [PATCH 10/14] blog: note the one cell that cannot take a special missing --- content/feed/sas-special-missings/index.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/content/feed/sas-special-missings/index.md b/content/feed/sas-special-missings/index.md index 282576f..16a6450 100644 --- a/content/feed/sas-special-missings/index.md +++ b/content/feed/sas-special-missings/index.md @@ -28,6 +28,8 @@ A display gotcha worth knowing: a regular missing prints as `.`, unless `options In a SAS dataset they are written with a leading period (`.A`, `.B` ... `._`). In Data Controller you type just the letter or the underscore - no period - and the letter is not case sensitive. Two letters, or a letter mixed with a number, are refused rather than guessed. +There is one cell where the letter cannot be typed at all. A numeric column that carries a date, datetime or time format is edited through a date picker rather than the numeric editor, and a picker accepts only a date. + ## Carrying them between the browser and SAS The Data Controller frontend and the SAS backend exchange data as JSON, and JSON has no way to express a letter as a numeric value - `A` is a string. The conversion is handled in the open source [SASjs Adapter](https://github.com/sasjs/adapter#variable-types): @@ -37,7 +39,7 @@ The Data Controller frontend and the SAS backend exchange data as JSON, and JSON - Two cases cannot be inferred from the values alone: a numeric column containing *only* special missings looks like a single character column, and a character column containing only nulls looks numeric. For those, the adapter accepts an explicit format for the column - and Data Controller sends one automatically, because it already knows each column's SAS format from the metadata returned by the backend. - A value that is neither a number nor a single valid character is refused rather than guessed (for example `aaaa`, or `!` in a numeric column), and a literal `.` is refused in favour of `null` for a regular missing. -There is nothing to configure. Special missings are available by default, for numeric cells. +There is nothing to configure. Special missings are available by default, for numeric cells - a date, datetime or time formatted column aside, since those edit through a date picker. Once in SAS they are ordinary values, so they are what the approval DIFF screen compares, and the DIFF's formatted / unformatted switch shows either the formatted representation or the raw value - useful for confirming exactly which missing was set. @@ -90,6 +92,7 @@ We solved that in the open source SASjs Adapter, and it has been in Data Control - the adapter infers the column type from the values, so a column of numbers that also holds a lone letter is written to SAS as numeric, with the letter as a special missing - where the type cannot be inferred - a numeric column holding ONLY special missings - Data Controller passes the column format explicitly - you type the letter on its own: a or A, no period, and case does not matter +- one exception: a date, datetime or time formatted numeric column edits through a date picker, which takes only a date How they behave in Data Controller's validation rules: From bbd5793d8bc5a15c5df19d6b3b21f3742d2f957c Mon Sep 17 00:00:00 2001 From: dc Date: Wed, 23 Sep 2026 21:01:16 +0000 Subject: [PATCH 11/14] fix(blog): the period is optional, and a range rule ignores a missing Three corrections to the special missings post: - a special missing is typed with or without its leading period - `.a` and `a` are the same missing - MINVAL and MAXVAL both accept a special missing, and both still reject a real number that is out of range. A minimum constrains a number, and a missing is not a number; NOTNULL is the rule for a column that must be populated - the formula rules are the one case where a special missing genuinely does not work, so the range rules are no longer grouped with them --- content/feed/sas-special-missings/index.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/content/feed/sas-special-missings/index.md b/content/feed/sas-special-missings/index.md index 16a6450..b302f2c 100644 --- a/content/feed/sas-special-missings/index.md +++ b/content/feed/sas-special-missings/index.md @@ -26,7 +26,7 @@ They exist because "missing" is usually not the whole story. A survey question t A display gotcha worth knowing: a regular missing prints as `.`, unless `options MISSING=` changes that character - set it to blank and a regular missing renders as an empty cell. The option affects only the regular missing; `._` and `.A`-`.Z` always print as their own letter. So a blank cell in a SAS listing is still unambiguously a regular missing, and a lone letter is still a special one. Data Controller itself is unaffected either way - it sends a regular missing to the browser as `null` and a special missing as its letter. -In a SAS dataset they are written with a leading period (`.A`, `.B` ... `._`). In Data Controller you type just the letter or the underscore - no period - and the letter is not case sensitive. Two letters, or a letter mixed with a number, are refused rather than guessed. +In a SAS dataset they are written with a leading period (`.A`, `.B` ... `._`). In Data Controller you type the letter or the underscore, with or without that period - `.a` and `a` are the same missing - and the letter is not case sensitive. Two letters, or a letter mixed with a number, are refused rather than guessed. There is one cell where the letter cannot be typed at all. A numeric column that carries a date, datetime or time format is edited through a date picker rather than the numeric editor, and a picker accepts only a date. @@ -53,9 +53,13 @@ These are Data Controller's own rules, configured per column in the `MPE_VALIDAT - `SOFTSELECT` / `HARDSELECT` - both support special missings; a soft dropdown never blocks a value, and a hard one lists them alongside the ordinary values - `ROUND` - harmless. It only rounds values that are numbers, so a special missing is left exactly as it was typed -Special missings are **not supported** in a column that carries a range rule or a formula: +The range rules step aside for a missing value, because a missing is not a number for a minimum or a maximum to apply to: + +- `MINVAL` / `MAXVAL` - both accept a special missing, and both still reject a real number that is out of range. Use `NOTNULL` if the column has to be populated; a range rule alone leaves the column free to hold a missing +- The rule's own value has to be a number: put a special missing in `MINVAL` and every real number in the column fails, and the same in `MAXVAL` - a rule value that is not a number leaves nothing for a value to pass + +A formula is the one case where a special missing genuinely does not work: -- `MINVAL` / `MAXVAL` - a special missing sorts below every number, so `MINVAL` rejects it and `MAXVAL` accepts it while rejecting the column's real numbers. The rule's own value has to be a number too: put a special missing in `MINVAL` and every cell in the column fails, put one in `MAXVAL` and every real number fails - `HARDFORMULA` / `SOFTFORMULA` - a formula that reads a special-missing cell does not compute; the grid's spreadsheet engine returns `#VALUE!` for that row, where the plain `.` contributes 0 `CASE` (`UPCASE` / `LOWCASE`) is a character rule and does not come into it: SAS hands the browser a special missing as an uppercase letter, so there is no case to enforce, and a `CASE` rule on a numeric column would reject the column's numbers rather than the missing. @@ -91,7 +95,7 @@ We solved that in the open source SASjs Adapter, and it has been in Data Control - the adapter infers the column type from the values, so a column of numbers that also holds a lone letter is written to SAS as numeric, with the letter as a special missing - where the type cannot be inferred - a numeric column holding ONLY special missings - Data Controller passes the column format explicitly -- you type the letter on its own: a or A, no period, and case does not matter +- you type the letter or the underscore, with or without the period: a, .a, _, ._, and case does not matter - one exception: a date, datetime or time formatted numeric column edits through a date picker, which takes only a date How they behave in Data Controller's validation rules: @@ -102,9 +106,9 @@ How they behave in Data Controller's validation rules: - SOFTSELECT and HARDSELECT both support them - ROUND leaves it alone, because it only rounds numbers -Special missings are not supported where a range rule or a formula is configured: +The range rules step aside for one - a missing is not a number for a minimum or a maximum to apply to: -- MINVAL rejects it; MAXVAL accepts it but rejects the column's real numbers +- MINVAL and MAXVAL both accept it, and both still reject a real number that is out of range; use NOTNULL if the column must be populated - a HARDFORMULA/SOFTFORMULA that reads a special-missing cell returns #VALUE! rather than a number In short: a value for the pattern and dropdown rules, a missing value for anything that wants a number. From 0b186586863f534d51394a8eb8f4b4e648740c58 Mon Sep 17 00:00:00 2001 From: dc Date: Wed, 23 Sep 2026 21:27:58 +0000 Subject: [PATCH 12/14] fix(blog): the range rules compare in SAS's own order A range rule keys both sides into the order SAS uses for a numeric variable, so a range written in special missings means what SAS would mean by it: MINVAL .A with MAXVAL .C accepts .B and rejects .D, a blank fails a floor of .A, and a number sits above every missing - passing a floor of .A and failing a ceiling of .C. Against a numeric bound the same order gives the obvious answer: a missing fails MINVAL 1 and passes MAXVAL 100. Replaces the "the range rules step aside for a missing value" wording. --- content/feed/sas-special-missings/index.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/content/feed/sas-special-missings/index.md b/content/feed/sas-special-missings/index.md index b302f2c..72aaf56 100644 --- a/content/feed/sas-special-missings/index.md +++ b/content/feed/sas-special-missings/index.md @@ -53,10 +53,12 @@ These are Data Controller's own rules, configured per column in the `MPE_VALIDAT - `SOFTSELECT` / `HARDSELECT` - both support special missings; a soft dropdown never blocks a value, and a hard one lists them alongside the ordinary values - `ROUND` - harmless. It only rounds values that are numbers, so a special missing is left exactly as it was typed -The range rules step aside for a missing value, because a missing is not a number for a minimum or a maximum to apply to: +The range rules compare in the order SAS itself uses, which is what makes them interesting here. SAS puts every missing below every non-missing value, and orders the missing values among themselves: `._` is the lowest, then the regular missing, then `.A` through `.Z`. So a range can be written in special missings and mean exactly what SAS would mean by it: -- `MINVAL` / `MAXVAL` - both accept a special missing, and both still reject a real number that is out of range. Use `NOTNULL` if the column has to be populated; a range rule alone leaves the column free to hold a missing -- The rule's own value has to be a number: put a special missing in `MINVAL` and every real number in the column fails, and the same in `MAXVAL` - a rule value that is not a number leaves nothing for a value to pass +- `MINVAL .A` with `MAXVAL .C` accepts `.B` and rejects `.D`, and a blank - the regular missing - fails that floor because it sorts below `.A` +- a number sits above every missing, so it passes a floor of `.A` and fails a ceiling of `.C` +- against a numeric bound the ordering does the obvious thing: a missing sorts below every number, so it fails a `MINVAL` of 1 and passes a `MAXVAL` of 100. Use `NOTNULL` if the column has to be populated +- a rule value that is neither a number nor a special missing - a typo such as `..` or `AB` - satisfies nothing, so the column fails until the rule is corrected A formula is the one case where a special missing genuinely does not work: @@ -106,12 +108,11 @@ How they behave in Data Controller's validation rules: - SOFTSELECT and HARDSELECT both support them - ROUND leaves it alone, because it only rounds numbers -The range rules step aside for one - a missing is not a number for a minimum or a maximum to apply to: +The range rules compare in SAS's own order, so a range can be written in special missings: MINVAL .A with MAXVAL .C accepts .B and rejects .D. A missing sorts below every number, so it fails a numeric MINVAL and passes a numeric MAXVAL; a number sits above every missing. -- MINVAL and MAXVAL both accept it, and both still reject a real number that is out of range; use NOTNULL if the column must be populated - a HARDFORMULA/SOFTFORMULA that reads a special-missing cell returns #VALUE! rather than a number -In short: a value for the pattern and dropdown rules, a missing value for anything that wants a number. +In short: a value for the pattern and dropdown rules, and a value with its own place in the order for the range rules. The video shows the whole cycle - entering them, the rejections, submit, approve, and the DIFF. From 66d5fecb0ea98644e535f30ce2873043ff3d63a2 Mon Sep 17 00:00:00 2001 From: dc Date: Wed, 23 Sep 2026 22:00:16 +0000 Subject: [PATCH 13/14] feed: embed the special missings recording, and correct the copy Embeds the "Special Missings in Data Controller" recording from vid.4gl.io as a responsive PeerTube iframe, in place of the older YouTube embed, and drops the stray `video: [...]` line that was sitting in the body as literal text. Copy corrections, each verified against the running app rather than the source: - the range rules compare in SAS's order, so MINVAL .A with MAXVAL .C takes .B and refuses .D, a missing fails a numeric MINVAL and passes a numeric MAXVAL, and a number sits above every missing. The old wording said the range rules step aside for a missing value - a lone "." is another way of typing the regular missing; the previous claim that a literal "." is refused in favour of null is not what happens - a strict dropdown does accept a special missing when its list holds one (the list shows it as a bare letter), and still rejects a value that is not listed - NOTNULL rejects a special missing, and a primary key column is NOT NULL whether or not a rule is configured for it The LinkedIn version of the post is kept in sync, and carries the new video URL. --- content/feed/sas-special-missings/index.md | 37 +++++++++++++--------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/content/feed/sas-special-missings/index.md b/content/feed/sas-special-missings/index.md index 72aaf56..846c980 100644 --- a/content/feed/sas-special-missings/index.md +++ b/content/feed/sas-special-missings/index.md @@ -37,7 +37,8 @@ The Data Controller frontend and the SAS backend exchange data as JSON, and JSON - The adapter infers each column's SAS type from the values it is given. All numeric values means numeric; all strings means character; and a column holding a single character (`a`-`z`, `_` or `.`) alongside numeric values is numeric, with the lone characters written to SAS as special missings. - `null` becomes `.` or an empty string, according to the type derived for that column. - Two cases cannot be inferred from the values alone: a numeric column containing *only* special missings looks like a single character column, and a character column containing only nulls looks numeric. For those, the adapter accepts an explicit format for the column - and Data Controller sends one automatically, because it already knows each column's SAS format from the metadata returned by the backend. -- A value that is neither a number nor a single valid character is refused rather than guessed (for example `aaaa`, or `!` in a numeric column), and a literal `.` is refused in favour of `null` for a regular missing. +- A value that is neither a number nor a single valid character is refused rather than guessed - `aaaa`, or `!` in a numeric column +- A lone `.` is accepted as another way of typing the regular missing There is nothing to configure. Special missings are available by default, for numeric cells - a date, datetime or time formatted column aside, since those edit through a date picker. @@ -47,10 +48,10 @@ Once in SAS they are ordinary values, so they are what the approval DIFF screen These are Data Controller's own rules, configured per column in the `MPE_VALIDATIONS` table and applied in the browser as you edit and submit. -- `NOTNULL` - works the same as SAS: cannot use special missings. A special missing is NULL to a NOT NULL (or primary key) constraint, so the rule rejects it, and so does a physical constraint on the target table +- `NOTNULL` - rejects one. A special missing is a missing value, so it fails the rule, and a physical NOT NULL constraint on the target table rejects it as well. A primary key column is treated as NOT NULL whether or not a rule is configured for it - `HARDREGEX` - checked against the pattern like any other value; unlike blanks and the plain `.`, special missings are **not** exempt, so a numeric column that carries them needs a pattern which allows for a single letter - `SOFTREGEX` - the same check, but a failure is only a warning rather than a block, and it is ignored entirely if the column also has a `HARDREGEX` rule -- `SOFTSELECT` / `HARDSELECT` - both support special missings; a soft dropdown never blocks a value, and a hard one lists them alongside the ordinary values +- `SOFTSELECT` / `HARDSELECT` - both support them. The dropdown lists a special missing as a bare letter alongside the ordinary values, and a hard rule then accepts it like any other listed value - it still rejects a value that is not in the list - `ROUND` - harmless. It only rounds values that are numbers, so a special missing is left exactly as it was typed The range rules compare in the order SAS itself uses, which is what makes them interesting here. SAS puts every missing below every non-missing value, and orders the missing values among themselves: `._` is the lowest, then the regular missing, then `.A` through `.Z`. So a range can be written in special missings and mean exactly what SAS would mean by it: @@ -68,16 +69,20 @@ A formula is the one case where a special missing genuinely does not work: One thing worth knowing about the regex rules: although the pattern is written in SAS PRX syntax, the check itself runs in the browser - SAS only parses the pattern (`PRXPARSE`) when the rule is saved - so the two engines can disagree on exotic patterns, and SAS pads a numeric-to-character conversion, so a pattern re-used in SAS needs `strip()` for an anchored match. -In short, a special missing counts as a value for the pattern and dropdown rules, and as a missing value for everything that asks for a number. +In short, a special missing counts as a value for the pattern and dropdown rules, and as a value with its own place in the order for the range rules: it sits below every number, so a numeric minimum rejects it and a numeric maximum accepts it, while a range written in special missings is decided among the missing values themselves. -`video: [Managing Special Missing Values with Data Controller for SAS](https://www.youtube-nocookie.com/embed/ggrcNr23Jzw)` +## See it in action -The recording shows the full cycle: typing special missings into numeric cells, the rejections, submitting the changes, approving them, and reviewing the DIFF - including a change from one special missing to another, and the formatted / unformatted switch on date and datetime columns. +The recording below runs the whole cycle on one table: entering special missings, the rules that reject them, submitting the changes, approving them, and reviewing the DIFF - including a change from one special missing to another, and the formatted / unformatted switch on a date column. + +It also shows the range rules doing what the section above describes. A special missing is refused by a numeric `MINVAL` and accepted by a numeric `MAXVAL`, and on a column carrying `MINVAL .A` with `MAXVAL .C`, `.B` is taken while `.D` is refused. + +