Money and credit: is money cheap, and is it reaching borrowers?
The Money and credit dimension of the economy portal. It gathers what was spread across /rbi/, /macro/credit/, /economy/bonds/ and econ-models’ liquidity and financial-conditions measures into one question, and adds a measure of its own: how much of each repo cycle reached loan and deposit rates, and how fast.
Code: pipeline/tipsheet/compute/economy_money.py, publish/economy_money.py; step economy_money in steps/economy_money.py (needs rbi, credit, macro, economy_bonds, economy_liquidity, economy_fci; about 2 s).
Tests: pipeline/tests/test_economy_money.py.
Bundles: economy/money/facts, monthly (derived measures), rates_monthly (RBI’s own levels, rbi_level), cycle_paths, pass_through_6m, pass_through_end, lag, sectors, sectors_latest. The pages also read economy/models/liquidity_*, economy/models/fci*, economy/bonds/facts, rbi/policy/*, rbi/money/m3_fortnightly and credit/financing/mix.
Pages: /economy/money/ (overview) and policy/, transmission/, credit/, conditions/; /economy/bonds/ sits under the dimension in the site map (URL unchanged). Helpers in apps/site/src/lib/economy-money.ts.
Pre-registration and results: C80–C82 in docs/research/site_calculations_spec.md.
Inputs
Nothing new is ingested; every input is another step’s derived table.
| Reading | Table | Notes |
|---|---|---|
| Repo, SDF, MSF, reverse repo, CRR, call rate | rbi_rates_daily | Month-end policy rates; the call rate’s monthly mean, and the mean of its daily spread to the repo rate in force that day |
| Repo moves, MPC meetings | rbi_rate_moves, rbi_mpc_meetings | The meetings table can lag the rate history by a meeting (October 2026: the rise is in the rates, the resolution not yet in the meetings); pages say so |
| Lending and deposit rates | rbi_transmission_monthly | WALR fresh from late 2014, outstanding from 2012; WADTDR fresh from December 2020, outstanding from 2013; median one-year MCLR from 2016 |
| Surplus cash | economy_liquidity_monthly | econ-models’ tracker (M9): RBI’s net injection from money-market operations, as a share of SCB deposits; sign flipped so surplus is positive. Switches to RBI’s official daily table when econ-data lands it, inside M9 |
| Credit and deposits | credit_deposits | All SCBs, last reading in each month; RBI’s ex-merger growth for July 2023 to June 2024 |
| Credit by sector | credit_bank_allocation | RBI’s sectoral statement (selected banks, about 95% of credit), comparable growth, last statement in the month |
| Real rates, 10-year yield | macro_real_rates_monthly, economy_bonds_monthly | CPI as in macro; month-end 10-year yield from DBIE |
| Financial conditions | economy_fci_monthly | econ-models’ index (M8); complete months only in the scorecard |
No FBIL, FIMMDA or CCIL figure is used. RBI’s own levels (policy rates, call rate, lending and deposit rates, yields) are in rates_monthly and drawn with table, CSV and JSON hidden; spreads, real rates, growth rates, shares and pass-through are derived and keep downloads.
Measures
- Corridor position: (call rate − floor) / (MSF − floor) × 100, daily, averaged by month. The floor is the SDF from April 2022 and the reverse repo rate before. It makes months comparable while the corridor’s width changed from two points to half a point.
- Scorecard places: each reading against its own history with
economy_common.history_place: policy and market rates and credit from 2001, the call-rate spread from May 2011 (the corridor as now run), the real repo rate from 2012 (CPI combined), new-loan rates from their start in 2014, surplus cash from 2018. - Decade: means over the last 120 months against the 120 before, where at least 60 months exist.
Pass-through by rate cycle (C80 rules)
A cycle is a maximal run of repo moves of one sign. For a cycle with first-move month m1, last-move month mL and repo change R:
- Baseline b = the month before m1. The window ends at w = the month before the next cycle’s first move (the latest month for the cycle still running). Nothing after w is used, so one cycle never borrows the next one’s moves.
- Pass-through at h months after the last move = (X(mL+h) − X(b)) / R, for h = 0, 3, 6, 12; blank when mL+h is after w.
- Months to half: the first month from m1 in which the rate has moved by half of R; blank (“not within the cycle”) if never.
- Lag behind the repo (added after C80 was graded): months to half less the repo’s own months to half. A long easing reaches half late by construction, because the repo itself takes months to fall; the difference compares long and short cycles fairly.
What it cannot separate: the new-loan rate is an average over every loan made in the month, so a shift in the mix (more gold or corporate loans) moves it without any repricing; and liquidity moves transmission as much as the repo does (fast in 2020 with the system flooded with cash, slow in 2013-14 when it was squeezed). With five cycles for loans and two for deposits, results are descriptions with a stated rule, not significance tests.
Results (24 October 2026)
- C80 (later cycles pass more to new loans six months after the last move): wrong. 2015-17 easing 95%; 2019-20 easing 68%; 2022-23 tightening 79%; 2025 easing 64%.
- C81: tightening half held (new deposits 92%, new loans 79%); easing half wrong (deposits 76%, loans 58%).
- C82 (the October 2026 rise): pending, graded on the April 2027 figures.
- Described, not tested: new-loan rates trailed the repo by 8, 1 and 6 months before external benchmarks, 3 and 0 after.