top of page
Search
  • Writer's pictureEd Scaife

Student Loan Modeller -The Tool

As mentioned in the previous post, the UK has an interesting system of financing university level education. Instead of being free at the point of use, individuals can -and very often do- take out large loans from the government in order to fund their education. Loan repayments and interest rates are both dependent on income post-graduation. Additionally, the loan has the its remaining balance written off if it is not fully repaid within 30 years of graduation.

This post will centre on the development of a tool for visualising student loans and applying it to help answer some questions about how to financially plan.

*As an aside: don't take any of this as financial advice, do your own thinking.



Excel-sior


The first job was to get an understanding of the structure of both loan growth and repayment. To this end, an Excel (well, LibreOffice) model was developed using the information available on the student finance website. This was useful to help concisely define all of the under the hood maths involved in loan development. The result is shown in figure 1.

Under this model, the user provides a list of per/annum earnings under the left most column and an initial value for balance and it fills in the rest. This model some insight into how the size of the outstanding balance changes over time for a given set of incomes; as well as the approximate change in a specific year*.

This model in my opinion had a number of drawbacks, primarily it is not very visual and it takes a lot of time and work to change the values for earnings that are being investigated. While I'm sure changes to make this better were workable, at this point I made an executive decision to switch to software that I am both more familiar with and that I know is extremely good at this sort of work, MATLAB.


*For the curious, m and c are the 'gradient' and 'y-intercept' of the linear function mapping values of interest rate between 2.6% and 5.6% onto earnings between £26575 and £47835 (see the student finance website for where these numbers come from).


Enter MATLAB


The first task after the platform switch was to port the existing functionality of the excel model into MATLAB. This was done very simply with the added benefit that the mathsy bits could be squirrelled away into functions: out of sight, out of mind.

Once I had validated that the matlab version gave the same results as the first model, I started looking into the new opportunities matlab could offer. I was curious about what the holistic view of interest vs payment looked like. To this end, I created the plot seen in figure 2.

In this plot, colour represents the net change per year in a student loan expressed against salary and current balance. Colour represents a value in £ where the darkest blue corresponds to the loan decreasing by 15k in a year and brightest yellow indicates the loan increasing in value by 10k in a year.

This lead to an interesting find. Highlighted in figure 3, there is a pronounced area where the loan grows very fast. This is at its peak at the point on the salary axis where percentage interest rate first hits 5.6% (£47835). While this is intuitive on reflection, generating a diagram definitely made this particular feature pop out.

Moving on, I began to think of different ways to feed the model with time series data, and present it in an effective way. One of the main problems with all the work to date has been the laboriousness of entering salary data per year. I began to draw out a concept for a user-facing application that allows gives users a few levers and a few outputs diagrams to help them easily interface with the math. Fortunately MATLAB has a system to allow this, AppDesigner. This lead to the development of the system that called SLAPP.


SLAPP


This was the second main matlab iteration, taking the form of an AppDesigner App. The interface developed is shown in figure 4. Full disclosure, I am not an interface designer and the actual appearance of the app can be only described as something between ugly and utilitarian.

Going Counterclockwise from the ten o'clock position, we start with the Balance panel. This...err... lets you set an initial loan balance. The Earnings Projector panel is more complicated. It consists of a table of 30 years worth of salary data which can be populated by either manually modifying values in the earnings column or by supplying an initial salary and % wage growth and pressing the 'add button'. This section also allows you to define an additional amount of money that will be applied directly to the loan on a monthly basis. Once the earnings list is populated, the simulate button runs the model with the data supplied. Finally, we have the Visualisation panel which contains room for three graphs. These graphs will be described by examples.



Figure 5 shows these examples. The first graph in each case is the colour chart that we have seen before with an added feature. The red line indicates a tracker of balance vs salary over time. Therefore, one end indicates the salary and balance at the beginning of repayment and the other at the end of the 30 year payment period. This line is equal parts interesting and distressing, often laying bare the fact that you may only ever pay off the interest on the loan. The second curve tracks the overall balance of the loan over time: can you begin to invert the curve? The third tracks the projected total repayment. This one also has some shocking truths in that the total that ends up being paid is way higher than the initial balance in a classic example of compound interest.


Conclusion

I reiterate what was stated earlier. None of this should be taken as financial advice and was merely done out of personal curiosity.

This model has a number of limitations and blind spots that limit its actual utility in answering questions. Primarily, it is dependent almost entirely on made up hand-wavey projections of income over a long period of time. However, It also is ignorant -as are we all- of any political considerations. Student Loans have been a contentious issue for the UK government since their fairly recent inception. In fact, there is even a slim chance that they could simply be done away with entirely, current holders having their outstanding balances wiped. In this case, it would be annoying to have paid of any of the loan.

In terms of the stated aims, this project has managed to create something to help visualise the nature of student loans, however I would be hesitant to say that its especially useful in answering any important questions to do with handling repayment.

Personally, I learnt a fair bit from this project. On the one hand it forced me to think about how thist student loan thing works on a deeper level; and on the other it let me get a bit more practise using matlab towards a small-scale project.


Future Work?


I don't think I will continue this project any further, but if I were to there are a couple of features that I would consider adding:

  1. Some output that indicates 'reclaimed earnings' i.e. the money that you save after repayment has finished. This could be interesting as the 9% forced repayment starts to get quite large as a person develops in their career and earns more money. This coincides with the loan beginning to get close to being closed out. It could potentially be a lot of money that a person could save by, for instance, front loading payments early in their career while interest is low.

  2. Creating a better interface. There are always improvements that can be made in this regard.

  3. A way to simultaneously display and compare the effects of multiple strategies. For instance, front loading vs paying minimum vs reducing amount that you pay.

  4. Also wrt pensions, some consideration of paying off student loan vs chucking money in savings.

  5. Moving to a more accessible platform/deployment. I don't really see or want to pursue any sort of a business case for this but it might be good to be able to more easily share it with friends. Maybe it is easy to compile AppDesigner projects into standalone applications but a cursory glance says no.


9 views0 comments

Recent Posts

See All

Comments


bottom of page