Upside down pricing in payment services

Some Indian banks charge for services that are cheap to execute, and offer for free expensive services 

Last week I enddd up spending some time waiting at a teller counter at a bank. This was due to some mess up with a cheque I had received. During my time at the teller counter I had the opportunity to observe other people at the same counter. 

There were a few people depositing cash into their business accounts. A few others were depositing cheques. What caught my attention, however, was this guy from a nearby business who came to deposit a large number of cheques. 

He had an entire book of challan leaves (banks regularly issue those to business customers), to each of which was stapled a cheque. As I watched, the teller would put a seal on a cheque, its corresponding challan and another seal on the counter foil. This process was repeated for each challan in the book. 

And this process was only to accept the cheques. Later on there would’ve been further effort on behalf of the bank to cash the cheque and actually execute the fund transfer. And then add in the effort of writing out all those cheques, writing out all those challans (they’re hard to print) and then take them to the bank. 

It was a rather laborious process all round, on behalf of all parties involved. Yet, banks mostly execute this function for free for most customers. 

On the other hand, they charge for account to account transfers, and the amount isn’t particularly small. Like this morning I was moving money from one account  to another, a process that took me a minute and that wouldn’t have cost the bank any human minutes. And icici bank decided to charge me for it. 

It seems like banks have their pricing and the valuation of their own effort all wrong. For electronic payments the cost is direct – what the banks have to pay the payments systems and any per use software costs. And this makes it easier to value and charge for such services. 

The effort in transacting through cheques, on the other hand, is not directly measurable (though by no means an impossible exercise). There are back offices that do the job whose cost is easy to measure, but several employees who also do other things spend time processing cheques. And this difficulty in measurement means that most banks just don’t charge for cheques. 

Around 2000 when foreign banks expanded their branch networks in india there was an attempt to charge customers for walking into the branch – customers were encouraged to do their business at ATMs or over the phone, instead. This was in recognition of the costs of customer walkins into branches.  

Banks would do well now to do something similar for cheques as well – despite the cheque truncation system (CTS), the effort involved in organising payments through cheques is massive for the bank. 

There is only one upside to cheques – and this is a downside for customers. Cheques result in money going into limbo. The payer doesn’t know when the funds will leave his account and can’t use the funds. The recipient can’t use it either until he has got it. So for the duration that the amount is “in transit” (and this duration can vary significantly) banks can happily use these funds without them being called. 

It’s possible that the benefit to the banks from this float more than compensates for the pain of processing cheques. If not, cheques have no business existing any more! 

India post payments bank

I’d once written about India Post Payments Bank, after a visit to a post office, and wondered if it will actually help foster financial inclusion. Now that the bank is about to launch, it seems to be doing some interesting thing, and mostly in terms of the intermediary it will be.

Being a payments bank, IPPB can only take deposits, and not give loans. It is trying to build a platform where it will simply act as a distributor for loans, and different lenders can make use of its customer transaction data and lend to its customers.

Also, since payments banks can only invest their deposits in government securities, the “float” is limited by the difference between the yield on such securities and the interest offered to depositors. Competitive pressures mean that the latter needs to be high, resulting in a thin float. Consequently, a payment bank needs to make money on payments and selling third party products such as investments insurance.

A recent interview with IPPB CEO Ashok Pal Singh gives some interesting pointers about how the bank might go about this. Firstly, the bank will dispense with the investment+insurance products, and will sell pure unbundled life insurance. The logic is that since the clientele is likely to be the hitherto unbanked, they will not be able to understand complicated products, and there is a high chance of misselling. By restricting product choice to those that are highly unlikely to be missold, the bank can ensure customer protection.

Similarly, in case of mutual funds, distributors have an incentive to recommend funds with high fees since they also tend to offer higher distributor commissions. Again, given IPPB’s clientele, the chances of mis-sale are high, and so the bank has decided to sell only index funds!

This is remarkable since index funds have hitherto been non-starters in India. Benchmark Mutual Fund had managed to establish a market, but a series of acquisitions has meant that the market hasn’t really taken off. Most financial advisors in India swear by actively managed funds. So a bank, however small, announcing that it will only sell index funds can give a massive boost to that market!

Apart from selling “simple” products such as term life insurance and index funds, the way the bank is going about the process is also interesting. Rather than tying up with a single provider of these products (as most other banks have done), IPPB plans to take the “broker” route and distribute products from different asset managers and insurers. This ensures that the rates remain competitive, though it is natural that the end salesperson might choose to sell products with the highest commissions/incentives. Nevertheless, with the products being inherently simple, the rates to the end customers are still likely to be competitive.

After over a decade of slumber, the RBI licensed a few (limited) banks last year. It is interesting to see the kind of diversity this new set of licensing has unleashed. Again goes to show that removal of barriers to entry can result in significantly better markets!

