Debated posting this, but so many ramifications I felt it best to do so. Original post in my forum. Reported here for broad applicability. The question has been why my systems (and I imagine those of many) have been less capable of doing business since the latest LC change. I detail the change and consequences below.
The issue is that P2P-Picks relies on LC providing its loan application data via the CSV or API, and that these are no longer the most timely way to get loan application data. It is affecting me personally and all of my clients, too, and there isn't much I can do about it except complain to LC, which I have done.
It used to be that when you clicked the link to get the CSV, LC would instruct its systems to generate a fresh CSV based on the loan applications that were available at that very moment. This, I imagine, was expensive for them when thousands of people were clicking at the magic hours. Hence why we saw rate limiters in place last November. In the last few days, they moved to a model of linking to a static CSV available for download that is updated for freshness just once every minute. While this relieves the stress off their servers, it has had some unintended (or perhaps intended) consequences.
Here is the rub. LC releases the loans onto their platform around 30-40 second after the hour. The loans are available to website users a full 20-30 seconds before they ever even appear in the CSV. The API has always been out of date a number of seconds, just like the CSV is now. Now, the absolute fastest way to get loan application data is to use the website interactively via their filter processes (or to screen scrape for automation). This puts all of us who want to do active loan selection in a position of either sitting at our terminals every release twitching like some kid playing a video game or breaking the rules (even more than we already have to do) and resorting to screen scraping loan data off the website in order to automate things. Of course, the web pages don't even have a majority of the credit variables anyway, so this may be of limited value.
I have witnessed this occur on both the fractional and whole loan side. Reliably, at 30 after the hour, new loans will appear. Within a few seconds, the "good stuff" (to the extent you wish to believe in such a concept) is either purchased outright (in the whole loan market) or is mostly already full (on the fractional side) by the time the other two loan data retrieval methods are updated. Here is an example from 6pm a couple nights ago to illustrate:
5:55:00 - Initial count: 31 whole loans on platform
6:00:05 - Unused whole loans expire (12 hour rule): 19 whole loans on the platform
6:00:30 - 170 new whole loans added to platform (as viewed from the webpage) - total inventory = 189
6:00:45 - 24 whole loans disappear off the platform - total inventory = 165
6:01:00 - browseNotes.csv and LoansBrowseLoans update with just 165 whole loans in them
Why would LC do this? I don't want to go into pet theories, even though I have some, before allowing LC a chance to respond. And to be clear LC is absolutely still providing an even playing field. Same rules for everyone. It's just that this change has benefitted a certain type of user (the twitching kid or the scraper).
My recommendation is to synch the timing of all forms of loan application data, website, CSV, and API. If the Royal Bank of Canada wrote Thor to synchronize orders across multiple stock exchanges, I'm pretty sure this is a feasible request.