Opening balances and a clean cutover
Move an agreed closing position into the new book with enough evidence to explain every control balance.
PHP Ledger guidance: use this page with the matching release notes and evaluate the workflow using synthetic records.
What does the cutover date mean?
The cutover is the agreed closing position of the old records, followed by ordinary activity in the new book.
Choose one date and use it consistently across the trial balance, bank evidence and unpaid-document list. In this workflow the company start date represents the cutover closing date. Ordinary transactions belong after that boundary. A supplier balance measured on one date and a bank balance measured a week later do not form a coherent opening position, even if an adjustment makes the totals balance.
This guide uses a fictional cutover of 1 September 2026 and simple account codes. It is a format and reconciliation example, not a recommendation to adopt those codes or balances for a real business. An existing business should have its source records reviewed before confirmation. The public demo does not permit opening-import writes; rehearse in an isolated self-hosted installation.
Which evidence should you collect first?
Collect a reconciled trial balance and supporting schedules that explain its material balances.
- The approved closing trial balance at the chosen date.
- Bank statements and a reconciliation of outstanding movements.
- Unpaid customer and supplier documents that explain receivable and payable controls.
- Support for fixed assets, liabilities, equity and any other opening balance.
- A written account mapping from the old records to the new chart.
Keep missing evidence visible. A blank schedule does not prove that an account is zero. Likewise, an amount owed by a customer is not the same as cash already collected. Do not use a general income receipt to manufacture an opening receivable. The importer is designed to bring in a reconciled position, not to repair uncertain historical accounting automatically.
Map by accounting meaning, not just similar names. Confirm whether a control is receivable or payable, whether a bank balance is debit or credit and whether the new account is permitted for the intended role. Differences in charts can require reviewed aggregation, but they should not erase the ability to explain the result. Retain the original source totals beside the proposed mapping.
How does the trial-balance CSV work?
Each row names an existing account code and its debit or credit opening amount.
account_code,debit,credit
1000,1000,0
1100,300,0
2000,0,200
3000,0,1100| Code in this example | Meaning | Opening balance |
|---|---|---|
| 1000 | Bank | Debit 1,000 |
| 1100 | Receivables control | Debit 300 |
| 2000 | Payables control | Credit 200 |
| 3000 | Equity | Credit 1,100 |
The account codes above must exist with the intended roles before this example can be used. Total debits are 1,300 and total credits are 1,300. Assets of 1,300 equal liabilities of 200 plus equity of 1,100. The equality is necessary but does not validate the provenance of the numbers. The equity line represents the supplied fictional position; it is not a suggested balancing plug for unexplained differences.
Use UTF-8 CSV with the exact header, ordinary decimal amounts and the required date formats in files that contain dates. The documented upload boundary is 500 data rows and 512 KiB per file. Avoid spreadsheet thousands separators, currency symbols and formulas in amount cells. Preview the actual exported file, because a spreadsheet’s visual formatting can conceal how its CSV values were written.
How do unpaid documents support the controls?
The unpaid-document file explains the opening AR/AP balances without posting those balances a second time.
kind,account_code,party,reference,document_date,due_date,outstanding
receivable,1100,Synthetic customer,INV-01,2026-08-15,2026-09-15,300
payable,2000,Synthetic supplier,BILL-01,2026-08-20,2026-09-20,200The receivable evidence totals 300, matching account 1100. The payable evidence totals 200, matching account 2000. The opening journal already carries those control balances. Adding another journal for the document list would double-count them. Keep the two roles clear: the trial balance posts the opening position, and the document register explains which unpaid records support its controls.
These rows are cutover evidence, not newly issued customer invoices or vendor bills. The foundation release has an internal authoritative open-item mechanism, but it does not silently adopt existing opening evidence into an operational AR/AP workflow. New control activation has restrictions, including an unused currency-neutral control. Uploading this CSV alone does not convert every historical document. The starter has a separate, explicitly reviewed party-mapping conversion that reconciles existing opening evidence to authoritative open items without posting the opening journal again; converted items can then be paid and aged.
- Control account
- The ledger account whose total is explained by a detailed supporting schedule.
- Unpaid-document evidence
- The identified outstanding records that reconcile the opening control at cutover.
What changes for a mid-year cutover?
A position-only example does not establish a full year-to-date income statement.
If the business moves partway through a financial year and expects full current-year profit reporting, its reviewed opening data must preserve the required year-to-date income and expense information. The four-line example above demonstrates a balance-sheet position only. It cannot tell the application how much revenue, expense, depreciation or tax occurred before the cutover. Do not present a post-cutover report as a complete annual result without that context.
Agree the reporting requirement with the person reviewing the books. They may need detailed year-to-date balances, comparative records or a separate historical reporting pack. Preserve those decisions with the import evidence. Uploading all historical transactions is a different project and should not be improvised by repeatedly importing overlapping opening balances.
What should you inspect in the preview?
The preview must show a balanced mapping and reconciled controls before confirmation can post.
- Confirm the company, book and cutover date.
- Check every account code and its intended debit or credit balance.
- Compare total debits and credits with the approved source trial balance.
- Reconcile each receivable and payable control to its document evidence.
- Resolve all readiness errors and review the final summary.
- Confirm once, then inspect the posted opening and its retained evidence.
Saving a preview does not create the opening journal. The confirmation step is the accounting boundary. Do not treat a successful upload as acceptance of the balances. If a validation message appears, correct the source mapping or evidence and preview again rather than changing unrelated accounts until the message disappears. Keep an explanation for every deliberate difference from the original source.
A genuine zero opening can have a durable completion receipt without a zero-value journal. That is different from an incomplete opening with missing data. Record why the company is genuinely starting at zero. For a continuing business, unsupported balances should not disappear merely because an empty file is easier to confirm.
Can you correct the opening afterward?
Opening correction is restricted to the owner and an eligible untouched book with the period still open.
The opening flow has its own safeguards. Once ordinary transactions, drafts or bank statements exist, the supported correction boundary changes. Do not assume a general journal reversal is an interchangeable replacement for the opening-correction process. Before confirming, take the time to review the cutover carefully; doing so is less costly than discovering a control mismatch after routine work has begun.
If a later problem appears, preserve the original evidence and identify exactly which assumption was wrong. An account classification issue, a missing unpaid document and a duplicated opening journal are different errors. Seek a reviewed correction path instead of editing posted rows. The immutable history should explain what happened, including the date and reason for any permitted correction.
When is this import the wrong choice?
Do not use opening import as a substitute for incomplete historical bookkeeping or unavailable operational features.
What should you do next?
A business with uncertain balances first needs reconciliation work. A business requiring live invoice issuance, vendor bills, stock costing or tax filing needs currently available workflows beyond this foundation. Use this procedure when the closing position is known, mapped and supported, then finish by checking the new book’s reports against the approved opening pack.
Questions before you continue
Check these boundaries before applying the procedure to a business installation.
Does the document CSV create invoices and bills?
No. It records opening unpaid-document evidence supporting the control balances.
Can I leave unexplained balances as zero?
No. Missing support is an unresolved cutover issue, not evidence of a zero balance.
Sources and next steps
Technical references and project behavior were checked on 16 September 2026; hosting access remains plan-specific.
The linked project files describe the current preview. Follow the instructions inside your exact downloaded package if a later release changes a command. Technical testing does not establish statutory compliance or independent accounting acceptance. See the project and preview limits.
