HADOOPT
TECHNOLOGIES
Schedule a Tech Consultation
Home
Services
Odoo ERP implementation Rollout, custom modules, migration and support. Web application development SaaS products, portals and internal platforms. Mobile application development Offline-first field apps and customer apps. AI development & automation LLM assistants, document processing, forecasting. Odoo version upgrades ↗ Move to a newer release, scoped and priced on its own site.
Products
OrgExp ↗ Budget, CAPEX and OPEX management.
Blog About Contact Schedule a Tech Consultation
Blog / Odoo 19: Complete Guide for Businesses
Odoo 19 6 min read

Financial reports, assets and month-end closing in Odoo 19

Odoo 19's P&L, balance sheet, aged and tax reports, fixed asset depreciation, deferred revenue and expenses, and a month-end closing sequence that works.

· ERP practice 22 Sep 2026

Odoo 19's financial reports (P&L, balance sheet, cash flow, general ledger, trial balance, aged receivables and payables, and the tax report) come from the Enterprise module account_reports. Fixed assets need the Enterprise Accounting app. A reliable month-end in Odoo 19 follows a fixed order: bank, receivables and payables, deferrals and depreciation, currency revaluation, tax return, then lock dates. No year-end closing entry is needed, because the balance sheet works out current-year earnings itself.

The reports Odoo 19 gives you

All of these are live reports. You can unfold any line down to journal items, compare periods and export to PDF or XLSX. They sit under Reporting:

MenuReportsUse it for
Statement ReportsBalance Sheet, Profit and Loss, Cash Flow StatementMonthly management pack, board reporting
LedgersGeneral Ledger, Trial BalanceChecking balances, auditor requests
Partner ReportsPartner Ledger, Aged Receivable, Aged PayableCollections, vendor statements, payment runs
Taxes & FiscalTax Report (with country variants such as GSTR-3B)Preparing the tax return
ManagementExecutive Summary, Invoice Analysis, Analytic ReportKPIs and margin by project or department

For Indian companies, the Enterprise Indian reports module (l10n_in_reports) adds an India-specific Profit and Loss variant and GSTR-1, GSTR-2B and GSTR-3B. Community has Invoice Analysis but none of the statutory statements. That is usually the deciding point for a company whose auditors expect the books to come out of Odoo.

Fixed assets and depreciation

Assets come from account_asset, which depends on the Enterprise Accounting app, not on Invoicing alone. Assets live under Accounting › Assets & Liabilities, and Asset Models under Configuration › Accounting.

Each asset or model sets:

  • Method: Straight Line, Declining (with a declining factor), or Declining then Straight Line.
  • Duration and period: a number of periods of one month or one year.
  • Prorata: No Prorata, Constant Periods, or Based on days per period, for assets bought mid-period.
  • Accounts: the fixed asset, accumulated depreciation and depreciation expense accounts, and the journal.

The quickest setup is to link an asset model to each fixed asset account. On that account's Automation tab, Automate Asset can be set to Create in draft or Create and validate, so a vendor bill posted to that account creates the asset for you. Once an asset is confirmed, its depreciation entries are scheduled and post on their dates. Modify, Pause, Resume, Sell and Dispose handle the changes, and Sell and Dispose post the gain or loss.

For India, l10n_in_asset installs automatically with assets. It changes the Declining method so the salvage value is respected, which is how written-down-value depreciation with a residual value is usually computed in India. Income-tax block-of-assets depreciation is a separate calculation. Keep that one in your tax working papers, not in the books.

Deferred revenue and deferred expenses

You don't need a separate module for deferrals. In Enterprise, an invoice or bill line gets Start Date and End Date fields. Fill them on a yearly AMC invoice or a prepaid insurance bill, and Odoo spreads the amount over the period.

Settings has a Deferred expense entries block and a Deferred revenue entries block. Each sets the journal, the deferral account, when entries are generated (On bill validation, or Manually & Grouped) and how the amount is spread (Days, Months or Full Months). The Indian chart already has deferred revenue and deferred expense accounts.

