How to run a Liquidity Gap Analysis: A Seven Step Method
A liquidity gap analysis runs in seven steps: fix the horizon and the buckets, list every flow, decide the slotting basis, state the behavioural assumption out loud, compute the gaps and the cumulative gaps, test each bucket against a cap, and report the assumption beside the answer. Three of those seven exist only because of what goes wrong when they are skipped.
A maturity ladder, a bucket and a gap are already familiar terms. The missing part is an order to run them in, and the seven steps below are that order. Each of the seven steps below is obvious on its own. The order is not obvious at all, and neither is the fact that three of the steps produce nothing anybody can point at. Each of those three exists only to stop a specific thing going wrong later.
Why does a liquidity gap analysis need a method at all?
Here is the uncomfortable part. A liquidity gap analysisThe method of placing every expected inflow and outflow into time buckets and reading what the timing shows. is not arithmetic that a balance sheet performs on itself. Two competent people can take the identical balance sheet of the identical institution on the identical morning, run the identical table, and produce two different ladders that both tie perfectly. Everything that separates their two answers was decided before a single flow was placed into a single bucket. How many buckets, where the boundaries sit, whether the last one is closed, what basis the flows are slotted on, and what happens to the balances that have no maturity date at all: none of those is read off the balance sheet. Each is chosen.
The mechanism is identical at household scale and much easier to feel there. Consider a household for a moment. Money comes in and money goes out over the next year, and the question is whether any month is short. The moment that table is built, decisions have to be made that the bank statement cannot settle. Is the rent a fixed outflow in every month, or something that could be renegotiated? Does the school fee land in the month it is due or the month it is usually paid? Is the money in the savings account available next week, or is it the balance the household has promised itself it will not touch? None of those answers is in the statement. Each of them changes which month comes out short, and none of them will appear anywhere on the finished table unless somebody writes it down.
Vindhya Commercial Bank Limited, an invented bank whose every figure below is its own, is that household at Rs 96,000 crore. The bank holds one balance of Rs 36,000 crore of current and savings money, contractually repayable on demand and behaviourally almost immovable. The assumption made about that one balance is the single largest decision in the whole exercise. The method exists so that the decisions get made in the open, in a fixed order, before the numbers arrive to argue with them.
Seven steps, and one of them is where nearly every analysis goes wrong. Which step is it?
Step 1: what has to be fixed before a single flow is placed?
Five things, and all five are decisions rather than facts. The entity comes first. A ladder for one bank is a different object from a ladder for a bank and everything connected to it. The currency comes second. A shortfall in one currency is not cured by a surplus in another. The horizon, meaning how far out the table runs. The bucket boundaries. And the one people forget: whether the final bucket is closed or open.
At this invented bank the answers are one entity, rupees, and eight buckets running from 1 to 14 days out to over 5 years. The last label matters more than it looks. Over 5 years is an open bucketA final bucket with no end date, which means no weighted average can be computed from the table and the analysis must say so.: it has a start and no finish. An open final bucket means nothing that requires a time for every row can be computed from this table, and the analysis has to declare that in step 1 rather than let somebody discover it in step 9. If every row had a start and an end, each bucket's mid point could be taken, multiplied by the amounts, and turned into a weighted average life or a duration out of the table itself. With an open row that is not possible, and anybody who quotes an average life from this ladder has silently invented an end date for a row that does not have one.
Who sets the buckets, and where the binding version lives
The eight buckets above, the boundaries between them and the decision to leave the last one open all belong to Vindhya Commercial Bank Limited and to nobody else. A bucket definition, a slotting rule, a behavioural limit and a tolerance are all set by a regulator for one jurisdiction. None of them can be read off a balance sheet, and each changes on the effective date the regulator gives it.
The idea of watching a contractual maturity mismatch as a monitoring tool alongside the headline liquidity standards comes from the Bank for International Settlements at bis.org. The Basel work these methods descend from is published there. A separate document answers a different question, namely what actually binds an Indian bank. Which buckets that bank must report on, what basis it must slot on, what behavioural adjustment it may apply and what tolerance sits on any bucket all come from the Reserve Bank of India at rbi.org.in.
So step 1 has an instruction attached to it that the rest of the method does not: find what applies to the institution in hand rather than taking these eight buckets as given. The seven steps themselves are written to run on any balance sheet anywhere. The boundaries are not.
The last bucket reads over 5 years. What can no longer be computed from this table?
Step 2: what shows the table is complete rather than merely full?
A table can be full of numbers and still be missing something, and there is exactly one cheap test that separates the two. The inflow column is added, then the outflow column. If both come to the same total, and if that total is the balance sheet the analysis started from, the table describes the whole institution rather than the part of it somebody happened to load. The equality of the two totals is the tie checkThe test that both columns of the ladder reach the same total, which is what makes the table a description of a balance sheet., and at this bank both columns come to Rs 96,000 crore.
Now suppose they do not. Suppose outflows come to Rs 94,800 crore against inflows of Rs 96,000 crore, a difference of Rs 1,200 crore. The shortfall is small and everybody is busy. The instinct is to call the difference untidy and carry on. The difference is not untidy but unusable, and the reason is that the missing Rs 1,200 crore has a location nobody knows. If it belongs in LB1 then every cumulative figure in the table is wrong. If it belongs in LB6 then the first five are right and the rest are wrong. The table cannot say which, so it produces eight confident figures and not one defensible one, and it looks exactly as authoritative as a correct table would. Step 2 therefore refuses to proceed rather than noting the difference in a footnote.
Outflows total Rs 94,800 crore against inflows of Rs 96,000 crore. Why is that unusable rather than merely untidy?
Step 3: what does writing down the slotting basis actually prevent?
The slotting basisThe rule by which a flow is assigned to a bucket, being contractual, behavioural, or contractual with behavioural adjustment. is the rule by which a flow gets assigned to a bucket, and there are three of them. Purely contractual, where a flow sits in the bucket its paperwork says it does. Purely behavioural, where a flow sits where the institution's model says it will actually move. Or contractual with behavioural adjustment. The third rule is contractual for everything that has a date and behavioural only for the balances that do not. Vindhya Commercial Bank uses the third basis, and prints the basis at the top of the table rather than in an appendix.
The reason the basis has to be chosen once and written down before any flow is placed is not neatness. A basis chosen afterwards is not a basis at all, but a description of what somebody happened to do. An analysis whose basis was never fixed cannot be rebuilt by anybody else, and an analysis that cannot be rebuilt cannot be argued with. Six months later, when the answer is questioned, the only defence available is that this is how the spreadsheet has always worked. An institution makes that sound just before it discovers it does not know its own numbers. A basis written at the top, in one line, lets every future reader reconstruct the work without asking its author.
Step 4: how is a behavioural assumption stated so that it can be argued with?
Step 4 decides the answer, and step 4 is the step that gets dropped. A behavioural assumptionThe share of a balance with no contractual date placed in an early bucket, stated as a number with its model and its approver. is what an analysis does about money that has no maturity date. Vindhya Commercial Bank holds Rs 36,000 crore of current and savings balances that every depositor may withdraw this afternoon and that in practice sit there for years. Contractually all Rs 36,000 crore belongs in the first bucket. Behaviourally almost none of it does. The bank's own choice is to place 5.0 per cent of it, being Rs 1,800 crore, in LB1 and to spread the remainder across LB5 to LB8.
Step 4 is not a sentence. Step 4 is a five column record instead. The five columns are the balance, the share, the bucket the share lands in, the model that produced the share, and whether that model has been validated. The first four are usually written down somewhere in an institution. The fifth column is the one nobody fills in, and at this bank it reads no. The share comes from model V1, the behavioural deposit life model. Three models in this bank's inventory have never been validated and V1 is one of them. Its validation statusWhether an independent party has checked that the model behind an assumption is fit for the use it is put to. is not a formality. V1 cannot be backtested at all: how long a deposit stays is only observable over years. Kanaka Murthy, the independent validator in the risk function, has never signed it off, and the assumption is approved by the asset liability management committee G4 while the cap it moves is held by the board risk management committee G2. G4 and G2 are two different rooms and no paper goes to both.
Step 4 asks for five things about each behavioural assumption. Which one do most analyses leave out?
Run step 4 yourself and watch steps 5 and 6 recompute
One control, and it sits at the only step that takes a decision rather than a fact. The behavioural assumption applied to the Rs 36,000 crore of non-maturity deposits moves from 0.0 to 15.0 per cent. Bucket LB1 already carries Rs 7,800 crore of other outflows and Rs 7,200 crore of inflows, so its outflows are Rs 7,800 crore plus the assumption and its gap is Rs 600 crore plus the assumption. The default of 5.0 per cent is this invented bank's own, giving LB1 outflows of Rs 9,600 crore, a gap of Rs 2,400 crore at 25.0 per cent of that bucket's outflows, cap utilisation of 89.3 per cent and headroom of Rs 288 crore. Arrow keys move the control one hundredth of a point at a time, fine enough to land the setting exactly on 6.11.
At a behavioural assumption of 5.0 per cent, bucket LB1 shows a gap of Rs 2,400 crore, being 25.0 per cent of its outflows, the cap runs at 89.3 per cent and the headroom is Rs 288 crore, and the ladder ties to Rs 96,000 crore on both sides at every setting.
Step 5: what is computed, and in what order?
Four things, and the order is part of the method. First the bucket gap, being that bucket's inflows less its outflows. Second the gap as a share of that bucket's own outflows. A share turns a rupee figure into something comparable across buckets of very different sizes. Third the cumulative gap, being the running total down the column. Fourth the cumulative shareThe cumulative gap as a percentage of cumulative outflows, which is the shape a reader should be shown rather than the rupee running total alone., being the cumulative gap over the cumulative outflows to that point.
Most analyses stop after the third. The fourth is what turns a running total into a shape, and the shape is the only part a reader can actually interpret. A cumulative shortfall of Rs 9,600 crore at one year means nothing until it is set against Rs 50,400 crore of cumulative outflows, at which point it becomes 19.0 per cent and can be compared with the 25.0 per cent at fourteen days. The full run for this bank follows.
| Bucket | Inflows | Outflows | Gap | Of that bucket | Cumulative gap | Cumulative share |
|---|---|---|---|---|---|---|
| LB1, 1 to 14 days | 7,200 | 9,600 | 2,400 short | 25.0 | 2,400 short | 25.0 |
| LB2, 15 to 28 days | 3,600 | 4,800 | 1,200 short | 25.0 | 3,600 short | 25.0 |
| LB3, 29 days to 3 months | 9,600 | 12,000 | 2,400 short | 20.0 | 6,000 short | 22.7 |
| LB4, over 3 to 6 months | 8,400 | 9,600 | 1,200 short | 12.5 | 7,200 short | 20.0 |
| LB5, over 6 months to 1 year | 12,000 | 14,400 | 2,400 short | 16.7 | 9,600 short | 19.0 |
| LB6, over 1 to 3 years | 24,000 | 21,600 | 2,400 over | 11.1 | 7,200 short | 10.0 |
| LB7, over 3 to 5 years | 12,000 | 9,600 | 2,400 over | 25.0 | 4,800 short | 5.9 |
| LB8, over 5 years | 19,200 | 14,400 | 4,800 over | 33.3 | 0 | 0.0 |
| Total, Rs crore | 96,000 | 96,000 | 0 | 0 | 0.0 |
Read the last column and a curve appears that the rupee column hides. The cumulative share holds at 25.0 per cent through the first twenty eight days, eases to 22.7 and then 20.0 and then 19.0 through one year, and falls away to 10.0, 5.9 and nothing. The fall is not the bank getting safer as time passes. The denominator is growing as more outflows enter the running total, and the long assets are finally maturing. Reading the fall as improving safety is the most common misreading of a gap table, and it is why the shape has to be shown rather than described.
Step 6: how is a bucket tested, and against what?
A gap on its own is a description. A gap becomes a test only when there is a capA limit on how large a bucket's negative gap may be, against which utilisation is computed from amounts. to measure it against. At this bank there is exactly one, and it sits on bucket LB1: the negative gap in the 1 to 14 day bucket may not exceed 28.0 per cent of that bucket's outflows. The cap is limit L9, it is the bank's own and it is the only limit in a set of twelve that touches the ladder at all.
The test has three outputs and they must be produced in this order. A percentage cannot be compared with a rupee gap, so express the cap in rupees first: 28.0 per cent of Rs 9,600 crore is Rs 2,688 crore. Compute utilisation from those amounts: Rs 2,400 crore over Rs 2,688 crore is 89.3 per cent. Then state the headroomThe distance in rupees between the current gap and the cap, which is the figure that shows how much room actually exists. in rupees: Rs 2,688 crore less Rs 2,400 crore is Rs 288 crore.
Utilisation is computed from the amounts and never from the rounded percentages, and this bank has a row that proves why. Neither figure was rounded much, so here the shortcut happens to work: 25.0 divided by 28.0 gives 89.3 as well. On the same bank's wholesale funding limit L10 it breaks. The reported share is 22.6 per cent against a 20.0 per cent cap, and 22.6 over 20.0 gives 113.0. Dividing the rupees instead, Rs 19,920 crore over Rs 17,664 crore, gives 112.8, and 112.8 is what the bank actually reports. The two answers differ because the 22.6 was already a rounded version of 22.554. Dividing the amounts, always, means nobody ever has to ask what got rounded first.
The cap is 28.0 per cent of the bucket's outflows and the gap is 25.0 per cent. Two people compute utilisation and both get 89.3 per cent. Are they both right?
Step 7: what has to be reported beside the answer?
Seven things, and none of them is the table. The basis, in one line. The behavioural assumption as a number, with its balance, its bucket, its model, its approving committee and its validation status. The worst cumulative point, here LB5 at Rs 9,600 crore and 19.0 per cent. The cap test with its headroom in rupees. The meaning of the final zero. And the list of things the analysis does not measure. A table circulated without those seven becomes a number that gets quoted for a year by people who never saw the decision inside it.
The one that gets left out most often is the sentence about the final zero, and it is the quietest failure in the whole method. The last cumulative figure on this table reads zero, and a reader takes comfort from it. The zero is there because both columns total Rs 96,000 crore. The last figure would be zero for this bank, for any bank, in any condition, on any day, including a day the institution could not open. A ladder that ties to zero at the end says nothing whatever about whether the institution is safe, and step 7 exists so that somebody writes that sentence underneath the table before it leaves the room.
What sentence does step 7 require underneath the table about the final cumulative figure?
The analysis that was run correctly and still failed
Picture the version where nothing goes wrong. The ladder is built, both columns tie at Rs 96,000 crore, the cap on LB1 comes out at 89.3 per cent utilisation and is comfortably within, and the table is circulated with a covering note that says the position is satisfactory. Every arithmetic check passed. Passing every arithmetic check is the failure, and the failure has three parts.
First, the figure 5.0 per cent appears nowhere on the circulated table. Nobody reading it can see that Rs 1,800 crore of LB1's Rs 9,600 crore of outflows is there by decision rather than by contract. Move that decision to 6.11 per cent and the cap runs at exactly 100.0 per cent instead of 89.3, on the same balance sheet, on the same day, with the ladder still tying to Rs 96,000 crore on both sides and every check still passing. The only ladder limit in a set of twelve is 1.11 percentage points of one unstated number away from breach.
Second, the model that produced the assumption has never been validated and cannot be backtested, and the committee that approves the assumption is not the committee that holds the cap. Neither of those facts is a number, so neither appears on a table anywhere.
Third, and it is the quietest, the last line reads zero and a reader takes comfort from it. Nothing in the arithmetic objects to any of the three. Steps 3, 4 and 7 are the only defence, and the arithmetic will never raise its hand.
What does this method not do?
Four things, and naming all four is what stops the output being over-read. The method stresses nothing: it takes flows as they are contracted, adjusted only by the stated behavioural assumption, so its answer describes an ordinary month rather than a bad one. The method knows amounts and not providers, so twenty depositors placing Rs 11,136 crore and one depositor placing the same amount produce an identical ladder. The method takes bucket totals rather than a daily path, so it can produce no count of days at all. And it prices nothing, so the cheapest way of closing a gap and the dearest way look exactly the same in it.
A reader will try to reconcile this ladder with the bank's thirty day coverage computation, and no bridge exists. The first of the four limitations therefore has a consequence worth being explicit about. The ladder has no thirty day point at all: LB2 ends at day 28 and LB3 runs from day 29, so the nearest closed point is day 28. At day 28 the ladder shows inflows of Rs 10,800 crore against outflows of Rs 14,400 crore, a net shortfall of Rs 3,600 crore. The coverage computation shows a thirty day net cash outflow of Rs 11,520 crore, or 3.20 times as much. Neither is wrong and they are not versions of each other. The ladder counts contractual flows with a behavioural adjustment and lets every inflow count in full. The coverage computation applies stressed run-off factors and caps what may be counted as an inflow. Neither is a check on the other, and building a bridge between them means inventing a mapping that nobody can reproduce.
The analysis is complete and the cap is within. Which measure comes next?
Who actually runs this, and what do they do with it?
Three people read the same table for three different things, which is the honest test of whether the seven steps were worth the trouble. Devendra Achar, who runs treasury at this invented bank, reads the first two buckets and the cap. His question is operational and short: is there room in LB1, and how much. The answer of Rs 288 crore of headroom is the whole of what he needs, and it is a figure that only exists because step 6 put the cap into rupees. Told only that utilisation is 89.3 per cent, he would have to do that arithmetic himself, and on a busy morning he would not.
Sunanda Ravikumar, the chief risk officer, reads the shape rather than any single row, and reads step 4 before she reads any of it. Her question is not whether the bank is within its cap this month but how much of the answer is decision rather than measurement. The answer here is uncomfortable: 1.11 percentage points of one unvalidated assumption separates comfortable from breached, and that is the sentence she needs in front of committee G2 rather than the ladder itself.
An analyst at another institution looking at this bank as a counterparty reads it for something different again, and mostly reads what is missing. If the basis is not printed at the top, the analyst cannot rebuild the table, and a table nobody can rebuild is not evidence of anything. The presence of the step 4 record is, to an outside reader, a stronger signal than any number in the table. Only that record shows the institution knows which of its figures are choices. And the household version holds the same shape: a person who writes down the assumption that the annual bonus will arrive has produced a plan somebody can argue with, and a person who quietly builds the bonus into the total has produced a plan that will simply be wrong one day with no way of tracing why.
The behavioural assumption moves from 5.0 to 6.11 per cent. What happens, and what gives warning?
Sources
| Source | Document | Site |
|---|---|---|
| Bank for International Settlements | The Basel liquidity standards and the monitoring tools they sit beside, including the contractual maturity mismatch tool this method descends from | bis.org |
| Reserve Bank of India | What actually binds an Indian bank on the structural liquidity statement: which buckets, what slotting basis, what behavioural adjustment is permitted and what tolerance sits on a bucket | rbi.org.in |
| Indian Banks Association | Banking operational convention on how the structural liquidity statement is compiled and circulated | iba.org.in |
Vindhya Commercial Bank Limited, Devendra Achar, Sunanda Ravikumar and Kanaka Murthy are invented.
Educational material. Not advice on any investment, tax, budget or market position.