During his last few speeches, former RBI Governor Raghuram Rajan kept mentioning how full-service bank licenses will be soon “put on tap”. The sooner that happens, the better it is for Indian banking customers.

On holding stocks

I never understood one thing about investment analyst reports – the “hold” recommendation. This is “between” the “buy” and “sell” recommendations (which are self-explanatory), and it tells an investor to hold on to the stock if he already owns it, but not to buy if he doesn’t.

The problem with this is that the difference between buying and holding a stock is small, especially given the current efficiency of equity markets and consequent low transaction costs. The only difference between holding and not holding a stock is that in the latter case, you spend the transaction cost of buying the stock. That is all. Based on this, it is intriguing that the two have remained distinct analyst recommendations for ages now.

I can think of two possible explanations:


  1. One can assume that the investor is fully invested (not holding any cash), and so buying a stock means that he has to sell something else in order to allocate capital to this stock. So in other words, the cost of getting the stock into you portfolio is higher than the trading cost itself – it comes in at the cost of another stock. With these increased transaction costs, it’s possible that it’s not worth buying the stock .

  2. Analysts hate to admit it (look at the precision with which they dictate price targets), but there is a wide band of error around their estimates of what price the stock will trade at at some point of time in the future. So the buys are those that are much more likely to be trading up than the holds. So by saying “hold” you are saying “yeah this stock might go up, so I’m not so confident about it so don’t bother buying if you don’t have it already”.

But then there is this school of thought that says that analyst’s buy/hold/sell recommendations do not matter at all, and the value they add is in providing the investor access to the company’s management. Matt Levine has written plenty about this, and you should read his latest stuff on this.

Coin change problem with change – Dijkstra’s Algorithm

The coin change problem is a well studied problem in Computer Science, and is a popular example given for teaching students Dynamic Programming. The problem is simple – given an amount and a set of coins, what is the minimum number of coins that can be used to pay that amount?

So, for example, if we have coins for 1,2,5,10,20,50,100 (like we do now in India), the easiest way to pay Rs. 11 is by using two coins – 10 and 1. If you have to pay Rs. 16, you can break it up as 10+5+1 and pay it using three coins.

The problem with the traditional formulation of the coin change problem is that it doesn’t involve “change” – the payer is not allowed to take back coins from the payee. So, for example, if you’ve to pay Rs. 99, you need to use 6 coins (50+20+20+5+2+2). On the other hand, if change is allowed, Rs. 99 can be paid using just 2 coins – pay Rs. 100 and get back Re. 1.

So how do you determine the way to pay using fewest coins when change is allowed? In other words, what happens to the coin change problems when negative coins can be used? (Paying 100 and getting back 1 is the same as paying 100 and (-1) ) .

Unfortunately, dynamic programming doesn’t work in this case, since we cannot process in a linear order. For example, the optimal way to pay 9 rupees when negatives are allowed is to break it up as (+10,-1), and calculating from 0 onwards (as we do in the DP) is not efficient.

For this reason, I’ve used an implementation of Dijkstra’s algorithm to determine the minimum number of coins to be used to pay any amount when cash back is allowed. Each amount is a node in the graph, with an edge between two amounts if the difference in amounts can be paid using a single coin. So there is an edge between 1 and 11 because the difference (10) can be paid using a single coin. Since cash back is allowed, the graph need not be directed.

So all we need to do to determine the way to pay each amount most optimally is to run Dijkstra’s algorithm starting from 0. The breadth first search has complexity $latex O(M^2 n)$ where M is the maximum amount we want to pay, while n is the number of coins.

I’ve implemented this algorithm using R, and the code can be found here. I’ve also used the algorithm to compute the number of coins to be used to pay all numbers between 1 and 10000 under different scenarios, and the results of that can be found here.

You can feel free to use this algorithm or code or results in any of your work, but make sure you provide appropriate credit!

PS: I’ve used “coin” here in a generic sense, in that it can mean “note” as well.

Explaining UPI

I just paid my cook his salary for November. Given the cash crunch, I paid him through a bank transfer, using IMPS. Earlier today, my wife had asked him for his account details (last month I’d paid him on his wife’s account).

An hour back he sent me his account details (including account number and IFSC) via WhatsApp. I had to wait till I got home and got access to my laptop (Citibank app doesn’t let you add payees on mobile banking).

I get home, log in to Citibank Online. Add payee, which includes typing his bank account number twice. Get SMS asking me to confirm payee addition. I authorise payee. And after all this I am able to finally do the transfer – and I expect him to have got his money already.

For a long time I was wondering what the big deal with UPI was, given that IMPS is already fast enough. Having finally tried UPI earlier this week (it’s finally coming to iOS, but only available on ICICI now. And the implementation so far sucks, since you need to pull out your debit card for two factor authentication – defeating the point of UPI. I’m told it’s better on Android), I realise how much easier and safer the transaction would’ve been.

