Free · No signup · Nothing leaves your browser

Turn messy files into structured data.

Drop in a file that was never meant to be parsed — a machine export, a log, a fixed-width report, an RTF dump, a spreadsheet someone hand-edited for nine years. DataMappa works out the delimiter, finds the header row, types every column, spots the patterns and hands you clean CSV, JSON, SQL or a schema.

Drop a file, paste, or click to browse
CSV · TSV · TXT · LOG · RTF · JSON · NDJSON · XML · HTML · Excel · fixed-width · anything else
No file handy? Try one:

The last one is a real-shaped wafer-probe report: RTF wrapper, five different tables in one file, a units row under the header, an alarm log in the middle, censored values, four date formats and wafer IDs with leading zeros. Download it and try it against anything else.

What it works out on its own

No configuration, no column mapping wizard, no "please select your delimiter". You drop the file; it reads it the way an engineer would.

Shape

Delimited, fixed-width, JSON, NDJSON, XML, HTML tables, key–value blocks, log streams or plain prose — picked by scoring each candidate, not by trusting the file extension.

The real delimiter

Commas, tabs, pipes, semicolons, carets. Scored on how consistent the field count is per line, so prose full of commas never fools it and 08:00:01 never becomes three fields.

Header rows

Row one is compared against the type profile of everything below it. Text above numbers means header. Numbers and dates in row one mean it is just the first record.

Preamble junk

Report titles, machine banners, blank lines and separator bars above the actual table get identified and skipped — and shown to you, so nothing disappears silently.

Column types

Integer, decimal, currency, percent, date, datetime, time, boolean, email, phone, URL, UUID, IP, postal code, state, JSON blob, category, identifier — with a confidence figure for each.

Patterns

Values are collapsed to format masks (A{2}-9{4}), so a column that is 97% one shape and 3% something else tells you exactly where the bad records are.

Quality problems

Missing values, duplicate rows, ragged rows, mixed types in one column, two date formats fighting each other, ambiguous MM/DD vs DD/MM, leading zeros about to be destroyed, constant columns, outliers.

Several tables in one file

Tool exports are rarely one table. The document is cut into runs of consistent shape first, so a banner, a site table, an alarm log, a fixed-width summary and a disposition list each get detected, typed and exported separately.

Units rows

Metrology headers are two rows deep — names, then units. Left in place that turns every measurement column into text, so the units row is lifted out and kept as column metadata.

Keys and templates

Candidate primary keys from uniqueness and completeness. For logs, every recurring message template with its frequency, so you can see the shape of a million lines at a glance.

Then it gives you something usable

Detection is only half of it. Override anything it got wrong, then take the output in whatever shape the next system wants.

CSV / TSVCleaned, trimmed, normalised — dates as ISO 8601, currency as plain numbers, real nulls.
JSON / NDJSONTyped records with snake_case keys. Numbers as numbers, booleans as booleans.
SQLCREATE TABLE with inferred column types, NOT NULL where the data earns it, a primary key if one exists, plus inserts.
JSON SchemaDraft 2020-12, with formats, enums for low-cardinality columns and required fields.
TypeScriptAn interface with literal union types for categorical columns and optionals where values go missing.
pandasA ready-to-run loader with the right dtypes, renames and date parsing already filled in.
MarkdownA table you can paste into a ticket, a PR or a doc.
Structure reportThe full write-up — format, columns, types, findings — for handing to whoever owns the source system.

Where your file goes: nowhere

Every byte of this runs in your tab. The parser, the type inference, the profiler and the exporters are JavaScript running on your machine — there is no upload endpoint, no queue, no bucket and no log of what you opened. Load the page, pull your network cable, and it still works. That is deliberate: the files most worth mapping are usually the ones nobody is allowed to email out.

When the file is worse than this

DataMappa handles files that have some structure hiding in them. Plenty do not: a thousand PDFs where the field moved every quarter, twelve machines writing twelve dialects of the same report, an ERP import that needs values derived rather than copied. That is the work Pross Solutions does — the mapping runs on a schedule, lands in your warehouse, and stops being your problem.

Coming next: an optional AI pass for files with no repeating structure at all — free-text notes, inspection write-ups, scanned forms — plus derived values, mapping to a target schema you define, and saved recipes that re-run on the next file. The detection you see here stays free either way.

Questions

Is my data uploaded anywhere?

No. Parsing happens in your browser. There is no server-side processing, no storage, and no analytics on file contents. You can verify it — open your network tab and drop a file in; nothing goes out.

What file types can it read?

Delimited text (CSV, TSV, pipe, semicolon, caret), fixed-width reports, JSON, NDJSON, XML, HTML tables, RTF exports, logs and event streams, key–value blocks, and Excel workbooks (.xlsx, .xls, .xlsm — read locally, never uploaded). Anything unrecognised is still profiled line by line. PDF is not in this build yet.

How big a file can it take?

40 MB in this build. That is a browser memory limit, not a licensing one. Larger files are exactly the case where a scheduled pipeline beats a web page — get in touch.

It typed a column wrong. Can I fix it?

Yes. Open the Columns tab, change the type, rename the field or drop the column entirely. Every export reflects your overrides immediately.

Why is it free?

Because it costs us nothing to run — there is no server doing work. It exists so the people whose day is ruined by an unparseable file find us before they give up on the problem.

How does it decide MM/DD vs DD/MM?

It does not guess silently. When a date column contains values that are valid either way, it flags them as ambiguous in the Quality tab. Nothing in the data can settle it — only you know which system wrote the file.