Monday, April 6, 2020

Building the Best Loan Servicing System Because We Refuse to Settle for Anything Less


I had a customer ask me a lot of questions about making a report in a very specific way.  I explained that the information they were asking for isn’t always meaningful.  If a loan pays exactly on the amortization schedule, then perhaps what they wanted would make sense.  The moment the borrower missed a payment, or made several partial payments, the data they wanted would no longer look how they wanted it to look.  Furthermore, while Moneylender would be accurately presenting the information based on reality, that reality wouldn’t match the amortization schedule like this customer really wished it would.

I tried explaining this, and that having the requested data on a report wouldn’t really satisfy their desire to make a loan that pays irregularly look like it was perfectly following the amortization schedule. 

The customer asked me the same question again, almost word-for-word.  I was dumbfounded!  Did I fail to express my comprehension of the information they desired?  I deliberately restated what they wanted to see so they would know that I had understood their request fully.  They agreed that was what they were after.  I then described how situations where the borrower got off track with the payments – whether paying down the balance early, or paying late or in unusual amount – the information they wanted would look different than the cookie-cutter amortization they wanted to be presented. 

The person who handles the actual loan management understood my point and tried to show “the boss” actual places in their loans where the information wasn’t going to fit the cookie cutter.  After some explanation, and what seemed like the boss was getting it, we all breathed a sigh of relief.  Calculating the interest on a loan balance when payments arrive all over the place is a complex process.  It can be tough to wrap your head around the moving parts of a detailed scenario to see how the numbers will have to line up for a correct, enforceable, auditable, accurate calculation of interest.

I’ve worked directly with auditors, and with lenders undergoing an audit to make sure the calculations are being performed in compliance with the rules.  The calculations in Moneylender have been put through the rigors.  In fact, Moneylender is the loan servicing software used by more lenders than probably any other software out there.  Its low cost isn’t a symptom of low quality, it’s a symptom of a different business paradigm. 

Other businesses are selling their software to earn a living.  Whitman Technological built and sells Moneylender Professional as a mechanism to create and refine a sophisticated software system in a real-world environment.  The software itself is the goal.  Our goal is not the revenue.  The revenue is important to make sure the phone will always be answered, but one glance at our prices vs. our competitors will prove that the revenue is hardly a top priority.  We would much rather have Moneylender be used by a broad audience for the maximum exposure to what the world does with loans, than to focus only on maximizing profit from a handful of larger customers.

So, after the second response to the question, and some helpful pointers from his own staff, the boss proceeds to repeat the question exactly as he had twice before.  If I was dumbfounded before, I was getting annoyed now.  Was his misunderstanding a symptom of being unable to grasp the nuances of the situation?  Probably.  Was his determination to keep restating a question until he hears the answer he wants impressive?  I know of few children that would dare to be so blindly stubborn.  Biting my tongue as best I could, I provided a few examples of payments dates and amounts and how the information requested would appear under those scenarios, and thus would add very little meaningful information to the report.

Finally, the boss said he understood, and that he would try to figure out how to get what he wanted some other way.  With some relief, we ended our call.

That was Friday.  Then on Tuesday, I got an email from the boss.  He had printed one of Moneylender’s reports, and hand written a column showing the data that I had thrice explained might look great if a borrower never swayed from the amortization schedule, but would quickly become pointless if anything changed.  His email simply asked if it would be possible to add a column to a report to get the data he had hand-written.  The exact same question I answered three times on the phone.

Ok, you win.

I added a value to payment records that shows the oldest due date for which funds from the payment would apply.  Will this date look good?  If the borrower overpays, it’s all good.  If the borrower gets behind and gets caught up again?  Well, those dates are probably going to confuse someone wondering why a dates appear to be “missing”.  I preemptively wrote a post on the forum to address this issue, so when the inevitable question comes in, I can just point them there.

Then, from the same group of people, I got two more emails asking if Moneylender could make reports like ones in some screenshots.  The reports they wanted to match looked like a hodgepodge of unrelated pieces of data.  In fact, it looked like a poorly constructed spreadsheet with several errors in the formulas of the cells.  I pointed out a few places where a borrower’s over-payments were being “stolen” in the calculations.  Instead of paying down the balance, the report was essentially the principal, interest and balance columns from an amortization table, but dates and amounts of actual payments, sprinkled with several zero-dollar payment rows (yet still inexplicably paying interest and principal and paying down the balance).  The borrower had made a larger payment to pay down the balance, and the extra funds had absolutely no impact on the principal or balance.  The money just vanished.

