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

Move your books from QuickBooks, Xero, Sage, or a spreadsheet into Horizon Finance — one journal entry for the balances, one document per open item, and a suspense account that must end at zero.

What this guide is

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.

This guide does it by hand. To have Horizon stage, tie out and post your opening balances for you, use Ledger cutover instead. What this guide gives you 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.

What you will need before you start

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.

Where everything lives

Everything in this guide is inside the Finance group in the left sidebar, except Financial Statements, which is under Intelligence › Reports. The screens you will use:

ScreenWhere it isWhat you use it for
Fiscal PeriodsFinance › General Ledger › Fiscal PeriodsMaking sure the month you are converting into exists and is open
Fiscal CalendarsFinance › Setup & Configuration › Fiscal CalendarsOnly if your fiscal year does not start in January
Chart of AccountsFinance › General Ledger › Chart of AccountsChecking your account list; adding the suspense account
Control AccountsFinance › General Ledger › Control AccountsConfirming which GL accounts AR and AP post to
Journal EntriesFinance › General Ledger › Journal EntriesThe opening trial balance
Customers / VendorsFinance › Accounts Receivable / Accounts PayableThe people you owe and who owe you
Invoices / BillsFinance › Accounts Receivable / Accounts PayableThe open items
Trial BalanceFinance › General Ledger › Trial BalanceProving it tied
AR Aging / AP Agingend of the AR / AP sectionsProving the open items landed
Financial StatementsIntelligence › Reports › Financial StatementsBalance 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.


1. Choose a conversion date

What a conversion date is

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 Sales, 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).

Why the period matters

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:

StatusWhat it means for you
FutureNothing can be entered. Not even a draft.
OpenNormal — everything works.
Soft closeThe close team is working. Documents stop; privileged journal entries still go in.
Hard closeThe month is signed off. Nothing posts.
LockedPermanent. 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

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.

Backdating into an auto-numbered series

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 — 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.

How to check, and how to fix it

  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.
Fiscal year not starting in January?

Go to Finance › Setup & Configuration › Fiscal Calendars and set Fiscal Year Starts Month (and Fiscal Year Starts Day if you need it) before you create any periods. Changing this later does not move periods that already exist.

Ignore the Fiscal Setup screen under Settings › Finance — and do not believe what it tells you

It is the default tab of that screen, so it is probably the first thing you will find, and it offers “Add Fiscal Year” and “Generate Monthly Periods”. Neither button works: they call a service that is not there. Worse, the screen does not report the failure — it renders its empty state instead, so it states flatly: “No fiscal years defined. Add one to start tracking periods.” That is false. You almost certainly have two full calendars with twenty-four open periods between them; check Finance › General Ledger › Fiscal Periods, which is the real screen. (The Currency tab on the same settings page is dead the same way.)

Recommendation

Your situationConvert on
You are mid-year and just want to get goingThe first day of next month
Your books are clean through a quarter-endThe first day of the next quarter
Your fiscal year ends soon, and you can waitDay 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

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.

2.1 First, create the suspense account

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).
    • Code — 3050 (any unused code works; 3010, 3020, 3100, and 3900 are taken by the default chart)
    • Name — Conversion 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.

Also worth two minutes:

open Finance › General Ledger › Control Accounts and confirm there is a row with Role ar and a row with Role ap, each pointing at the right account (normally 1100 Accounts Receivable and 2010 Accounts Payable). These are set up for you when Finance is enabled, and they are what invoices and bills post to. If one is missing, posting an invoice later fails with “No ‘ar’ control account configured for this legal entity. Configure it under Finance → Control Accounts.” The Role box is free text — it must be exactly ar or ap, lower case.

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

Include at its old-system balanceLeave out
Bank and cash accountsAccounts receivable — comes from the invoices in §3
Prepaid expenses, inventory, other current assetsAccounts 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.

Leave Bank Account's Opening Balance alone

The Bank Account record has its own Opening Balance and Opening Balance Date fields. They are not part of this method, and they are not the same thing as the cash line on your journal entry. Your bank balances arrive on the opening entry above — leave the bank record’s opening balance blank or zero, or you risk counting the same cash twice.

2.3 Building the entry

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

Header fields:

