This module allows to generate cu-toff entries automatically when posting former entries.
This module is based on account_invoice_start_end_dates which allows to define start end end dates on invoice line (account.move.line).
Following assumption have been made before developing this module:
- New method to compute cutoff amounts can be add by business modules
> [!NOTE] > This module as been developed with some opinionated design do not > depends on account_cutoff_base. Because: > > - we don't want rely on user nor async task at the end of > each month (period) > - link entries to understand the history without merging amounts > in order to be able to keep details on deferred account > move line (analytics, partners, accounts and so on)
auto_awesome What this module does
AI-generated from the code · Odoo 17.0Automatically creates cut-off (deferred revenue/expense) journal entries when you post an invoice or bill whose lines have start and end dates spanning future months. You can follow the generated entries from the source document.
When you post a customer invoice or vendor bill, this module checks each line that has a start date, an end date and an accrual account configured on its account. If the service period extends beyond the posting month, the line is flagged as deferrable and Odoo automatically creates and posts cut-off entries in the cut-off journal, splitting the amount over the months of the service.
- Two allocation methods are available per line: Equal (same amount each month) or Prorata temporis by month percentage (based on service days in each month). A default method can be set in Accounting settings.
- The cut-off journal for revenues and the one for expenses are configured in Accounting settings (per company).
- On each account, you can set a Revenue/Expense accrual account; without it, the line is not deferred.
- On the invoice form a smart button shows how many deferred entries were generated and opens them; the source entry is also shown on generated entries.
- Reverting an entry to draft deletes its generated cut-off entries and removes their reconciliations.
- An option in settings lets you keep the product on deferred journal items.
It touches account.move, account.move.line, account.account, res.company and res.config.settings.
Depends on
Models and fields (6)
- res.company · extends an existing modelexpense_cutoff_journal_id (Cut-off Expense Journal), revenue_cutoff_journal_id (Cut-off Revenue Journal)
- account.move · new modelcutoff_from_id (Cut-off source entry), cutoff_entry_ids (Cut-off entries), cutoff_move_count
- account.account · extends an existing modeldeferred_accrual_account_id (Revenue/Expense accrual account)
- account.move.line · new modelcutoff_ids (Cut-off items), cutoff_method (Cut-off method), cutoff_source_id (Cut-off source item), is_deferrable_line (Is deferrable line), cutoff_source_move_id (Cut-off source entry), deferred_accrual_account_id (Revenue/Expense accrual account)
- cutoff.period.mixin · new model
- res.config.settings · extends an existing modellink_product (Link product), default_cutoff_method (Default Cutoff method), expense_cutoff_journal_id (Expense cut-off journal), revenue_cutoff_journal_id (Revenue cut-off journal)
Text generated by AI (DeepSeek) from reading the Odoo 17.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 2 confirmed, 7 with no information of 9 versions.
Sources · Odoo 14.0
Confirmed on 2026-11-03 in branch 14.0 of OCA/account-closing.
terminal Installation and usage
OCA documentation · Odoo 17.0Configuration
Source · Odoo 17.0Deferred journal(s)
In accounting configuration you should set Deferred Revenue and Expense journal to be used on generated entries.
> [!NOTE] > Journal will be used according the kind of journal used by the former > entry: sale or purchase
Deferred account(s)
On each Revenue/Expense account you can set the deferred Revenue/Expense account.
Only invoice lines linked to account with a deferred account set will generate deferred Revenue/Expense.
Cut-off Method
In the first version of this module, two cut-off computation methods are supported and can be configured using the account_move_cutoff.default_cutoff_method key. The currently possible values are monthly_prorata_temporis or equal.
Before defining these values, let's provide some context by using an example to illustrate the definitions. Consider a sales invoice that is posted on January 16th for a service that spans from the 8th of January to the 15th of March. So, there are 24 days in January, 1 full month in February, and 15 days in March. The product is sold for 1000 for a month, so the invoice line amount (excluding VAT) is calculated as follows:
24/31 * 1000 + 1000 + 15/31 * 1000 = 2258.06
- monthly_prorata_temporis (the default if not set): This method splits amounts over the rate of the month the product has been used. The results would be as follows:
- January: 774.19 (2258.06 - 1000 - 483.87) (Subtraction is used here to avoid rounding discrepancies.)
- February: 1000.00 (1 * 2258.06 / (24/31 + 1 + 15/31))
- March: 483.87 (15/31 * 2258.06 / (24/31 + 1 + 15/31))
- equal: With this method, the same amount is split over the months of service.
- January: 752.68 (2258.06 - 752.69 - 752.69)
- February: 752.69 (2258.06 / 3)
- March: 752.69 (2258.06 / 3)
Please note that this information is subject to change based on updates to the module. Always refer to the latest documentation for accurate details.
Usage
Source · Odoo 17.0To handle deferred accounting, follow these steps:
- Set the start and end date, where the end date is at least set to the month after the current entry posted date.
- Ensure that the account (the account.account configuration) in use is linked to a deferred account.
- Post the entry.
- After posting, check deferred entries have been generated, posted, and reconciled if needed.
> [!NOTE] > This module only defers amounts in periods subsequent to the > accounting period date. For example, if an invoice is posted on March > 2nd for a service from January 1st to March 31st at 1000€ per month, > the deferred amount will be only 1000€ for March, leaving 2000€ in > February. We never add accounting items in periods previous to the > current entry date.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.