Suppression is a status

Surveillance sources hide small or unreliable numbers for good reasons — protecting privacy in a small population, avoiding an estimate too noisy to publish. But “hidden” is not the same fact as “missing,” and a lot of downstream harm comes from collapsing the two into one blank cell.

value_status is a closed, documented enum on every row of measure.observation:

value_status Meaning
reported value published
suppressed_small_count below the source’s count threshold
suppressed_complementary suppressed to prevent back-calculation
suppressed_reliability suppressed because the estimate is unreliable
not_available source publishes no value for this unit
not_applicable combination is meaningless (e.g. cervix × male)

The invariant: value is NULL whenever value_status is not 'reported', and never otherwise. No reader has to parse a sentinel ("*", "3 or fewer", -1) to find out — and no reader can accidentally average a suppressed cell in as a zero, because there’s no number there to average.

Verified against the release

Rows where value_status != 'reported' but value is not NULL: 0

Real counts by source, as of this render:

source value_status n
0 ACS not_available 492
1 ACS reported 1907328
2 ACS suppressed_small_count 20484
3 AHRF not_available 366
4 AHRF reported 64334
5 AIRTOXSCREEN reported 587592
6 EJSCREEN not_available 12036
7 EJSCREEN reported 1098112
8 EPA_RADON reported 3139
9 FARA not_available 75626
10 FARA reported 2219514
11 HPSA reported 16468
12 NIS_TEEN reported 6888
13 NIS_TEEN suppressed_reliability 304
14 PLACES reported 3517402
15 PLACES suppressed_small_count 66
16 RUCA not_applicable 1384
17 RUCA reported 317676
18 RUCC not_available 2
19 RUCC reported 3233
20 SCP not_available 202230
21 SCP reported 1985478
22 SCP suppressed_small_count 14716116
23 SDWIS reported 16420
24 SVI not_available 12238
25 SVI reported 2772574

Two sources carry almost all of the suppression here. State Cancer Profiles’ cancer counts are frequently small at the county level — its suppressed_small_count share dwarfs every other source’s, exactly as expected for county-level cancer incidence and mortality. PLACES, model-based and published only above a minimum population threshold, has a much smaller suppressed slice. not_available on AHRF, FARA, RUCC and SVI is a blank source cell, not a suppression rule — the source simply didn’t publish a value for that unit (see each source’s page in Sources for its own missing-value convention). not_applicable on RUCA marks a zero-population, no-identifier tract — a real “this combination doesn’t apply” case, not a hidden number.

What this means for a query

Never filter on value IS NOT NULL as a stand-in for “give me the real data” without also checking what’s behind the NULLs you dropped — a county missing from your result because it’s suppressed_small_count is a different finding than one missing because the source never covered it at all (not_available). The suppressed-cells recipe runs this page’s own query live, in your browser.