The month-end match, in one run.
| Order | Orders total | Shipments total | Status | Age |
|---|---|---|---|---|
| SO-0998 | — | 27.00 | only in shipments | 58 days |
| SO-1001 | 19.99 | 19.99 | matched | — |
| SO-1007 | 22.40 | 22.41 | values differ | 45 days |
| SO-1009 | 99.00 | 99.00 | matched | closed 02-03 |
| SO-1011 | 5.00 | 5.00 | matched | closed 02-06 |
Files never leave your computer.
From two files to a close
Three steps the first month. One button every month after.
-
Drop in both exports.
Encoding, delimiter and header row are found for you.
Left copyorders.xlsxExcel · sheet “Orders” · 12 rowsRight copyshipments-jan.csvCSV · UTF-8 · comma · 11 rowsColumns found, key suggested from the values Shop orders 3PL shipment report Role Name Order Number Key Created at Shipped at Date Total Amount Compared -
Clean once.
Each fix becomes a step in the recipe, never an edit to your file.
- Trim spaces in Name“ SO-1003” → “SO-1003”
- Upper-case in Order Number“so-1012” → “SO-1012”
- Recipe
- Orders to shipments
- Version
- 2 of 2
- Match on
- Name = Order Number
- Fingerprint
- a3f09c1e…
-
Next month, press Run.
What matched closes. What did not comes back, a month older.
exceptions.csv · 2 rows · February close Order Status Orders Shipments Age SO-0998 only in shipments — 27.00 58 days SO-1007 values differ 22.40 22.41 45 days
Every row ends with a reason
Matched, values differ, only in one file, ambiguous or duplicate in file. Open any row of the February close to read why it landed there.
Ordered 2024-01-09, shipped 2024-01-10, 30.00 on both sides.
Ordered 2024-01-11, shipped 2024-01-12, 8.75 on both sides.
Ordered 2024-01-12, shipped 2024-01-15, 60.00 on both sides.
Orders 22.40 on 2024-01-15; shipments 22.41 on 2024-01-17. Open 45 days at the february close, and back at the next one until a side is fixed.
Ordered 2024-01-18, shipped 2024-01-19, 15.00 on both sides.
Ordered 2024-01-27, shipped 2024-02-03. Only in orders at the January close; matched 7 days later.
Ordered 2024-01-29, shipped 2024-01-31, 41.10 on both sides.
Ordered 2024-01-30, shipped 2024-02-06. Only in orders at the January close; matched 7 days later.
Exported as “so-1012”. The recipe trims and upper-cases the key, so it matched 18.30 for 18.30.
Built for the close, not a one-off diff
- Reads the files you already export
- CSV, Excel and JSON. The encoding, delimiter, sheet and header row are found for you, and the file itself is never changed.
- Cleans without touching the file
- Trim, change case, replace, split, rename, fill down and filter. Each step is kept in the recipe and runs again next month.
- Matches the same way every time
- Exact keys, a similarity score, an amount tolerance or a date window. No AI: the same files and recipe always give the same result.
- Stops when a column is renamed
- Shops rename columns without warning. A recipe that kept going would match the wrong field, so it stops and names the column. The orders file changed shape. Column “Order” is missing and “OrderNo” is new. Nothing was matched.
- One payout, many orders
- On Pro, a payout matches the sum of its orders minus the fee, so a settlement report reconciles in one pass.
- Nothing leaves the browser
- Files are read in the tab and never uploaded; the app’s own security policy forbids it. Check it yourself in two minutes.
Content-Security-Policy: default-src 'self'; connect-src 'self'
Ten forms to start from
Each opens in the app with sample files and a guide: the two exports you need, how their rows match, and how to rerun it next month.
All guidesShop and warehouse
Money
Priced by rows per file
Monthly subscription, billed by Lemon Squeezy. After payment, activate your key at /license.
A paid plan unlocks the browser where you activate the key — not every device. Activate on the computer you reconcile on. Solo and Pro allow one activation; Team allows five. Phone and desktop do not share a plan automatically.
| Free $0/month | Solo $15/month | Pro $39/month | Team $99/month | |
|---|---|---|---|---|
| Rows per file | 1,000 | 50,000 | 100,000 | 100,000 |
| Files in one run | 2 | 2 | Up to 8 | Up to 8 |
| Saved recipes and reruns | —Not included | Included | Included | Included |
| Open items with their age | —Not included | Included | Included | Included |
| Similarity matching | —Not included | Included | Included | Included |
| One payout against many orders | —Not included | —Not included | Included | Included |
| Audit pack with file fingerprints | —Not included | —Not included | Included | Included |
| Seats | 1 | 1 | 1 | 5 |
| Open the app | Buy Solo | Buy Pro | Buy Team |
Row caps match this browser build; very large files may slow the tab until background processing ships, when the limits will rise.
Questions
Is my data uploaded?
No. The file is read by this browser tab and stays on your computer. Recipes and runs are kept in the browser’s own storage.
What files can it read?
CSV, Excel (.xlsx and .xls) and JSON, with the encoding, delimiter and header row found for you.
Does it use AI to match?
No. Rows match exactly, by a fixed similarity score, within an amount tolerance or within a date window. The same files and recipe always give the same result.
What if a column is renamed?
The run stops before matching and names the column that is missing, so nothing is matched on the wrong field.
Can one payout match many orders?
Yes, on Pro and Team. A payout matches the sum of its orders minus the fee.
Does it work offline?
Yes. After the first visit the app opens without a connection.
I paid — how do I unlock the plan, and on which device?
Open /license on the computer you use for month-end, paste the key from your Lemon Squeezy receipt, and activate. The plan stays in that browser only. Solo and Pro have one activation; Team has five. Activating on a phone does not unlock your desktop.
When should I not use it?
When you need a live connection to a shop or a bank. TidyRecon works on files you have already exported. See the comparison.
Where do I start?
Pick the form closest to your files, download its samples, and press Run once before you try your own.