Skip to content
This module is in Early Access. It is available to organisations that have been granted it, and the interface described here may still change.

Bringing your existing books

You already keep books somewhere else — QuickBooks, Xero, Sage, a spreadsheet, a shoebox with ambitions. This guide moves those books into Horizon Finance so that on day one:

  • your trial balance in Horizon matches the one you left behind;
  • your open invoices and open bills exist as real documents, so AR aging, AP aging, and collections have something to work with;
  • every number in Horizon traces to something you can open and read.

You will do this by hand. Horizon has no opening-balance importer today, and this guide will not pretend otherwise. What it gives you instead is a method that is short, checkable, and hard to get wrong: one journal entry for the balances, one document per open invoice and open bill, and a suspense account that must end at zero. If the suspense account is zero and your trial balance ties, the conversion is right.

Budget an afternoon for a small business. The slow part is typing.

From your old system, as of the last day you will use it:

  1. A trial balance — every account, with its debit or credit balance. Print it or export it.
  2. An open AR list (aged receivables detail) — every unpaid customer invoice, with its original invoice number, invoice date, due date, and the amount still outstanding.
  3. An open AP list (aged payables detail) — the same for unpaid vendor bills.
  4. Your bank reconciliation — the list of cheques and deposits that have not cleared. You do not enter these during conversion, but you will want them when you do your first bank reconciliation in Horizon.

In Horizon you will need a login that can post to the general ledger, open fiscal periods, create accounts, and post invoices and bills. If a button in this guide is missing or greyed out for you, that is the reason — ask whoever administers your Horizon organization.

Everything in this guide is inside the Finance group in the left sidebar. The screens you will use:

Screen Where it is What you use it for
Fiscal Periods Finance › General Ledger › Fiscal Periods Making sure the month you are converting into exists and is open
Fiscal Calendars Finance › Setup & Configuration › Fiscal Calendars Only if your fiscal year does not start in January
Chart of Accounts Finance › General Ledger › Chart of Accounts Checking your account list; adding the suspense account
Control Accounts Finance › General Ledger › Control Accounts Confirming which GL accounts AR and AP post to
Journal Entries Finance › General Ledger › Journal Entries The opening trial balance
Customers / Vendors Finance › Accounts Receivable / Accounts Payable The people you owe and who owe you
Invoices / Bills Finance › Accounts Receivable / Accounts Payable The open items
Trial Balance Finance › Reporting & Planning › Trial Balance Proving it tied
AR Aging / AP Aging end of the AR / AP sections Proving the open items landed
Financial Statements Finance › Reporting & Planning › Financial Statements Balance sheet and P&L

Each of these screens has its own guide — General Ledger, Accounts Receivable, Accounts Payable, Financial Reporting — and the period machinery is explained in Periods and Close. This guide covers only what a conversion needs from each.


Your conversion date is the first day you do real work in Horizon. Everything dated before it is history you are carrying over; everything dated on or after it is bookkeeping you do in Horizon from now on.

No Finance screen you can reach has a conversion-date setting. There is no field to fill in, no wizard to run, nothing to switch on. This is a decision you make and then stick to — a convention, not a feature. (If you go looking, the only “conversion date” you will find is in the CRM, where it records when a sales lead converted. It has nothing to do with your books. Finance does model a cutover date internally, on a migration-program record, but that whole surface is switched off and cannot be created from the UI.) Write your conversion date on a sticky note; that is the whole implementation.

Everything that follows keys off two dates:

  • The conversion date — say 1 September 2026. Your first Horizon transaction is dated here.
  • The opening date — the day before, 31 August 2026. Your opening balances are dated here, and so is every open invoice and bill you carry over (they keep their original dates, which are all earlier than this).

Horizon keeps a fiscal calendar made of fiscal periods — normally one per month. Every journal entry and every posted document lands in exactly one period, and a period has a status that decides whether anything may land in it at all:

Status What it means for you
Future Nothing can be entered. Not even a draft.
Open Normal — everything works.
Soft close The close team is working. Documents stop; privileged journal entries still go in.
Hard close The month is signed off. Nothing posts.
Locked Permanent. Nothing posts, ever.

