Importing from a file, explained.
When Actuly does not connect to a company's books, its numbers come in from a file, in one of two forms. Either month-end balances, a trial balance with one row per account per month, or ledger transactions, every journal line, which Actuly adds up into monthly balances for you. The difference that matters is dimensions: a trial balance gives one figure per account for the whole company, while each transaction carries its department, cost centre or other tag, so reporting by dimension needs the transactions. This guide covers both: what each file needs, how it is read, what to check before you press Import, and what a re-import changes.
Sample of your file - use it to match columns
| PeriodDate | GL CodeNominal Code | - Ignore -Description | DebitDebit | CreditCredit | Dimension: RegionRegion |
|---|---|---|---|---|---|
| 03/04/2026 | 1200 | Shop takings | 14,250.00 | ||
| 03/04/2026 | 4000 | Shop takings | 14,250.00 | North | |
| 08/04/2026 | 7100 | April rent | 31,500.00 | North | |
| 15/04/2026 | 5000 | Stock purchase | 9,800.00 | North | |
| 22/04/2026 | 4100 | Web sales | 6,420.00 | Online | |
| + 2,315 more rows - you'll check the full data on the next step | |||||
A ledger export, one row per journal line. Every column in the file gets a dropdown. Actuly fills them from the header names, and anything it should not read, such as the Description, is set to Ignore. Home & Garden Retail Co is an example company.
1. Which files, in which order
Dimensions and accounts first, then the numbers. A figure can only land somewhere Actuly already knows.
Xero, QuickBooks and FreeAgent connect directly, and the Getting Started guide covers them. Everything else, Sage and NetSuite included, comes in from files.
The numbers come one of two ways. As month-end balances, one row per account per month, or as ledger transactions, every journal line for the period. A trial balance carries no dimension tags, so a company that wants to report by Region, Department or any other dimension imports its transactions. Actuly takes either through the same importer, and section 3 helps you choose.
Two ways in. On a new company's welcome panel, pick Sage, NetSuite or Other and press Start manual import. Actuly creates a job with a step for each file, so you can leave and come back from the Jobs tab. Or go straight to the settings pages: Settings, Chart of Accounts has Import on the menu at the top right, and Settings, Trial Balance has an Import button.
The files. CSV, or Excel (.xlsx or .xls). If a workbook has more than one sheet, Actuly asks which one holds the data. Columns can be in any order and called anything, because you match them up on the next step. A file can hold several months at once.
Every import runs the same four steps: Upload, Map columns, an optional Dimensions step, then Review & import. Nothing is saved until you press Import on the last step, so you can back out at any point.
Dimensions
The ways the company tags its transactions, such as Departments or Events. Just the names: the values come from the file.
Chart of accounts
Every account with its code and name. Each is matched to a reporting line, and that mapping drives every report.
Opening balances
A trial balance for the month before your first month of data. Skip it if your data starts at the company's very first transaction.
The numbers
Either the ledger transactions for the period, which Actuly adds up into monthly balances, or a month-end trial balance for each month.
The order the manual import job walks you through, after a first stage for the company's details. Before step 3 it asks "Do you want to include an Opening Balance first?", and only asks for the file if you say yes. Reporting lines can come from a file too, covered in section 5.
2. Dimensions first
Create the dimensions before you import. Their values come from the file.
A dimension is a way the company tags its transactions, such as Departments, Region or Events. Actuly needs the dimension before it can read the tags, but never needs you to type the values.
Each tag column needs a dimension to land in. On Map columns, Actuly offers a column option for every dimension the company already has, such as Dimension: Region or Dimension: Events. A column of event tags in your export can only be mapped if an Events dimension exists. Without one, the only choice is Ignore, and those tags never reach Actuly.
So the dimensions come first. The manual import job asks for them in its Reporting Dimensions stage, straight after the company's details and before the chart of accounts. Press Configure Dimensions, type the name of each dimension your accounting system tags transactions with, such as Departments or Events, and press Add. Then Done, and Mark Complete on the task. Outside a job, add them on Settings, Reporting Dimensions.
You create the dimension, not its values. When you import, the Dimensions step lists every value in the file that Actuly has not seen yet, such as Summer Fair or Christmas Market, and creates them for you. Fix any typos there; reorganise the values on the Reporting Dimensions page afterwards.
Name it the way your file does. A column headed Department maps itself to a dimension called Departments, so a matching name saves a step every month.
Configure dimensions
✕Create the dimensions this company reports by, for example Departments or Events. Their values are filled in when you import the trial balance.
New values found in your file will be created when you import. Fix any typos here - deeper re-organising is done on the Reporting Dimensions page afterwards.
3 new values will be created:
Summer FairChristmas MarketSpring Open DayTop: the job's Reporting Dimensions step. Only the name is typed. Below: the import finds three events in the file and creates them. Home & Garden Retail Co is an example company.
3. Balances or transactions?
Two kinds of numbers file. Only one carries your dimensions.
A transactions file lists what moved. A balances file lists where each account stood at month end. Actuly reads either, and you tell it which on the review step.
How to choose. It comes down to dimensions. A trial balance holds one figure per account for the whole company, with no tags. In Sage and systems like it, each transaction is tagged with its department, cost centre or project, and Actuly keeps those tags apart when it adds the lines up into monthly balances. So if you want to report by dimension, import the transactions. Month-end balances are enough when you only need company totals, or when your system can export a trial balance per department and you add the department as a column.
Actuly guesses for you. On the review step, the card What's in this file? is already set. If the dates in the Period column fall on more than three different days of the month, Actuly picks Ledger transactions; otherwise it picks Month-end balances. Click the other option if it guessed wrong.
The April ledger falls on many different days, so Ledger transactions is pre-selected. Actuly has found March's trial balance to start from.
Side by side
| Ledger transactions | Month-end balances | |
|---|---|---|
| One row is | One journal line. | One account at one month end. |
| The amount is | What moved on that line. | The account's balance at month end. Profit and loss accounts are year to date. |
| Actuly | Adds the lines up into monthly balances, carrying on from the month before. | Stores the figures as they are. |
| You need first | The chart of accounts, and a trial balance for the month before your first transaction, imported as month-end balances. Skip it only if the company had no transactions before. | The chart of accounts. Start at the beginning of a financial year, or import the month before too. |
| Year end | One file must not cross the company's year end. Split it there. | Any span. The year end decides which month starts afresh. |
| Dimensions | Come through. Each line carries its tag, and the monthly balances keep each value apart. | Usually none. One figure per account for the whole company, unless your export has a column per dimension. |
| Period column | The transaction date, such as 03/04/2026. | The month, such as Apr-26, or a month-end date. |
| Signs | Signed already. The signs question is not asked. | Signed, or Management style if income shows as positive. |
| A missing account code | Blocks the import, with a red warning, until you add the account or untick its rows. Add the account, because leaving lines out makes the balances wrong. | Flags its rows. Add the account, or untick them. |
4. The numbers file
The same columns either way. Only what they hold differs.
Three things are required: a date, the account code, and an amount. The rest is optional.
| Column on screen | Required | What goes in it |
|---|---|---|
| Period | Yes | For transactions, the transaction date. For balances, the month. Either way, each row is treated as part of its month. |
| GL Code | Yes | The account code from your ledger, the same for both kinds. It must already exist in the company's chart of accounts, matched exactly (capitals and spaces at either end are ignored). |
| Amount | Amount, or Debit and Credit | A signed figure, brackets or a minus sign for credits. For transactions, the line's movement. For balances, the month-end balance. |
| Debit, Credit | Amount, or Debit and Credit | Two columns instead of one Amount. Actuly takes credit from debit. If Amount is mapped as well, Amount wins. |
| Dimension: Region | No | One per reporting dimension the company has, named after it. Tags each row with a value, such as North or Online. In a transactions file each line carries its own value, and the monthly balances keep them apart. See the Dimensions guide. |
| Dimension: Region ID | No | The source system's ID beside the name, so a value renamed at source still matches. Only works alongside the name column. |
If it holds ledger transactions
Each row is one journal line. Actuly adds every line up per account and month, and stores the result the way a trial balance would: balance sheet accounts at their closing balance, profit and loss accounts year to date.
It needs a starting point. A ledger only records what moved. Before your first transactions file, import the trial balance for the month before your first transaction, as month-end balances. For a file starting in April 2026, that is March 2026. If it is missing, the review step says "no opening trial balance for Mar 2026" and Import is blocked. Profit and loss accounts only carry over when the file starts part way through a financial year.
Each file builds on the month before. Once April is in, a May file starts from April automatically. Import transactions files in date order.
- No opening balance? Only if the company truly had no transactions before, choose Start from zero instead, then Yes, start from zero. If it did trade, every balance sheet figure will be wrong.
- One file must not cross the company's year end. With a March year end, a January to June file is blocked: split it into January to March and April to June, and import each separately.
- Every code must be in the chart of accounts. A missing one shows "GL codes missing from the chart of accounts - import is blocked", because every line must land on a real account or the balances worked out from them are wrong. Add the accounts rather than unticking the rows.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Date | Code | Description | Debit | Credit |
| 2 | 03/04/2026 | 1200 | Shop takings | 14,250.00 | |
| 3 | 03/04/2026 | 4000 | Shop takings | 14,250.00 | |
| 4 | 08/04/2026 | 7100 | April rent | 31,500.00 | |
| 5 | 08/04/2026 | 1200 | April rent | 31,500.00 | |
| 6 | 15/04/2026 | 5000 | Stock purchase | 9,800.00 | |
| 7 | 15/04/2026 | 1200 | Stock purchase | 9,800.00 | |
| 8 | 22/04/2026 | 1200 | Web sales | 6,420.00 | |
| 9 | 22/04/2026 | 4100 | Web sales | 6,420.00 |
A ledger export: several lines in one month, each pair balancing. Actuly adds them up into April's balances, starting from March. The Description column is not needed and can be set to Ignore.
If it holds month-end balances
What the amounts are. A month-end trial balance, exactly as your accounting software prints one: balance sheet accounts at their closing balance, and profit and loss accounts year to date, from the start of the financial year. Actuly works out each month's figure by taking the previous month away, and starts again in the first month of the year. That is why the company's year end must be right.
Signs. Actuly stores balances the way accounting software sends them: debits positive, credits negative, so sales show as a negative. If your file shows income as a positive number, choose Management style on the review step (section 6). If you map Debit and Credit columns instead of one Amount, the file is signed already.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Period | GL Code | Account | Amount |
| 2 | May-26 | 1200 | Bank current account | 92,310.00 |
| 3 | May-26 | 4000 | Shop sales | (851,400.00) |
| 4 | May-26 | 4100 | Web sales | (279,800.00) |
| 5 | May-26 | 5000 | Cost of sales | 562,300.00 |
| 6 | May-26 | 7100 | Rent | 63,000.00 |
| 7 | Jun-26 | 1200 | Bank current account | 101,870.00 |
A signed trial balance. With an April year start and April's shop sales at £412,600, May's £851k is two months to date; Actuly reports May on its own as £439k. The Account column can be set to Ignore.
Writing the date
Dates are read the UK way, day first. An Excel date cell is always safe, because Actuly reads the date underneath rather than how the cell displays it.
| Works | Does not work |
|---|---|
| Jun-26, Jun 26 | Jun-2026 |
| Jun 2026, June 2026 | 2026-06 |
| 30/06/2026, 06/2026 | 30-06-2026 |
| 2026-06-30 | 6/30/2026 (US style) |
Number formats. Amounts can be written 1,234.56, 1.234,56 or 1 234,56. Actuly works out which from the file. Brackets mean negative, so (412,600.00) reads as -412,600.00. Leave out currency symbols: "£1,234.50" is read as not a number.
5. The chart of accounts file
A code and a name per account. The reporting line can come now or later.
The chart of accounts is the list every numbers file lands on. The Getting Started guide explains mapping. This is what the file itself needs.
| Column on screen | What goes in it |
|---|---|
| GL Code | Required. The account code. This is how a row finds an existing account. |
| Title | The account name, such as Shop sales. Names new accounts only. |
| Description | A longer description, if your ledger has one. |
| Reporting Line | The Actuly reporting line, by name. Leave it unmapped on a first import and assign lines in the review table or afterwards. |
| Unit | Assigns the whole account to one unit, by name. Optional. |
Names are matched, not created. Reporting Line and Unit cells must name something that already exists. Actuly tries an exact match first, then the first name that contains the text, so "Sales" could land on Retail sales. Write names in full. A cell that matches nothing shows "Reporting Line "…" not matched" and you pick the line from the dropdown in that row.
Let Actuly match. When rows arrive with no reporting line, the review step offers to match them. Every suggestion is tagged AI so you can check it, and two chips, AI matched and still unmapped, filter the table. Columns you set to Ignore, such as an account type from your old system, are passed to the matching as hints, so leave them in the file.
| Include | Status | GL Code | Title | Reporting Line | Unit |
|---|---|---|---|---|---|
| New | 7210 | Reading store rent | PremisesAI | North > Reading | |
| New | 7215 | Reading store rates | PremisesAI | North > Reading | |
| Update | 4100 | Web sales | Online sales | Online | |
| Unchanged | 4000 | Shop sales | Retail sales |
Rows that match an existing account show Update or Unchanged. Unchanged rows are unticked for you, so only the three that change are imported.
Export, edit, re-import
The safest file to re-import is one Actuly wrote. On Settings, Chart of Accounts, open the menu at the top right and choose Export to CSV. The file, chart_of_accounts.csv, carries every account in the list with its reporting line and unit by name, plus each account's Actuly ID.
Edit it in a spreadsheet, then choose Import from the same menu. Every column maps itself, and the ID column ties each row to its account, so nothing is duplicated. Because the ID does the matching, you can even correct an account's code this way.
The three columns ending in _id are Actuly's internal references. The importer leaves them on Ignore, and you can too.
The exported file. reporting_line and business_unit are the columns that matter on the way back in: they map to Reporting Line and Unit. A unit inside another is written Parent > Child.
6. Importing and checking
The review step shows every row before anything is saved.
Import stays greyed out until every ticked row is clean. Fix a row in place, or untick it to leave it out.
The chips across the top count the rows: ready, with errors and excluded for a numbers file; new, updated and unchanged for a chart of accounts. Click one to filter the table to those rows. Select all and Deselect all act on every row the filter shows, which is the quick way to drop a block of rows. Every cell can be edited, and the Problems column says what is wrong.
The Dimensions step comes before the review when the company has reporting dimensions. It lists each value in the file that does not exist yet, so you can fix a typo before it becomes a new unit (see section 2). Rows with no value land in the Uncategorised row under their reporting line. The exception is an account given a Unit in the chart of accounts: in that unit's dimension, all its rows go to that unit, even rows the file tags with another value.
Above the table, a numbers file import asks up to three questions, each answered from the file, each yours to change:
- What's in this file? Month-end balances or Ledger transactions, pre-selected from the dates. Section 3 explains the choice.
- How are your amounts written? 1,234.56, 1.234,56 or 1 234,56, with the first figure in your file shown as Actuly reads it. If it looks a thousand times out, pick the other style.
- How are your amounts signed? Signed trial balance, or Management style if income and costs are both positive. Management style flips the right lines for you, using each account's reporting line, so accounts without one import exactly as written. Not asked for a transactions file, or when Debit and Credit are mapped, because those are signed already.
One card per month shows how many lines it holds, whether it is a new period or will replace an earlier version, and whether it balances. Click a card to see only that month's rows. Being out of balance does not stop the import. It is a prompt to check for a missing row or a wrong sign.
| Include | Period | GL Code | Amount | Problems |
|---|---|---|---|---|
| 2026-05-31 | 7215 | 4,200.00 | GL code 7215 not found for Home & Garden Retail Co | |
| 2026-05-31 | 7100 | 63,000.00 |
A month-end balances file. Rates for the new Reading store arrived before its account did. Add 7215 to the chart of accounts and press Re-check, or untick its two rows.
Messages you may see
| Message | What it means and what to do |
|---|---|
| Still needed: Period, GL Code | On Map columns: a required field has no column. Choose it from a column's dropdown. |
| Map an Amount column, or Debit and/or Credit columns | No column holds the figures yet. |
| GL code 7215 not found for … | The account is not in the chart of accounts. Add it, in another tab if you like, then press Re-check: the rows are checked again without starting over. |
| Unrecognised date "…" | The date is in a form Actuly cannot read. See the table in section 4. |
| "…" is not a number | Usually a currency symbol or a stray word in an amount. Edit the cell or fix the file. |
| GL Code cannot be empty | The row has no account code. Total rows at the bottom of an export usually land here: untick them. |
| Amount cannot be empty | The row has no figure. Type 0, or untick it. |
| Duplicate of an earlier row | Chart of accounts and reporting lines only: the same code (or Ref) appears twice. Untick one. |
| no opening trial balance for … | Transactions files only. Import the month before as month-end balances first, then re-check. |
| Home & Garden Retail Co: this file crosses a fiscal year end | Transactions files only. Split the file at the year end. |
After you press Import
A numbers file import confirms with the months it saved and their version numbers, for example "3 periods imported: Home & Garden Retail Co Apr 2026 (v2), …". The company's reports are then refreshed in the background. A chart of accounts import reports how many accounts were added, updated and left unchanged.
What to check
- Settings, Trial Balance: choose the dates and press Find. Every month you expected is there.
- Settings, Chart of Accounts: look for accounts with an empty Reporting Line. They are left out of every report until they have one, and the company shows an amber Unmatched accounts pill on the Companies list until then.
- Performance: read a month you know well against the figures in your old system. A wrong number is almost always a mapping, and fixing the account fixes every month.
- The first month of the year: its P&L should look like one month, not a full year. If not, check the year end.
7. Re-importing and gotchas
A numbers re-import replaces whole months. A chart of accounts re-import updates accounts.
Both are safe to repeat, as long as you know what each one overwrites.
Months are versioned. Each month in a file becomes a new version, whichever kind of file it came from, and the newest one is what every report reads. Earlier versions are kept: on Settings, Trial Balance, the Import Date/Revision dropdown shows each one by the time it was imported. The catch is that a version is the whole month. Re-import only the accounts that changed and every other account in that month drops out. Always re-import the full month.
Rows add up. If an account appears twice in the same month of a balances file, Actuly adds the two together. That is right for a file split by dimension, and wrong if your export repeats an account or carries subtotal rows.
Transactions files build on the month before. Each month's balances are worked out from the previous month plus the movements. Correct an earlier month by importing it again, then re-import every later month too, in order, or they keep the old starting point.
| On a chart of accounts re-import | What happens |
|---|---|
| GL Code | Finds the account. Changes it only when the row also carries the Actuly ID. |
| Title | Kept. The file's title only names new accounts, so rename an existing account on the Chart of Accounts page. |
| Description | Replaced, and cleared if the column is unmapped. |
| Reporting Line | Replaced, and cleared if the column is unmapped. |
| Unit | Replaced, and cleared if the column is unmapped. |
| Accounts not in the file | Untouched. A re-import never deletes or archives. |
Gotchas worth knowing
| Topic | What to know |
|---|---|
| Year end | Set it before you import. A balances file stores what your ledger reported, and the year end decides which month starts afresh. A transactions file is added up using the year end set at the time, so after changing it, re-import transactions files. |
| Gaps | Import every month. Actuly works out a month by taking away the last month it holds, so the month after a missing one shows both months' movement as its own, and the missing month shows nothing. If the missing month is the first of the financial year, the next month's figure is wrong. |
| Starting mid-year | In a balances file, the first month you import counts its full year to date as one month. Start at the beginning of a financial year, or import the month before as an opening balance. |
| Leading zeros | Codes must match exactly. If a spreadsheet turns 0100 into 100, Actuly cannot find the account. Keep the code column as text. |
| Currency symbols | Remove them from amounts, including Excel cells formatted as currency. |
| Partial names | "Sales" in a Reporting Line cell can match the first line containing it. Write names in full. |
In short
Dimensions and accounts first, full months always, and check the review step before you press Import.
- CSV or Excel, columns in any order. You match them on screen.
- Create each dimension before importing, so its column has somewhere to map. Its values are created from the file.
- The numbers come as ledger transactions or as month-end balances. Either needs Period, GL Code and an Amount, or Debit and Credit.
- A transactions file needs the month before as an opening trial balance, and must not cross the year end.
- A balances file holds the balance sheet at closing balance and the P&L year to date.
- Every code must be in the chart of accounts before its figures can land.
- A re-imported month replaces the whole month, so send all of it.
- Re-import a chart of accounts from Actuly's own export, so the Reporting Line and Unit columns come with it.
More guides
Keep going
Getting Started
Companies and licences, connecting your accounts, year end, mapping the chart of accounts, first reports.
All help guides
Every guide, grouped by what you are doing.
Still stuck? Contact support and we will get back to you.