Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Accounting
  3. Year-End Closing v 19.0
  4. Sales Conditions FAQ

Year-End Closing

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 19.0 Third Party 72
Download for v 19.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Invoicing (account)
Community Apps Dependencies Show
Accounting Suite Base
Lines of code 4409
Technical Name eh_account_year_end
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
ERP Heritage · Accounting Suite
PERIOD CLOSE

Year-End Closing

The annual close most Community accounting modules skip, computed, reviewed, posted, and reversible.

Free · LGPL-3ODOO 19 COMMUNITYLGPL-3v19.0.1.0.5
Net profit
Closing entry
Retained earnings
Lock date
Reversal

Why this module

Year-End Closing

01 / REVIEW

Compute, then look before you post

The run computes a per-account profit-and-loss breakdown read from posted journal entries, so the operator reviews every income and expense balance before a single line posts. Compute is idempotent: re-running unlinks and rebuilds the breakdown without duplicating.

02 / BALANCE

Balanced by construction, every case

One closing entry zeroes all income and expense accounts against retained earnings and balances by construction. Net profit credits retained earnings, net loss debits it, and a net-zero year emits no retained-earnings line yet still balances because income equals expense exactly.

03 / CONTROL

Manager-gated, fully stamped

Post and reverse are restricted to the EH Accounting Manager group. Computed, posted, and reversed each record the user and timestamp, tracked on chatter, with one run per company per fiscal year enforced at the database level.

Day in the life

A controller closes the books on a December fiscal year.

The controller picks 31 December as the fiscal year end; the form derives the start as the prior 1 January automatically, with a leap-day fallback so 29 February year-ends never raise. Compute reads the posted entries and builds one breakdown line per income and expense account, sub-cent rounding residue dropped, all in a single batched insert even on a full chart of accounts. After reviewing the numbers, the manager posts: income accounts are zeroed against expense accounts, the net result lands in retained earnings, and the entry balances to the cent. The optional lock-date advance bumps the standard fiscal-year lock so nothing can be backdated into the closed year. A week later an adjustment is found; the manager reverses, the symmetric inverse posts dated 1 January, both entries stay linked on the run, and a fresh run re-closes the corrected year.

Edge cases

The cases most modules quietly ignore.

In the shipped code today, each one a place where a cheaper module silently does the wrong thing.

NET-ZERO YEAR

A year where income exactly equals expense produces no retained-earnings line at all, and the close still balances because the income debits and expense credits cancel. The code handles net == 0 explicitly rather than emitting a phantom zero line.

NET LOSS

A loss is handled symmetrically to a profit: retained earnings is debited rather than credited. The test suite asserts the loss path, so the close is correct whichever way the year went.

IDEMPOTENT COMPUTE

Re-running compute unlinks the existing breakdown and rebuilds it, so a second compute never duplicates lines. The line count is unchanged after a repeat run.

LOCK NEVER REWINDS

The optional lock-date advance refuses to move the fiscal-year lock backwards. If a later lock already exists, it is preserved, so the close cannot loosen an existing lock.

SUB-CENT ROUNDING

Account balances with an absolute value at or below 0.005 are dropped, so rounding residue never adds noise lines to the closing entry.

LEAP-DAY START

Deriving the fiscal-year start from a 29 February year-end falls back gracefully instead of raising, so calendar arithmetic on leap years does not break the form.

BATCHED INSERT

All breakdown lines are written in a single batched create, an N+1 guard that keeps compute fast on a full chart of accounts.

What is inside

Built to do the job, end to end.

  • Computed profit-and-loss breakdown. Net profit is computed from posted journal entries in the fiscal year, with one reviewable breakdown row per income and expense account showing its closing balance. Income is sign-flipped to the positive debit side and expense kept on the credit side, with the totals shown before posting.
  • One balanced closing entry. A single account.move zeroes every income and expense account against the configured retained earnings account, with one or two retained-earnings lines signed for profit or loss. The entry balances by construction and the test suite asserts the invariant.
  • Next-day reversal with linkage. Reverse posts the symmetric inverse entry dated the day after fiscal year end and flips the run to a terminal Reversed state, preserving both the original closing entry and its reversal by record linkage. To re-close, create a fresh run for the year.
  • Optional fiscal-year lock. After posting, the run can advance the standard Odoo fiscal-year lock date so backdated entries cannot post against the closed year. The advance is idempotent and never moves the lock backwards.
  • Manager gating and audit trail. Post and reverse require the EH Accounting Manager group. Computed, posted, and reversed timestamps and users are stored and tracked on the mail.thread chatter, with one run per company per fiscal year enforced by a database constraint.

Honest about the edges

What this does not do, so nothing surprises you.

  • Bypassing the fiscal-year lock relies on Odoo's native lock-date permission; this module adds no separate override flow or override audit of its own.
  • A reversed run is terminal. Recompute and re-post of the same reversed run is not wired; to re-close after a reversal, create a fresh run for the year.
  • There is no separate reopen action. Reverse is the only way to undo a posted close, and it preserves both entries by linkage.
  • The closing entry balances by construction; the module does not validate against an external trial balance and has no partially-locked-year check.
  • Closing is manual and button-driven (Compute, Post, Reverse, Cancel). There is no scheduled cron that runs the close on a configured date.
Search

odoo 19 year end closing, odoo community fiscal year close, closing entry retained earnings odoo, year end closing wizard, zero income expense accounts odoo, net profit to retained earnings, fiscal year lock date odoo, period close accounting odoo, reverse closing entry odoo, multi company year end close

Languages

Available in 19 languages

The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.

ArabicChinese (Simplified)Chinese (Traditional)DutchFrenchGermanHindiIndonesianItalianJapaneseKoreanPolishPortuguese (Brazil)RussianSpanishSwedishThaiTurkishVietnamese
ERP Heritage

Production-grade Odoo accounting, built to an engineering bar and documented honestly. Support: info@erpheritage.com.au
Developed by ERP Heritage - Odoo Implementation • LinkedIn

v19.0.1.0.5 · LGPL-3 · Odoo 19 Community

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
  • Ratings
  • Discuss
There are no ratings yet!
There are no comments yet!
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with