Tax rules implemented
These encode the rules as understood for FY 2025-26 / 2026-27 and are meant for planning, not filing. Verify against the current Finance Act and your bank's actual TDS certificates (Form 16A / Form 26AS).
Taxability (Income-tax Act, 1961)
- Interest on FDs, corporate FDs, RBI bonds and G-sec coupons is "income from other sources" taxed at the investor's slab rate plus cess. The user supplies the slab rate (per regime if they want the comparison) and
fdladderadds cess (default 4%). - Accrual basis. Interest on cumulative FDs is taxable every year as it accrues even though it is paid at maturity.
fdladdersplits interest by financial year (1 April to 31 March) from the compounding schedule: the accrued interest at each FY boundary isvalue(elapsed) - principal, and the FY's share is the difference of two boundaries. Non-cumulative and coupon instruments accrue linearly over their tenor. - Tax-free bond interest is exempt (Section 10(15)) and carries no TDS. It still appears in the FY interest figures as "tax-free" so that you can reconcile it with the Annual Information Statement.
- T-bill returns and G-sec coupons are taxed at slab; no TDS is deducted.
TDS
- Section 194A (banks, co-operative banks, post offices): 10% when interest from one bank exceeds Rs 40,000 in a financial year (Rs 50,000 for senior citizens, aged 60+). The threshold is per bank across all its branches and deposits, so
fdladderadds up all deposits of one issuer. Once the threshold is crossed the whole interest is subject to TDS, which is how the statement computes it. - Corporate FDs: threshold Rs 5,000 (the rule for non-bank payers).
- RBI floating rate (taxable) bonds: modelled with a Rs 10,000 threshold at 10%. This is an assumption; check the current rule for the series you hold.
- Section 206AA: 20% instead of 10% when PAN is not furnished (
has_pan: false/--no-pan). - Form 15G / 15H: a declaration that stops TDS when the investor's total tax liability is nil.
fdladdersuggests it whenother_income + FD interestis within the nil-tax limit: Rs 2.5 lakh below 60, Rs 3 lakh at 60+, Rs 5 lakh at 80+ (old regime), or the Rs 12 lakh Section 87A rebate range (new regime). 15H is for residents aged 60+, 15G for others. Withform15: truethe statement shows no TDS on deposits. The rebate limit simplification ignores income taxed at special rates. - TDS is a credit, not the final tax. The statement shows
net payable = tax at slab - TDS(negative values are refunds).
Deductions
- Section 80TTB (senior citizens, old regime only): up to Rs 50,000 of interest from banks, co-operative banks and post offices is deductible. It applies to bank and small finance bank deposits here, not to corporate FDs, bonds, or T-bills. It does not exist in the new regime.
- Section 80TTA (Rs 10,000) covers only savings-account interest for non-seniors, so FD interest gets no deduction below age 60.
DICGC insurance
Deposit insurance covers principal plus accrued interest up to Rs 5 lakh per depositor, per bank, per ownership capacity (single, joint, etc.). The optimizer measures the exposure at maturity (principal plus the interest the deposit will have accrued) and, with only_dicgc_insured: true, keeps it below Rs 5 lakh times dicgc_capacities. Without the flag it only warns. Corporate FDs and tax-free bonds are not insured; with only_dicgc_insured: true they are excluded, and sovereign paper (T-bills, G-secs, RBI bonds) is allowed without a limit. Corporate FDs must also satisfy min_rating.
Regime comparison
plan evaluates the chosen allocation under both regimes using the slab rates given in investor.slab_rate: {old: .., new: ..} and prints the total tax over the horizon. The old regime gets the 80TTB deduction for seniors; the new regime does not.