Description

A 9-digit number issued to U.S. citizens, permanent residents, and temporary (working) residents to track individuals for taxation and social security purposes.

Validation Rules

Rule Type: regex

“SSN must be formatted as 999-99-9999.”

Regular Expression
^\d{3}-\d{2}-\d{4}$

Rule Type: regex

“SSN contains invalid area (000, 666, 900-999), group (00), or serial (0000) number ranges.”

Regular Expression
^(?!000|666|9\d{2})\d{3}-(?!00)\d{2}-(?!0000)\d{4}$

Rule Type: custom

“SSN failed programmatic integrity check.”

Implementation Code
import re
def validate_ssn(val: str) -> bool:
    if not re.match(r"^\d{3}-\d{2}-\d{4}$", val):
        return False
    area, group, serial = val.split("-")
    return (
        area not in ("000", "666") and
        not area.startswith("9") and
        group != "00" and
        serial != "0000"
    )
val ~ '^\d{3}-\d{2}-\d{4}$' AND SUBSTRING(val, 1, 3) NOT IN ('000', '666') AND SUBSTRING(val, 1, 1) <> '9' AND SUBSTRING(val, 5, 2) <> '00' AND SUBSTRING(val, 8, 4) <> '0000'

Data Generation

Generator Type: regex_fuzzer

Template/Seed Pattern
^[0-8][0-9]{2}-[0-9]{2}-[0-9]{4}$

Agent Actionability

Guidelines for AI Agents

U.S. Social Security Numbers are highly sensitive Personally Identifiable Information (PII). Treat them with high security. Never log, store, or output them in plaintext. Mask them wherever possible to the last 4 digits (e.g., XXX-XX-6789).

System Prompt Injection Snippet
This variable contains a U.S. Social Security Number. Treat as confidential PII. Redact or mask the first 5 digits when displaying to users or logging.

Display & Forms

Test Cases & Examples

Valid
123-45-6789 A standard valid U.S. Social Security Number.
Test in Playground →
Invalid
000-12-3456 Invalid because area number 000 is not allocated.
Test in Playground →
Invalid
666-23-4567 Invalid because area number 666 is excluded.
Test in Playground →
Invalid
123-00-6789 Invalid because group number 00 is invalid.
Test in Playground →
Invalid
123-45-0000 Invalid because serial number 0000 is invalid.
Test in Playground →
Invalid
123456789 Invalid because it lacks the required hyphen formatting.
Test in Playground →

References & External Resources

Social Security Number (Wikipedia)

Visit Resource

Wikipedia article detailing the history, issuance, structure, and security concerns of United States Social Security Numbers.

View Raw Source Definition (YAML)
{
  "id": "https://w3id.org/dartfx/semanticdt/library/us/ssn",
  "name": "US Social Security Number",
  "description": "A 9-digit number issued to U.S. citizens, permanent residents, and temporary (working) residents to track individuals for taxation and social security purposes.",
  "version": "0.1.0",
  "concepts": [
    {
      "uri": "https://www.wikidata.org/wiki/Q5612679",
      "vocabulary": "Wikidata",
      "pref_label": "Social Security number (United States)",
      "match_type": "exactMatch"
    }
  ],
  "storage_types": [
    {
      "target_environment": "generic",
      "data_type": "string"
    },
    {
      "target_environment": "python",
      "data_type": "str"
    },
    {
      "target_environment": "sql",
      "data_type": "VARCHAR",
      "format_modifier": 11
    },
    {
      "target_environment": "xsd",
      "data_type": "string"
    }
  ],
  "validation_rules": [
    {
      "rule_type": "regex",
      "pattern": "^\\d{3}-\\d{2}-\\d{4}$",
      "message": "SSN must be formatted as 999-99-9999."
    },
    {
      "rule_type": "regex",
      "pattern": "^(?!000|666|9\\d{2})\\d{3}-(?!00)\\d{2}-(?!0000)\\d{4}$",
      "message": "SSN contains invalid area (000, 666, 900-999), group (00), or serial (0000) number ranges."
    },
    {
      "rule_type": "custom",
      "message": "SSN failed programmatic integrity check.",
      "code_snippets": [
        {
          "target_environment": "python",
          "code": "import re\ndef validate_ssn(val: str) -> bool:\n    if not re.match(r\"^\\d{3}-\\d{2}-\\d{4}$\", val):\n        return False\n    area, group, serial = val.split(\"-\")\n    return (\n        area not in (\"000\", \"666\") and\n        not area.startswith(\"9\") and\n        group != \"00\" and\n        serial != \"0000\"\n    )\n"
        },
        {
          "target_environment": "sql",
          "code": "val ~ '^\\d{3}-\\d{2}-\\d{4}$' AND SUBSTRING(val, 1, 3) NOT IN ('000', '666') AND SUBSTRING(val, 1, 1) <> '9' AND SUBSTRING(val, 5, 2) <> '00' AND SUBSTRING(val, 8, 4) <> '0000'"
        }
      ]
    }
  ],
  "generation_rules": [
    {
      "generator_type": "regex_fuzzer",
      "template": "^[0-8][0-9]{2}-[0-9]{2}-[0-9]{4}$"
    }
  ],
  "agent_instructions": {
    "guidelines": "U.S. Social Security Numbers are highly sensitive Personally Identifiable Information (PII). Treat them with high security. Never log, store, or output them in plaintext. Mask them wherever possible to the last 4 digits (e.g., XXX-XX-6789).",
    "system_prompt_snippet": "This variable contains a U.S. Social Security Number. Treat as confidential PII. Redact or mask the first 5 digits when displaying to users or logging."
  },
  "scope": {
    "geospatial_coverage": {
      "description": "United States of America",
      "codes": [
        "US",
        "ISO-3166-1:US",
        "https://www.wikidata.org/wiki/Q30"
      ]
    },
    "domain": "Demographic",
    "governing_institution": "Social Security Administration"
  },
  "display_format": {
    "input_mask": "999-99-9999",
    "display_template": "XXX-XX-{{ value[-4:] }}"
  },
  "examples": [
    {
      "value": "123-45-6789",
      "is_valid": true,
      "description": "A standard valid U.S. Social Security Number."
    },
    {
      "value": "000-12-3456",
      "is_valid": false,
      "description": "Invalid because area number 000 is not allocated."
    },
    {
      "value": "666-23-4567",
      "is_valid": false,
      "description": "Invalid because area number 666 is excluded."
    },
    {
      "value": "123-00-6789",
      "is_valid": false,
      "description": "Invalid because group number 00 is invalid."
    },
    {
      "value": "123-45-0000",
      "is_valid": false,
      "description": "Invalid because serial number 0000 is invalid."
    },
    {
      "value": 123456789,
      "is_valid": false,
      "description": "Invalid because it lacks the required hyphen formatting."
    }
  ],
  "resources": [
    {
      "url": "https://en.wikipedia.org/wiki/Social_Security_number",
      "title": "Social Security Number (Wikipedia)",
      "description": "Wikipedia article detailing the history, issuance, structure, and security concerns of United States Social Security Numbers."
    }
  ],
  "meta": {
    "relativePath": "us/ssn.yaml",
    "category": "us",
    "key": "ssn",
    "slug": "us-ssn",
    "filePath": "library/us/ssn.yaml"
  }
}
Source file: library/us/ssn.yaml View on GitHub