Bank statement to dashboard

Any bank's CSV, charted without a subscription.

Download a CSV statement from your bank and drop it here. There is no standard for these files, so the page works out whether your bank uses one signed Amount column or separate Debit and Credit columns, resolves the date order from the data rather than guessing, and plots Balance as a line without ever summing it.

Prefer the full explorer? Open the app, or start from the generic dashboard builder.

Any amount convention
One signed column or a debit and credit pair, detected from the file itself.
Date order resolved
The whole column is scanned before a format is chosen, so no silent day and month swap.
Balance plotted, never summed
It is a running total, so it becomes a line rather than a metric.
Never uploaded
This is your bank account. It is read in the browser tab and goes nowhere else.

There is no such thing as a standard bank statement CSV

Every bank invented its own format and none of them agreed. Some give you a single Amount column with negatives for money out. Some give Debit and Credit as separate columns with one always blank. Some give both, which is helpful right up to the moment they disagree by a rounding difference. Dates arrive as DD/MM/YYYY, MM/DD/YYYY, YYYY-MM-DD or, occasionally, a format nobody outside that bank has ever seen. Some files have a preamble with the account number and statement period; some start straight at the header.

Descriptions are their own genre. They are truncated, usually uppercase, and frequently have a merchant reference, a store number and a card suffix glued onto the end, so the same coffee shop appears as four different strings. That is why merchant analysis on a raw statement is disappointing and why grouping on a category column, when your bank provides one, is worth so much more than it looks.

How to export from bank statement

  1. Sign in to your online banking Find the statement or transaction history for the account you want. Most banks put a download or export control near the transaction list.
  2. Choose CSV rather than PDF or OFX CSV is the one that loads here directly. If your bank only offers PDF, the PDF to CSV converter linked below extracts the table first.
  3. Pick the widest date range offered Many banks cap a single download at three or twelve months. Take the maximum and merge several files if you want a longer view.
  4. Check the top of the file Open it in a text editor and see whether the first line is a header or an account summary. This page handles a preamble, but it is useful to know what you have.
  5. Drop it here The amount convention and date order are detected, Category and Description become dimensions, and Balance is drawn as a line.

Pending transactions may or may not be included depending on the bank, and they can change or vanish. If a total will not reconcile against your app, this is a common reason.

Try with sample bank statement data (the same columns, 118 rows, no upload needed).

What the dashboard shows

Every panel below is built from a column that is actually in the export, named the way bank statement names it.

  • Money in against money out. Two series over time, which is the picture that answers whether a month worked, before any categorization.
  • Spending by category. Where the bank supplies one, ranked. It is imperfect but it beats trying to derive categories from truncated merchant strings.
  • Top merchants. The Description column ranked, with the caveat that the same merchant often appears under several strings.
  • Balance over time. A line, not a total, which shows the shape of the month and where it got tight.
  • Recurring payments. Amounts that repeat at roughly monthly intervals, which is how you find the subscription you forgot about.
  • Largest transactions. Ranked in both directions, because a single unusual line explains more months than any average does.
Sample header row
Date,Description,Category,Debit,Credit,Amount,Balance,Reference

What varies between banks, and what to do about it

  • Amount conventions differ. A single signed column, a debit and credit pair, or both. When both are present they occasionally disagree by a penny, and the signed column is usually the one to trust.
  • Date formats differ. Day first, month first or ISO, with nothing to indicate which. Ambiguous for the first twelve days of every month, which is when a wrong guess does its damage quietly.
  • Descriptions are truncated and noisy. Uppercase, cut to a fixed width, with store numbers and reference codes appended. The same merchant produces several distinct strings.
  • Balance is a running total. Chart it, never sum it. It also depends on the row order, so a file sorted newest first produces a balance line that runs backwards.
  • Some files carry a preamble. Account number, sort code, statement period and a blank line before the real header. A parser assuming line one is the header gets nothing usable.
  • Pending transactions are inconsistent. Included by some banks, excluded by others, and subject to change either way. They are the usual reason a downloaded statement will not reconcile against the app.

Let the file tell you its own conventions, group on the category column if your bank gives you one, and treat the merchant strings as a rough guide. That is as good as bank statement analysis gets without a paid aggregator, and it costs nothing.

Frequently asked questions

Will this work with my bank?

Almost certainly, because the page reads conventions from the file rather than expecting a specific bank. It detects whether amounts are in one signed column or a debit and credit pair, works out the date order from the data, and skips a preamble if there is one. What it cannot invent is a category column, so if your bank does not supply one, that panel will be empty.

Is it safe to put my bank statement into a website?

Generally no, which is precisely why this one has no server. The file is parsed by JavaScript inside your browser tab and nothing is transmitted anywhere. A statement reveals your income, your spending, your balance and often your address through merchant patterns. Any tool that asks you to upload one is asking for a great deal of trust, and this one does not ask.

Why do my dates look wrong?

Because your bank writes day first and something along the way assumed month first, or the reverse. For dates above the twelfth this usually causes a visible failure. Below the twelfth it silently produces a plausible wrong date, which is worse. This page scans the whole column looking for a value above twelve in either position before committing to a format.

Can I merge several months into one file?

Yes, and you will often have to, since many banks cap a single download at three or twelve months. Download each range, combine them with the CSV merger, then deduplicate on the reference column in case the ranges overlap at the boundaries, which they frequently do by a day. Then load the combined file here.

Why does the same shop appear several times?

Because descriptions are truncated and carry appended detail: a store number, a card suffix, a payment reference. The same coffee chain can appear as four distinct strings that no exact grouping will combine. If your bank provides a Category column, prefer it. Otherwise you can clean the descriptions first, though it is fiddly and rarely worth it for a one-off look.

Can I chart my balance?

As a line over time, absolutely, and it is one of the more useful panels here because it shows the shape of a month rather than its total. What you must never do is sum or average it, since it is the account state after each transaction. Note also that it depends on row order, so a file sorted newest first needs reversing before the line makes sense.

See a statement charted without uploading yours

118 transactions across a quarter, both a signed amount and a debit and credit pair, day-first dates, categories and a running balance.

Open the sample bank statement dashboard