Odoo Month End Close Checklist: Bank, Accruals, Tax and Lock Dates
Odoo month end close checklist for Odoo 19 and 20: bank reconciliation, accruals, deferrals, the monthly tax return, lock dates and ending Excel rebuilds.
Most finance teams on Odoo still close the month the old way: export the trial balance, fix it in a spreadsheet, then post corrections by hand. Our Odoo ERP support team helps controllers replace that with a close that runs inside Odoo.
Related service: Odoo for finance teams — accounting, tax and reporting automation.
This checklist is for accountants, controllers and finance managers who close monthly in Odoo 19 or 20. It covers the monthly routine only; for the annual steps, such as earnings allocation and the Hard Lock, see our Odoo year end closing checklist.
Odoo month end close checklist at a glance
The Odoo month end close checklist has five stages, and each one maps to a menu in the Accounting app. Odoo's own guide to month-end close in Odoo Accounting says most businesses finish within 3 to 7 days.
| Stage | What you do | Where in Odoo | Typical owner |
|---|---|---|---|
| Cut-off | Post or cancel drafts, enter missing bills and expenses | Journal Entries, Vendors, Expenses | Accountant |
| Bank | Match every transaction, clear suspense | Accounting dashboard, bank journal card | Accountant |
| Adjustments | Accruals, deferrals, depreciation, exchange rates | Order actions, Deferred reports, Assets | Accountant |
| Review | Aged balances, balance sheet, P&L | Reporting menu | Controller |
| Tax and lock | Validate the tax return, set lock dates | Tax Returns, Lock Dates | Controller or CFO |
A simple five-day calendar keeps the close on rails. The days below are illustrative; small teams often finish faster.
- Day 1, cut-off: post or cancel every draft dated in the month, chase missing vendor bills, validate employee expenses.
- Day 2, banks: fetch the last statement lines, reconcile each bank and card journal, and clear the suspense account to zero.
- Day 3, adjustments: post accruals, deferred revenue and expense entries, depreciation and exchange rate entries.
- Day 4, review: check aged receivables and payables, the balance sheet and the P&L against last month and budget.
- Day 5, tax and lock: review and validate the tax return, then set the Sales, Purchase and Lock Everything dates.
Does Odoo have accounting periods to close each month?
No, Odoo does not have monthly accounting periods to open and close; a month is "closed" when you set lock dates after your checks. Users moving from older ERPs often look for a Close Period button that does not exist.
Instead, you use lock dates under Accounting, Accounting, Lock Dates, plus the Tax Returns list as your recurring close calendar.
The Odoo year-end closing documentation explains that a lock date blocks posting or editing any entry dated on or before it. New entries for a locked date move to the day after the lock date.
So Odoo period closing is really two habits: run the same checks every month, and move the lock dates forward once they pass. If the basics of journals and accounts are new to you, read how Odoo Accounting works first.
How do you do bank reconciliation at month end in Odoo?
Odoo bank reconciliation at month end means every bank transaction up to the last day is matched or written off, and the book balance equals the statement balance. It comes first because every later step depends on it.
Open the bank journal from the Accounting dashboard and click the to-reconcile button. Odoo's bank reconciliation documentation explains that each transaction sits on a suspense account until it is matched, so a non-zero suspense balance means unfinished work.
- Recurring items: set up reconciliation models for bank fees and similar flows; automated models apply without a click.
- Odoo 20 matching rules: a new Matching Rules menu sets a payment tolerance and an oldest-first or newest-first order for invoice and bill matching.
- Run Auto Reconciliation: Odoo 20 adds this to the bank reconciliation gear menu to rerun automatic matching on demand.
- Proof for the file: the Odoo 20 Bank Reconciliation Summary now lists reconciled and unreconciled receipts and payments up to the period end.
Our Odoo 20 accounting release notes show each of these Odoo 20 changes with screenshots.
How do you post month-end accruals and deferrals in Odoo?
Odoo creates most month-end accruals and deferrals for you from orders and invoice lines, so you review and post instead of typing journal entries. Set the date to the month end and check the accounts before posting.
Accrued expenses and accrued revenue
For goods received but not yet billed, select the purchase orders and use the Accrued Expense Entry action. For goods shipped but not invoiced, use Accrued Revenue Entry on sales orders. The wizard proposes the last day of the previous month and a reversal the next day.
Deferred revenue and deferred expenses
Set start and end dates on invoice or bill lines for subscriptions, rent or insurance. The Odoo deferred revenue documentation offers two modes: entries on validation, or Manually and Grouped.
With Manually and Grouped, click Generate Entries on the Deferred Revenue or Deferred Expense report each month end. Odoo checks once a day for entries to post, so a draft can take up to 24 hours to show as posted.
Depreciation
Odoo creates depreciation entries in draft and posts them on schedule. At month end, look for assets bought on expense accounts and missing from the Assets list, and for draft depreciation dated in the month.
How do you close receivables, payables and foreign currency each month?
Review the aged receivable and aged payable reports, confirm their totals match the control accounts, and update foreign currency balances before you report. Small mismatches here grow into large year-end problems.
- Aged balances: chase items over 60 days and decide whether a provision is needed, as Odoo's year-end checks suggest.
- Totals check: aged receivables should equal the customer account balance, and aged payables the vendor balance.
- Exchange differences: Odoo posts realized gains and losses on payment automatically to the accounts set in Settings.
- Open foreign balances: revalue them at the month-end rate, as our Odoo multi-currency accounting guide shows step by step.
How do you run the monthly tax return in Odoo?
Set the tax return periodicity once, then each month review the checks, validate the return and let Odoo post the closing entry and set the tax lock. The Tax Returns journal on the dashboard reminds you when a return is due.
The Odoo tax return documentation lists automatic checks before you validate. Each card shows Reviewed, To review or Anomaly.
| Tax check | What it catches |
|---|---|
| Bank Matching | Bank payments with no bill, a sign of missing purchases |
| Bill attachments | Bills with no supporting document for an audit |
| Company data | A missing VAT number or country |
| Draft entries | Draft invoices and bills still dated in the period |
| No negative amount | Negative VAT lines that some countries reject |
| Taxes and countries matching | Taxes that do not fit the customer's country |
When every check is Reviewed or Supervised, click Validate. Odoo posts the closing entry in the Tax Returns journal and moves the Tax Return lock date. A late bill dated in that period then has its tax moved to the next open period.
Which Odoo lock date should you set each month?
Each month, set the Tax Return lock through the return, then lock Sales and Purchase, then Lock Everything once the controller signs off. Save the Hard Lock for the audited year end, because it can never be undone.
An Odoo forum user asked how to perform monthly account locking in Odoo, including by module. The accepted answer points to lock dates per area plus logged exceptions.
| Odoo lock date | Monthly use | Reversible? |
|---|---|---|
| Tax Return | Set by validating the tax return | Yes, with an exception |
| Sales | Lock once invoicing for the month is final | Yes, with an exception |
| Purchase | Lock once bills and accruals are posted | Yes, with an exception |
| Lock Everything | Set after the controller signs off the month | Yes, with an exception |
| Hard Lock | Not monthly; use for an audited year | No, never |
When a late fix is needed, an Accounting administrator removes the date and sets an exception for one user or everyone, for a set time, with a reason. Odoo logs it in the company chatter, which gives auditors a clean record.
Limit who holds administrator rights in Accounting. Our post on Odoo internal controls covers access, approvals and the audit trail.
Month end close vs year end close in Odoo

