What are different interest calcualtion options in Factech Billing System?

Common terms (used below)

  • Bill Date: The date the bill is generated.
  • Due Date: Last date to pay without interest.
  • Current Amount: This bill’s charges/taxes.
  • Previous Due (Arrears): Unpaid from older bills.
  • Outstanding/Balance: What’s still unpaid at a point in time.
  • Rate: Interest % you set (e.g., 18% p.a.).
  • Factor: How time is counted
    • By Days: prorated by number of days.
    • By Cycle/Month: as full cycle/month (no day-wise split).
  • Minimum Amount: If set, interest applies only when balance > this.

1) Interest on Unpaid Amount (from bill date)

What it does: Charges interest on the total unpaid amount (previous balance adjusted for advance) starting from the new bill date.
When to use: You want interest for the whole cycle regardless of the due date.
How it works (short):
Interest = (Unpaid amount) × (Rate) × (time factor).
Example: Bill date 1 Aug; unpaid ₹10,000; rate 18% p.a.; time = 30 days → approx ₹10,000 × 18% × (30/365) ≈ ₹148.

Code paths: int_on_unpaid_amount, due_on_unpaid_amount


2) Interest after Due Date (credit on bill due date)

What it does: Considers payments before/after due date and charges interest only after the due date on whatever remains unpaid.
When to use: You allow a grace period till due date.
How it works:

  • Payments before due reduce principal; no interest for that period.
  • From Due Date to payment/next milestone, interest accrues on remaining balance.
    Example: Due 15 Aug; balance ₹10,000. Paid ₹6,000 on 10 Aug (before due) → no interest on that part. From 16–31 Aug, interest on ₹4,000 → ₹4,000 × 18% × (16/365) ≈ ₹31.

Code paths: int_credit_bill_date, int_credit_bill_due_date (variants)

Example: Interest Calculation After Due Date

Scenario

ItemValue
Last Bill Date01 Jan 2026
Due Date10 Jan 2026
Current Bill Date01 Feb 2026
Interest Rate18% per annum
Last Bill Amount₹10,000
Advance₹0

🧾 Payments Made

DateTypeAmount
05 Jan 2026Payment₹2,000
20 Jan 2026Payment₹3,000
28 Jan 2026Payment₹4,000

🔎 Step-by-Step Calculation


1️⃣ Balance on Due Date

Initial Bill: ₹10,000
Payment on 05 Jan (before due date): − ₹2,000

👉 Balance on 10 Jan (Due Date) = ₹8,000

⚠ No interest is applied before due date.


2️⃣ Interest After Due Date

Interest is calculated only after 10 Jan 2026


📍 Period 1

10 Jan → 20 Jan (10 days)
Balance = ₹8,000

Interest =

8000 × 18% × (10 / 365)
= ₹39.45

After payment on 20 Jan:
New Balance = ₹8,000 − ₹3,000 = ₹5,000


📍 Period 2

20 Jan → 28 Jan (8 days)
Balance = ₹5,000

Interest =

5000 × 18% × (8 / 365)
= ₹19.73

After payment on 28 Jan:
New Balance = ₹5,000 − ₹4,000 = ₹1,000


📍 Period 3

28 Jan → 01 Feb (4 days)
Balance = ₹1,000

Interest =

1000 × 18% × (4 / 365)
= ₹1.97

💰 Total Interest Applied

₹39.45
+ ₹19.73
+ ₹1.97
----------------

= ₹61.15

✅ Final Summary for Customer

  • Total Outstanding at Due Date: ₹8,000

  • Total Interest Charged: ₹61.15

  • Closing Balance (before new charges): ₹1,000 + ₹61.15


🧠 Simple Rule (User Explanation)

  • No interest before due date.

  • Interest starts from due date.

  • Interest is calculated daily.

  • Each payment reduces the balance immediately.

  • Interest is calculated only on remaining balance.


3) Split Interest: Current vs Previous Due (before/after due date)

What it does: Splits the last bill into Current Amount and Previous Due and applies interest separately, respecting payments before/after due.
When to use: You want precise, fair interest allocation between new charges and arrears.
How it works:

  • Track payments before due → first knock off arrears, then current.
  • Accrue day-wise interest between transaction points.
    Example: Current ₹5,000; Previous Due ₹3,000; Paid ₹2,000 on 12 Aug (before due 15 Aug). The ₹2,000 reduces Previous Due first (to ₹1,000). After due, interest applies on the remaining buckets day-wise.

Code paths:

  • From bill date: int_on_prev_bill_curamt_and_dueamt_from_bill_date
  • Split principal focus: int_on_prev_bill_cur_and_due_principal_amount_from_bill_date
  • Standard split: int_on_prev_bill_curamt_and_dueamt

4) Interest on Outstanding (Simple)