Two consequences for a conversion, and they are the two things most likely to stop you:

  1. A date with no period behind it is a dead end. Post an invoice or a bill dated in a month Horizon has no period for and it refuses: No fiscal period covers journal date 2025-12-31 for this legal entity. On a journal entry the same problem shows up earlier — the period you need is simply not in the picker.
  2. A brand-new period starts life as Future, and a Future period rejects even a saved draft. The database itself blocks it: cannot post journal to period (id=…, status=future); period has not started. You must open the period first.

How far the calendar reaches — read this before you pick a date

Section titled “How far the calendar reaches — read this before you pick a date”

When Finance is switched on for your organization, Horizon builds a January–December calendar with twenty-four monthly periods — the fiscal year you are in and the one after it — named FY2026 Period 1 through FY2027 Period 12. All twenty-four are created Open, and every legal entity you own gets its own calendar, including any company you add later.

Two years is the deliberate size of that runway: it covers a December signup that has to post in January, and a year-end close where last year stays open for adjustments while the new year is already posting. Then it stops. Extending an established organization’s calendar beyond it is a finance-team job on the periods screen, not something that happens by itself.

So:

  • A conversion date in the current or next fiscal year works with no setup at all. This is the easy path. Take it if you can.
  • A conversion date in an earlier year, or any prior-year comparative, needs periods you create by hand — one at a time, then opened one at a time. See §4 for what that costs.

If your fiscal year does not start in January, the twenty-four periods follow your year rather than the calendar one — FY2026 Period 1 is the first month of your fiscal year. Set the start month before Finance provisions the calendar; see the note below.

Read this before you pick a date if anything you key will be dated in an earlier year.

Documents that Horizon numbers for you — invoices, journal entries, cash receipts, payment runs — take both the year in the number and the counter they draw from out of the document’s own date. There is one counter per document type, and it restarts when a document’s date moves it into a new bucket — a new year, on the default annual cadence.

That restart is forward-only. A backdated document cannot rewind a counter that has already moved on, so it cannot corrupt numbers you have already issued or make a later document fail to save. What happens instead is that Horizon declines to auto-number the backdated document, and says so at the point you save it:

Cannot auto-number this invoice: its date falls in an earlier numbering period (2025) than the one the invoice sequence has already advanced to (2026). Restarting the counter there would re-issue numbers that period already used.

This only happens when you leave the number blank and ask Horizon to assign one. Three ways through:

  • Convert inside the current year and it never arises — it needs a document dated in a different year from the ones already numbered.
  • Type the number yourself. A number you supply is used verbatim and consumes no counter, so the document’s date stops mattering. For converted documents this is the natural answer anyway — they already have their own numbers. The procedure is §3.2.
  • Set that sequence’s Reset Cadence to none if you would rather Horizon kept assigning numbers to backdated documents. The series then never restarts, so there is no earlier bucket to refuse.
  1. Open Finance › General Ledger › Fiscal Periods. You will see a list with Fiscal Year, Period Number, Period Name, and Status.
  2. Find the period that contains your opening date (31 August 2026 → FY2026 Period 8). Confirm its Status is open.
  3. If it says future, click into it and press the Open button.
  4. If the period does not exist at all, press New Fiscal Period and fill in Fiscal Calendar Id, Fiscal Year, Period Number, Period Name, Period Start, Period End — then open the saved record and press Open. Repeat for each missing month.
Your situation Convert on
You are mid-year and just want to get going The first day of next month
Your books are clean through a quarter-end The first day of the next quarter
Your fiscal year ends soon, and you can wait Day one of the new fiscal year — cleanest of all: no year-to-date P&L to carry, no split-year reporting

Whatever you pick, pick the first day of a period. A conversion date in the middle of a month means your first Horizon month is half old-system and half new, and every report from that month needs an explanation forever.


2. Enter your opening trial balance as a journal entry

Section titled “2. Enter your opening trial balance as a journal entry”

