Skip to Content


Loans: Escrow (PITI) & Analytic Distribution

Book the whole mortgage payment. Reconcile it to the bank. Attribute it to a property.

Your servicer drafts $1,168.29. Odoo books $707.25. The missing $461.04 of escrow is why the bank line won’t reconcile. This module books the whole payment — automatically.

THE PROBLEM

A mortgage payment is PITI. Odoo only books the P&I.

Odoo’s Loans Management app amortises principal and interest. A real mortgage draft also carries escrow for property taxes and insurance — and without it, the entry never equals the bank transaction. 

FEATURES

Every loan entry, booked the way it really happens

🧾​
Escrow on every P&I entry

A fourth line debits your escrow asset account and raises the “Due” credit to the full PITI amount.

📅​
Effective-dated history

Apply each annual escrow revision from its start date. Earlier periods keep the amount that was really in force.

​✅
A schedule that matches the ledger

New Escrow and Total Payment columns on the amortization schedule show the real PITI figure.

​ 🏷️
Analytic tagging, everywhere

Tag every line of every loan entry — P&I and both reclassifications — to a property, project or cost center.

🪙 ​
One-click Absorb Rounding

Settles the cent residue that stops Odoo confirming longer-term loans, by adding it to the final payment.

🔄
Survives reset & recompute

Escrow and analytic settings are re-applied automatically whenever the loan is confirmed again.

HOW IT WORKS

Three fields. One button.

  1. Open the loan and go to the Loan Settings tab.
  2. Choose the Escrow Account (current asset) and enter the monthly Escrow Amount.
  3. Set the Escrow Effective Date - the first period it applies to.
  4. Press Apply Escrow. Done.

Analytic tagging works the same way: set the Analytic Account and its effective date, then press Update Analytic Account. Either order works.

ESCROW HISTORY

Escrow changes every year. Your history doesn't

Servicers re-analyze escrow annually. Apply each revision from its effective date and the schedule steps up period by period — $0 → $350 → $375 → $410 — without restating a single earlier month. 


ANALTYTIC DISTRIBUTION

Debt service, reported per property

Odoo loans carry no analytic distribution, so a property portfolio can’t see debt service by property. One button tags every line of every entry the loan generates.

Analytic tags are editable on posted lines, so nothing is reset to draft and no posted debit or credit changes.

ALSO INCLUDED

Two rough edges in native Loans, smoothed


Rounding that blocks confirmation

On longer terms, per-period cent rounding leaves the principals a few cents off the loan amount — and Odoo refuses to confirm. The difference is shown on the loan; Absorb Rounding settles it into the final payment.

Work lost on recompute

Resetting a loan rebuilds its entries from scratch. Confirming now re-applies escrow and analytic automatically — no buttons to remember.


SAFE FOR YOUR BOOKS

Nothing happens silently

  • Idempotent. Re-running with unchanged settings changes nothing — no churn on posted entries.
  • Entry numbers preserved. Posted entries in range are reset, edited and re-posted under the same number.
  • Always balanced. The escrow line and the “Due” credit are written together.
  • Audit trail. Every run posts the amount, effective date and entry count to the loan’s chatter.
  • Controlled access. Both buttons require the Accounting Manager group.
  • Multi-company aware. Escrow accounts are scoped to the loan’s company.

Common Questions

No. It extends Odoo’s Loans Management app (account_loans), which is part of Enterprise only.

Applying escrow changes amounts, so any posted entry in the date range is reset to draft, updated and re-posted, keeping its original entry number. If a period falls behind a lock date, Odoo will refuse the change until the lock date is cleared. The analytic action never changes posted amounts; it only adds the analytic tag.

Enter the new monthly amount, set the effective date to the first period it applies to, and press Apply Escrow. Earlier periods keep the amount that was in force at the time. To remove escrow completely, set the amount to zero and apply again.

Odoo uses that column to calculate the amortization, so it stays as principal and interest only. The module adds Escrow and Total Payment columns beside it, so the schedule shows the full PITI payment and matches your general ledger.

The added fields and buttons are removed and the standard loan form keeps working. Escrow lines and analytic tags already in your books are ordinary journal items, so they stay. Uninstalling stops new ones being created; it doesn’t undo history.