Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sanchay — Investor Longevity Model

A working demonstration build of the longevity thesis in HDFC MF .pdf (M37 Labs × HDFC Asset Management, 2026), implemented on a synthetic SIP book.

The deck argues one thing: HDFC MF has won the operational AI race, and the value now leaks somewhere operational AI does not reach — duration. SIPs do not redeem loudly, they just stop, and each stop kills ten to fifteen years of trail. This build turns that argument into something you can click on: a scored book, an intervention queue, a per-folio explanation, a distributor brief, and the arithmetic that converts duration into rupees.

Run it

No build step, no dependencies, no network calls.

cd sanchay-demo
python3 -m http.server 8787
# open http://localhost:8787

Opening index.html directly from the filesystem also works in most browsers. A local server is preferred only so the web fonts and relative paths behave identically everywhere.

The seven screens

Screen What it does
01 index.htmlLongevity cockpit The book's AUM-years, the live drawdown, the survival ribbon, cohort survival by channel, and the published problem
02 book.htmlBook at risk The intervention queue: every folio scored, ranked by money at risk, with the tells firing and the tiered response
03 investor.htmlLifecycle twin One folio: every term in its score, its behavioural history, its forward curve, the note that goes out, and the next best rupee
04 mfd.htmlMFD copilot The same model sliced by distributor book: churn radar, volatile-week script, opportunity list, practice intelligence
05 integrity.htmlDistribution integrity False signups, KYC forgery and certification fraud — a scored case queue, an ARN/NISM register check, and one case worked end to end
06 impact.htmlAUM-years → ₹ Live scenario model. Every input is a control; the deck's 156 index is solved into a hazard reduction and priced at 46 bps
07 method.htmlMethod & sources Every published figure with its source, the full coefficient table, the calibration, and every stated assumption

Deep links work: investor.html?id=F-2021-106930.

Files

sanchay-demo/
├── index.html  book.html  investor.html  mfd.html
├── integrity.html  impact.html  method.html
└── assets/
    ├── css/sanchay.css        design system — tokens, components, the validated chart palette
    └── js/
        ├── data.js            published figures with sources + the seeded synthetic ledger
        ├── model.js           scorecard, calibration, survival, projection, interventions
        ├── integrity.js       identity layer, planted fraud rings, detection engine
        ├── core.js            formatting, shell, tooltip, toast, boot sequence
        ├── charts.js          SVG chart primitives — line, columns, bars, contributions,
        │                      histogram, survival ribbon, sparkline
        └── pages/*.js         one controller per screen

The three kinds of number

Nothing in this build blurs them, and the interface labels every one:

  • Published — carried from the deck with the source line it printed. Marked src. Reproduced, never adjusted.
  • Fitted — two parameters (a base intercept and a channel spread) solved numerically so the model reproduces two published anchors. The solver output is printed on method.html.
  • Assumed — the synthetic ledger, the return path, the tier cut-points, the caps. Marked sim, listed in full on method.html, and the two that matter are live controls on impact.html.

Distribution integrity

integrity.html reads the same ledger for a different question: is this folio real, and is the person who sold it allowed to? Three families, seventeen named rules, each with a printed weight and its evidence:

  • False signups — registration bursts against the ARN's own baseline, placeholder dates of birth, contact and bank-account reuse across unrelated names, one device across many journeys, stops timed to the commission clawback window.
  • KYC forgery — byte-identical documents submitted for different people, near-duplicate photographs matched on a perceptual hash, signatures too similar to have been signed twice, and a declared B30 address onboarded from a T30 device — the canonical Indian distribution arbitrage.
  • Certification & ARN — lapsed ARNs still receiving business, NISM certificates that fail a registry check, EUIN left blank at scale, EUINs transacting off the declared roster.

Two things make it more than a rules list. Exculpatory rules subtract: a shared bank account inside one family is not fraud, and a system that cannot say so is one nobody will act on. And the fraud is planted, so precision and recall are computed rather than claimed — both land short of 100% on purpose. One ring was only half-forged and part of it is invisible; one employer-run workplace SIP drive trips every attribute the detector keys on and has to be dismissed by a person.

The end-to-end case file walks one ring from the alert that opened it, through the evidence grid — each signal beside the innocent explanation it had to rule out — the nine-day investigation, the disposition of the money and the ARN, and the onboarding control that would have stopped it at the fifth folio instead of the forty-second.

Regulatory references there name a category of obligation (KYC/KRA, PMLA reporting, ARN and EUIN, NISM certification). They carry no circular numbers and no dates: getting those wrong in a demo is worse than omitting them.

Three modelling calls worth knowing about

Each of these is argued on method.html, not buried.

The 7.7% / 21.2% figures anchor a ratio, not a level. AMFI–CRISIL's "share of AUM held five years or more" describes the age composition of a book that added 16 million SIP accounts in a year — most assets are young because the book is young. Read as a survival rate it badly overstates churn. So it sets the 2.75× spread between channels; AMFI's holding-period data ("61% of retail stays two years or more") sets the level.

The deck's 156 index is a cohort statement, so it is solved as one. Multiply a 78%-retention folio by 1.56 and you get 122% retention. Instead a single hazard multiplier λ is solved so the treated cohort's retained value — measured in AUM-years, the deck's own objective function — reproduces the index. At the deck's values λ ≈ 0.60, i.e. a 40% cut in monthly stop hazard.

Correlated tells are capped, visibly. A folio that misses installments also bounces its mandate and stops logging in. An uncapped additive stack counts one event three times, so the combined behavioural contribution is held to +2.40 and the forward monthly hazard to 30% — both applied as visible terms, never by quietly shrinking the bars.

No customer data

Every folio, name, folio number, distributor, ARN, EUIN, PAN and certificate number is generated from fixed seeds (mulberry32 — 37013701 for the ledger, 84213377 for the identity and integrity layer) and is identical on every load. No HDFC AMC customer data was used, referenced, or approximated. HDFC Mutual Fund scheme names are real public product names, used to make the demo legible.

Not for distribution to investors. Nothing here is investment advice or a representation of any scheme's performance.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages