Bijexa
Payouts vs. bank · invoices vs. payments

Every cent of the difference, explained.

Drop in your payout report and your bank export. Bijexa works out how they line up and tells you, in plain words, why the totals don't match. It all runs on your own computer, at any size.

  • Adds up to the cent. Every row lands in one pile, and the piles explain the whole gap.
  • Nothing is uploaded. It runs on your computer and reads your files where they are.
  • No row limit. Past Excel's 1,048,576 rows; tested to 20 million a side.
  • Messy files are fine. ORD-0000123 matches ord 123, 1.234,50 € matches $1,234.50.
  • No setup. It finds the columns to match by reading the values, and asks when it isn't sure.
settlement_sample.csv ↔ bank_sample.csv Real output

Bank is 13,376.51 lower than Marketplace in total.

On 100 of them, Bank is exactly 1.50 higher than Marketplace: this looks like a fixed fee or charge per row, not separate errors.

Why the totals differMarketplace 5,107,360.47 − Bank 5,093,983.96
13,376.51gap, fully explained · 19,840 of 20,000 rows match

14,020.11 − 150.00 − 493.60 = 13,376.51

Order IDNet PayoutReferenzBetragResult
ORD-0000200176.27ord 200177,77Differs −1.50
ORD-000033380.21——Only in Marketplace
——ord 2000112,34Only in Bank
ORD-000000188.52ord 188,52Matched
ORD-0000002293.34ord 2293,34Matched
Bijexa on 20,000 example rows with planted differences. Full report settlement_sample.csv bank_sample.csv
The problem

Reconciliation shouldn't take an afternoon.

Off by 412.50. Why?

The totals don't agree, and nothing tells you whether it's a short payment, a missing row or rounding.

ORD-0000123 ≠ ord 123

You build VLOOKUPs, drag them down, and find out on row 40,000 that the two files write their keys differently.

Row 1,048,577

Excel stops at 1,048,576 rows and drops the rest without telling you. A file can look complete and still be missing rows.

Upload your bank data?

The tools that automate this want your bank and payout files on someone else's servers.

What it does

The gap between two totals, explained to the cent.

Every row lands in exactly one pile, and the piles add up to the difference between the two totals. None is counted twice, and none is left out.

Why the totals differ

The difference between the two totals, split into its causes: rows missing from each side and amounts that differ. The parts always add up to the gap, so nothing is left unexplained.

14,020.11 − 150.00 − 493.60 = 13,376.51

What's only on one side

Payouts the bank never received, and bank lines with no payout behind them.

What matches but differs

Same order, different amount, text or date. Set a tolerance, like 0.05, 1% or 3 days, so rounding and booking delays don't clutter the list.

What matches

Rows found on both sides, paired by the ID, even when each file writes it differently.

Any two files, from any system

A PDF statement against a CSV payout report, an Excel export against a Parquet file. If a system can export a file, Bijexa can compare it, so there's no integration to wait for and no list of supported channels.

  • CSV
  • TSV
  • XLSX
  • XLS
  • Parquet
  • PDF
The review

Not just which rows. Why.

After every run, Bijexa writes up what it found: one sentence on the gap, then each cause with its share of it, biggest first. Where the numbers show a pattern, it says so: a hundred identical differences read as one fee, not a hundred errors.

The sample above, written up

Bank is 13,376.51 lower than Marketplace in total.

  • 60 rows in Marketplace have no match in Bank+14,020.11
  • 40 rows in Bank have no match in Marketplace−493.60
  • 100 rows are in both files, but the values differ−150.00

    On 100 of them, Bank is exactly 1.50 higher than Marketplace: this looks like a fixed fee or charge per row, not separate errors. If that's expected, allow a difference of 1.50 next time.

Patterns need at least 10 rows covering 80% of the rows they describe, and they say what the numbers show, never why. Flipped signs, repeated IDs and payments split across several rows are checked row by row. The amounts always add up to the gap.

The Bijexa app showing a review: the two totals and the gap, the verdict, three findings with their amounts, and the rows that differ.
A review in the app (another sample): the totals as an equation, the verdict, each finding with its rows a click away.
=A fixed fee

The same difference on every row.

%A commission

The same percentage on every row.

≈Rounding

A few cents here and there.

±Flipped signs

Refunds booked the other way round.

⧗A date lag

Bank dates a fixed number of days later.

⑂Split payments

Several bank lines adding up to one payout.

⧉Repeated IDs

The same ID twice in one file.