The plan: one journal entry, dated your opening date, that puts every account at the balance your old system says it should be — except accounts receivable and accounts payable, which you will fill from real documents in §3. A suspense account absorbs the difference and then nets to zero.

You need one account that does not ship in the default chart: somewhere for the AR and AP documents to post their other side. Call it Conversion Suspense.

Open Finance › General Ledger › Chart of Accounts and check the accounts you already have — the default chart covers most of what a small business needs (1010 Cash — Operating, 1100 Accounts Receivable, 2010 Accounts Payable, 3100 Retained Earnings, and so on). There is no New Account button on this screen; to add one you go to the account form directly:

  1. Navigate to /forms/accounts?id=new (type it into the address bar after your Horizon URL).
  2. Fill in:
    • Coa Template Id — pick your organization’s chart. Most organizations have exactly one, named Standard General Template (Horizon F1 default).
    • Code3050 (any unused code works; 3010, 3020, 3100, and 3900 are taken by the default chart)
    • NameConversion Suspense
    • Type — type equity exactly, in lower case. This is a free-text box with no dropdown, no spell check and no validation anywhere behind it. Get it wrong — Equity, equitiy — and the account is silently dropped from the Chart of Accounts screen, the balance sheet and the P&L, while still appearing on the trial balance. That split is nasty to diagnose: the trial balance ties, and the balance sheet quietly does not.
    • Normal Balance — type credit exactly, in lower case. This box is free text too, but it is display-only: it decides whether a column header reads DR or CR and feeds nothing else, so a typo here mislabels a column and does no damage to your numbers.
    • Leave Subtype, Name I18n, Primary Group Id blank and Is System unchecked.
  3. Press Create Account.

While you are here, add any accounts your old chart has that Horizon’s does not. Do that now — an account that does not exist cannot go on the journal entry.

2.2 What goes in the journal entry, and what stays out

Section titled “2.2 What goes in the journal entry, and what stays out”
Include at its old-system balance Leave out
Bank and cash accounts Accounts receivable — comes from the invoices in §3
Prepaid expenses, inventory, other current assets Accounts payable — comes from the bills in §3
Fixed assets and accumulated depreciation, separately
Every liability except AP — sales tax, payroll liabilities, loans, notes
Every equity account — capital, common stock, retained earnings
Year-to-date revenue and expense accounts, if you are converting mid-year (see §2.5)
Conversion Suspense, as the balancing figure

Enter accumulated depreciation as its own credit line, not netted against the asset. Same for any other contra account. Horizon reports them separately and your balance sheet will look wrong if you net them.

Open Finance › General Ledger › Journal Entries and press New Journal Entry.

Header fields:

Field What to put
Journal Number The box is marked required, but whatever you type is discarded — Horizon assigns its own number (JE-2026-000001 and up). Type OPENING and move on.
Journal Date Your opening date2026-08-31
Period Pick the period that contains that date — FY2026 Period 8. A badge next to the field shows its status; it must read Open.
Description Opening balances converted from [your old system] as of 2026-08-31

Lines. Press + Add row once per account — one click, one row. For each row:

Column What to put
Account Id Pick the account. The list shows code — name and is grouped by type.
Description Opening balance
Debit Amount The amount, if this account has a debit balance — otherwise leave blank
Credit Amount The amount, if this account has a credit balance — otherwise leave blank
Txn Currency Code Your currency — USD
Txn Amount The same amount again
FX Rate Leave blank — you are not converting anything
Functional Amount The same amount again

Yes, you type the number three times. Nothing derives one cell from another, even when the rate is 1. It is worth understanding what each one is for:

  • Debit Amount / Credit Amount decide which side the line is on. Which side, not how much — no report ever adds these up.
  • Functional Amount is the number that actually reaches every report, and the one the server balances on. The trial balance, the balance sheet and the P&L all read Functional Amount, with the side taken from whichever of Debit/Credit you filled in. Get the side right and the amount right and you are done.

You cannot leave Functional Amount blank. The form refuses to submit and marks the cell required, and the server and the database both reject the line if you get past it. If a row will not save, an empty amount cell is the first thing to look for.

The Balanced badge under the grid watches Functional Amount — the same figure the server checks — so if you fill Functional Amount on every line, “Balanced” means what you want it to mean, and posting will agree with it. If the two sides do not match, posting fails with Functional-currency debits (…) do not equal functional-currency credits (…).

Two quirks of that badge, neither harmful on a single-currency conversion. The Running Δ column beside the rows is not watching Functional Amount — it adds up the raw Debit and Credit cells, so on a multi-currency entry it can show a difference while the badge correctly reads Balanced. Trust the badge. And an entry with no lines at all shows a green Balanced badge, which means nothing. The line under the grid reads Debits … · Credits … · advisory only for drafts.

A few rules the server enforces when you post:

  • At least two lines.
  • No negative amounts — Use the opposite side instead of a negative value. Put it on the other side instead.
  • Never both a debit and a credit on the same line.
  • No inactive accounts.

Save and post. Press Save draft. Then open the saved entry and press Post. Posting is what puts it in your books; a draft is just typing. Check the status reads Posted before you move on.

Nothing on the journal entry form is a bulk operation. There is no paste-from-spreadsheet and no import. A 40-line opening balance is 40 clicks of + Add row across a grid ten columns wide — several hundred cells, even leaving FX Rate and the dimension columns empty. Set aside the time, and keep your old trial balance printout beside you to tick off as you go.

Ridgeline Design Co. converts on 1 September 2026. Fiscal year is the calendar year. Opening date is 31 August 2026.

Their old system’s trial balance at 31 August 2026, mapped onto Horizon’s default chart:

Code Account Debit Credit
1010 Cash — Operating 42,500.00
1100 Accounts Receivable 18,400.00
1300 Prepaid Expenses 2,100.00
1500 Fixed Assets 26,000.00
1510 Accumulated Depreciation 9,750.00
2010 Accounts Payable 11,300.00
2200 Sales Tax Payable 1,450.00
2700 Long-Term Debt 15,000.00
3010 Common Stock 5,000.00
3100 Retained Earnings (through 31 Dec 2025) 22,850.00
4020 Service Revenue (Jan–Aug 2026) 148,000.00
6010 Salaries & Wages (Jan–Aug 2026) 102,300.00
6100 Rent Expense (Jan–Aug 2026) 6,400.00
6200 Office Supplies (Jan–Aug 2026) 1,750.00
6300 Travel & Entertainment (Jan–Aug 2026) 1,500.00
6500 Professional Fees (Jan–Aug 2026) 12,400.00
Totals 213,350.00 213,350.00

Their open items — these are the figures behind the 18,400.00 and the 11,300.00 above:

Open invoices (AR), total 18,400.00

Invoice Customer Invoice date Due date Open
INV-1042 Fairview Partners 2026-07-18 2026-08-17 7,250.00
INV-1051 Cedar Grove LLC 2026-08-05 2026-09-04 4,900.00
INV-1058 Northwind Studio 2026-08-27 2026-09-26 6,250.00

Open bills (AP), total 11,300.00

Bill Vendor Bill date Due date Open
88231 Meridian Staffing 2026-08-08 2026-09-07 6,400.00
4417 Copperline Print 2026-08-19 2026-09-18 1,150.00
AUG-26 Harbor Property Mgmt 2026-08-25 2026-09-24 3,750.00

The opening journal entry — the trial balance above, minus the AR and AP lines, plus Conversion Suspense as the balancing figure. Journal Date 2026-08-31, Period FY2026 Period 8:

Code Account Debit Credit
1010 Cash — Operating 42,500.00
1300 Prepaid Expenses 2,100.00
1500 Fixed Assets 26,000.00
1510 Accumulated Depreciation 9,750.00
2200 Sales Tax Payable 1,450.00
2700 Long-Term Debt 15,000.00
3010 Common Stock 5,000.00
3050 Conversion Suspense 7,100.00
3100 Retained Earnings 22,850.00
4020 Service Revenue 148,000.00
6010 Salaries & Wages 102,300.00
6100 Rent Expense 6,400.00
6200 Office Supplies 1,750.00
6300 Travel & Entertainment 1,500.00
6500 Professional Fees 12,400.00
Totals 202,050.00 202,050.00

