@@ -5,48 +5,54 @@ Year-end closing
5
5
Year-end closing is vital for maintaining financial accuracy, complying with regulations, making
6
6
informed decisions, and ensuring transparency in reporting.
7
7
8
+ .. seealso ::
9
+ :doc: `Tax return <tax_returns >`
10
+
8
11
.. _year-end/fiscal-years :
9
12
10
13
Fiscal years
11
14
============
12
15
13
- By default, the fiscal year is set to last 12 months and end on December 31st. However, its duration
14
- and end date can vary due to cultural, administrative, and economic considerations.
16
+ By default, the fiscal year is set to last 12 months and ends on December 31st. However, its
17
+ duration and end date can vary due to cultural, administrative, and economic considerations.
15
18
16
19
To modify these values, go to :menuselection: `Accounting --> Configuration --> Settings `. Under the
17
20
:guilabel: `Fiscal Periods ` section, change the :guilabel: `Last Day ` field if necessary.
18
21
19
22
If the period lasts *more * than or *less * than 12 months, enable :guilabel: `Fiscal Years ` and
20
- :guilabel: `Save `. Go back to the :guilabel: `Fiscal Periods ` section and click :guilabel: ` ➜ Fiscal
21
- Years `. From there , click :guilabel: `Create `, give it a :guilabel: `Name `, and both a
23
+ :guilabel: `Save `. Go back to the :guilabel: `Fiscal Periods ` section and click :icon: ` oi-arrow-right `
24
+ :guilabel: ` Fiscal Years `. Then , click :guilabel: `New `, give it a :guilabel: `Name ` and both a
22
25
:guilabel: `Start Date ` and :guilabel: `End Date `.
23
26
24
27
.. note ::
25
- Once the set fiscal period is over, Odoo automatically reverts to the default periodicity, taking
26
- into account the value specified in the :guilabel: `Last Day ` field.
28
+ Once the set fiscal period is over, Odoo automatically reverts to the default periodicity,
29
+ considering the value specified in the :guilabel: `Last Day ` field.
27
30
28
31
.. _year-end/checklist :
29
32
30
33
Year-end checklist
31
34
==================
32
35
36
+ .. _year-end/before-closure :
37
+
33
38
Before closure
34
39
--------------
35
40
36
- Before closing a fiscal year, ensure first everything is accurate and up-to-date:
41
+ Before closing a fiscal year, ensure that everything is accurate and up-to-date:
37
42
38
43
- Make sure all bank accounts are fully :doc: `reconciled <../bank/reconciliation >` up to year-end,
39
44
and confirm that the ending book balances match the bank statement balances.
40
- - Verify that all :doc: `customer invoices <../customer_invoices >` have been entered and
41
- approved and that there are no draft invoices.
42
- - Confirm that all :doc: `vendor bills <../vendor_bills >` have been entered and agreed upon.
43
- - Validate all :doc: `expenses <../../expenses >`, ensuring their accuracy.
44
- - Corroborate that all :doc: `received payments <../payments >` have been encoded and recorded
45
- accurately.
45
+ - Verify that all :doc: `customer invoices <../customer_invoices >` have been created and
46
+ confirmed and that there are no draft invoices.
47
+ - Confirm that all :doc: `vendor bills <../vendor_bills >` have been created and confirmed.
48
+ - Ensure the accuracy of all :doc: `expenses <../../expenses >` and validate them.
49
+ - Check that all :doc: `received payments <../payments >` have been encoded and confirmed.
46
50
- Close all :ref: `suspense accounts <accounting/bank/suspense >`.
47
51
- Book all :doc: `depreciation <../vendor_bills/assets >` and :doc: `deferred revenue
48
52
<../customer_invoices/deferred_revenues>` entries.
49
53
54
+ .. _year-end/closing-a-fiscal-year :
55
+
50
56
Closing a fiscal year
51
57
---------------------
52
58
@@ -60,9 +66,9 @@ Then, to close the fiscal year:
60
66
- Reconcile all transactions in the cash and bank accounts by running the :ref: `aged receivables
61
67
<accounting/reporting/aged-receivable>` and :ref: `aged payables
62
68
<accounting/reporting/aged-payable>` reports.
63
- - Audit all accounts, being sure to fully understand all transactions and their nature, making
64
- sure to include loans and fixed assets.
65
- - Optionally, :ref: `match payments <accounting/payments/auto-reconcile-tool >` to validate any open
69
+ - Audit all accounts, fully understanding all transactions and their nature, including :doc: ` loans
70
+ <../bank/ loans>` and :doc: ` fixed assets < ../vendor_bills/assets >` .
71
+ - Optionally, :ref: `match payments <accounting/payments/payments-matching >` to validate any open
66
72
vendor bills and customer invoices with their payments. While this step is optional, it could
67
73
assist the year-end closing process if all outstanding payments and invoices are reconciled,
68
74
potentially finding errors or mistakes in the system.
@@ -76,40 +82,69 @@ Next, the accountant likely verifies balance sheet items and book entries for:
76
82
- tax adjustments,
77
83
- etc.
78
84
79
- If the accountant is going through the year-end audit, they may want to have paper copies of all
80
- balance sheet items (such as loans, bank accounts, prepayments, sales tax statements, etc.) to
81
- compare these with the balances in Odoo.
85
+ During the year-end audit, the accountant may print paper copies of all balance sheet items (e.g.,
86
+ loans, bank accounts, prepayments, sales tax statements) to compare them against the balances
87
+ recorded in Odoo.
88
+
89
+ .. tip ::
90
+ As part of this process, setting a :ref: `Lock Everything <year-end/lock-everything-date >` date to
91
+ the last day (inclusive) of the preceding fiscal year is good practice. This ensures that journal
92
+ entries with an accounting date on or before the lock date cannot be created or modified during
93
+ the audit. Users with *administrator * access rights can still create and edit entries if an
94
+ exception is configured.
95
+
96
+ .. _year-end/lock-everything-date :
97
+
98
+ Lock everything date
99
+ ~~~~~~~~~~~~~~~~~~~~
100
+
101
+ Setting a lock date prevents modifications to any posted journal entries with an accounting date on
102
+ or before the lock date. It also prevents posting new entries with an accounting date on or before
103
+ the lock date. In such cases, the system automatically sets the accounting date to the day after the
104
+ lock date.
105
+
106
+ To set a :guilabel: `Lock Everything ` date, go to :menuselection: `Accounting --> Accounting --> Lock
107
+ Dates `. In the :guilabel: `Lock Journal Entries ` window, set the :guilabel: `Lock Everything ` date and
108
+ :guilabel: `Save `.
109
+
110
+ .. note ::
111
+ Users with :guilabel: `Administrator ` access rights to the Accounting app can create exceptions.
112
+ To do so:
113
+
114
+ #. After setting the :guilabel: `Lock Everything ` date, reopen the :guilabel: `Lock Journal
115
+ Entries ` window and remove the :guilabel: `Lock Everything ` date.
116
+ #. In the :guilabel: `Exception ` banner, choose if this exception should be set :guilabel: `for me `
117
+ (the current user) or :guilabel: `for everyone ` and how long it should last.
118
+ #. A :guilabel: `Reason ` for this exception can be added.
119
+ #. All of this information is logged in the chatter of the :doc: `company record
120
+ </applications/general/companies>`.
82
121
83
122
.. tip ::
84
- During this process, it is good practice to set a :guilabel: `Journal Entries Lock Date ` to the
85
- last day (inclusive) of the preceding fiscal year by going to :menuselection: `Accounting -->
86
- Accounting --> Lock Dates `. This way, the accountant can be confident that nobody changes the
87
- transactions while auditing the books. Users from the *accountant * access group can still create
88
- and modify entries.
123
+ To remove the :guilabel: `Lock Everything ` date after it has been saved, configure the exception
124
+ to apply :guilabel: `for everyone ` and set the duration to :guilabel: `forever `.
125
+
126
+ .. _year-end/current-year-earnings :
89
127
90
128
Current year's earnings
91
129
~~~~~~~~~~~~~~~~~~~~~~~
92
130
93
- Odoo uses a unique account type called **current year's earnings ** to display the amount difference
94
- between the **income ** and **expenses ** accounts.
131
+ Odoo uses a unique account type called **current year's earnings ** to display the difference
132
+ between the **income ** and **expense ** accounts.
95
133
96
134
.. note ::
97
135
The chart of accounts can only contain one account of this type. By default, it is a 999999
98
136
account named :guilabel: `Undistributed Profits/Losses `.
99
137
100
- To allocate the current year's earnings, create a miscellaneous entry to book them to any equity
101
- account. Once done, confirm whether or not the current year's earnings in the **balance sheet ** is
102
- correctly reporting a balance of zero. If that is the case, set an :guilabel: `All Users Lock Date `
103
- to the last day of the fiscal year by going to :menuselection: `Accounting --> Accounting --> Lock
104
- Dates `.
138
+ To allocate the current year's earnings, create a new miscellaneous entry with a date set to the end
139
+ of the fiscal year to book them to any equity account.
105
140
106
- .. tip ::
107
- Install the :guilabel: `Irreversible Lock Date ` (` account_lock `) module to make the :guilabel: ` All
108
- Users Lock Date ` * irreversible * once set .
141
+ Then, verify whether the current year's earnings on the ** balance sheet ** correctly show a zero
142
+ balance. If so, a :guilabel: `Hard Lock date ` can be set to the last day of the fiscal year in
143
+ :menuselection: ` Accounting --> Accounting --> Lock Dates ` .
109
144
110
- .. note ::
111
- A specific year-end closing entry is ** optional ** in order to close out the ** profit and loss
112
- statement **. The reports are created in real-time, meaning that the profit and loss statement
113
- corresponds directly with the year-end date specified in Odoo. Therefore, any time the ** income
114
- statement ** is generated, the beginning date corresponds with the beginning of the ** fiscal
115
- year ** and all account balances should equal zero .
145
+ .. tip ::
146
+ The :guilabel: ` Hard Lock date ` field is irreversible and is intended to ensure data
147
+ inalterability required to comply with accounting regulations in certain countries. If such
148
+ compliance is not applicable, setting this field may not be necessary. However, if required, the
149
+ date should only be set once it is confirmed to be correct, as it ** cannot be changed or
150
+ overridden **, regardless of access rights .
0 commit comments