METHOD / NO GUESSWORK
Know what
changed.
What Data Detective does
Data Detective profiles comma-separated files and previews a reproducible cleaning recipe. It is a deterministic data-quality tool, not an AI model. The included order data is fictional and uses example.test email addresses.
Reading your CSV
UTF-8 CSV files up to 2 MB, 10,000 data rows and 50 columns are supported. The parser handles quoted commas, escaped double quotes, multiline fields and CRLF line endings. Headers must be present and unique. Unequal field counts, unmatched quotes and empty files are rejected with an explanation. Use comma-separated UTF-8 export for files from spreadsheet software.
Definitions
- Missing: empty or whitespace-only cells. Text such as N/A, null or not recorded is not silently treated as missing.
- Duplicates: exact duplicate row copies, excluding the first occurrence. Values are compared after the selected transformations in the cleaned preview.
- Complete rows: rows containing no missing cells. Completeness does not imply accuracy.
- Distinct values: distinct non-empty strings; case and spacing matter unless changed by the recipe.
- Inferred type: Numeric, ISO date, Text, Mixed or Empty. Numeric summaries use only valid finite numeric cells. No automatic type conversion takes place.
The transformation order
Trim outer whitespace, collapse whitespace, lowercase a selected column, fill missing values, remove empty rows, then remove duplicates. The recipe runs from the untouched original each time. If you fill a cell in an otherwise blank row, that row is no longer empty. The changed-cell count includes changes made before a row was removed.
Exports and saved reports
CSV exports contain the cleaned preview. Spreadsheet-safe export prefixes cells beginning with =, +, -, @, tab or carriage return with an apostrophe. This can affect numeric/text interpretation, so switch it off if you need exact text values.
JSON reports contain column names, counts, numeric summaries, the recipe (including any fill value), a source-file hash and a timestamp. They do not contain the dataset rows. Import a report on the same columns to replay its recipe. The source hash detects whether the input file matches the original byte-for-byte text.
Privacy and storage
Parsing, profiling and cleaning run in your browser. Dataset rows are not sent to the server. Saving a report sends only the report described above to your private account, where it is stored in D1. Closing or reloading the page clears the local dataset and recipe; download a report first if you want to replay your changes later.
Engineering
React and TypeScript render the workbench. Pure parsing, profiling, cleaning and validation functions are tested independently. A Cloudflare Worker validates report payloads, enforces per-user ownership and uses parameterised database statements. The first release supports 100 saved reports per account.
Data Detective cannot determine whether a value is factually correct, infer business rules or recover missing information. Review every proposed transformation before using an export.
Open Data Detective