Bad Debt Provisions in Odoo#
Not all receivables are collectable. Accounting standards require provisions for doubtful debts - recognizing the expected loss before it occurs. Odoo supports this through the aged receivables report and manual journal entries.
Identifying Doubtful Debts#
Accounting → Reporting → Aged Receivables:
- Filter by overdue days: >90 days, >180 days, >365 days
- High-risk indicators:
- Outstanding >90 days with no payment plan
- Customer in financial difficulty or legal dispute
- Repeated NSF (bounced cheques/payments)
Calculating the Provision#
Common provision rates:
| Aging Bucket | Provision Rate |
|---|---|
| 31–60 days overdue | 5% |
| 61–90 days overdue | 10% |
| 91–180 days overdue | 25% |
| 181–365 days overdue | 50% |
| >365 days overdue | 100% |
Calculate the provision: aged balance × rate = provision amount.
Posting the Provision Entry#
Accounting → Accounting → Journal Entries → New:
- Date: period-end date (e.g., June 30)
- Journal: Miscellaneous
Lines:
- Debit: Bad Debt Expense (P&L account) - provision amount
- Credit: Allowance for Doubtful Accounts (contra-AR account on Balance Sheet) - same amount
The Allowance for Doubtful Accounts reduces the net AR balance shown on the balance sheet without affecting the individual customer balances.
Reversing and Re-Estimating Each Period#
At each period end:
- Reverse the prior period provision entry
- Re-calculate the provision based on current aging
- Post the new provision entry
This approach ensures the provision always reflects the current risk estimate.
Writing Off Uncollectable Invoices#
When a debt is confirmed as uncollectable (customer bankrupt, legal judgment failed):
Accounting → Customers → Invoices → [Invoice] → Action → Write-off:
- Account: Allowance for Doubtful Accounts
- Date: write-off date
This moves the bad debt from AR to the Allowance account - no P&L impact (the expense was already recognized in the provision). The customer's balance is cleared.
Recovery After Write-Off#
If a customer pays after the write-off:
- Reverse the write-off → restore the AR balance
- Register the payment → clear the AR
The recovery is recognized as income in the current period (reversal of the prior write-off).
Disclosure#
Bad debt provision and write-off amounts must be disclosed in the financial statement notes - Odoo's General Ledger filtered to the Bad Debt Expense and Allowance accounts provides the numbers needed.

