Matchi

Messy data in.
Clean answers out.

Drop your bank statements and ledgers. Matchi matches them in seconds — no formulas, no scripts, just answers.

Download for macOS See how it works

Your data stays on your machine. Always.

Three steps. No spreadsheet gymnastics.

Describe the match in plain English. Matchi writes the query, runs it, and tells you what doesn't add up.

1

Drop your files

CSV, XLSX — even the messy ones with merged cells and extra headers. Matchi handles it.

2

Just say "reconcile"

You don't even need to explain the rules. Matchi explores your data, discovers matching patterns, and asks you to verify before running the final match.

3

Review exceptions

Matchi shows you what matched and what didn't — grouped by reason, not dumped in a list.

Your data is messy.
That's not your problem to solve.

Bank exports, ERP dumps, API responses — they're never clean. Today you write formulas, scripts, and regex to pre-parse them. With Matchi, you just describe what you need.

The formula you write today
Excel with nested INDEX MATCH formula, #N/A errors, and tooltip explaining VLOOKUP can't handle M:1 splits
What you tell Matchi
Match my BCA bank statement against the GL export. Amounts might be off by a few rupiah due to rounding.
Done. 2,847 matched, 3 timing exceptions — all weekend crossovers. Amounts match exactly, no rounding issues. Want me to save this as a recipe for next month?
The script you maintain
VS Code with 14 regex patterns for BCA reference formats, re.error popup, and ValueError traceback in terminal
What you tell Matchi
The bank statement has messy references — different formats for transfers, invoices, and POs. Some amounts say "Rp 0,-". Can you figure it out?
I see 14 reference formats and some Indonesian-style amount formatting. All 2,891 rows parsed successfully. I normalized the references and amounts automatically. Ready to match — what's the GL file?
The cell your ERP exports
Excel spreadsheet with JSON blobs in cells, expanded cell view showing nested payment data, and MID/FIND formula that fails on 5 of 11 rows
What you tell Matchi
Column F has JSON blobs with payment details. I need the order_id and the settlement date to match against the GL.
I see the JSON in column F. Extracted order_id and settlement date from all 5,247 rows. 12 rows had malformed JSON — I flagged them as exceptions. Ready to match against the GL by order_id. Want me to use the settlement date for timing tolerance?

Built for finance teams, not engineering teams.

Chat-first interface

Describe what you need matched. Matchi writes the SQL, runs it, and explains the results — all in conversation.

Any file format

CSV, XLSX, multi-sheet workbooks — even the ones with merged cells and inconsistent headers. Just drop them in.

Smart matching

1:1, M:1, 1:N — with date tolerance, fuzzy amounts, and partial matching. The weird ones are handled.

Local-first

Your data never leaves your machine. Everything runs locally — no cloud uploads, no server calls with your financial data.

Bring your own model

Gemini, Claude, GPT, or your own endpoint. Use Matchi Free to start, upgrade to your preferred provider anytime.

Reusable recipes

Save your matching logic as recipes. Run the same reconciliation next month with one click — no re-explaining.

Works with your AI provider

Your data stays on your machine.

Matchi processes everything locally on your machine. Only your instructions and small data samples go to the AI — full datasets never leave your machine.

Local-first architecture
No cloud data uploads
Full datasets never uploaded
Analytics opt-in only

Ready to close the books?

Free to start. No credit card. Works offline.

Download for macOS

macOS 12+ · Apple Silicon & Intel · Windows coming soon