P U R P L E    F I N A N C E    B L O G



How does Odoo handle profit carryovers?​

What exactly is a profit carryforward? And what alternatives are there?

PURPLE FINANCE BLOG


How does Odoo handle profit carryovers?

What exactly is a profit carryforward? And what alternatives are there?

January 2026   ​|   ​Finance & Accounting   ​|   ​ERP

What is a profit carryforward?

There are various concepts of retained earnings. Basically, retained earnings (before use) are nothing more than all accumulated results from the past. They are presented in the balance sheet under equity together with the net income for the year. Both items together constitute the accumulated result. This is shown, for example, in an IFRS balance sheet instead of the two sub-items.

In traditional German accounting, you learn that income statement accounts are closed at the end of the financial year using the profit carryforward. There are closing and opening entries: while balance sheet accounts are reopened with the previous year's balance, income statement accounts remain empty and are closed using the profit carryforward.

This is not how Odoo works

In Odoo, the main table, the booking lines, simply displays all accounts “from the beginning of time.” Date filters can be used to display what is needed:
  • Period values (P&L)
  • Key date values (balance sheet)
The reports also work according to this principle. Odoo uses the account type to determine whether all cumulative values (balance sheet) or only the values for the year or month (P&L) should be displayed when a date is entered (e.g., “12/31/2024”).
Closing entries are therefore not necessary in principle. There is also no legal obligation to make them. Historically, these entries were used primarily for technical reasons, as earlier software solutions did not have enough computing power to display cumulative data across multiple periods. Those days are over.


Options for posting retained earnings in Odoo

1. Manual booking as in the past
All income statement accounts are closed out on January 1 of the following year and the amounts are transferred to the retained earnings account.
  • This method is technically possible (e.g., via an Excel export and subsequent import), but not advisable.
  • All reports would need to be slightly modified.
  • There is no practical or accounting reason to do so.

2. Odoo standard: Posting against account 9999
In the official manual, Odoo recommends posting to account 9999 “Retained earnings/losses.”
  • This account can be created once with the type “Current Year Earnings.”
  • It does not appear in either the income statement or the balance sheet.
  • In principle, this is a one-sided entry.
This method is functional, but requires manual entries. All subsequent entries from the previous year must also be recorded. Since these “subsequent entry periods” often span several months, the balance sheet for the new year is frequently inaccurate during this time.

3. Automatic calculation by Odoo
Since retained earnings are nothing more than the accumulated profits from previous years, they can be calculated directly in reporting, similar to net income. 

a) Berechnung mit dem Odoo Standard
For this purpose, three sub-items are created under the profit carryforward:
  • Manual profit carryforward: The starting value for profit appropriation is posted here during initial migration or transfer postings.
  • Carryforward of cumulative result (aut): Automatic calculation of the cumulative result over the entire period (date scope: “From the very start”).

  • Current year's profit carried forward negative (aut): Calculates the cumulative profit up to the end of the previous period (“According to each type of account”) and enters it as a negative amount.

b) Automatic calculation with the syscoon app “Retained Earnings”
Instead of creating two positions (ii. and iii.), a single position can be created:
  • Retained earnings (aut): With the syscoon app “Retained Earnings,” the new option “From the start to previous year” is available in the date scope.

This method ensures that values are always calculated correctly and automatically. Past P&L values can be accessed at any time.

Recommendation for the appropriation of profits

If earnings are appropriated, this should not be posted to the automatic items. Instead, a transfer account is created in the “Manual earnings carryforward” item.

Advantages:
  • Maximum transparency
  • No manual maintenance of the profit carryforward
  • Automatic calculation prevents errors
  • No unilateral bookings that would be problematic from an accounting perspective

Conclusion

Odoo takes a different approach to handling profit carryovers than traditional accounting software. Instead of manual entries, profit carryovers are calculated automatically and displayed using date filters.
  • Manual booking, as in the past, is technically possible but not advisable.
  • The standard Odoo solution with account 9999 is practical, but requires manual postings.
  • The best solution is automatic calculation, either using Odoo's standard options or the syscoon “Retained Earnings” app, which provides an even more accurate representation.
Companies using Odoo should consider these modern methods to manage profit carryovers more efficiently and accurately.


ERPBeratung


ERP Consulting


Individual ERP consulting for future-oriented companies: With our expertise, we take your business processes to the next level.


More

We are happy to support you



syscoonApps


Apps & Customization


Customized solutions for your business processes: Our modules and packages are designed to optimize your business processes.


More