Reference
TenMil facts
Last updated
TenMil.ai is a browser-based tool that merges two large CSV or Excel files using plain-English instructions. This page lists its capabilities and limits.
At a glance
| Fact | Value |
|---|---|
| What it is | A browser-based tool that merges two large CSV or Excel files using plain-English instructions |
| Files per merge | 2 |
| Input formats | .csv and .xlsx, in any combination |
| Output formats | XLSX and CSV |
| Upload limit | Up to 350 MB combined (XLSX files count at 3× their file size) |
| Max merge output | Up to 5,000,000 rows per merge |
| Join types | Left, inner, full outer, right, and stack (append rows) |
| Where files are processed | In your browser tab |
| What is sent to AI | File names, column names, up to 8 example values per column, per-column summary statistics, and your typed instruction |
| Account required | No account to merge or for free downloads; an email address is asked for before the first download |
| Price | Free (3 downloads per day), $10/month, or $100/year |
What file formats does TenMil support?
TenMil supports .csv and .xlsx files, in any combination, and exports results as XLSX or CSV.
- TenMil detects the CSV separator automatically (comma, tab, semicolon, or pipe).
- TenMil asks which sheet to use when an Excel workbook has more than one.
- TenMil renames duplicate column names on import, for example email and email_2.
- TenMil removes completely blank rows from CSV files on import.
How large can files be?
TenMil accepts up to 350 MB of files combined and produces up to 5,000,000 rows per merge.
| Limit | Maximum |
|---|---|
| Combined upload size | Up to 350 MB across both files |
| XLSX files | Counted at 3× their file size, so the largest XLSX upload is about 116 MB |
| Files per merge | 2 |
| Merge output | Up to 5,000,000 rows per merge |
| Export size | Up to 50,000,000 cells (rows × columns) per export |
| Memory | TenMil stops a merge before it would use more than about 1.5 GB of browser memory |
Input files can be larger than Excel's 1,048,576-row limit.
What can TenMil do to my data?
TenMil runs 7 operations: join, stack, filter, remove duplicates, sort, pad, reorder columns.
| Operation | What it does | Example phrase |
|---|---|---|
| Join | Matches rows from two files on a shared key column. | "match these files on email" |
| Stack | Appends the rows of one file under the other, lining up matching columns. | — |
| Filter | Keeps rows that meet a condition: equals, contains, greater or less than, not blank, or before, after, or between dates. | "only keep Boston" |
| Remove duplicates | Keeps one row per key: the first, or the one with the highest, lowest, or latest value in another column. | "remove duplicate emails" |
| Sort | Sorts rows by one or more columns, ascending or descending. | "sort by amount, highest first" |
| Pad | Adds leading zeros so values reach a fixed length. TenMil's only operation that changes cell values. | "pad zip codes to 5 digits" |
| Reorder columns | Changes the order of columns in the output. | — |
TenMil only runs these operations; it doesn't execute free-form SQL or formulas.
What kinds of merges can TenMil do?
TenMil can do left, inner, full outer, and right joins, and can stack two files on top of each other.
| Merge type | Which rows it keeps |
|---|---|
| Left (default) | TenMil keeps every row from the first file and adds matching values from the second file. |
| Inner | TenMil keeps only rows whose key appears in both files. |
| Full outer | TenMil keeps every row from both files, matched where possible. |
| Right | TenMil keeps the matched rows plus the rows found only in the second file. Choose it with the result's row options. |
| Stack (union) | TenMil appends the rows of one file under the other instead of matching them. |
TenMil detects the key column automatically, or uses the column you name in plain English, for example "match these files on email".
TenMil checks whether duplicate keys would multiply rows before running a merge, and asks how to resolve the duplicates when the result would be too large.
How does TenMil match values that look different?
TenMil compares cleaned-up copies of the key values, so small formatting differences don't stop a match; the values in your output are not changed.
TenMil's AI picks one matching rule for the key columns. Text is the default; email, phone, ID, or number is used only when both key columns hold that kind of value.
| Column type | Rule |
|---|---|
| All keys | Non-breaking and other look-alike spaces become normal spaces; zero-width and other invisible characters are removed; curly quotes become straight quotes; every kind of dash counts as the same dash. |
| Ignores capital letters and extra spaces. Does not ignore +tags or dots in Gmail addresses. | |
| Phone | Keeps only the digits and compares the last 10. |
| ID | Same as text, and also removes spaces, dashes, dots, underscores and slashes anywhere in the value. |
| Number | Same as text. Values are not parsed as numbers, so 1200.50 and 1200.5 stay different. |
| Date | Same as text. Dates are not parsed, so 01/05/2024 and 2024-01-05 stay different. |
| Text (default) | Ignores capital letters and extra or repeated spaces. Also ignores currency symbols and thousands separators ($1,200 and 1200), Excel's trailing .0, and leading zeros on all-digit values. |
| Yes/No columns | When every value in both key columns is a yes/no spelling, Y, YES, TRUE, T and 1 match each other, as do N, NO, FALSE, F and 0. |
Examples
| Value in file A | Value in file B | Rule | Matches? |
|---|---|---|---|
JAKE@acme.com | jake@acme.com | Yes | |
jake+news@gmail.com | jake@gmail.com | No | |
first.last@gmail.com | firstlast@googlemail.com | No | |
(555) 123-4567 | +1 555-123-4567 | phone | Yes |
001452 | 1452 | id | Yes |
ACME-001 | acme 001 | id | Yes |
$1,200.50 | 1200.50 | number | Yes |
$1,200.50 | 1200.5 | number | No |
Acme Inc | acme inc | text | Yes |
Acme Inc | Acme Inc. | text | No |
What does the exported file contain?
TenMil exports the merged result as CSV or XLSX, and can also export the rows that didn't match.
| Download | Contents |
|---|---|
| Result — CSV | The merged rows. |
| Result — XLSX | Two sheets: "Merged" with the merged rows, and "Column Types" listing each column. |
| Unmatched — CSV | The rows from the first file that found no match. |
| Result and unmatched — XLSX | Two sheets: "Result" and "Unmatched". |
TenMil writes every XLSX cell as text exactly as it appeared in the input, so 02134 stays 02134 and numbers longer than 15 digits are not rounded or shown in scientific notation.
TenMil keeps dates as text in XLSX exports; it does not convert them to Excel dates.
TenMil never modifies your source files; every download is a new file.
What can't TenMil do?
TenMil can't merge more than two files at once, rename columns in chat, or calculate formulas.
| Request | What to do instead |
|---|---|
| More than two files at once | Merge two files, export the result, then merge that export with the third file. |
| Renaming or hiding columns via chat | Use the Output Columns panel to rename, hide, or reorder columns before exporting. |
| Formulas, totals, averages, and pivot tables | Export the result and use Excel or another spreadsheet tool. |
What happens to my data?
TenMil processes your files in your browser tab; only a small description of the files is sent to an AI service to plan the merge.
- TenMil reads and processes your files in your browser tab.
- TenMil sends your file names, column names, up to 8 example values per column, per-column summary statistics (value type, distinct count, blank rate, value lengths, and row count), and your typed instruction over an encrypted connection to an AI service, which returns a merge plan. While you chat, the assistant can also ask for up to 20 sample rows at a time.
- TenMil runs the merge locally in your browser.
- TenMil does not store your data on any server; it is cleared when you close or refresh the tab.
TenMil collects usage metrics such as row counts, join types, and timings. TenMil's analytics do not include row data, column names, or file names.
Are results consistent?
Yes. The AI only writes the plan; TenMil's local SQL engine runs it, so the same inputs always produce the same output.
How much does TenMil cost?
TenMil's merging and previewing are free; the free plan includes 3 downloads per day, and the paid plans remove the download limit.
| Plan | Price | Includes |
|---|---|---|
| Free | $0 | Every feature, 3 downloads per day, resetting at 00:00 UTC |
| Pro Monthly | $10/month | Everything in Free, unlimited downloads |
| Pro Annual | $100/year | Everything in Monthly, 2 months free |
TenMil does not require an account to merge or for free downloads; it asks for an email address before the first download. Paid plans need an account.
TenMil bills paid plans through Stripe, and you can cancel anytime. See pricing →
What do I need to use it?
TenMil requires a modern web browser with JavaScript and WebAssembly enabled.
TenMil needs no installation and no browser extensions.
Quick answers
- Can TenMil merge files with more than a million rows?
- Yes. TenMil accepts files larger than Excel's 1,048,576-row limit, up to 350 MB combined, and produces up to 5,000,000 rows per merge.
- Can TenMil merge a CSV with an Excel file?
- Yes. TenMil merges .csv and .xlsx files in any combination.
- Can TenMil merge three files?
- No. TenMil merges 2 files at a time; merge two, export the result, then merge that export with the third file.
- Does TenMil send my whole file to AI?
- No. TenMil sends file names, column names, up to 8 example values per column, per-column summary statistics, and your instruction; the merge runs in your browser.
- Can TenMil match emails with different capitalization?
- Yes. TenMil ignores capital letters and extra spaces when matching emails, but not +tags or Gmail dots.
- Does TenMil keep leading zeros in ZIP codes?
- Yes. TenMil writes every XLSX cell as text exactly as it appeared in the input, so 02134 stays 02134.
- Can TenMil filter by date?
- Yes. TenMil filters on dates before, after, or between dates, such as "orders in January 2024" or "last 30 days". It reads common formats like 2024-01-15, 01/15/2024, 15/01/2024 and Jan 15, 2024, works out whether a column is month-first or day-first, and tells you how many values it couldn't read. If fewer than 80% of a column's filled-in values are dates, TenMil won't filter it. Your date text is never changed.
- Is TenMil free?
- Yes. TenMil's merging and previewing are free, with 3 downloads per day; paid plans start at $10/month.