Where 7,100.00 comes from: open AR 18,400.00 − open AP 11,300.00 = 7,100.00. That is exactly what the AR and AP documents in §3 will leave sitting in Conversion Suspense on the credit side, so the journal entry debits it back out. You do not have to reason it through — take open AR minus open AP and put it on the debit side. If your open AP is larger than your open AR, the figure is negative, which means you put it on the credit side instead (never as a negative number: the server rejects those).

The entry balances at 202,050.00 on both sides. That is the original 213,350.00, less the 18,400.00 AR debit, plus the 7,100.00 suspense debit on the debit side; and the original 213,350.00 less the 11,300.00 AP credit on the credit side.

2.5 If you convert mid-year: what to do with year-to-date profit

Section titled “2.5 If you convert mid-year: what to do with year-to-date profit”

Ridgeline converts in September, so eight months of 2026 revenue and expenses already happened. You have three honest choices:

Option A — roll it into equity. Leave revenue and expense accounts off the journal entry entirely; add the year-to-date profit to the Retained Earnings line instead. Simplest. Cost: Horizon’s profit and loss statement only covers September onward, so you have no 2026 full-year P&L without going back to your old system.

Option B — one summary set, dated the opening date. What the example above does: bring the year-to-date revenue and expense totals in as lines on the opening entry. Your year-to-date figures in Horizon are then correct. Cost: all eight months of activity sit on 31 August, so a month-by-month P&L for January to August shows nothing until August and then everything.

Option C — one summary journal entry per prior month. Same totals, split across eight entries dated the last day of each month. Monthly comparatives then work properly. Cost: eight entries instead of one, and each month’s period must exist and be open. See §4.

Whichever you choose, do not do it twice. Horizon’s balance sheet computes a line called Retained Earnings (derived) from your profit-and-loss accounts, and it counts everything ever posted, not just this year. So:

  • If you post year-to-date revenue and expenses (Options B or C), that profit shows up automatically in Retained Earnings (derived). Put only prior-year accumulated profit on account 3100 Retained Earnings.
  • If you roll year-to-date profit into 3100 as well, your equity is overstated by exactly that amount and your balance sheet will not balance.

In the example: 3100 Retained Earnings carries 22,850.00 — everything through 31 December 2025 and nothing more. The 23,650.00 of 2026 profit (148,000.00 revenue − 124,350.00 expenses) appears on the balance sheet by itself as Retained Earnings (derived). Total equity 5,000.00 + 22,850.00 + 23,650.00 = 51,500.00, which is exactly assets 79,250.00 less liabilities 27,750.00.


This is the part that makes the difference between books that technically balance and books you can actually run a business on. Enter each unpaid invoice and each unpaid bill as a real document, dated when it was really dated. Then aging reports are populated, collections has a worklist, and when a customer pays you can apply the receipt to the invoice it belongs to.

How the arithmetic works. A posted invoice always debits your AR control account and credits whatever account you put on the line. So you code the line to Conversion Suspense: the invoice puts the receivable on the books without inventing revenue you already recognised last month. Bills work in mirror image — they credit AP and debit the line account, so they take value out of suspense. Between them, the documents leave open AR − open AP sitting in suspense on the credit side, and the opening journal entry’s suspense line debits exactly that back out. Suspense ends at zero. That is the whole trick, and it is also your proof.

You cannot invoice a customer who does not exist. Open Finance › Accounts Receivable › Customers, press New Customer, and fill in the four required fields — Code, Name, Legal Name, Default Currency Code. The Code is yours to invent and must be unique; something short and obvious like FAIRVIEW works well. Vendors are identical: Finance › Accounts Payable › Vendors, New Vendor, same four fields.

Only create the customers and vendors you actually need for the open items right now. The rest can wait until you need them.

3.2 Decide about invoice numbers before you key anything

Section titled “3.2 Decide about invoice numbers before you key anything”

