Financial Calculations & Valuation Beginner

Bank Guarantee (Performance & Financial BG) Commission & FD Margin Calculator in Python

Compute total Bank Guarantee (BG) issuance charges, claim period liability, FD cash margin requirements, and net interest carry in Python.

#numpy

Problem Statement

EPC contractors and industrial suppliers bidding for government/PSU tenders must furnish Performance & Financial Bank Guarantees (BGs). Banks charge commission over the validity period plus mandatory claim period while holding 10%–25% Fixed Deposit (FD) cash margin.

Formula / Core Logic

Chargeable_Months = Validity_Months + Claim_Months (rounded up to nearest quarter) BG_Commission = BG_Amount * (Annual_Comm_Pct / 100) * (Chargeable_Months / 12) Cash_Margin_FD = BG_Amount * Cash_Margin_Pct

Installation

pip install numpy
bank-guarantee-bg-commission-cash-margin-fd-calculator-python.py
import math

def calculate_bg_cost(bg_amount, validity_months=12, claim_months=12, commission_pa_pct=1.50, cash_margin_pct=25.0, fd_rate_pa=6.75):
    total_months = validity_months + claim_months
    chargeable_quarters = math.ceil(total_months / 3.0)
    chargeable_years = (chargeable_quarters * 3.0) / 12.0
    
    gross_commission = bg_amount * (commission_pa_pct / 100.0) * chargeable_years
    gst_18pct = gross_commission * 0.18
    fd_margin_locked = bg_amount * (cash_margin_pct / 100.0)
    fd_interest_earned = fd_margin_locked * ((1 + fd_rate_pa / 100.0) ** chargeable_years - 1)
    
    return {
        'Total_Liability_Months': total_months,
        'Gross_BG_Commission': round(gross_commission, 2),
        'GST_On_Commission': round(gst_18pct, 2),
        'FD_Cash_Margin_Required': round(fd_margin_locked, 2),
        'FD_Interest_Accrued': round(fd_interest_earned, 2)
    }

Get the Complete 100+ Python Quant & Automation Bundle

Instant lifetime access to all production-ready scripts, valuation models, and trading bots ($19).

Buy Full Bundle on Gumroad ($19) →

Frequently Asked Questions

Q: Why do banks charge commission for the Claim Period as well?

Under the Indian Contract Act, a bank's contingent liability remains alive until the expiry of the claim period (minimum 1 year for government BGs).