Tools I built for myself
Two systems I live on every day: the household budget and the car log.
I hold my own data to the same rule I propose to organizations: code decides, and the model helps without ever inventing a number.
MB
Every expense is booked automatically, and I approve anything uncertain.
I built it to know where every riyal goes without manual entry. It brings bank text messages, bank emails and statements into one ledger.
- 1
Captures every bank text message and saves it as is before any processing, so nothing is lost if a later step fails. Bank emails land in the same place without duplicates.
- 2
Reads the message with fixed rules: amount, account, date and merchant. AI doesn't decide here: it can stop a booking when in doubt, but it can't change one.
- 3
Anything uncertain reaches me on Telegram with buttons, so I book it or skip it with one tap, and any edit can be undone.
- 4
I upload the statement, it reconciles it line by line against the entries, then I sign off the month and it locks.
- 5
Every code change passes a 9-stage gate on a full staging copy before production.
How they connect
Two separate systems, and a car expense is entered only once: from the bank message to the car log in one tap.
The same bank reference links the entry in both systems, so a resend never creates a duplicate.
Tirs
My car log: fuel, service and documents, fed by the budget automatically.
I wanted a complete record for each car without entering anything twice. Fuel, car washes and service that MB books reach Tirs in one tap.
- 1
When MB books a car expense, my Telegram assistant asks: which car? One tap logs it, and it asks for the odometer reading if it's fuel.
- 2
Reads the bill with PaddleOCR-VL, Qwen 3.8 27B organizes it into line items, then it drops any amount not printed on the bill.
- 3
Alerts me 30 days, 7 days and one day before documents expire, and predicts service dates from the distance I drive each day.
- 4
Rejects an implausible odometer reading, like an extra digit that multiplies the distance tenfold. I added this after a real mistake.