Out of the box, Horizon assigns its own invoice numbers. On the invoice form the Invoice Number box is read-only and shows Auto-generated on save, and you get INV-2026-0001, INV-2026-0002, and so on. Your customer’s copy of INV-1042, meanwhile, says INV-1042.

Two ways to live with that:

The simple way (recommended for most). Let Horizon number them, and put the old number in the line Description: Opening balance — INV-1042. It is searchable, it prints, and it takes no setup. There is no memo field on the invoice header, so the line description is the place for it.

The thorough way. Change the numbering policy so you can type your own numbers:

  1. Navigate to /forms/numbersequences (type it into the address bar — it is not on the Finance menu).
  2. Open the row where Entity Type is invoice.
  3. Change Mode from auto_locked to auto_overridable and save.
  4. The Invoice Number box on the invoice form is now an ordinary editable box. Type your old numbers as you key the converted invoices.
  5. Optionally set Mode back to auto_locked when you are done, if you would rather the box were locked again.

Collisions are unlikely: Horizon’s own numbers look like INV-2026-0001, so legacy numbers like INV-1042 sit in a different shape. But invoice numbers must be unique across your organization, so if your old system used the same format Horizon does, use the simple way instead.

Bills need none of this. The Bill Number field is always typed by hand — it is the vendor’s own invoice number — so it carries across naturally.

Finance › Accounts Receivable › InvoicesNew Invoice. For each open invoice:

Field What to put
Invoice Number Read-only unless you set the mode to auto_overridable in §3.2
Customer The customer. The picker locks the moment you save, draft or not — get it right the first time.
Invoice Date The original invoice date — 2026-07-18
Due Date The original due date — 2026-08-17. Required, and typed by hand: picking Payment Terms does not fill it in for you. This date is what drives your aging buckets, so it has to be the real one.
Currency USD. Required, with no default — you pick it on every document.
Payment Terms, Attention, FX Rate Leave blank

Then + Add row once, and fill the single line:

Column What to put
Description Opening balance — INV-1042
Quantity 1
Unit Price The amount still outstanding7250.00
Revenue Account Id 3050 — Conversion Suspense

Line Subtotal fills itself in. Leave Item Id blank — you do not need a product record to invoice.

The column is labelled Revenue Account Id, but the picker is not restricted to revenue accounts: your equity suspense account is in the list. Pick it deliberately. Coding these lines to a revenue account would recognise the same revenue twice — once in your old system, once here.

Partly paid invoices: key the remaining balance, not the original amount, and say so in the description (Opening balance — INV-1039, part-paid). Horizon’s aging shows what is open; the payment history for pre-conversion activity lives in your old system, which you should keep read-only access to anyway.

Save and post. Press Save Draft, then open the saved invoice and press Post.

Finance › Accounts Payable › BillsNew Bill. Same shape:

Field What to put
Bill Number The vendor’s own number — 88231. Required, typed, locked after save.
Vendor The vendor. Locked once you save.
Bill Date The original bill date — 2026-08-08
Due Date The original due date — 2026-09-07
Currency USD

One line:

Column What to put
Description Opening balance — bill 88231
Quantity 1
Unit Cost The amount still outstanding — 6400.00
Expense Account Id 3050 — Conversion Suspense

Leave Commitment, Is1099 Reportable, and Form1099 Box alone. Press Save draft, then Post.

After all six documents are posted:

Account From invoices From bills From opening JE Balance
1100 Accounts Receivable 18,400.00 Dr 18,400.00 Dr
2010 Accounts Payable 11,300.00 Cr 11,300.00 Cr
3050 Conversion Suspense 18,400.00 Cr 11,300.00 Dr 7,100.00 Dr 0.00

Accounts receivable is 18,400.00, exactly as the old trial balance said. Accounts payable is 11,300.00, likewise. Conversion Suspense is 18,400.00 credit against 11,300.00 + 7,100.00 = 18,400.00 debit — zero. And the AR aging report now lists three invoices with real dates and real due dates, and the AP aging lists three bills.