The Bijexa app with one order open side by side: the order in both files, the amounts that disagree highlighted.
Click a row to see it from both files, with the values that disagree marked.

Check any row in one click

  • Each order side by side: the ID, the amounts, the dates and every other column, from both files.
  • The cells that disagree are tinted, and the reason is spelled out: “Net Payout differs”.
  • Select rows to copy their IDs for your accounting system, or export just those rows.
  • Every pile is a file you can open: CSV, Excel or Parquet, plus a one-page report to send.
Why Bijexa

What you'd use instead, and where it falls short.

Spreadsheets are slow and stop at a million rows. The automated tools either can't read your files, can't explain the gap, or want your data on their servers.

FeatureBijexaSpreadsheetsBank matching in accounting softwareE-commerce sync toolsEnterprise reconciliation software
Says why, in plain words (fees, commissions, rounding, date lags) Yes No No Fees, for its channels Varies
Works out which columns to match by itself From the values VLOOKUP by hand For its bank feed For its channels Mapping project
Explains why the totals differ, to the cent Yes By hand No Payout summaries Varies
Any two files, any type CSV, Excel, Parquet, PDF What Excel can open Bank feed only Supported channels only After setup
Millions of rows 20 million a side Stops at 1,048,576 Not built for it Yes Yes
Your data stays on your computer Yes Yes Cloud Cloud Usually cloud
Price stays the same as you grow Flat, from $0 Already paid for In your plan Often priced by orders Custom quote
Start today, repeat next month in one click Saved recipes Rebuild each month Bank rules Yes Sales call and setup project

Already use a sync tool, QuickBooks or Xero? Keep it. They put your sales into your books; Bijexa checks that the books match the bank. The comparison describes each kind of tool in general; individual products vary.

How it works

Two files in. The gap, explained.

Step 1

Drop in two files

Bijexa skips title rows and detects the delimiter and encoding. It reads amounts like $1,234.50, 1.234,50 € and (12.50), and dates written any common way.

Step 2

It works out how they line up

Bijexa reads the values, not the column names. On the sample above it paired Order ID with Referenz (99.8% of IDs found in both files, leading zeros ignored) and found the amounts agree on 99.5% of rows. When it isn't sure, it says so and shows you its best guess. Every setting stays one click away.

Step 3

Read the review, keep the recipe

A verdict, each cause with its share of the gap, and every row a click away. Export CSV, Excel or Parquet, or send the one-page report. Save it as a recipe, and next month just drop in the new files.

# Prefer the terminal? Same engine, same recipes.
$ bijexa detect settlement.csv bank.csv
Rows are the same when Order ID = Referenz (ignoring case, punctuation and leading zeros): 99.8% of IDs found in both files

$ bijexa run settlement.csv bank.csv \
    --key "Order ID=Referenz" --key-normalize alnum_nozero \
    --compare "Net Payout=Betrag:0.01" --save "Marketplace vs bank"

# Next month: one line
$ bijexa run nov_settlement.csv nov_bank.csv --recipe "Marketplace vs bank"
→ matched.csv  different.csv  left_only.csv  right_only.csv  summary.json  review.json  report.html
Who it's for

How it helps you

Marketplace and e-commerce sellers

Your payout report and your bank disagree.

  • See which orders were never paid and which were paid short.
  • Read US and European number formats side by side, such as 1,234.50 and 1.234,50.
  • Combine split payouts before matching.
  • Compare a payout in euros with a bank account in dollars, at the exchange rate you choose.
Bookkeepers and accountants

Same check, every client, every month.

  • Save one recipe per client and re-run it with the new exports.
  • Hand over a one-page report instead of your working spreadsheet.
  • Client bank data stays on your machine.
Finance operations

Files Excel can't open, a method you can repeat.

  • Reconcile millions of rows the same way each period.
  • Get differences that are explained and reproducible.
  • Export Parquet or CSV for the next step in your process.
Measured

Three million rows against three million.

Measured on a 6-core machine with 15 GB of memory. It has also been run on 20 million rows a side. The benchmark script ships with Bijexa, so you can run it yourself.

3,000,000rows on the left (113 MB CSV)
2,996,991rows on the right (100 MB CSV)
9–11sto reconcile them
1.6GBpeak memory

It found exactly what we planted

PlantedCountFound
Changed amounts14,955✓ all
Missing rows9,009✓ all
Extra rows6,000✓ all

A property test on thousands of random file pairs checks that every row lands in one pile and that the breakdown adds up exactly.

