US Allowance Doubtful
CECL-lite (ASC 326) reserve calculation, adjusting entries, write-offs and roll-forward — all inside Odoo, on your own ledger.
Compute and book a CECL-lite (ASC 326) bad-debt reserve from AR aging or pooled loss rates, post the adjusting entry, write off invoices, and tie out an allowance roll-forward.
Key Features
Reserve Policy
Define one or more named reserve policies per company, each choosing between the AR aging method or the pooled historical loss-rate method, with its own Bad Debt Expense account, Allowance (contra-asset) account and adjustment journal. A forward-looking factor (e.g. 1.25 for +25%) layers a qualitative ASC 326 overlay on top of the raw calculation.
Aging Buckets
Configure fully custom age buckets (Current, 1-30, 31-60, 61-90, 90+ days by default) each with its own loss percentage. Every open receivable is matched to the bucket that contains its actual days-past-due, computed from the invoice's due date, and the oldest bucket automatically catches everything beyond its range.
Pooled Loss Rate
As an alternative to bucket-by-bucket aging, apply a single expected-loss rate to the entire pooled receivable balance (the WARM / loss-rate method), again multiplied by the policy's forward-looking factor for a CECL-style expected-credit-loss estimate.
Reserve Run
Each reserve run reads every posted, unreconciled customer receivable as of a cut-off date, buckets or pools it under the selected policy, and totals the required allowance against the open receivable balance (with a computed coverage percentage). It then compares that estimate to the allowance account's current balance and calculates the adjustment needed to true it up.
Adjusting Entry
Posting a computed run books the exact adjustment as a balanced journal entry in the policy's journal: a provision debits Bad Debt Expense and credits the Allowance account, while a release (when the required reserve has fallen) reverses the two lines automatically. Runs that need no change are simply marked posted with a note, with no empty entry created.
Write-Off & Recovery
A dedicated wizard (launchable from a posted customer invoice) writes a specific uncollectible receivable off against the allowance — debiting the Allowance account and crediting Accounts Receivable, so expense is never re-hit — and attempts to reconcile the entry against the open invoice line. Recoveries of previously written-off amounts reverse the same two accounts to restore the reserve.
Roll-Forward
Build a self-proving roll-forward for any period: beginning balance plus provisions, minus releases and write-offs, plus recoveries, equals the computed ending balance. The report then reconciles that computed ending balance against the allowance account's actual general-ledger balance and flags a tie-out difference so any discrepancy is visible before your auditors see it.
Screenshots
Write Off Against Allowance
Why Choose This Module
A reserve run for a period reads the open customer invoices and credit notes (posted account.move receivables) as of a cut-off date, computes the days past due from each invoice's due date, buckets the open balance, applies the selected policy, and produces the required allowance. It compares that to the current balance on your allowance (contra-asset) account and generates the adjusting journal entry — debit Bad Debt Expense / credit Allowance — for exactly the difference, so the allowance account is trued up to the required estimate. A reversing top-up or release is handled automatically by the sign of the delta.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: account
- Support: support@pokutsoft.com
Update date: 2026-07-05