Every other account carries the balance the opening journal entry gave it. The trial balance in Horizon at 31 August 2026 is the trial balance you printed from your old system, line for line.


Here is the honest position: Horizon will compare this period against the one before it, automatically, as soon as there is something in both. Anything more historical than that, you build by hand, and it costs more than most businesses should pay.

The Financial Statements screen (Finance › Reporting & Planning) has Income Statement and Balance Sheet tabs, a Month / Quarter / YTD selector, and columns Account, Current Period, Prior Period, Variance. The comparison is built in — there is no switch to turn it on, and none to turn it off. Once you have posted a couple of months in Horizon, month-over-month comparatives just work.

The Trial Balance likewise reads through any date, cumulatively — but see the limits below for how you ask it for a date.

Monthly detail for the current fiscal year is worth doing if your year-to-date numbers matter. Instead of one lump summary on the opening date (§2.5, Option B), post one summary journal entry per prior month, dated the last day of that month, each carrying that month’s revenue and expense totals from your old system. Same grand total; your P&L then has a real monthly shape.

Cost, per month: the period must exist and be Open. Inside the provisioned window — this fiscal year and next — they all exist and are all open already, so this is genuinely just typing: eight small entries for a September conversion.

Prior fiscal years are a different proposition. Nothing before the window has periods. For each month of 2025 you want, you must create the fiscal period by hand (New Fiscal Period: Fiscal Calendar Id, Fiscal Year, Period Number, Period Name, Period Start, Period End), open it individually, then post the entry. There is no bulk create, no “generate periods for FY2025” button, and no bulk open. Twelve months of 2025 is thirty-six separate actions before you have posted a single number.

If you do bring prior years in as revenue and expense activity, remove that profit from account 3100 Retained Earnings — the balance sheet’s derived retained-earnings line will now be picking it up from the P&L accounts, and leaving it in 3100 as well double-counts your equity.

  • No transaction-level history. Comparatives are summary entries. Unless you key every historical invoice and bill as a document — which is not what this method is for, and which will take you weeks — you cannot drill from a prior-period number to the documents behind it. Keep read-only access to your old system for that; you will want it at tax time regardless.
  • No historical aging. AR Aging and AP Aging have no as-of date. There is no way to ask Horizon what your receivables looked like on 31 August.
  • No arbitrary date on the standard reports. The Trial Balance and Financial Statements screens offer Month, Quarter, and YTD relative to today — there is no date picker, and no URL you can type will get you one. See §5 for the practical way round this.
  • No comparison against your old system inside Horizon. Nothing imports last year’s figures for side-by-side reporting. The comparison happens on your desk, once, during the checks in §5.

For almost everyone: do Option B or Option C from §2.5 for the current fiscal year, and stop there. Keep the old system’s reports as a PDF in your records for anything earlier. Rebuilding several years of monthly history one hand-made fiscal period at a time is a large amount of work for a comparative column, and every entry is another chance to key something wrong.


Do these checks before you enter a single post-conversion transaction. That matters more than it sounds: Horizon’s reports read cumulatively up to today, so as long as nothing after your conversion date has been posted, “today” and “your opening date” show the same figures. Once you start invoicing in September, isolating the opening position again gets fiddly.

Work down the list. Every check has an exact answer — no judgement calls.

□ 1. The opening journal entry is Posted, not Draft. Finance › General Ledger › Journal Entries. Find your entry. Status must read Posted. A draft is invisible to every report below.

□ 2. Every converted invoice and bill is Posted. On the Bills list this is visible directly: the column labelled Status is the posting status, and every converted bill must read posted. On the Invoices list the Status column shows the business status (draft, sent, paid) — not whether the invoice is in your books, and posting an invoice never changes it, so a converted invoice keyed as a draft reads draft forever.

The quick way to see the real thing: open the Columns ▾ picker above the Invoices list and tick Posting Status. The whole list is then checkable at a glance, with no need to open records one by one. (There is also a Posted tab on that list if your organization is on the newer list styling.) Failing that, open each converted invoice and read Posting Status on the record — or lean on checks 5 and 6, which catch an unposted invoice automatically: a draft never reaches the aging report.

