Money Manager API

https://github.com/halemiles/moneyman-api

moneyman-api demo screenshot

When are my bills due?

Over the years, all of my bills come out on different days and sometimes it can be hard to remember what comes out next. Some of these bills can be incredibly hard to change. So I over-engineered an API to track them all and let me know what is due by the next payday.

Following the rules

The great thing about most of my bills is that they are predictable. Direct debits in particular have certain rules they follow depending on when they are due. Weekends and bank holidays can affect when money comes out of your bank account.

The general rule of thumb with Direct Debits is if they are due on a weekend or bank holiday are then processed on the next day which is not a bank holiday or weekend. There may be other rules for other recurring bills.

Examples

  • Direct Debit is due on a Tuesday and it is not a bank holiday. It will then be processed on that day.
  • Direct Debit is due on a Saturday and there is no bank holiday Monday. It will be processed on Monday
  • Direct Debit is due on a bank holiday Monday. It will be processed on Tuesday unless that is also a bank holiday then it will be the Wednesday

Planning ahead

The API has the concept of a recurring transaction and a start date. Because we can guess roughly when bills are supposed to come out, we can plot out one or more years with records called “plan dates”. All we then need to do is ask out API to get any plan dates between a start and an end date.

Wheels within wheels

There are also calculations for when the next and previous paydays are. So we can just query an endpoint like api/dtp/current and it will automatically get plan dates between now and the next calculated pay date. Why not get the API to think for you, right?