Replication packages shared alongside published research sometimes contain personally identifiable information that was never intended for publication.

PII Checker screens each data file column by column and reports what it finds, with a stated reason for every classification.

Process

Four steps, in order

1

Upload a package

A zip archive or an individual data file.

2

Extraction and screening

Files are unpacked, duplicates identified, and every column screened against rule-based criteria to decide which are worth checking. A package over the configured candidate-column limit is rejected here, before any model call.

3

Classification

Each candidate column's value distribution is tabulated and classified by a language model, with a stated reason recorded for every classification.

4

Report

A downloadable spreadsheet, one row per checked column.

Supported file formats

Eight formats, read directly

Stata — .dta SPSS — .sav SAS — .sas7bdat, .xpt Matlab — .mat R — .rds, .rdata CSV / TSV Excel — .xls, .xlsx OpenDocument — .ods
Sample classification output

One row per checked column

Illustrative example — not a result from a real upload. Real reports are generated per package; see the guide for a full worked example.

respondent_email direct_pii Column contains email addresses, which directly identify individuals.
household_id internal_id Unique identifier linking to external records; not identifying on its own.
village_name possible_indirect Fine-grained geography that could contribute to identification in combination with other variables.
consent_given not_pii Boolean flag; not identifying.
Data retention & privacy

How long data is retained

Uploads & extracted files Deleted the moment a job reaches any final state — completed, failed, or cancelled. No delay.
Reports Kept up to 168 hours (one week) and deletable at any time; a cancelled job's partial report is deleted immediately, unconditionally.
Model training No uploaded data, tabulation, or reasoning text is used to train any model.

Full data, privacy & terms policy →

Research team

Project team

David Valenta
David Valenta
Principal Investigator and Developer
University of Ottawa and Institute for Replication
Abel Brodeur
Abel Brodeur
Principal Investigator
University of Ottawa and Institute for Replication

Project team details →

Methodology

Screening, then classification

Columns are first screened by rule-based criteria — data type, cardinality, string length — with no model involved; columns that pass are then classified by a language model into one of four categories, each with a stated reason.

[Working paper relating to this tool is coming very soon, stay tuned!]

Full methodology →

Frequently asked questions

Questions

Will my data be processed by third-party AI models?

To evalute the presence of PII in the data we use open source LLM model (Gemma 4) which runs on our servers hosted at Google Cloud. Your data are not shared with anyone else. No LLM API is used.

How do you store my data?

The uploaded package and any extracted files are deleted immediately once your job finishes, fails, or is cancelled. Column values and model reasoning are stored as part of the evaluation output for one week, or until you delete the file. See the data, privacy & terms policy for the complete breakdown.

What kind of data can this tool evaluate?

This tool only searches for PII in tabular data. Documents such as .pdf or .doc or multimedia files are not evaluated.

What file formats are supported?

Excel (.xls, .xlsx), plain text data (.csv, .tsv, .txt), Stata (.dta), R (.rds, .rdata), SPSS (.sav), SAS (.sas7bdat, .xpt), Matlab (.mat), and OpenDocument Spreadsheet (.ods) are supported.

Who funds this tool?

This tool is supported by small amount of funding from the University of Ottawa, however we are actively seeking funding to support this project.

Contact

Contact

Or write directly to [CONTACT EMAIL]. Registration is open — there is no request-access process for using PII Checker itself.