Our default: generate on validation for companies with few deferrals. Use Manually & Grouped when there are hundreds, so month-end posts one grouped entry per account, not one per invoice. Either way, the Deferred Revenues and Deferred Expenses reports under Review › Regularization Entries show what is still to be recognised.

A month-end closing sequence for Odoo 19

The order matters more than speed. Each step relies on the one before:

  1. Bank. Import or sync every bank journal to the last day and reconcile. Bank Suspense should be empty.
  2. Receivables and payables. All sales invoices and vendor bills for the month posted, and outstanding receipts and payments cleared.
  3. Inventory and payroll. Stock valuation and payroll entries posted, if those apps are in use.
  4. Deferrals and depreciation. Generate grouped deferral entries and check that the month's depreciation entries have posted.
  5. Accruals. Post accruals for goods received but not billed, and expenses incurred but not invoiced.
  6. Currency revaluation. For foreign-currency balances, run the Currencies report under Review › Regularization Entries and post the adjustment.
  7. Tax return. Under Accounting › Closing › Tax Returns, take the return through Review and Submit, then set the tax return lock date.
  8. Review and lock. Check the trial balance, P&L and balance sheet, then set Lock Everything for the month in Lock Dates….

A return that still has failing checks can't be submitted. The same menu also holds an Audit return type for year-end work, with 33 ready-made audit checks such as empty suspense accounts, bank statements and clearing of internal transfer accounts. Go through them once with your auditor and drop the ones that don't apply.

A month is closed when it is locked, not when the report has been sent.

Year-end in Odoo 19

At year end there is no closing entry to post. The balance sheet shows Current Year Unallocated Earnings and Previous Years Unallocated Earnings, computed from the P&L accounts, and the P&L starts from zero in the new fiscal year. What remains is judgement: provisions, the auditors' adjustments, allocating the result to reserves with a journal entry if your company does that, and finally a Hard Lock once the accounts are signed.

Build the checklist once, give each step an owner, and run it the same way every month. Next in the series: employees and HR records in Odoo 19. If your close takes longer than it should, we can look at it with you.

Questions we get asked

Does Odoo 19 Community have a balance sheet and P&L report?

No. The Balance Sheet, Profit and Loss, Cash Flow Statement, General Ledger, Trial Balance, aged reports and tax report all come from account_reports, an Enterprise module. Community includes Invoice Analysis and the underlying journal items, so you can export data to a spreadsheet, but it has no statutory financial statements that can be drilled into.

How does Odoo 19 calculate depreciation?

Odoo 19 Enterprise's Assets app supports Straight Line, Declining and Declining then Straight Line methods over monthly or yearly periods. Prorata can be off, based on constant periods, or based on days. Confirmed assets schedule depreciation entries that post on their dates. For Indian companies, the l10n_in_asset module adjusts declining depreciation so the salvage value is respected.

Do I need to post a year-end closing entry in Odoo?

No. Odoo computes the year's result on the balance sheet as Current Year Unallocated Earnings and carries earlier years as Previous Years Unallocated Earnings. Income and expense accounts start the new fiscal year at zero automatically. You only post entries for real decisions, such as moving the result into reserves, then lock the year with the lock dates wizard.

How are deferred revenue and prepaid expenses handled in Odoo 19?

In Odoo 19 Enterprise you enter a Start Date and End Date on the invoice or bill line, and Odoo spreads the amount over that period using the deferral accounts in Settings. Entries can be generated when the document is validated, or manually in a grouped entry at month end. Deferred Revenues and Deferred Expenses reports show the balance still to be recognised.

← Previous GST compliance in Odoo 19: taxes, HSN, e-invoice, e-way bill and GSTR Next → Employee records, departments and contracts in Odoo 19
Keep reading
Odoo 19 Setting up accounting in Odoo 19: localisation, chart of accounts and journals 6 min read Odoo 19 Bank reconciliation in Odoo 19: feeds, matching and rules 6 min read Odoo 19 Employee expenses and reimbursements in Odoo 19 6 min read