Built an ad-hoc system using flask, Google Spreadsheets, and Twilio (where I work) that my wife and I have been using for 18 months now -- far longer than any other system has stuck.
- budget tab: tracks category + allocated budget for the month
- when we spend money, my wife and I text, eg, "13.31 restaurants lunch at chipotle" to a Twilio number. A flask app splits the body of the SMS expecting "X.XX category description", and uses the Google spreadsheets API to add the row to the expenses tab. (Yes, we manually enter every expense, either via SMS or via the spreadsheet. This was a habit we picked up the old YNAB. We could automate this to some extent, but the discipline of having to do something when we spend money has been beneficial).
- I get a confirmation text. My wife gets a text saying "Greg spent $13 on Chipotle. We have $132 left in the lunch category this month."
- Texting "report" to the number kicks back a text with each category and the amount remaining this month.
It's an imperfect system. Some small dollar stuff gets missed. But it's super flexible for reporting since its just a spreadsheet. Because I built it, I actually use it. The confirmation texts have instilled a bit of accountability between the two of us and also serve as a nice reminder during the day of what the other person is doing. ("Hey! Thanks for logging your lunch. How was it?")
Been meaning to write a blog post about it for a while. Will do so if there's interest.
Yes, you should be able to recreate the experience on any platform where you can deploy a chatbot (which really overstates the complexity of the logic that's happening here).
We define one word categories and their allocated budget in the "budget" tab, then the inbound text always takes the form of: "X.XX category as many words for description as you'd like."
As for doing this kind of thing with Twilio, here are the two building blocks you'd need:
The interface is anything that sends SMS (well or a google spreadsheet, which can be viewed on many devices), and all party members can get an alert on spending.
Affirmative. The text input is as low friction as possible, and a spreadsheet is as flexible as possible.
We also couldn't figure out the YNAB methodology. I know people swear by it, and we probably just didn't put in enough effort. But we attended a webinar, made it one month, then couldn't figure out how to duplicate our budget for month two. It was just different than how we are used to thinking about finances.
Also -- and this is probably the biggest thing -- I built it myself. For 99.999% of the population, YNAB is an objectively better product. But as a developer, I can't overstate the satisfaction that comes from my wife using something that I built multiple times a day.
- budget tab: tracks category + allocated budget for the month
- expenses tab: tracks date, amount, category, description
- when we spend money, my wife and I text, eg, "13.31 restaurants lunch at chipotle" to a Twilio number. A flask app splits the body of the SMS expecting "X.XX category description", and uses the Google spreadsheets API to add the row to the expenses tab. (Yes, we manually enter every expense, either via SMS or via the spreadsheet. This was a habit we picked up the old YNAB. We could automate this to some extent, but the discipline of having to do something when we spend money has been beneficial).
- I get a confirmation text. My wife gets a text saying "Greg spent $13 on Chipotle. We have $132 left in the lunch category this month."
- Texting "report" to the number kicks back a text with each category and the amount remaining this month.
It's an imperfect system. Some small dollar stuff gets missed. But it's super flexible for reporting since its just a spreadsheet. Because I built it, I actually use it. The confirmation texts have instilled a bit of accountability between the two of us and also serve as a nice reminder during the day of what the other person is doing. ("Hey! Thanks for logging your lunch. How was it?")
Been meaning to write a blog post about it for a while. Will do so if there's interest.