Jon McGee
← All projects

Tool · Sep 2026 · Preview only

Basis

A comparison tool for card processing. Load in a merchant's statements, pick a rate, and it works out what they would pay, line by line.

Preview only. This one isn't open for use.

What it is

When a business is thinking about switching card processors, the question is always the same: what would I have paid on the new rate? Answering it by hand means digging through monthly statements and doing arithmetic on every fee line. Basis does that comparison for you.

It is used on real client work, which is why the version on this page is look-only.

Walkthrough

  1. Drop in their statementsAdd the merchant's statements as PDF or CSV. Two or three months tells the real story. Anything that is not a statement gets turned away, and there is a sample-numbers link if you just want to see how it reads.
  2. Choose a ratePick from rate templates. Each one is a percentage plus a per-transaction fee, and some add a regulatory product fee. The numbers behind them can be changed in Settings whenever the pricing changes.
  3. Check the numbers it readStatements it could read are shown as read. Only a scanned statement or a processor it does not recognize needs numbers typed in by hand.
  4. Read the comparisonIt prices the same volume on the new rate and sets it against what the merchant actually paid, so the savings or the extra cost is plain.

The part I care about most: accuracy

A comparison tool that is slightly wrong is worse than no tool, because people trust the number. Early on, Basis misread fee totals on real statements, so I wrote a strict accuracy brief for it.

  • Real statements, with every figure checked by hand, become permanent test cases. The app has to reproduce them to the cent.
  • The fee total it reads has to reconcile with the individual fee lines before anything reaches the comparison. If it cannot reconcile, the right behavior is to refuse and ask, not to guess.
  • Reading a statement should follow the structure of the document, not hunt for labels that happen to look right.

How it's built

  • A single-page app in React with TypeScript, bundled with Vite, that runs entirely in the browser.
  • Light and dark themes, a calm typeface pairing, and a layout that walks you through three numbered steps so the next action is always obvious.