FastPII Docs
GDPR

GDPR Article 9

Handling rodné číslo findings that reveal biological sex, triggering GDPR Article 9 considerations.

GDPR Article 9

Rodné číslo is not just an identifier. Its structure reveals date of birth, and for standard post-1954 forms it also reveals biological sex through the encoded month offset (women have +50 added to the month digit). This makes it sensitive in GDPR contexts, including Article 9 considerations where sex-related information can be inferred from the value itself.

Article 9 flag

FastPII includes an article_9 flag in the metadata of rodné číslo findings:

from fastpii import FastPII, DEFAULT_PRIORITY
from fastpii.countries.cz import CzechPack

engine = FastPII(priority=DEFAULT_PRIORITY)
engine.register(CzechPack())

result = engine.detect("RČ: 8001011238")

for finding in result.findings:
    if finding.type == "rodne_cislo":
        print(f"Article 9 applies: {finding.metadata.get('article_9', False)}")
        print(f"Gender revealed: {finding.metadata.get('gender')}")

Output:

Article 9 applies: True
Gender revealed: male

Compliance workflow

Use the article_9 flag to route findings through a compliance review:

from fastpii import FastPII, DEFAULT_PRIORITY
from fastpii.countries.cz import CzechPack

engine = FastPII(priority=DEFAULT_PRIORITY)
engine.register(CzechPack())

result = engine.detect("Patient Jan Novák, RČ: 805101/1234")

article_9_findings = [
    f for f in result.findings
    if f.metadata.get("article_9", False)
]

if article_9_findings:
    # Route to compliance review instead of automatic processing
    print(f"Found {len(article_9_findings)} Article 9 sensitive findings")
    for f in article_9_findings:
        print(f"  {f.type}: {f.value}")

Metadata fields for rodné číslo

FieldTypeDescription
checksum_validboolWhether the Mod 11 checksum passed
birth_datestrDecoded birth date (YYYY-MM-DD format)
genderstrInferred gender ("male" or "female")
article_9boolWhether Article 9 applies (always True for valid rodné číslo)

PESEL and Article 9 considerations

Polish PESEL also encodes gender information (odd serial number = male, even = female):

from fastpii.countries.pl import PolishPack

engine = FastPII(priority=DEFAULT_PRIORITY)
engine.register(PolishPack())

result = engine.validate("44051401458", "pesel")
print(result.metadata)
# {'sex': 'male', 'birth_date': '1944-05-14'}

The PESEL detector includes sex and birth_date in validation metadata, which may also have GDPR implications depending on your processing context.

On this page