As I am sure most of you guys are aware, interest rates are quite low, and for the savvy investor looking to generate a decent return, the options are pretty limited. However, one investing option which is generating a lot of interest lately is Lending Club (pun not intended just enjoyed).
Lending Club is basically a way to crowd source consumer lending which allows peer-to-peer lending. So you can either be the borrower or the lender and in theory you can get the low interest rates or the higher returns than through other mediums. Since Lending Club generously publishes their aggregated lending data, anyone is able to look at it and see if their claims add up. And that is exactly what I did.
What I found was that for the most part all the numbers that they post on their site are exactly as expected, with one exception; there is a sizeable amount of loans which get paid off early. This is not something I expected and could lead to actual returns being smaller than expected at a similar default rate.
This would not be a Fix It blog post without talking about how I got there, and as with most things in life, the journey is more important than the destination. So my tools for this endeavor were my now crush Python with its snazzy friends iPython, Pandas and the newcomer Flask, which allows me to make some pretty pictures, using D3.js an exceptional data visualization solution written in Javascript.
Just a quick explanation of the what and the why. iPython is a must have for interactive programming and allows you to really take advantage of the library documentations. Pandas is a relatively new package which allows (in conjunction with iPython) for some pretty snazzy data extraction, transformation and loading (ETL). It worth saying that previously Python programmers would have to use R or SAS or something to accomplish this, but with Pandas you can stay in your cushy Python environment while doing data exploration, which to me is a big deal, sorry R… Next up is Flask, now Flask is a light weight (less files, less lines of code) microframework which allows you to build webapps in Python. If you are wondering why I didn’t use Django instead, well Django is heavy. Finally this brings me to D3, this is a wonderful Javascript library which allows for very aesthetic and flexible data visualizations, with animation, interactivity, and just overall wow factor. Don’t worry I have examples below.
My approach to data exploration is to try to find the story which that data is telling. This is important because data analysis is complicated business with endless chances to make mistakes, so if you go into a project looking for a specific result it only takes a little massaging to find it. (Obligatory mention of the immortal quote by Mark Twain) Fun fact: the prestigious world of academic journals and publication is stuffed with this kind of bias, I believe the most common is suggesting your treatment forces rejection of a null hypotheses which isn’t actually possible. (A fictional example would be publishing a paper on how holding a glow stick while roller-skating down Fifth Avenue prevents tiger attacks with the null hypothesis being roller-skating down Fifth Avenue leaves you at risk of a tiger attack.)
Digressions aside, on this analysis the first thing I wanted to identify was how good a job Lending Club was doing on identifying loans which will default based on their Credit Grade.
See example in its own tab or window
As you can see above A - D are pretty rank order but once you get past that there is a lot of variability, this is of course to be expected and will be largely compensated for by the higher APR applied to these riskier loans.
It is worth noting that the loans which I was looking at were only closed loans. Given that only a small percentage of Lending Club’s loans have come due, (loan terms run 3-5 years company has been around 5 years…), and any loans that close early will be either defaults or early payoff loans it is difficult to make many insights from this data alone.
Just for good measure I added full payment and early payment to the above chart to get a sense of how the trend across credit grades.
See example in its own tab or window
You can more clearly see the effect I was talking about above with the fact that few of the closed loans are full term and thus skewing the data. Early payoff customers can be very problematic from an investing standpoint, while they do repay all of the principle they only pay a fraction of the interest. As an investor one would hope that full pays would be consistent while defaults and early payoffs had the inverse relationship. However, such is not the case with a customer's likelihood to pay off early virtually identical throughout all credit grades.
Again because of these are only closed loans you cannot get the full story, so I decided to dust off some of the higher functionality of D3 to get a better picture.
See example in its own tab or window
Pay attention to this graph as there is a lot going on. First thing to note is this is a compound graph, if you click it with your mouse and click the left and right keys you can toggle between the two different views of the data.
In both cases it shows the count of all loans - open and closed - grouped by age with the issued date on the bottom axis. What is a little different about this bar chart is that the groups are overlaid so the darker the color the more categories of loans that represents, blue being positive and pink not so much.
What are these two views? The first chart is a look at the number of loans by status as defined by Lending Club. Looking at this the number of delinquent loans is pretty manageable. In the second I focus on pay type. This chart tells a different story then the first which is while delinquencies are admittedly quite minor after a year or two borrowers start paying off early. This can be seen clearly in the number of older closed loans which are early pay.
Now I suppose you are asking yourself, is this even something I should be concerned about? And to tell you the truth it depends. The effect of early payoffs is it slowly erodes the number of full paying customers which could lead to lower returns then they are advertising. However, Lending Club is a pretty innovative company and I am sure this is not something they are unaware of.
As promised nothing too ground breaking, just a couple surprises from the Lending Club analysis. However from my end it was a tremendous learning experience, and quite frankly a lot of fun, which is all I could ask for. Also, here is the full site for the curious ), Cheers!