Xero export to dashboard

Two columns for one number, put back together.

Export account transactions from Xero and drop the CSV here. Xero splits every amount across a Debit column and a Credit column, so one of the two is always blank and neither can be charted alone. This page combines them into a single signed value, parses the DD/MM/YYYY dates correctly, and uses Account Code rather than Account Name as the stable grouping key.

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

Debit and credit merged
One signed amount column, checked against Net where the export includes it.
DD/MM dates parsed
The whole column is scanned before a format is chosen, so April is not read as March.
Account Code as the key
Stable across renames, unlike Account Name which anyone can edit.
Nothing leaves the tab
Contact names and account detail are read locally and never transmitted.

Double entry is correct and inconvenient

Xero writes its exports the way an accountant reads a ledger: a debit column and a credit column, with a value in exactly one of them per row. That is faithful bookkeeping and it is unusable as a chart series, because half your data is missing from whichever column you pick. The Net column helps, but its sign convention depends on the report, and plenty of Xero exports do not include it at all.

The reliable move is to combine: credit minus debit, or debit minus credit depending on which direction you want positive, and check the result against one transaction you recognize. Once you have a single signed column, everything else in the file is pleasant to work with. Account Code is a stable key that survives someone renaming an account, tracking categories give you the departmental split that most small businesses otherwise lack, and the Reconciled flag tells you how much of the period you can actually trust.

How to export from Xero

  1. Open Accounting, then Reports Sign in at xero.com, and from the Accounting menu choose Reports. Account Transactions is the report with the row-level detail this page expects.
  2. Set the date range and accounts Leave the account selection as all accounts unless you specifically want a subset. Filtering here removes the ability to compare accounts later.
  3. Add tracking categories as columns If you use tracking, add the category as a column before exporting. It is the single most useful dimension in the file and it is not there by default.
  4. Export to CSV The export control offers CSV, Excel and PDF. Take the CSV. The Excel version applies number formatting that can turn the currency columns into text.
  5. Drop it on this page Debit and Credit are combined, Account Name and Tracking Category become filter chips, and the reconciled share appears in the summary.

The currency is baked into the column names, as in Debit (GBP), so a multi-currency organization produces different headers per report. Nothing in the file converts between them.

Try with sample Xero data (the same columns, 108 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 Xero names it.

  • Income against spend over time. Date on the axis with the combined signed amount, split into positive and negative so the two sides are legible.
  • Spend by account. Grouped on Account Code with the name as a label, so a renamed account does not fragment into two series.
  • Tracking category split. Where you use tracking, this is your department or project view and it is the reason to bother with the export at all.
  • Tax collected and paid. Tax Amount grouped by Tax Rate, which separates standard-rated from zero-rated and no-VAT activity.
  • Top contacts. The Contact column ranked in both directions, which is your biggest customers and your biggest suppliers on one panel.
  • Reconciliation status. The Reconciled flag as a share, which tells you how much of the period has actually been checked against the bank.
Sample header row
Date,Reference,Description,Contact,Account Code,Account Name,Tracking Category 1,Debit (GBP),Credit (GBP),Net (GBP),Tax Rate,Tax Amount (GBP),Gross (GBP),Source,Reconciled

Xero export details worth knowing

  • Debit and Credit are separate columns. One is always empty. Charting either alone shows you half the ledger, and the half depends on which side of the books you happened to pick.
  • Dates are DD/MM/YYYY. Xero's default across most regions. An importer assuming month first misreads every date up to the twelfth of the month and fails on the rest.
  • The currency is inside the header. Debit (GBP) rather than Debit. A multi-currency organization gets different column names per report, which breaks any script matching on exact names.
  • Account Name is editable, Account Code is not usually. Rename an account and every historical export changes its label. Grouping on the code keeps a series intact across the rename.
  • Tracking category columns are named after your categories. Tracking Category 1 in a generic export, but often the actual category name. Two organizations produce different headers for the same concept.
  • Reconciled is a status, not a guarantee. It means somebody matched the line to a bank statement, which is a much better signal than nothing and still not an audit.

Combine the two amount columns, group on the code rather than the name, and glance at the reconciled share before you present anything. Xero exports are clean once you have done the first of those.

Frequently asked questions

How do I combine the Debit and Credit columns?

Subtract one from the other to get a single signed value. Which direction you choose depends on whether you want expenses positive or negative, so pick one, apply it consistently, and check the result against a transaction you recognize. If the export includes a Net column, reconcile against that as a sanity check, since it already encodes Xero's own convention.

Why are my dates a few days out?

Xero writes DD/MM/YYYY by default in most regions, and importers that assume the American month-first order misread every date where the day is twelve or below. Above twelve they usually fail outright, which is at least visible. This page scans the entire column for a first component above twelve before deciding, which resolves almost every real file.

Should I group by Account Name or Account Code?

Account Code. Names are editable and get tidied up periodically, which fragments a historical series into two labels for one account with nothing linking them. The code is the stable identifier that survives renames. Group on the code and use the name as a display label, which gives you readable charts and continuity at the same time.

What are tracking categories?

Xero's mechanism for a departmental, project or location dimension without creating separate accounts for each. If your organization uses them, they are the most valuable column in the export, because they turn a flat list of transactions into a comparison between parts of the business. They are not included by default, so add them as columns before you export.

How do I handle multiple currencies?

Carefully, because the export does not convert. The currency is written into the column names themselves, so a report in GBP and one in EUR have literally different headers. There is no conversion column of the kind Stripe provides. Export per currency and analyze them separately, or convert outside using rates you have chosen deliberately.

Is my ledger data safe here?

It never leaves your machine. The export lists every contact you trade with, every account you use and what moved through each, which is a fairly complete description of a business. Parsing happens in the browser tab, no request carries the file anywhere, and there is no account to create. Closing the tab clears it.

Merge the two amount columns and see the ledger

108 lines across a quarter, income and expenses, VAT rates, tracking categories and a realistic proportion still unreconciled.

Open the sample Xero dashboard