"Not balanced: check opening balances": the trial balance or balance sheet shows a difference
Posted vouchers always balance, so a gap on the trial balance or balance sheet comes from the opening balances typed for the year; balance them on the Opening balances tab, then rebuild the period cache so Period balances agree.
Messages this explains
- “Not balanced: check opening balances”
- “Difference <x>: check opening balances”
- “Debits and credits differ by <amount>. The server accepts an unbalanced set, but the trial balance will show the gap until it is corrected (Tally posts it to a suspense ledger).”
- “No cached rows: nothing has been posted to this ledger in this year, or the cache needs a rebuild.”
- “No cached rows: nothing has been posted to this ledger, or the cache needs a rebuild.”
- “Rebuilt <n> rows for <n> ledgers across <n> year(s).”
- “FY <name> is closed; its opening balances are fixed.”
"Not balanced: check opening balances": the trial balance or balance sheet shows a difference
The trial balance or the balance sheet carries a red badge instead of Balanced, or a ledger's period balances are empty although vouchers have been posted to it.
What you see
- On Trial balance, next to the "FY <name> · <from> to <to>" summary: the red badge "Not balanced: check opening balances" instead of the green Balanced. The Totals footer shows different "Dr" and "Cr" figures.
- On Balance sheet: the red badge "Difference <x>: check opening balances", with Total assets not equal to Total liabilities and equity.
- On Opening balances (Books > Opening balances): the Difference tile in amber and the warning "Debits and credits differ by <amount>. The server accepts an unbalanced set, but the trial balance will show the gap until it is corrected (Tally posts it to a suspense ledger)."
- On Period balances: "No cached rows: nothing has been posted to this ledger in this year, or the cache needs a rebuild." (without "in this year" when no fiscal year is picked) for a ledger you know has postings (or opening balances), and after Rebuild balances the green toast "Rebuilt <n> rows for <n> ledgers across <n> year(s)."
Why it happens
Every voucher must balance before it can post (debits equal credits), so the vouchers themselves can never put the books out of balance. The one place the app takes figures on trust is the opening balance of each ledger for a fiscal year, typed on the Opening balances tab when books are brought in from Tally or an earlier system. The tab accepts an unbalanced set on purpose, so that a migration can be saved in parts, and it shows the Difference tile while it stays unbalanced.
The reports read those opening balances directly:
- The trial balance is Balanced only when total opening debits equal total opening credits and total closing debits equal total closing credits. An unbalanced opening set fails both.
- The balance sheet takes the closing balance of every asset, liability and equity ledger as of the date, adds the period's profit (income minus expense from the start of the year) to equity, and expects assets to equal liabilities plus equity plus that profit. Opening balances typed on an income or expense ledger are not part of that profit line, so they also create a Difference even when the trial balance itself balances. In a mid-year migration the year-to-date profit belongs in an equity ledger (Tally's profit and loss balance), not on the income and expense ledgers.
After a year-end close the next year's opening balances are written by the close itself and are always balanced; the badge then points at a year whose openings were typed by hand.
Period balances is different: it shows a cached month-by-month summary that the reports do not use. The cache is refreshed when a voucher is posted or reversed, at year close and reopen, and by Rebuild balances, but not when opening balances are saved. So a ledger with only an opening balance, or whose opening was changed after its last posting, shows "No cached rows" or a stale opening until the cache is rebuilt. The reports are right; the cache is behind.
How to fix it
- Open the books' Opening balances tab, pick the Fiscal year the badge names, and untick "Only ledgers with a balance" to see every ledger. Compare the Total debit and Total credit tiles with the trial balance you migrated from, and correct the Amount and Side (Dr / Cr) of the ledgers that differ until Difference reads zero. Move any year-to-date profit or loss off the income and expense ledgers onto the equity ledger it belongs to. Then Save opening balances. You need the Edit permission on Chart of Accounts; in the default roles that is the Administrator, the Finance Lead and the Accountant. A closed year cannot be edited ("FY <name> is closed; its opening balances are fixed."); reopen it first on Fiscal years if the wrong figures were carried into it.
- If the migration source is itself unbalanced, do what Tally does: put the difference on a suspense ledger (add one under the right group on the chart of accounts, the Create permission on Chart of Accounts) so the set balances, and clear it by journal voucher once the cause is found.
- Reopen Trial balance and Balance sheet; the badge turns to Balanced as soon as the opening set balances. Use the ledger links on the trial balance to see any ledger's entries for the range.
- On Period balances press Rebuild balances and confirm Rebuild in "Rebuild period balances?" so the cache matches the corrected openings; the toast "Rebuilt <n> rows for <n> ledgers across <n> year(s)." confirms it. This needs the Edit permission on Books (Administrator and Finance Lead by default). The reports do not depend on the rebuild, so it can wait.
Related
- Trial balance
- Balance sheet
- Opening balances
- Period balances
- Ledger report
- Fiscal years
- Chart of accounts: a seeded group, ledger, template, cost centre or voucher type refuses the change or the delete
- Fiscal year cannot be closed or reopened: next year missing, drafts pending, or years out of order
Related
- Trial balanceScreen
Opening, period debit and credit and closing per ledger or per group for a fiscal-year range, on a grid you can sort, resize and filter by column, with the report's totals in the footer and CSV export.
- Balance sheetScreen
Assets against liabilities and equity as of a date, with the year's profit to date carried into equity and a check that the two sides agree.
- Opening balancesScreen
The balances brought forward into a fiscal year, one amount and side per ledger, typed in one table and saved as a whole, with running debit and credit totals.
- Period balancesScreen
The stored month-by-month opening, movement and closing of one ledger, used as a cross-check, with the action to rebuild it for the whole set of books.
- Ledger reportScreen
The ledger of one account between two dates: opening balance, every posting with a running balance, and closing balance, with CSV export.
- Fiscal yearsScreen
The fiscal years of a set of books with their 12 monthly periods: lock or unlock a month, open the next year, and close or reopen a year at year end.
- Chart of accounts: a seeded group, ledger, template, cost centre or voucher type refuses the change or the deleteTroubleshooting
Rows the app seeded or that postings already use are protected: seeded groups, system ledgers and system templates keep their name and place, and anything with postings, mappings or vouchers behind it is retired rather than deleted.
- Fiscal year cannot be closed or reopened: next year missing, drafts pending, or years out of orderTroubleshooting
The Close year dialog stays blocked or the close and reopen actions are refused: the next year must be open, no drafts may remain, years close and reopen in order, and the books need a Journal voucher type and the Profit & Loss ledger.