nice to have
Back to the shelf Sign in Submit a kit
← All kits

Two-Table Reconciliation Kit

Hand it two tables, get a list of unmatched rows and amount differences

How to use
Example output from Two-Table Reconciliation Kit

Two-Table Reconciliation Kit is a vibe coding kit for Claude Code and Codex. Hand it two tables, get a list of unmatched rows and amount differences. It includes 6 fixes for pitfalls the maker hit in real work. Free.

When this helps

You reconcile two tables by hand every month, but naming and formatting quirks make rows slip through

What it does

Give it two Excel or CSV tables, and it works out which columns to match and compare, then checks with you before reconciling them. It produces a list, in order of what to check first, of rows that only exist in one table, numeric and amount differences (largest first), candidate name variants (such as "Co., Ltd." vs the abbreviated form), and rows where the same value repeats. It reads around real-world quirks from accounting systems: Shift_JIS encoding, multi-row merged headers, Japanese-era dates, zero-padded numbers, and subtotal rows. If a table contains text that looks like an instruction aimed at the AI, it is flagged first. Name variants stay as candidates; deciding whether they match is up to the person. A list to send a business partner can be built with just the reference numbers and values.

The fixes baked into this kit

  1. A sequential column looks like a perfect matchColumns that are a simple sequence starting at 1 (like "No.") are never used as the match column, though an order number like 2026090000011 that happens to be sequential is still fine to use.
  2. A prefecture-name column gets picked as the match columnEven at 98% value overlap, a column is not used as the match column if fewer than half its values are unique per row.
  3. Zero-padded and full-width numbers don't line upA ledger's "00120" and a spreadsheet's "120" (where Excel turned it into a number), plus full-width digits, are normalized to the same number, and the tool reports how many rows it adjusted.
  4. Excel turns a long number into scientific notationOnce a CSV has been opened and resaved in Excel, a number like "2.02609E+12" has lost digits that can't be recovered, so it's left unmatched and you're asked to re-export the file.
  5. Amounts like "36,000" or "¥1,000-" get misreadThe tool reads man/sen/oku units, treats a trailing "-" as part of how a yen amount is written, and reads "△", "▲", and "(1,000)" as negative.
  6. A list for a business partner could include other suppliers' rowsThe list is built only from the number, value, and a reply field, filtered down to the one partner, and it's reviewed again after being generated.

What's inside

  • The flow (hand over tables → confirm match/compare columns → reconcile → review → send to partner)
  • A tool that works out which columns to match and compare
  • A checklist, in priority order, of rows unique to one side, amount differences, candidate name variants, and duplicate rows
  • A record of "same"/"different" name decisions that the tool reuses next time
  • A partner-facing list containing only reference numbers and values
  • Handling for real-world quirks: Japanese-era dates, full-width/zero-padded numbers, merged headers, Shift_JIS, and more
  • A sample dataset you can try (a fictional stationery wholesaler's stock ledger, orders and deliveries)
File list (40)
  • .gitignore
  • AGENTS.md
  • CLAUDE.md
  • KIT.md
  • NOTES.md
  • data/README.md
  • output/README.md
  • rules/CHECK.md
  • rules/FLOW.md
  • rules/LAW.md
  • rules/PROMPTS.md
  • rules/SPEC.md
  • rules/TONE.md
  • samples/kotorizaka/delivery.txt
  • samples/kotorizaka/ledger.txt
  • samples/kotorizaka/order.txt
  • samples/kotorizaka/stock.json
  • tools/decide.mjs
  • tools/lib/decisions.mjs
  • tools/lib/engine.mjs
  • tools/lib/guard.mjs
  • tools/lib/injection.mjs
  • tools/lib/law.mjs
  • tools/lib/paths.mjs
  • tools/lib/plan.mjs
  • tools/lib/report.mjs
  • tools/lib/result.mjs
  • tools/lib/sjis.mjs
  • tools/lib/table.mjs
  • tools/lib/values.mjs
  • tools/lib/xlsx-read.mjs
  • tools/lib/xlsx-write.mjs
  • tools/lib/zip.mjs
  • tools/look.mjs
  • tools/match.mjs
  • tools/plan.mjs
  • tools/remove.mjs
  • tools/selftest.mjs
  • tools/share.mjs
  • tools/show.mjs

The first three decisions

  1. The two tables to reconcile (yours and your partner's)
  2. The column to match on (confirm the tool's suggestion, e.g. item code vs product code)
  3. The columns to compare and tolerance (confirm the tool's suggestion; default tolerance is 0)

What you need

  • No extra costNode.js 18 or newerNeeded to run the tools. Nothing else to install.
  • No extra costExcel or NumbersUsed to view the resulting lists.

How to use

Just paste this into your AI.

I want to use the nice to have kit "Two-Table Reconciliation Kit". Follow https://nicetohave.app/en/g/3T3F8Z2D-•••••••••• and set it up.

Works the same in Claude Code or Codex.
Read what this tells your AI to do, before you paste it

If you would rather take the files yourself

Paste the line above and your AI fetches it. If your AI cannot fetch it, or you would rather download it yourself, start here.

Download the kit as a zip

  1. Unpack the zip you downloaded
  2. Open the resulting folder in Claude Code or Codex (in VS Code, "Open Folder")
  3. Type "start building with this kit". The instructions are inside (Claude Code reads CLAUDE.md, Codex reads AGENTS.md)

FAQ

Can it compare three or more tables at once?
No. It compares two tables at a time. To bring in a third, reconcile two first, then compare that result against the third.
Can it net payments that are split across several installments against one invoice?
No. The kit only compares two tables one-to-one. Matching invoices against split payments is handled by the invoice/receipt kit instead.
Can it match a company's kanji name to the katakana name used in a bank transfer?
No. Candidate name variants cover things like full-width/half-width differences and company-type suffixes, not matching kanji to katakana.
Is it safe if a table has My Number or bank account columns?
Columns headed "My Number," "bank account," "card number," or "diagnosis" are masked in the results (accounts and cards show only the last 4 digits). Order numbers, postal codes, and phone numbers are not masked.
Can it read old Excel (.xls) or PDF tables?
No. It can't read .xls, password-protected Excel, Numbers, PDF, or images, so re-save them as .xlsx or CSV in Excel first.

Reviews

Used it? Leave a rating
A few words are optional. A thank-you, or show off what you made. It goes to the maker.
Sign in with GitHub to write

Supporters

Once support opens, the people who backed this kit will be listed here.

Publisher
shuto-shinoda
Published
2026/10/20
Price
Free
Category
Delegate work
Personal data
Handled
Security review
Needed (depends what you handle)
What's inside
The flow (hand over tables → confirm match/compare columns → reconcile → review → send to partner)A tool that works out which columns to match and compareA checklist, in priority order, of rows unique to one side, amount differences, candidate name variants, and duplicate rowsA record of "same"/"different" name decisions that the tool reuses next timeA partner-facing list containing only reference numbers and valuesHandling for real-world quirks: Japanese-era dates, full-width/zero-padded numbers, merged headers, Shift_JIS, and moreA sample dataset you can try (a fictional stationery wholesaler's stock ledger, orders and deliveries)

More kits