Anonymise spreadsheet rows before an AI analyses them
Copy a block of cells straight out of Excel, Google Sheets or Numbers and paste it below — tab-separated text works exactly like anything else here. Or drop a .csv, .tsv or .json export onto the panel.
Every distinct value gets a stable placeholder, so the columns stay analysable: the model can still group by customer, count repeat rows and spot that two lines share an email address, without ever seeing which customer or which address.
Your text
Safe to paste
Preset: realistic stand-in values, so charts and summaries still read naturally.
Mapping — 0 values (only visible in this tab)
| Placeholder | Real value | Uses |
|---|
Check a few rows before you paste — this is the fastest way to spot a detector that grabbed the wrong thing. Nothing here is stored or sent anywhere.
What to look for — 30 detectors, custom terms, exceptions
People & organisations
Government & health IDs
Financial
Technical & secrets
Location
Step 3 — paste the AI’s answer here to put the real values back
The model replies using the placeholders. Paste its answer below and every
[NAME_1] becomes the real name again — using the mapping held in this tab, which
is the only copy that exists.
How it works
- Open this page — the detectors are already set for “Spreadsheets & CSV”.
- Paste your text, or drop a .txt, .md, .csv, .json or .log file onto the panel.
- Check the highlights: every match is coloured by type, and one click keeps a type as-is.
- Copy the safe version and paste it into the AI tool of your choice.
- Paste the model’s reply back into step 3 to restore the real values.
Why consistency beats deletion for tabular data
Delete the customer column and you lose the analysis. Replace it with a random string per row and you lose it too — the model can no longer see that rows 1 and 3 are the same person, which is exactly the duplicate-charge pattern you wanted it to find. Stable substitution keeps the join key while destroying the identity behind it.
That property holds across pastes as long as the tab stays open, so you can work through a large export in chunks and still get consistent labels in every chunk.
What to check before you paste a table
Tables re-identify people through combinations, not single cells. A postcode, a birth date and a gender have been enough to identify a large share of a population in published studies; the same effect turns up in ordinary business data whenever a category has very few members. If your table has one customer in a small town, no amount of name-swapping hides them.
Two practical habits help: drop the columns the analysis does not need before you paste, and be suspicious of free-text columns. Notes fields are where addresses, phone numbers and full names hide in a table that otherwise looks clean — the detectors will catch many of them, but you should read them.
Tips
- Paste the header row too — models handle a labelled table far better than a bare grid.
- Numeric IDs are only replaced when a label makes their meaning clear (“account number: …”); a bare column of integers is left alone deliberately.
- For repeated weekly analysis, keep one tab open all session so the same customer keeps the same stand-in.
Detectors are pattern-based and imperfect: read the highlighted output before you paste it anywhere, and confirm your own confidentiality obligations against the current rules for your profession, employer or jurisdiction. Compiled 2026-07-29.
Frequently asked questions
Does it handle CSV quoting and commas inside fields?
It treats the file as text rather than parsing the grid, which is what makes it robust: quoting, ragged rows and embedded newlines cannot break it, because the scrub never needs to know where the cell boundaries are.
How big a file can I drop in?
5 MB from disk. Above roughly 120,000 characters the highlight layer switches off to keep the page responsive; the scrub and the copy button keep working normally.
Can I get the real values back into the model’s answer?
Yes — paste the answer into step 3. With the fake-values style, “Jordan Blake ordered twice” becomes the real customer’s name again, using the mapping that only exists in this tab.