Bad Debt Provision & Write-Off Manager
Aging-based doubtful-debt provision matrix, write-off workflow and auto-reversal on recovery
Bad Debt Provision & Write-Off Manager runs doubtful and bad debts end to end inside Odoo Accounting: an aging-band provision matrix values every open customer invoice, periodic runs post only the delta against the previous allowance balance, and a full write-off to recovery workflow books real journal entries with automatic reversal if a written-off customer pays after all.
Key Features
Configurable aging provision matrix
bad.debt.provision.matrix defines any number of aging bands (e.g. 1-30 / 31-60 / 61-90 / 91-180 / 180+ days) each with its own provision percentage; a 5-band default matrix is seeded per company on install.
Periodic provision run
bad.debt.provision.run ages every open customer receivable as of the run date, classifies each into a band via the matrix, and computes the total required allowance balance.
Movement-only posting
A run posts only the increase or release against the previous run's allowance balance as a single journal entry between the Provision Expense and Allowance for Doubtful Debts accounts, never re-booking the full balance.
Write-off workflow with two methods
bad.debt.writeoff writes off a specific overdue receivable either against the existing allowance or directly to expense, posting its own entry and reconciling the new line against the original invoice so it stops showing as open.
Draft to Posted to Recovered/Cancelled state machine
Each write-off carries a tracked state (draft, posted, recovered, cancelled) with full chatter logging of amounts and journal entry references.
Auto-reversal on recovery
action_register_recovery books the mirror journal entry reinstating the receivable for a recovered amount, leaving a fresh open line for normal payment reconciliation; multiple partial recoveries are supported until the write-off is marked Recovered.
Recovery wizard
bad.debt.recovery.wizard collects the recovered amount, date and note and delegates straight to the write-off's recovery posting logic.
One-click cancellation with automatic reversal
A posted write-off with no recovery yet can be cancelled, which automatically books a full reversal instead of requiring a manual counter-entry.
Use Cases
Screenshots
01 Provision Runs List
02 Provision Run Form
03 Writeoffs List
04 Aging Matrix Form
Why Choose This Module
Bad debt provisioning is easy to get wrong by hand: double-booking the full allowance every period, forgetting to reverse a write-off on recovery, or losing the audit trail of which invoice was written off against which account. This module keeps every step, provisioning, write-off and recovery, as a real, reconciled journal entry with a stored aging snapshot behind it, so finance can trust the allowance balance at any point in time.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: 35+
- Author: Pokutsoft
- Dependencies: account
- Support: odoo@gencbaris.com
- Update date: 2026-07-13
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 1234 |
| Technical Name |
bad_debt_provision_writeoff_manager |
| License | OPL-1 |
| Website | https://pokutsoft.com/ |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module