Balance Sheet and P&L Report shows different Profit values

P&L for the year of 2025-2026:

Balance sheet for the year of 2025-2026:

Below are the status of the FY 2025-2026

  1. Started using erp from the Sep-2025 with opening accounting entries
  2. Stock reconciliation is pending for FY 2025-2026.
  3. Opening invoces created from previous years from 2018 and these FYs are not closed yet.
  4. Posting of period closing vouchers is pending

I am not able to justify the difference between both report profit.

Hi @poojavadher,

This is a very common mismatch, and the good news is that all three pending items you listed are exactly the reasons the two reports won’t tie yet. Let’s walk through them in the order that will fix it.

1. Period Closing Voucher — the #1 culprit

The Balance Sheet’s “Profit for the Year” line is calculated as Total Income minus Total Expense for every date after the last Period Closing Voucher and on or before the “To Date” of the report.

So if you haven’t posted a Period Closing Voucher for FY 2017–18, 2018–19, … 2024–25, then every prior year’s income and expense is still adding into the current year’s “Profit for the Year” on the Balance Sheet. Meanwhile, the P&L report is filtered strictly to FY 2025–26 only. That alone usually explains most of the gap.

Fix: post one Period Closing Voucher per closed FY, in chronological order:

  • Accounting → Period Closing Voucher → New

  • Posting Date = the closing date (e.g. 31-Mar-2019, then 31-Mar-2020, …)

  • Closing Account = your Retained Earnings / Reserves & Surplus account

  • Submit

After each voucher, that FY’s P&L gets transferred into Retained Earnings (Equity) and stops polluting the Balance Sheet’s “Profit for the Year”.

2. Check the “Is Opening” flag on the opening invoices

Opening Sales/Purchase Invoices imported for the period before Sep-2025 must have Is Opening = Yes in the invoice header. With that flag, the invoice posts against the “Temporary Opening” account and stays out of the P&L.

If they were imported with Is Opening = No, ERPNext treats them as real revenue/expense on whatever date they carry — which will absolutely push the P&L away from the Balance Sheet.

How to check: open the General Ledger filtered on your “Temporary Opening” account. If you see your 2018+ opening invoices there, the flag is correct. If not, you’ll need to either cancel + re-import them with Is Opening = Yes, or post a correcting Journal Entry to move them out of P&L into Temporary Opening.

3. Stock Reconciliation pending

Until you post opening stock, the Balance Sheet shows the stock asset (from your opening entries) but the P&L has no offsetting Cost of Goods Sold. That difference also flows into the Profit line.

Fix: Stock Entry → Stock Reconciliation, Posting Date = 31-Aug-2025 (day before go-live), tick Is Opening = Yes, and load valuation rate per item per warehouse.

Recommended order of operations:

  1. Verify “Is Opening = Yes” on every opening invoice and opening journal.

  2. Post Stock Reconciliation with Is Opening = Yes for 31-Aug-2025.

  3. Post Period Closing Voucher for each prior FY: 2017–18, 2018–19, … 2024–25.

If after all of this the two still differ by a stubborn amount, share the General Ledger filtered on your Retained Earnings / Profit & Loss account from 01-Apr-2025 to today — the leftover gap is almost always one or two stray entries that show up immediately in that view.

Hope this helps!

1 Like

It seems improper grouping of the ledger(s)/account(s) and hence a particular transaction or set of transactions has been posted either only to Balance Sheet side or only to Profit and Loss (P&L) side.

Ideally, a Sales transaction hits to Income (P&L) and Sundry Debtors (Receivable under Asset side) or GST-Taxes (Liability). While Purchase transaction, hits to Expense (P&L) and Sundry Creditors (Payable under Liability).

In your case, one or more than one transaction has not been followed this standard rule.