□ 3. Conversion Suspense is zero. Finance › Reporting & Planning › Trial Balance. Find 3050 Conversion Suspense. It must show nothing at all — a zero-balance account drops off the report entirely, so not appearing is the pass condition.

Better still, confirm it the other way round: the balance sheet does not hide zero balances, so open Financial Statements › Balance Sheet and look for 3050 Conversion Suspense in the Equity section reading an explicit 0.00. An explicit zero is stronger evidence than an absence — on the trial balance, “not there” also describes an account you never posted to at all.

This is the strongest single check in the conversion. If suspense is not zero, the amount left in it tells you what is wrong:

  • Suspense is short by the amount of one invoice → that invoice is still a draft, or its line was coded to the wrong account.
  • Suspense is off by an odd amount → an invoice or bill was keyed at the wrong figure, or the suspense line on the opening journal entry does not equal open AR minus open AP.

□ 4. The trial balance ties to your old system, line by line. Same screen. Compare every row against the trial balance you printed. Debits and credits must both total the same as they did there — in the example, 213,350.00 each side.

Do not accept “the totals match” as sufficient. Two compensating errors total correctly and are wrong. Tick off every line.

□ 5. AR aging total equals your old system’s open AR — and equals the AR control account. Finance › Accounts Receivable › AR Aging. Rebuild the report first: this is a stored snapshot, not your live ledger, and a converted invoice does not appear in it until someone rebuilds it. Before the very first one the page tells you so, and the button inside that message reads Generate“This report has not been generated yet … the figures below would otherwise read as zero.” After that the button in the toolbar reads Refresh.

Then check three numbers agree:

  • the total across the aging buckets;
  • 1100 Accounts Receivable on the trial balance;
  • the open AR total on your old system’s report.

In the example, all three are 18,400.00.

□ 6. AP aging total equals your old system’s open AP — and equals the AP control account. Finance › Accounts Payable › AP Aging. Generate or refresh first, same as above. Compare against 2010 Accounts Payable and your old AP report. In the example, all three are 11,300.00.

□ 7. The invoice and bill counts match too. Your old AR report listed three open invoices; the AR aging should list three rows. Right total with the wrong count means two errors that happen to cancel — rare, but it happens, and it is invisible in the totals.

□ 8. The balance sheet balances. Finance › Reporting & Planning › Financial StatementsBalance Sheet tab. There must be no “Out of balance” badge. Check that Retained Earnings (derived) shows what you expect — in the example, 23,650.00 of 2026 profit — and that total equity is right (5,000.00 + 22,850.00 + 23,650.00 = 51,500.00).

□ 9. Year-to-date profit and loss matches, if you brought it across. Income Statement tab, YTD. Revenue 148,000.00, expenses 124,350.00, net income 23,650.00 — the same as your old system’s year-to-date figures.

□ 10. Spot-check three documents. Open one converted invoice and one converted bill. Confirm the date, the due date, the amount, and that the line is coded to Conversion Suspense. Then open the journal entry Horizon created behind one of them and confirm it debits your AR control account (or credits AP) for the right amount.

Your bucket split will probably not match your old system’s, and that is expected rather than a fault. Horizon ages every open item against the day the snapshot was last rebuilt — not against today, and not against a date you choose — while your old system’s report ages against the date you printed it. An invoice due 17 August is in a different bucket on 1 September than it was on 31 August. (This is also why pressing Refresh can move items between buckets without a single document having changed.)

What must match is the total and the list of documents — those are date-independent. If the totals agree and the same invoices are listed, your conversion is right; the buckets will agree by themselves once both reports are looking at the same day.

Two last things worth doing on the same afternoon:

  1. Close the door behind you. Finance › General Ledger › Period Close. Soft-close, then hard-close, the periods before your conversion date. Nothing can then be posted into converted history by accident.
  2. Keep the evidence. Export the Trial Balance and both aging reports (each screen has an export), and file them next to your old system’s closing reports. When someone asks in eighteen months how the conversion was done, that folder is the answer.