I tried to write a ledger properly several times. Long ago, I used Naver’s ledger, and recently, I vaguely checked Toss’s spending analysis. There was a time I organized it directly in Excel. Whichever method I used, I eventually hit the same wall: it requires consistent time every month to keep running.
Even with apps, uncategorized items piled up. Categorizing them one by one easily took over 30 minutes. Direct organization in Excel meant starting by fetching transaction histories from each financial institution. If I pushed it back because I was busy one month, or skipped it because I was lazy another, suddenly there was a hole in the data.
You can do nothing with data full of holes. That’s when I started seriously contemplating spending tracker automation.
💡 Plan B Insight: The Core of This Post
Spending tracker automation is not a matter of convenience. It’s about building a structure where data accumulates without draining your willpower. If Part 1 discussed the necessity of grasping your spending, this part is the journey of struggling to build the system that made that grasp possible.
1. “Just Use an App” — Why That Wasn’t Enough for Spending Tracker Automation
Bank Salad, Toss, Kakao Pay. They are definitely convenient. If you use them, they work to an extent.
But limitations started to show. Categorization required too much manual effort. While some things were categorized automatically, there were many errors, and when I tried to fix them according to my own standards, the app structure itself wouldn’t allow it. Escaping the app’s predefined category framework was difficult, sometimes impossible. It’s my spending data, yet managing and categorizing it the way I wanted was much harder than expected.
The more fundamental problem was that the data was not mine. If the service changes or I switch accounts, everything disappears. Analyzing a 3-year trend based on my criteria, or running FIRE simulations, wasn’t designed into them in the first place.
Historical data was also an issue. Checking old transactions within the app is possible. But owning, processing, and analyzing that data was a completely different story. The downloadable range was limited, and to make 5 years of data truly mine, I had to call each credit card company or send a request via email. I actually went through that painful process. I sent individual requests to major credit card companies and managed to get the data after several days.
📌 Failing to maintain a ledger is not a willpower problem
Just pushing it back by one month turns into “I’ll wing it from memory this month,” which leads to two or three months, creating holes in your data. Data with holes cannot be trusted. Failing at the ledger is a structural problem.
2. The Standard of Spending Tracker Automation: “It Must Accumulate Even If I Do Nothing”
Initially, I looked for a “slightly more convenient method.” That involved downloading the history directly from each financial site every month and gathering it in one place. Financial sites block automatic access for security reasons, so it had to be done manually anyway. That eventually failed too. “I only have to do it once a month” was harder than I thought. Forgetting one month, delaying another because I was busy—eventually, holes formed just the same.
I changed the standard itself. The data must accumulate even if I do nothing. If a transaction is recorded automatically the moment it happens, there’s no room for my willpower to intervene.
This was the starting point of all subsequent designs for my spending tracker automation.
3. Pipeline 1: Card Payment → To the Ledger in 2 Seconds
When you pay with a card, a text message arrives within seconds. What if that text is automatically recorded in the ledger? There’s nothing for me to do. I just pay.
The design itself was simple. The problem was the process of making it work.
Not being a developer, the creation process wasn’t easy. From understanding how the data should flow, to setting up Tasker to detect texts on my phone — every step involved concepts I was encountering for the first time. Sometimes I went in the wrong direction, built a lot, and had to scrap it all; other days, I wandered endlessly because I missed something but didn’t know where the problem lay. Days followed where I held onto it until 2 AM before giving up and going to sleep.
Still, the first time it worked from end to end — I swiped my card, checked my phone’s lock screen, and it was already recorded in the ledger. The thrill of that moment helped me endure all subsequent roadblocks.
4. Pipeline 2: Double-Checking with Email Statements
Card texts alone leave things out. Automatic transfers, some overseas payments, and certain prepaid methods don’t send texts at all or use a different format.
I built a second pipeline. When a credit card statement email arrives, it automatically reads it and compares it with the records captured via text. It finds and supplements the missing items.
Looking purely at the structure, it’s no different from the system used by a corporate accounting team. The only difference is that this is for my personal spending.
5. Pipeline 3: Done with a Single Receipt Photo
The third pipeline was built last, but it has become the one I use the most.
The reason I made a receipt bot wasn’t to record cash. It started from three more specific needs.
First, payments not caught by card texts. Prepaid payment methods like Seoul Pay or local currency don’t send card texts. If there are several such payments a month, holes appear in the data.
Second, price history per item. A card text only shows “Supermarket Payment 87,430 KRW”. It doesn’t tell what I bought and for how much. The question that arises every time I grocery shop — “How much was this item last time?” — to resolve this, I had to save receipts at the item level.
Third, category subdivision. The merchant name on the statement is often too vague for classification. “Starfield” could be dining, shopping, or child education depending on what I did that day. Since the statement only shows the merchant name, categorization is impossible without context.
The actual usage is simple. If I take a picture of a receipt and send it via Telegram, the AI reads it and saves it to my ledger.

INSIGHT What the Receipt Bot Taught Me
The first time “Hyundai Mortor Studio 3,600 KRW → Cafe/Snack” was automatically recorded in the ledger, it felt like my spending data truly became mine. It wasn’t the app arbitrarily classifying things, but a system I built based on my own standards accumulating my data.
6. Auto-Categorization: Merchant Names Become Categories
Building the system and being able to use it were different things. Even after the pipeline was complete, data started piling up as “Uncategorized” the moment it arrived. This was because nothing was registered yet to determine which category a merchant name belonged to.
The real manual labor started here. I opened the past 5 years of history received from the card companies one by one and manually categorized them. Starbucks is Cafe/Snack, E-mart is Convenience/Mart, Hyundai Department Store is Shopping. Even for the same merchant, if the category differed depending on the situation, I made the judgment and entered it manually. It was a process of refining hundreds of merchant names one by one according to my standards. It was also the process of structuring my spending data to truly make it mine.
Once the baseline was set, it was different from then on. Most newly arriving data was automatically categorized. The need for my intervention decreased over time.
For data up to May, I manually processed and pushed the CSV received from the card companies. That was the manual labor I mentioned earlier. Filling in past data ultimately required a human touch.
From June onwards, it’s different. When a card payment happens, a text arrives; when a statement email arrives, it’s cross-checked; when I snap and send a receipt, even the items are recorded. For the first time, a spending tracker automation structure where data accumulates without me caring has actually started running.
The next part is the data accumulated up to that point — the actual spending records for the 5 months from January to May.
⚠️ This post shares a personal experience with a spending management system and does not recommend specific services or tools. The suitable method may differ depending on your personal environment and situation.
Series — Designing the Flow of Money
Part 1
Why Receiving 4.5M KRW a Month in Dividends Still Makes FIRE Scary
Part 2 · Current Post
How a Single Receipt Automatically Becomes a Ledger
Part 3
May Ledger Revealed: I Spent 8.97M KRW
Part 4
Where Does My FIRE Journey Stand Right Now?