Firstly, the cook needn’t have sent me his account number. All I would need was his virtual payment address. I would then open my UPI app (in my case, iMobile) and click on “send money”. And then I’d add his virtual ID there, following which his name would appear. Two or three more clicks, and entering my PIN code, the transfer would be done.

No bank account number. Not even a mobile number or an email ID. Just a random string of characters would allow me to transfer money to him! And later I could give him my UPI ID, and next month onwards he could simply send me a request via UPI for his salary. And two clicks later it would be done!

Mint has reported that there are massive delays in merchants installing point of sale devices in response to the cash ban. Banks should instead seek to acquire merchants to accept money via UPI. It’s simple, it’s quick and it protects privacy.

In fact, if the bank sales staff now have bandwidth, it can be argued that all the planets have aligned for UPI to take off for merchant payments – people have less cash, point of sale devices are not available, and both merchants and shoppers have shown openness to cashless payments, and there is a push from the government.

If only the banks can bite…

Using my cook as an ATM

This happened ten days before high value notes were withdrawn, and suggests nothing about my cook’s political opinions or views. 

On 30th October 2016, I paid my cook his salary for October. As it was the usual practice, I paid him in cash. He asked me if I could do an online transfer instead.

It was the first day of Diwali, and he needed to send money to his wife in Bihar. And it being Diwali, all banks were closed, and there was no way he could send money to her. So he asked me if I could do that. And if I were anyway transferring money to his wife’s account, could I send her a bit more, he asked – he would compensate me for the extra amount in cash.

And so like that I used my cook as an ATM. He gave me his wife’s account details (it was such an obscure branch that I’d to google it to find the IFSC code – wasn’t in citibank’s lookup list). I added her as a “payee” and immediately IMPSd the amount to her. And my cook gave me the extra funds I’d transferred in cash.

Later on, I told him to install his bank’s app on his newly acquired fancy phone (with a Reliance Jio sim). I’m not sure he’s done that but considering how resourceful he is, it wouldn’t be long before he does that. And more of the Bihari cooks network in Bangalore do likewise.

Nandan Nilekani, in his championing of the UPI, likes to talk about how “anybody can be an ATM” with the new technology. This was an exemplary example of that.

The only fly in the ointment was that I didn’t need cash that day – after all I’d been to the ATM earlier that morning just so that I could get cash to pay my cook – so I ended up with a lot of cash that I didn’t need. Thankfully I was able to spend it productively before the ceased to be legal tender.

Following the withdrawal of high currency notes, I told my cook I would pay his subsequent salaries by bank transfer. He gladly agreed.

Financial inclusion and cash

Varad Pande and Nirat Bhatnagar have an interesting Op-Ed today in Mint about financial inclusion, and about how financial institutions haven’t been innovative to make products that are suited to the poor, and how better user interface can also drive financial inclusion. I found this example they took rather interesting:

Take, for instance, a daily wager who makes Rs200 on the days she gets work. Work is unpredictable, and expenses too can be volatile, so she has to borrow money for buying vegetables, or to pay the doctor’s fees when her children fall sick. Her real need is for a flexible—small ticket, variable amount, rapid approval—loan product that she can access instantly. Unfortunately, no institutional channel—neither the public sector bank where she has a “no frills” account, nor the MFI that she has previously borrowed from—offers such a product. She ends up borrowing from neighbours, often from the local moneylender.

Now, based on my experience in FinTech, it is not hard to design a loan product for someone whose cash flows are known. The bank statement is nothing but a continuing story of the account holder’s life, and if you can understand the cash flows (both in and out) for a reasonable period of time, it is straightforward to design a loan product that fits that cash flow pattern.

The key thing, however, is that you need to have full information on transactions, in terms of when cash comes in and goes out, what the cash outflow is used for, and all that. And that is where the cash economy is a bit of a bummer.

For a banker who is trying to underwrite, and decide the kind of loan product (and interest rate) to offer to a customer, the customer’s cash transactions obscure information; information that could’ve been used by the bank to design/structure/recommend the appropriate product for the customer.

For the case that Pande and Bhatnagar take, if all inflows and outflows are in cash, there is little beyond the potential borrower’s word that can convince bankers of the borrower’s creditworthiness. And so the potential borrower is excluded from the system.

If, on the other hand, the potential borrower were to have used non-cash means for all her transactions, bankers would have had a full picture of her life, and would have been able to give her an appropriate loan!

In this sense, I think so far financial inclusion has been going on ass-backwards, with most microfinance institutions (MFIs) targeting loans rather than deposits. And with little data to base credit on, it’s resulted in wide credit spreads and interest rates that might be seen as usurious.

Instead, if banks and MFIs had gone the other way, first getting customers to deposit, and then use the bank account for as much of their transactions as possible, it would have been possible to design much better financial products, and include more customers!

The current disruption in the cash economy possibly offers banks and MFIs a good chance to rectify their errors so far!