bank-valuation — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited bank-valuation (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The binding Munger/Buffett vault is thin on bank-specific valuation, so bank IVs were the weakest numbers on the Action Dashboard. This skill encodes Damodaran's free financial-firm method as a reusable procedure. Ground every step in the canon (below) — never free-hand a bank IV.
--role banksThe Damodaran "Valuing Financial Service Firms" method-atomics are in the canon layer, tagged analyst_role: banks. Pass `--role banks` on every bank brain query — the --role filter is INCLUSIVE (it admits the bank canon AND keeps the binding/perspective atoms on relevance), and the financial-firm canon is invisible to a blended query without it:
set -a && source /Users/pw/invest/.env && set +a && /Users/pw/invest/.venv/bin/python \
/Users/pw/invest/data/scripts/32_consult_brain.py \
--company "<bank name>" --model bank --step intrinsic-value --corpus blended --role banks \
--json-out extracted/grilling/<TICKER>_bankval.jsoncites_principles ⊂ the returned slugs. ALSO run the normal binding consult (--corpus binding, the Munger/Buffett CIO) for conviction/moat — the canon is the method, the CIO is the judge. Hard rule (load-bearing): a bank brain query without `--role banks` is invalid — it returns 0 Damodaran financial-firm atomics and the agent will silently free-hand the IV, which is the exact failure this skill exists to fix.
Before computing any number, retrieve the binding bank-character atoms and treat them as a gate the IV must survive, not flavour text: discipline-in-lending-creates-extraordinary-returns, avoid-fads-and-bad-loans-in-banking, complexity-increases-risk-of-error-and-fraud, prioritize-corporate-culture-and-morality. This operationalises "the CIO is the judge": a numerically high IV on a fad-chasing, low-culture, or opaque lender is capped or rejected regardless of the math. Banking is a business where a few years of undisciplined lending quietly destroys a decade of book value — the temperament read precedes the valuation.
For a bank, debt is raw material, not financing — you can't separate operating from financing flows, capex/working-capital are ill-defined, and FCFF is meaningless. So value EQUITY directly, in this order of preference:
Value of equity = Book Equity + PV[ (ROE − Ke) × Book Equity ], the excess return growing at g. In steady state this collapses to the justified price-to-book: Justified P/B = (ROE − g) / (Ke − g). A bank only deserves P/B > 1 when ROE > Ke; if ROE ≤ Ke it is worth ≤ book (and conviction caps at 2). Worked sketch: ROE 15%, Ke 13%, g 8% → P/B = (0.15−0.08)/(0.13−0.08) = 1.4× book.
regulatory capital) — or dividends if payout is stable — at the cost of EQUITY (Ke), never WACC.
should trade at a justified premium, not the sector median.
([[normalize-bank-provisioning-through-cycle]]). Current ROE is distorted by where the credit cycle is — under-provisioning inflates ROE (and IV), over-provisioning deflates it. Use a mid-cycle credit cost, not the latest quarter. This is the single biggest bank-IV error. Gate it: before normalizing, screen the book for evergreening / hidden-NPA / under-provisioning — a normalized credit cost computed on a managed book is fiction (complexity-increases-risk-of-error-and-fraud, greater-due-diligence-required-for-financials). Hand off the asset-quality red-flag check to `forensic-accounting-redflags` and only normalize on a book that survives it.
[[regulatory-capital-is-forced-reinvestment]]). Growth needsretained equity to keep CAR above the RBI minimum, so sustainable g ≤ ROE × retention ratio. A bank can't grow faster than its capital allows without dilution — model the dilution if it raises equity. Unlike a capital-light compounder, a bank cannot choose to return this capital; it is conscripted to fund the balance sheet, which is why a high headline ROE with thin capital is not the same quality as a self-funding franchise.
Ke = rf (~6.9%) + β × ERP (~5.5%). Use a bank-appropriate β(leverage + regulatory risk push it up). Be conservative — a too-low Ke is how banks get over-valued.
The deposit franchise IS the bank's float ([[deposit-franchise-is-bank-float]]; Munger use-float-for-compounding): a sticky, low-cost CASA base is cheap, semi-permanent capital the bank compounds on — that float, not the loan book, is the durable moat, and it is what lets a disciplined lender earn ROE > Ke through-cycle (underappreciated-moats-in-commodity-businesses — even in "commodity" banking a real funding edge produces unexpectedly high returns). Assess deposit stickiness, CASA ratio trend, and cost-of-funds vs peers; cross-link moat-analysis for the switching-cost/scale lens behind a sticky deposit base. A lender with no funding advantage is a commodity. Per the v2 rubric: ROE below cost-of-equity → cap conviction at 2; no funding moat → narrow moat.
The canon is Damodaran's 2009-vintage, US-framed financial-firm method. There is NO India-specific atomic in the brain for NIM, CASA dynamics, the NPA cycle, ECL provisioning, or RBI / SFB capital-adequacy (CAR) minimums. So you must hand-supply current Indian regulatory inputs (RBI CAR floor, SFB priority-sector + CRR/SLR drag, ECL norms) and mark them explicitly as un-grounded assumptions in the output — never present a hand-supplied India regulatory number with canon-like authority. Apply the regulatory-capital constraint with current RBI minimums and flag them as agent-supplied. Default conservative when the India input is uncertain.
Return a conservative IV range (iv_low / iv_base / iv_high) as a justified equity value (or P/B × book). buy_below = iv_base × (1 − required_MoS) (conviction-scaled); sell = iv_high. Honor the IRR-beats-~10%-Nifty gate. State the ROE, Ke, mid-cycle credit cost, and g assumptions explicitly — a bank IV with hidden assumptions is not a real number.
forensic evergreening/hidden-NPA screen** (forensic-accounting-redflags); a normalized credit cost on a managed book is fiction.
IV gets free-handed. Cite only canon slugs the consult actually returns; if principles is thin, flag it and stay conservative. Hand-supplied India regulatory inputs (NIM/CASA/NPA/CAR) are labelled un-grounded.
balance sheet" enters iv_base ONLY if the excess return is structurally sustainable through-cycle — route it through leverage-magnifies-errors first (on a levered financial a wrong re-rating call is amplified into a large equity error) ([[discount-the-bank-re-rating-pitch]]). Perspective voices are inputs to be discounted, never the verdict.
Munger/Buffett binding CIO remains the arbiter of moat/verdict; this skill supplies the number, not the verdict. Desk atomics (vault/desk/banks/atomic/…) are referenced via [[slug]] as connective tissue — not authored or edited here.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.