Skip to Content
Menu
This question has been flagged
Accounting Opening Entry Import Checklist
Avatar
Discard
Author Best Answer

How to make opening (ledger) entries in Odoo

Document Status: master draft

Validated Versions: 9.0-13.0


Caution: This information contained in this document has not been completely validated for the refactoring in version 13.0.


Note: This document is not complete. The goal is to create a comprehensive and client-facing guide to different methods of making opening entries at accounting go-live which addresses the core cases and as many edge cases as possible and which provides a recommendation for the best method for common use cases.


If you would like to contribute directly to this document, reach out to CST. Also feel free to simply leave comments.

Introduction

When transitioning from a legacy accounting system to Odoo, you must move data from the old system. At a minimum, this consists of items that are open at the time of cutover from the legacy system to Odoo. These open items may be any of the following:


  • Unpaid customer invoices

  • Unpaid vendor bills

  • Special cases such as

    • Outstanding customer prepayments

    • Outstanding vendor prepayments

    • Inventory (automatic valuation only)

  • Account Balances (aka Initial Balances or Opening Entry)


There are several methods for entering this information into Odoo, which can be divided into two categories:


  1. “Document method”: Import open invoices as invoice documents

  2. “Journal entry method”: Import open invoices as AR entries


This guide currently addresses only the document method, which works without issue in all versions of Odoo for all costing and valuation methods. It should be noted that certain Latin American accounting localizations with electronic invoicing requirements may require use of the journal entry method. The journal entry method should be added to a future version of this document.



Document Method with clearing accounts

Discussion

Odoo accounting can be thought of as having two layers: the document layer and the journal entry later.


The key principle to keep in mind when making opening entries according to the document method is that accounting documents (in the document layer) in Odoo must post journal entries. If using the automated inventory valuation feature, stock movement also makes journal entries. Therefore when bringing open invoices/payments into Odoo you cannot simply import the trial balance from your previous system along with these documents or you will double your AP, AR, and potentially inventory valuation. If invoices are imported with the full line item detail, income and COGS can be doubled as well.


To get around this problem, we must use one of two methods: Clearing accounts are the preferred method, but you can also adjust your opening entry to account for the effect that your other opening activities will have. This document will discuss only the clearing account method.


Invoices in Odoo post journal entries differently depending on the valuation method of the invoiced product.


Manual Valuation:

Dr. AP

Cr. Income


Automatic Valuation

Dr. AP

Cr. Income

Dr. COGS

Cr. Stock Interim Delivered


Delivery

Dr. Stock Interim Delivered


You will need to clear up to 3 types of accounts:


AP

AR

Inventory Asset


The document method has a number of advantages:

  1. Users can register payments and credits against imported invoices using the normal workflow.

  2. Any balance left over in the clearing accounts indicates a mistake. Finding a mistake immediately makes finding the root cause easier.


Disadvantages:

  1. Invoices line item detail is not imported. To reprint an invoice, you must look into your old system.

  2. Your cash flow statement will show clearing accounts for payments made against legacy invoices.


Addendum: 2-entry initial balance

Proceed as above, but instead of modifying your trial balance entry to use clearing accounts, simply import it exactly as it comes out of your legacy system, then make a second entry. The net effect will be the same as normal method but you will have an entry which exactly corresponds to your trial balance in your legacy system.


  1. Import trial balance without modification

  2. Using a second entry, adjust balances from AR, AP, and Inventory into clearing accounts

  3. Import documents

Special Cases: 

  1. Customer Prepayments

Background

Some accounting systems record a customer prepayment with a journal entry that can be generalized as:


Dr. Bank

Cr. Deposit Liability


Odoo does not use this structure. All customer payments make the following entry:


Dr. Bank

Cr. AR

This difference in structure can cause some difficulties at go-live, because we cannot simply import open down payments like for like.

Process

For orders which have been prepaid but neither invoiced nor delivered, we will enter sale orders into Odoo. In doing this we make the assumption that we will use Odoo to manage the delivery and invoicing of the ordered goods. 


The sale orders we enter should consist of line items for all ordered items plus one additional line item for a down payment service product with a negative quantity of 1 and a unit price of the down payment amount. The income account on the Down Payment product should be your down payment liabilities account.


A fully prepaid sale order for a cowboy hat should have the following two line items:


Cowboy Hat, 1, $100

Down Payment, -1, $100


This will result in a delivery order for 1 Cowboy Hat and a 0 dollar invoice which will recognize cowboy hat income and clear your down payment liability.


Down payment liabilities will be recorded on your Odoo general ledger when making your trial balance.


After go-live, new down payments may be managed using either down payment invoices or a periodic manual entry.


This same procedure should also be applicable to deposits on vendor bills.

2. Partially paid invoices and bills


Bring over only the balance due at cutover as an invoice with a single line item.

3. Checks deposited but not cleared


Delete the bank statement line and adjust the bank statement starting balance to compensate.


4. Foreign currency transactions

Create historical currency rates before validating any entries or no conversion will be made.


5. Cash basis reports


AP and AR clearing accounts cause issues with cash basis reports, most notably the cash flow statement and the cash basis income statement.






By way of example:


You issued an invoice in May

You went live with Odoo on June 1st

The invoice was paid in June


In accrual basis, the income will appear on your May income statement

In cash basis, the income should appear on your June income statement


However, because the invoice in Odoo was brought in with AR Clearing as the counterpart, the income will appear on June’s cash basis income statement as AR Clearing if the clearing account is of type Income, or not at all if the clearing account is not of type income.


A similar behavior is found on the cash flow statement where cash in will be shown as coming from AR Clearing. The cash flow statement is less sensitive to account type, so a clearing account of type asset will still be shown.


The simplest solution to this problem is to type the AR Clearing account as “Income” and to name it something like “Income prior to Odoo cutover”.


The same process may also be necessary for AP clearing, but the distinction is more ambiguous because a counterpart to AP may be either an Expense or an Asset type account.


The more complete solution to this problem is more complex and would involve importing invoices with full line item detail and adjusting your opening entry accordingly.

6. Other rare special cases


Delivered but not invoiced

Should not happen. Invoice all delivered items before cutover.


Partially delivered, not invoiced

Invoice what is delivered before cutover. Import as open order.


Received but not billed

If possible, bill all received items before cutover.


Invoiced but not delivered

Messy. Try to avoid this situation if at all possible by not invoicing undelivered goods.


Billed but not received

Messy. Avoid if possible by not billing unreceived goods.


Mid-Month Go-Live?

Checklist

  1. Import Open Invoices and Bills

    1. Create two clearing accounts

      1. AR Clearing (ARC), type=income

      2. AP Clearing (APC), type=income

    2. Import open documents

      1. It is simplest to import invoices w/o products with the entire balance on a single line.

      2. Customer Invoices

        1. Credit the line items to ARC

      3. Vendor Bills

        1. Debit the line items to APC

  2. Opening Inventory (Auto/Perpetual Valuation Only)

    1. Set up all products

      1. Set valuation method to manual

      2. Set cost prices for each product which you will be importing opening counts for

      3. Then set your intended final costing/valuation methods

    2. Create an inventory clearing account (type:current asset)

    3. Set your new inventory clearing account on your inventory adjustment location

      1. Inventory/Configuration/Locations

    4. Validate an inventory adjustment to enter your opening inventory.

      1. A single inventory adjustment should have no more than 1000 lines. Split your opening inventory into several adjustments if necessary.

    5. Set your normal loss account on your adjustment location.

  3. Import your Trial Balance

    1. Import your AP and AR balances into the AP and AR clearing accounts

      1. Debit your current AR to ARC

      2. Credit your current AP to APC

      3. Debit your current Inventory to Inventory Clearing

    2. Do not include balances for cleared accounts

      1. AP

      2. AR

      3. Inventory

  4. This will (theoretically) empty your clearing accounts

    1. In the case of a mismatch, you may choose to investigate or simply write off the difference

  5. Customer Prepayments

    1. We assume the following

      1. Payment received in legacy system as dr. bank, cr. liability

      2. Invoice will be generated in Odoo

      3. Delivery will be managed using Odoo

    2. Create a new product: Down Payment

      1. Service-type

      2. Income account: Down Payment Liabilities

    3. Create/import sale orders in Odoo for each order with a down payment

      1. Line items should correspond to legacy system orders

      2. Plus one line item with your down payment product

        1. Quantity = -1

        2. Price = down payment amount

    4. Confirm the sale orders

    5. Deliver and invoice the orders as normal. Invoicing the order will clear the customer deposit liability. There is no need to use a clearing account.

Journal Entry Method

Checklist

Discussion


End.









Avatar
Discard
Related Posts Replies Views Activity
1
Apr 24
2428
1
Aug 24
27439
1
Apr 24
4725
2
May 24
3137
1
Apr 24
6156