Private by design

Your bank data stays where it is.

Nothing is uploadedBijexa runs on your computer and reads your files where they are. The report is a file you choose to send.

Formulas are neutralisedText like =HYPERLINK(…) in your data can't run when you open a result file.

Shared recipes are checkedA recipe with SQL text, an impossible tolerance or unknown fields is rejected with a clear message.

You can see what it didEvery pile is a file you can open, and the report lists the settings that produced it.

Pricing

Free to find the gap. Pay when it becomes your monthly routine.

Every plan explains your totals to the cent. Paid plans keep your setups for next month and connect to your books.

Free

Trying it out and one-off checks

$0forever

No card, no time limit

  • The full reconciliation engine
  • Why the totals differ, written up
  • Files of any size
  • 1 saved recipe
Download free

Standard

Sellers and solo bookkeepers

$29/ month per user

or $290 a year

  • Everything in Free
  • Unlimited saved recipes
  • Re-run every month in one click
Get Standard

Firm

Accounting firms with many clients

$199/ month for 5 users

or $1,990 a year

  • Pro for 5 users
  • Add more users any time
  • One invoice
  • Priority support
Talk to us

Early access: the first 50 customers get 40% off for as long as they stay, in return for feedback.

Prices in US dollars, per user, plus VAT or sales tax where it applies. No per-order or per-transaction fees: the price stays the same as your volume grows. Annual plans include two months free. Keys are checked on your computer, so a license works offline.

FAQ

Questions

Does my data leave my computer?

No. Bijexa reads your files locally and writes the results to a folder on your machine. This website doesn't load anything from other sites either.

Does it use AI?

No. The review comes from fixed rules that look at the numbers: the same difference on many rows, the same percentage, a constant date lag. Each one needs enough rows behind it before it's mentioned, and every finding links to its rows so you can check it. Nothing is sent to an AI service, or anywhere else.

How does it know which columns to match?

It reads the values. A column whose values turn up in the other file, and are nearly unique, is the ID; it also works out whether case, punctuation or leading zeros should be ignored. The amount is the pair of numeric columns that agree on the rows the ID pairs up, and dates the same way. Column names don't matter, so Beleg ↔ Ref works as well as Order ID ↔ Referenz. When two candidates are close, or too few IDs pair up, it asks instead of guessing.

How many rows can it handle?

There's no 1,048,576-row limit like Excel's. We've measured 3,000,000 against 2,996,991 rows in 9 to 11 seconds using 1.6 GB of memory, and 20 million rows a side in under four minutes using 3.8 GB. Name matching for rows with no shared key has been run on a million rows a side.

Can it compare dates?

Yes. Pick a date column in each file and how many days apart they may be, for example when a bank books a payment a few days after the order. It reads dates like 2024-12-31, 31.12.2024 and 12/31/2024, works out whether a file puts the day or the month first, and asks you when it can't tell.

What do I get for free?

The whole reconciliation: any file size, every format, the four answers, the breakdown of why the totals differ and the written review. Free keeps one saved recipe. Standard and Pro keep as many as you like, so each client or account re-runs in one click.

Does it work with my country's formats?

Yes. It reads amounts like 1,234.50, 1.234,50 €, 1 234,50, 1'234.50 and 12,34,567.50, and works out which a file uses. Dates can be numeric in any order, month names in English, German, French, Spanish, Italian, Portuguese or Dutch, or written 2024年12月31日 or 2024년 12월 31일. The app and its messages are in English and German.

What if my two files are in different currencies?

Give Bijexa the exchange rate, or a file of daily rates, and it converts one side before comparing. It keeps the original amounts next to the converted ones, so you can always see what was in the file. Rates never come from the internet; you choose them. A row without a rate is listed as different, with the reason, and is never dropped.

Does it connect to QuickBooks or Xero?

Yes, with Bijexa Pro, which is in early access. It downloads transactions from QuickBooks Online or Xero to reconcile, then adds notes and the report to the records in your books. You see every change before anything is written. Your data goes directly between your computer and QuickBooks or Xero. Without Pro, export a file from your accounting tool and reconcile it the same way.

What does it run on?

The desktop app runs on Windows and Linux, with nothing else to install. A macOS version is in progress. The command line runs anywhere Python 3.11 runs.

Every cent of the difference, explained.

Drop in two files. Get the reason, not just the rows, on your own computer. No setup project, no sales call.

Early access · Windows and Linux desktop app and command line · macOS in progress