The monthly close is a short, repeated routine; the year end adds earnings allocation, the Annual Closing review and often a Hard Lock. Keep them apart so the monthly close stays light.
| Area | Month end close | Year end close |
|---|---|---|
| Bank reconciliation | Every journal to month end | Every journal to year end |
| Accruals and deferrals | Posted monthly, reversed next day | Full review against auditor list |
| Tax | Monthly or quarterly return | Annual corporate tax closing |
| Lock dates | Sales, Purchase, Lock Everything | Lock Everything, then Hard Lock |
| Earnings | Not needed | Manual entry to clear Result Brought Forward |
| Review tool | Tax return checks | Annual Closing checks in Tax Returns |
Odoo vs Excel accounting: how do you stop rebuilding the close in spreadsheets?
Stop rebuilding the close in Excel by fixing the data in Odoo and reporting from Odoo, instead of correcting exports outside it. Each spreadsheet fix that never reaches the ledger returns next month.
Teams usually keep Excel for three reasons: untrusted ledger data, a missing management report, or old habits. Our article on why Odoo users keep spreadsheets after an ERP project breaks down each one.
- Untrusted data: fix the source, such as wrong product accounts or taxes, rather than adjusting the export.
- Missing reports: build them in Odoo's report engine or Odoo Spreadsheet linked to live data.
- Variance checks: compare the month with last month and budget inside Odoo reports.
- Alerts: flag unmatched bank lines or drafts before the close with Odoo dashboards and alerts.
Not sure why your close drags? The free Odoo health check reviews your version, modules and setup and lists findings.
Month end close by industry
The core checklist is the same everywhere, but each industry has one step that usually slows the close. Plan extra time for that step.
| Industry | Pain or cost driver | Odoo approach | How iVentureTeam helps |
|---|---|---|---|
| Distribution | Goods received but not billed | Accrued Expense Entry on purchase orders | Set receipt and billing rules |
| Manufacturing | Work in progress and stock value | Valuation report, work order costing | Review costing and accounts |
| SaaS and subscriptions | Revenue spread over months | Deferred revenue, Manually and Grouped | Configure deferral accounts |
| Professional services | Unbilled time at month end | Accrued Revenue Entry, timesheet billing | Align billing with the close |
| Multi-company groups | Intercompany and currency gaps | Intercompany rules, exchange entries | Design group close order |
How iVentureTeam helps with Odoo month end close