The loan had subsequently gotten several months behind, and then the borrower made a big reinstatement payment.  The payment on this report was applied about half a year before it was received and only registered the normal interest, principal, and balance reduction from the amortization schedule.  There appeared to be no trace of the other five months’ worth of funds.  There were, however, several rows with $0 payments that seemed to indicate they were applying the overpayment from the large payment that was credited earlier although received much later.  The credit mechanism seemed to be the same one from which the earlier pay-down payment's extra funds vanished, and there didn't appear to be any mechanism to balance that information.  And above all, the borrower's performance on the loan had no impact on the interest or balance at all.

I told them that it would be impossible to make a report like that, because Moneylender can’t take funds from a payment and make them evaporate.  All funds end up on the loan somewhere.  If it isn’t paying escrow or fees or interest then it’s paying down the principal.  There’s no collecting payments and dropping them in a black hole in Moneylender.

In an effort to be helpful, I listed the columns they could put on a report to match the structure of the report, although the calculations would be radically correct.

Then I got an email from this customer, possibly by mistake, that those reports were actually from one of the most well established of my competitors.  I’ve talked with a couple people that have moved into Moneylender from their system over the years.  They cost more than 100x what Moneylender costs.

And their system doesn’t even calculate the interest correctly?!  Has anyone in their product ever undergone an audit or a foreclosure or a proof of claim in a bankruptcy?  Do their borrowers never look at the statements and wonder where their money went?

While I might be baffled that such a situation is reality, the proof is sitting right there in my inbox.  One of my biggest competitors has a system that is wildly error prone in their calculations.

I wrote Moneylender for fun at the begging.  Then I put it up for sale because I though other people might find it useful.  Then I wrote Moneylender for fun as a system that helped a lot of people.  The feedback, requests, and sales continue to come in and I kept using Moneylender as an opportunity to learn more and more about efficient data storage and retrieval, asynchronous process management, encryption, security and networked collaboration.  Opportunities to integrate with the world’s financial backbone, to implement third part specs across a ton of standards.  To create software with new UI development tools. 

And the cherry on top?  Developing Moneylender is the ultimate video game.  A problem so complex and multi-faceted that a full decade of study was necessary to understand the rules of loan computation, understand the practical application of lender laws, understand how real-world situations play out with lenders of all styles, and with borrowers of all styles.  And then to take all this information and engineer a solution, to pluck it from the ether and scribe it directly into reality for all to enjoy.

We build Moneylender because it’s awesome.  Our loan servicing software is the best because anything that could be improved is polished smooth, reworked, forged again... for fun.  When there’s a better solution, no matter the cost, we take the time we need to build it.  It doesn’t matter than Moneylender 2 is half a million lines of code, we can build it better.  I invested a decade to writing the entire mechanism again from the beginning, perfecting every single aspect that could be made better, even using a different programming language to rebuild all the functionality from the ground up.

Moneylender 3 was ten years of development.  Not because we had to.  Not because we needed to.  Not because Moneylender 2 didn’t work well.  We built it because we could make it better.  Because there existed a more robust, more automatic, more intuitive, more correct way to do it.  No other reason was necessary.

When you choose Moneylender Professional as your loan servicing software, you’re buying a license to a piece of art.  A piece of technology that represents the best imagined mechanism to automate any loan.  Technology so robust, that the calculators and accompanying tools are used for all kinds of unexpected purposes.  Savings accounts, managing rental properties, and leases all fit perfectly into Moneylender's accounting mechanics.  The flexible statement and report systems bend happily to these new purposes.

Are there lots of other programs out there for servicing loans?  Heck yes.  Have we spent much time looking at how they work or what they do?  Nope, only as far as we needed to extract data for customers that transitioned over to Moneylender.  The people using Moneylender, and it appears there are more of them than most of our competitors could claim, provide the insight that has fueled the architecture, construction and expansion of our loan servicing system.  Our to-do list has around 120 items on it, and always gets longer because more and more people are providing more and more great insights and requests.