FieldWhat to put
Journal NumberThe 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 DateYour opening date — 2026-08-31
PeriodPick the period that contains that date — FY2026 Period 8. A badge next to the field shows its status; it must read Open.
DescriptionOpening balances converted from [your old system] as of 2026-08-31
Nothing checks the date against the period

You can date an entry 31 August and file it in January, and Horizon will save it and post it without a word of complaint. Your reports survive this — every statement totals on the Journal Date, so a 31 August entry reports in August whichever period you filed it against. What it breaks is month-end control: the entry escapes the close of the month it belongs to, and once a period has been hard-closed and snapshotted, an entry dated inside it but filed against a later period disappears from cumulative figures for good. Read the Period box back before you save.

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

ColumnWhat to put
Account IdPick the account. The list shows code — name and is grouped by type.
DescriptionOpening balance
Debit AmountThe amount, if this account has a debit balance — otherwise leave blank
Credit AmountThe amount, if this account has a credit balance — otherwise leave blank
Txn Currency CodeYour currency — USD
Txn AmountThe same amount again
FX RateLeave blank — you are not converting anything
Functional AmountThe 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.

The saved entry reads back with shorter labels

Horizon’s current look renders a saved journal entry on a different screen from the one you typed it on, and that screen abbreviates: Journal date, Debit, Credit rather than Journal Date, Debit Amount, Credit Amount. Same fields, same values — only the reading view differs. Everything you type is on the form described above.

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.

2.4 The worked example

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:

CodeAccountDebitCredit
1010Cash — Operating42,500.00
1100Accounts Receivable18,400.00
1300Prepaid Expenses2,100.00
1500Fixed Assets26,000.00
1510Accumulated Depreciation9,750.00
2010Accounts Payable11,300.00
2200Sales Tax Payable1,450.00
2700Long-Term Debt15,000.00
3010Common Stock5,000.00
3100Retained Earnings (through 31 Dec 2025)22,850.00
4020Service Revenue (Jan–Aug 2026)148,000.00
6010Salaries & Wages (Jan–Aug 2026)102,300.00
6100Rent Expense (Jan–Aug 2026)6,400.00
6200Office Supplies (Jan–Aug 2026)1,750.00
6300Travel & Entertainment (Jan–Aug 2026)1,500.00
6500Professional Fees (Jan–Aug 2026)12,400.00
Totals213,350.00213,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

InvoiceCustomerInvoice dateDue dateOpen
INV-1042Fairview Partners2026-07-182026-08-177,250.00
INV-1051Cedar Grove LLC2026-08-052026-09-044,900.00
INV-1058Northwind Studio2026-08-272026-09-266,250.00

Open bills (AP), total 11,300.00

BillVendorBill dateDue dateOpen
88231Meridian Staffing2026-08-082026-09-076,400.00
4417Copperline Print2026-08-192026-09-181,150.00
AUG-26Harbor Property Mgmt2026-08-252026-09-243,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:

CodeAccountDebitCredit
1010Cash — Operating42,500.00
1300Prepaid Expenses2,100.00
1500Fixed Assets26,000.00
1510Accumulated Depreciation9,750.00
2200Sales Tax Payable1,450.00
2700Long-Term Debt15,000.00
3010Common Stock5,000.00
3050Conversion Suspense7,100.00
3100Retained Earnings22,850.00
4020Service Revenue148,000.00
6010Salaries & Wages102,300.00
6100Rent Expense6,400.00
6200Office Supplies1,750.00
6300Travel & Entertainment1,500.00
6500Professional Fees12,400.00
Totals202,050.00202,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

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.


3. Enter your open AR and AP items

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.

3.1 Set up customers and vendors first

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

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.
Why `auto_overridable` and not `manual`

This is the difference between the two editable modes, and it is why step 5 is optional. On auto_overridable the box is editable but blank still means “assign one” — so an ordinary invoice you raise after the conversion gets INV-2026-0007 on its own, with nothing to remember. manual makes the box required and turns auto-numbering off for every subsequent document until you change it back. Pick manual only if that is what you actually want.

Your typed numbers do not strand the counter

