{# safe_numeric(col) Casts a string column to numeric, treating any non-numeric value as NULL. Handles all EES suppression codes (z, c, x, q, u, etc.) without needing an explicit list — any string that doesn't look like a number becomes NULL. #} {% macro safe_numeric(col) -%} CASE WHEN {{ col }} ~ '^-?[0-9]+(\.[0-9]+)?$' THEN {{ col }}::numeric ELSE NULL END {%- endmacro %}