All guides

An American CSV abroad: the dates are the thing that breaks

An American export needs no conversion: commas between the fields, a full stop before the cents, the arrangement most tools expect. That is exactly why it is dangerous outside the United States — it opens perfectly, and every date below the thirteenth of the month is read as a different day with no error shown anywhere.

What a American file usually looks like

Saved by a spreadsheet set to English (United States), the file has a comma between the fields, a full stop as the decimal mark and a comma between thousands, so one thousand two hundred and thirty-four and a half is written 1,234.56. Dates are written MM/DD/YYYY: the last day of 2026 is 12/31/2026.

Because the thousands mark and the separator are the same character, a grouped amount only survives in quotes — the sample below writes 1,234.56 as "1,234.56", and a file that forgets the quotes gains a column on those rows.

None of this is a rule the file carries with it — there is no country written inside a CSV. It is what the program that wrote the file was set to, which is why every tool here reads the bytes and says what it found rather than trusting a flag.

The silent half of the calendar

An American date is written month first: 12/31/2026 is the last day of the year. Most of the rest of the world writes the day first, so 05/06/2026 is the fifth of June there and the sixth of May in the United States. Twelve days in every month are ambiguous, and a reader that assumes the wrong convention moves them without complaining, because both readings are valid dates.

The nineteen days from the thirteenth to the thirty-first are the only ones that give the game away, and they give it away in the second position, not the first: 12/31/2026 cannot be day-first, because there is no thirty-first month. A month-first date can never have a first number above twelve — the first number is the month — so it is the second number running past twelve that settles the question. One such date proves the whole column is month-first, and the ambiguous ones can then be read with confidence.

The sample on this page is built to show it. Two of its five dates settle the convention on their own — 12/31/2026 and 01/20/2026, whose second number is past twelve — and the other three are ambiguous, so running the recipe reads the column both ways at once and the rows where the two readings disagree are on screen side by side. The query is written for that sample; on your own file, change the table name in it to the one the console gives your file — the names are listed beside the editor — and the date column’s name if your heading differs.

And the one thing in the numbers

American amounts group thousands with a comma — the same character that separates the fields — so a grouped amount only survives inside quotes: "1,234.56". That is ordinary and every proper CSV reader handles it, but it is also why a file that was assembled by joining text with commas rather than by a real writer loses its shape on exactly those rows, gaining a column wherever an amount ran past a thousand.

If a file arrives like that, the health check here finds it: it lists every row whose field count differs from the heading row, which is precisely the set of rows with an unquoted grouped amount. Fixing the writer that produced it is the real repair; the editor will patch a small file by hand in the meantime.

The sample file

Invoice,Customer,Date,Amount
INV-1001,Sample Supplies Inc,12/31/2026,"1,234.56"
INV-1002,Example Trading LLC,03/02/2026,89.50
INV-1003,Placeholder Co,06/05/2026,32.10
INV-1004,Fictional Works Inc,11/12/2026,"24,680.00"
INV-1005,Specimen Holdings LLC,01/20/2026,410.00

Obviously made-up data, small enough to read. Download it and drop it on the tool to see the fix before trying your own file.

Questions

Is 05/06/2026 May or June in an American file?
The sixth of May: the month comes first. The same text in a European file is the fifth of June, and nothing in the file itself says which convention was used.
How can I tell whether a column is month-first?
Look for a date whose second number is above twelve, such as 12/31/2026 or 01/20/2026. The first number in a month-first date is the month, so it never can be; it is the second one, read as a month the other way round, that could not exist. One such date settles the column. If none exists, the file cannot settle it and you need to ask whoever produced it.
How do I read the dates correctly?
With an explicit pattern rather than a guess. The recipe on this page reads the column both ways at once; it is written for the sample, so on your own file change the table name in the query to the one the console gives it, and the column name if your heading differs.
Why is 1,234.56 in quotes in my file?
Because the thousands mark is the same character as the separator. The quotes are what keep the amount in one field, and a file that leaves them out gains a column on every grouped amount.
Some of my rows have an extra column — why?
Almost always unquoted amounts above a thousand. The health check lists the rows whose field count differs from the heading row, which is the same set of rows.
Is my file uploaded when I run the recipe?
No. The query runs against your file inside this page, on your own machine, and the browser is told to block outbound connections so there is nothing to intercept.