If a number you type matches the shape Horizon renders and runs ahead of the counter, the counter moves up to meet it, so the next auto-assigned number continues past your numbers instead of colliding with them. A number in a different shape — INV-1042 against Horizon’s INV-2026-0001 — is not part of the series at all and leaves the counter alone. (On a gap-free sequence a number ahead of the counter is refused instead, because a gap-free series is not allowed to skip; you will get a clear message saying so.)

Why the address bar?

The Numbering screen under Finance › Setup & Configuration lets you change the prefix, suffix, separator, pad width, and date token — but not the Mode. /forms/numbersequences is the only place Mode is editable today.

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.

This is also how you key documents dated in an earlier year

A number you type is used verbatim and consumes no counter, so it sidesteps the backdating refusal described in §1 entirely — no mode round-trip, and nothing to undo afterwards. The same applies to the journal entries in §4, whose numbering works the same way.

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.

3.3 Key each open invoice

Finance › Accounts Receivable › Invoices → New Invoice. For each open invoice:

FieldWhat to put
Invoice NumberRead-only unless you set the mode to auto_overridable in §3.2
CustomerThe customer. The picker locks the moment you save, draft or not — get it right the first time.
Invoice DateThe original invoice date — 2026-07-18
Due DateThe 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.
CurrencyUSD. Required, with no default — you pick it on every document.
Payment Terms, Attention, FX RateLeave blank

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

ColumnWhat to put
DescriptionOpening balance — INV-1042
Quantity1
Unit PriceThe amount still outstanding — 7250.00
Revenue Account Id3050 — 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.

No tax

The invoice line has no tax field, so what you type is what hits accounts receivable. Key the gross amount the customer still owes, tax included. The sales tax you already owe on those invoices came across on the opening journal entry’s Sales Tax Payable line — do not let it arrive twice.

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.

Where is the Post button?

If you open an invoice from the list you land on the read-only view, where Post is inside the ⋯ menu (its label is More actions). On the edit form it is a button at the top. Both do the same thing.

Draft is not enough

Aging reports and the general ledger both ignore drafts entirely. If you key twenty invoices and post none of them, every check in §5 fails and nothing tells you why. Post as you go.

3.4 Key each open bill

Finance › Accounts Payable › Bills → New Bill. Same shape:

FieldWhat to put
Bill NumberThe vendor’s own number — 88231. Required, typed, locked after save.
VendorThe vendor. Locked once you save.
Bill DateThe original bill date — 2026-08-08
Due DateThe original due date — 2026-09-07
CurrencyUSD

One line:

ColumnWhat to put
DescriptionOpening balance — bill 88231
Quantity1
Unit CostThe amount still outstanding — 6400.00
Expense Account Id3050 — Conversion Suspense

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

3.5 The example, proved

After all six documents are posted:

AccountFrom invoicesFrom billsFrom opening JEBalance
1100 Accounts Receivable18,400.00 Dr——18,400.00 Dr
2010 Accounts Payable—11,300.00 Cr—11,300.00 Cr
3050 Conversion Suspense18,400.00 Cr11,300.00 Dr7,100.00 Dr0.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.


4. Prior-period comparatives

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.

What you get for free

The Financial Statements screen (Intelligence › Reports) 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.

What you can build, and what it costs

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.

Prior-year entries need their journal numbers typed in

Journal numbers come from a counter keyed on the entry’s own date, and that counter only ever moves forward — so a 2025-dated entry cannot disturb the 2026 numbers you have already issued. What it will do is refuse to auto-number itself, rather than restart the series behind its own back. Set Mode to auto_overridable on the journal_entry row at /forms/numbersequences (same procedure as §3.2) and type a number on each prior-year entry. Current-year entries left blank keep numbering themselves as usual, so there is nothing to switch back afterwards. This applies to prior-year comparatives only — the current-year monthly split above stays inside this year and is unaffected.

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.

What is not possible

  • 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.

Recommendation

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.


5. Prove the conversion is right

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.

The checklist

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 › General Ledger › 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.

Press it every time, even if the page looks current

The heading shows Refreshed <date> and nothing else — there is no “out of date” warning, no matter how much has been posted since. Horizon knows the snapshot is stale; the screen simply does not say so. A confident date is not evidence the figures are current.

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. Intelligence › Reports › Financial Statements → Balance 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.

About the aging buckets

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.

When everything ties

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.