iVentureTeam sets up and runs the Odoo month end close with your finance team until it takes days, not weeks. We have delivered 150+ ERP projects across 35+ countries with 40+ Odoo specialists over 13+ years.
- Close calendar: a day-by-day checklist with owners, matched to your tax periodicity.
- Ledger clean-up: suspense accounts, unmatched payments, wrong product accounts and old drafts fixed at the source.
- Automation: reconciliation models, matching rules, deferral settings and accrual routines configured once.
- Controls: lock date policy, administrator rights and exception rules agreed with your auditor.
- Training: hands-on Odoo ERP training so your team runs the close alone.
Odoo month end close case study: Fernando Tax Management
A Dutch tax practice drowning in duplicate manual entries moved to Odoo 18 and cut manual data entry by 60%. Founded in 2008, the firm had outgrown a rigid legacy system.
Manual entry across systems produced duplicate and inconsistent records that staff reconciled by hand. Journal entry creation, sales workflows and cost tracking were slow, and reports had translation gaps.
We migrated the firm to Odoo 18 in 10 weeks, built an office cost tracking workflow in Sales and Purchase, fixed a hidden journal lines issue and built localized tax reports for the Netherlands and Curaçao.
Leadership now works from real-time insights in one system instead of reconciled spreadsheets. Read the Fernando Tax Management Odoo accounting automation case study.
The bottom line on Odoo month end close
A fast Odoo month end close comes from the same five steps every month: cut-off, banks, adjustments, tax return and lock dates. The tools are already in Odoo 19 and 20.
If your close still takes weeks, the cause is usually ledger data, not the software. Fix the data once, automate the repeat work and lock each month on schedule.
Ready to shorten your month end close?

Get a close calendar and ledger review from consultants who run Odoo accounting every day. Plan a faster Odoo month end close with us, call +91-90235-15208, or email business@iventureteam.com.
Frequently Asked Questions
How do I close a month in Odoo?
+
Odoo has no period records to close. Reconcile banks, post accruals and deferrals, review aged balances, validate the tax return, then set the Sales, Purchase and Lock Everything dates under Accounting, Accounting, Lock Dates.
How long should a month end close take in Odoo?
+
Odoo says most businesses finish within 3 to 7 days. Teams with clean bank feeds, reconciliation models and monthly accruals often finish nearer the low end of that range.
What is the difference between Lock Everything and Hard Lock in Odoo?
+
Lock Everything blocks entries on or before the date, but an administrator can grant a logged exception. The Hard Lock is irreversible, so keep it for an audited year end.
Does validating the tax return lock the period in Odoo?
+
Yes, for tax. Validating the return posts the closing entry in the Tax Returns journal and moves the Tax Return lock date. Other entries stay open until you set the other lock dates.
Can I post an entry after locking a month in Odoo?
+
Yes, if the lock is not a Hard Lock. An Accounting administrator removes the date and sets an exception for one user or everyone, for a set time, with a reason logged in the company chatter.
How do I post accruals at month end in Odoo?
+
Use Accrued Expense Entry on purchase orders and Accrued Revenue Entry on sales orders. The wizard proposes the month-end date and a reversal on the next day, which clears the accrual when the real document arrives.
Do I still need Excel for the month end close in Odoo?
+
Usually not. Most rebuilds come from untrusted ledger data or a missing report. Fix the data in Odoo and build the report there, and the spreadsheet step disappears.
Free written answer from a certified consultant
Getting Odoo Accounting set up right?
We map your accounting, tax and reporting in Odoo and show what to set up first, and what to watch.
Free, with no obligation. A senior consultant replies within 12 business hours.
Free Odoo tools
All tools- Odoo Health CheckVersion, modules, findings and upgrade cost
- Odoo App SelectorWhich apps you need, by industry
- Odoo Project EstimateIndicative cost and timeline in minutes
- Odoo Implementation Cost CalculatorImplementation cost and timeline, in minutes
- Odoo Migration Cost CalculatorVersion jump or legacy ERP, priced in minutes
Continue reading
Odoo Accounting for CFOs in the GCC: VAT, E-Invoicing and Controls
Odoo accounting for CFOs in the GCC: UAE and Saudi VAT, ZATCA and UAE e-invoicing, AED and SAR multi-currency, lock dates and hashed audit controls.
Odoo 20 Accounting Upgrade Checklist: Reconciliation, Taxes, Reports
Odoo 20 accounting changes explained, with an upgrade test checklist for bank reconciliation, taxes, fiscal positions, lock dates and financial reports.
Odoo UAE VAT and Corporate Tax Setup: Step by Step for Odoo 19 and 20
Set up Odoo UAE VAT and corporate tax in Odoo 19 and 20: TRNs, taxes, fiscal positions, reverse charge, VAT201 filing, corporate tax tags and e-invoicing.