What it does: Applies interest on the net outstanding for the cycle (can also consider another bill type if configured).
When to use: You want a clean “one number” basis for a cycle (simple, not day-wise).
How it works:
Outstanding (including tax, optionally adding fetched payments) → Interest by cycle/day factor.
Respects Minimum Amount (no interest if outstanding ≤ min).
Example: Outstanding ₹12,000; min ₹500; 1 full month assumed → ₹12,000 × 18% ÷ 12 = ₹180.

Code paths: int_on_outstanding_simple


5) Interest on Outstanding (During Cycle)

What it does: Similar to (4) but uses the cycle’s actual dates and movements, meant for “within the billing cycle” interest.
When to use: You need interest to reflect in-cycle changes.
How it works: Uses cycle start/end, fetched bills/payments if configured; applies factor/day count accordingly.
Example: Balance fluctuates in Aug; final computed interest reflects partial periods rather than a flat month.

Code paths: int_on_outstanding_during_cycle


6) Latest Due from Last Bill (Selected Plan)

What it does: Applies interest only on the last bill’s latest due between cycle end and the next bill date.
When to use: You want to target just the most recent due amount for the interim period.
How it works:
Interest = (Last due amount) × (Rate) × (days from cycle end → bill date).
Example: Due ₹3,000; from 31 Aug to 5 Sep (5 days) → ₹3,000 × 18% × (5/365) ≈ ₹7.

Code path: int_latest_due_from_last_bill


7) Compounded Month-on-Month

What it does: Adds monthly interest to the balance and compounds it each month (until cleared or paid).
When to use: You want stronger deterrence for long non-payment.
How it works:
Each month: Interest = (Current balance) × (Monthly rate). New balance = balance + interest − payments (of that month).
Example: Start ₹10,000, 18% p.a. → 1.5% per month.

  • Month 1: ₹150 → balance ₹10,150
  • Month 2: interest on ₹10,150, and so on.

Code path: int_cmpnd_mon_on_mon


8) One-Time Interest if Balance Exceeds Minimum

What it does: Looks at the latest balance; if it’s above the configured Minimum Amount, charges one-time interest for the cycle.
When to use: Light-touch policy—charge once if dues are notable.
How it works:
Interest = (Last balance) × (Rate) × (cycle factor).
Example: Last balance ₹8,000; min ₹500; 1 cycle → interest ≈ ₹120 (at 18% p.a. month basis).

Code path: int_one_time_exceed_due


9) “Due on Previous + Current Bill” (builder)

What it does: Prepares the principal components (previous vs current, minus advances/own interest line) for interest calculation; used by other methods.
When to use: Internal step; explains why interest sees those amounts.
Example: If advance ₹500 existed, the “amount for interest” is adjusted downward before interest is applied.

Code paths: due_on_prev_cur_bill, due_on_prev_cur_bill_new


10) “Delay Due on Previous Current Bill” (specialized)

What it does: For special setups: builds amount from prior bill’s unpaid (net of advances/that interest line) up to last due date and tracks matching payments.
When to use: For specific societies/plans needing this exact behavior.
Example: If your society plan expects “carry last bill’s net due until its due date”, this is the one.

Code path: delay_due_1


Notes on Configuration that affect results

  • Factor:
    • By Days → proportional to actual days between events.
    • By Cycle → full period; doesn’t prorate by days.
  • Minimum Amount: If set, balances at/below this won’t attract interest in some modes.
  • Debits/Adjustments: Some modes can include debit entries as part of outstanding before applying interest.
  • Other Bill Type: Certain modes can fetch another bill type (e.g., maintenance vs some custom bill) to use its due/outstanding for interest.
  • Rounding: Internally, amounts may be rounded (e.g., to 2–3 decimals).

Quick picker (which option should I choose?)

  • Simple & fair post-due: Interest after Due Date.
  • Strict split (current vs arrears): Split Interest: Current vs Previous Due.
  • Just charge on cycle’s net amount: Outstanding (Simple).
  • Reflect mid-cycle changes: Outstanding (During Cycle).
  • Tough policy on long dues: Compounded Month-on-Month.
  • Light-touch once per cycle: One-Time if Balance Exceeds Minimum.
  • Target only latest due: Latest Due from Last Bill.

Tiny end-to-end example (day-wise mode)

  • Rate: 18% p.a.
  • Bill: 1 Aug; Due: 15 Aug
  • Amounts: Current ₹5,000; Previous Due ₹3,000
  • Payments: ₹2,000 on 10 Aug (before due), ₹1,000 on 20 Aug (after due)
  • After-Due interest will apply on what’s still unpaid after 15 Aug:
    • Before due, ₹2,000 reduces previous due → arrears become ₹1,000.
    • On 16 Aug, outstanding = ₹1,000 (arrears) + ₹5,000 (current) = ₹6,000.
    • Paid ₹1,000 on 20 Aug → interest window is 16–20 Aug on ₹6,000:
      ₹6,000 × 18% × (5/365) ≈ ₹15.

 

Also visit:

How to get started Billing

What are different bill formats?

Related posts

Latest posts

Hello ! If You Are Ready To Take Your Facility Management To Next Level...