Methodology

[PLACEHOLDER: confirm whether a specific paper is being cited, or if this should describe general research basis without a specific citation]

Detection approach

PII Checker does not attempt to detect PII by pattern-matching values directly against every file in a package. Instead it works in two stages:

Candidate screening. Every column of every supported file is evaluated against rule-based criteria — data type, cardinality, string length, whether values resemble coordinates, and similar structural signals — to decide whether a column is plausibly PII-bearing at all. This step is deterministic and does not use a language model; the large majority of columns in a typical dataset (numeric codes, indices, categorical responses) are screened out here and never reach classification.

Model classification. Columns that pass screening have their values tabulated — a compact summary of the distinct values present and their frequency, not the raw column — and this tabulation, together with the column's name and label, is given to a language model with instructions to classify it into one of four categories:

A column identified by name/label pattern as a likely crowdsourcing-platform participant ID (for example, a Prolific or MTurk identifier) is checked against that possibility specifically before falling through to the general classification above.

Model and prompting

Classification is performed by a large language model, given the column's name, label, row count, and value tabulation, and asked to return a category and a stated reason. The reasoning text returned by the model is included in the downloaded report so a reviewer can see why a column was flagged, rather than only the label.

Limitations

Candidate-count limit

A package with an unusually large number of candidate columns is rejected before classification begins, rather than partially processed. This is a deliberate design choice, not a technical ceiling on accuracy — see the guide for what this looks like in practice.