20 Days of Excel. 850 Compliance Breaches a Year. Fixed in 7 Weeks.

A treasury analyst running the monthly allocation on the new platform

NBFC / Financial Services

Fewer Treasury Person-Hours (320 → 3)

99%

Compliance Breaches (from ~850/yr)

0

Month-End Allocation (was 20 days)

3 hrs

Kickoff to Production Go-Live

7 weeks

At a Glance

Industry

NBFC / Financial Services

Scale

7,55,037 active loan accounts

Location

India

Product

Custom multi-lender hypothecation allocation SaaS

Timeline

7 weeks, kickoff to production go-live

20 Days of Excel. 850 Compliance Breaches a Year. Fixed in 7 Weeks.

A treasury analyst running the monthly allocation on the new platform

NBFC / Financial Services

Fewer Treasury Person-Hours (320 → 3)

99%

Compliance Breaches (from ~850/yr)

0

Month-End Allocation (was 20 days)

3 hrs

Kickoff to Production Go-Live

7 weeks

At a Glance

Industry

NBFC / Financial Services

Scale

7,55,037 active loan accounts

Location

India

Product

Custom multi-lender hypothecation allocation SaaS

Timeline

7 weeks, kickoff to production go-live

Who the Client Is

Who the Client Is

A mid-size Indian NBFC with a multi-lender Line of Credit (LoC) book of 7,55,037 active loan accounts - and a roadmap to more than double that to 20,00,000 within two years. The business pledges loan receivables as collateral against credit lines from 20 institutional lenders. Every lender agreement carries its own eligibility rules for what can be pledged: DPD limits, CIBIL thresholds, state exclusions, employment type, loan product - and in two cases, portfolio-level constraints on average loan size and residual maturity that can't be evaluated loan-by-loan.

None of that was managed on a platform. Every month, the treasury team ran this entire cycle in Excel.

The Challenge

The Challenge

The allocation had a fixed deadline: before market open on the 1st of every month. Miss it, and the lender relationships are at risk.

At 7,55,000+ loans across 20 lender rule sets, that deadline was already hard to hit on a good month. Two people were spending 20 working days on the allocation, which meant the team was almost perpetually mid-cycle. Before the allocation could even start, someone spent 5 days manually scrubbing the loan file for bad records. And after all of that, the spreadsheet couldn't enforce the most basic compliance rule: no loan may be hypothecated to more than one lender in the same month. The team was logging roughly 850 double-hypothecation incidents a year - each one a technical breach of a lender agreement.

Two of the 20 lenders made the problem worse. Their agreements required the entire allocated pool to stay inside a target average POS band of ₹40,000-₹60,000 and a weighted average residual maturity of 12-15 months - simultaneously. That is a portfolio optimization problem; you cannot solve it by checking loans one by one. There was no realistic way to meet those constraints manually without also missing the monthly SLA.

The client came to KGT looking for a SaaS system that could replace Excel entirely.

Why KGT

Why KGT

No off-the-shelf treasury or loan management platform is built for 20 distinct, custom-versioned lender eligibility profiles - let alone the portfolio-level optimisation constraints two of those lenders required. The client needed a team that could work from a blank-page specification and deliver something production-ready, not a vendor pitching a configured product that would need workarounds for every non-standard rule. KGT's track record of building data-heavy, process-critical software in regulated environments - across financial services and industrial operations - and the ability to move from scoping to go-live in weeks rather than quarters, was what drove the decision.

What We Built

What We Built

We designed and deployed a full-stack hypothecation allocation platform: a step-by-step execution wizard for the treasury team on the front end, an automated allocation engine and data validation pipeline on the back end, and hard database-level compliance controls underneath all of it.

The old process: a 20-day manual cycle buried in printed loan schedules and binders

Each piece was built to close a specific gap in the old process:

  • Automated data validation. The treasury team uploads the monthly loan Excel file directly into the system, and it goes through a health-check pipeline immediately on upload: null checks, negative POS, state-name normalization, duplicate IDs. Flagged records route to a queue the team fixes and re-validates inline - no manual scrubbing, no separate Excel process. What used to take 5 days now runs in 15 minutes.

  • Rules engine for all 20 lenders. Every lender's eligibility criteria (DPD, CIBIL, state, employment type, product, age bands) is modeled as an independently versioned condition group the treasury team can clone and edit from the UI. No rule logic buried in spreadsheet columns.

  • 6-step monthly waterfall. Handles breach re-validation, unmapping, free-pool aggregation, gap analysis, priority-ordered allocation, and concentration-cap checks in sequence, automatically. The process that took two people 20 days now runs in 3 hours.

  • Portfolio-level solvers for the two complex lenders. Two custom algorithms: a midpoint-convergence solver that optimizes the eligible pool toward the centre of the target POS and tenure bands, and a state-concentration solver that enforces a 10% per-state floor with automatic equal-split fallback. These are the constraints that had no manual solution.

  • Double-hypothecation lock. A unique constraint at the database level makes it structurally impossible to assign the same loan to two lenders in the same month. Every field change across the system writes to an immutable audit log.

What was genuinely hard: The portfolio-level constraints for two lenders had no off-the-shelf answer. An average POS band and a weighted average residual maturity can both be gamed by cherry-picking loans, but they cannot both be satisfied simultaneously without solving an optimization problem across the full eligible pool - at 7,55,000+ accounts. We had to design and test two separate solver algorithms against real loan data before we had confidence either would converge reliably inside the month-end deadline.

Tech Stack:

  • FastAPI · PostgreSQL · Redis (back end)

  • React 18 · TypeScript · TailwindCSS (front end)

  • Docker · Nginx (deployment)

  • Role-based access across Treasury User, Admin and Auditor roles

Timeline: 7 weeks, kickoff to production go-live. We ran it as an agile build, shipping each module to the client for review before moving to the next - which kept rework low and the pace fast.

Results

Results

A mid-size Indian NBFC with 7,55,037 active loan accounts replaced a 20-day, 2-person Excel-based hypothecation process with a 3-hour automated cycle, and went live in 7 weeks from kickoff.

Metric

Before KGT

After Deployment

Month-end allocation cycle

20 days, 2-person manual effort

3 hours, 1 person, automated

Double-hypothecation incidents / year

~850

0

Time to validate & quarantine bad records

5 days, manual Excel scrub

15 minutes, automated

Treasury person-hours per cycle

~320 hours

~3 hours

The deployment recovered its full cost within three months of go-live - driven by the reduction in manual effort from ~320 person-hours per month-end cycle to 3 hours, and the elimination of compliance exposure from approximately 850 annual lender-agreement breaches.

Still running month-end allocation in Excel?

Still running month-end allocation in Excel?

Still running month-end allocation in Excel?