How I Replaced Excel and Notion with a Finance Tracker I Built in Claude

Why I stopped using Excel and Notion

I now track my bank accounts, credit cards and daily spending in an artifact app I built with one prompt in Claude on a free tier, and I’m not going back.

For a long time my finances lived in two places. Excel held the numbers, and a Notion net worth template made them look nice. Both depended on me typing every transaction by hand from my statements, and that’s exactly the step I kept putting off.

What I wanted was simple: drop in a statement, check what it found, and see my net worth update. So I described that app to Claude in plain English, and it built it.

What the app does

It’s a phone-friendly tracker that runs inside Claude as an artifact. There’s nothing to install and nothing to host. You also own your data: it lives in your own Claude account, not with a budgeting app that links to your bank, shows you ads, or tracks your spending to sell you things. You can export all of it anytime.

  • Statement import: pick a bank or credit card PDF, enter its password if it has one, and Claude pulls out every transaction for you to review before saving.
  • Quick expenses: type “2000 dinner” or “15 usd netflix” and it logs the expense for today with a guessed category.
  • Two currencies, never mixed: PHP and USD totals are always shown separately and never converted.
  • Account history: every bank and card has its own page with imported transactions, expenses, and balance updates, plus a running balance.
  • Balance sync: importing a newer statement updates the account balance and the card’s due date for you.
  • Dashboard: net worth per currency, spending by category, a 12-month spending chart, and a “Due soon” panel for cards due within 7 days.
  • Backups: export and import your data as JSON, so you always have a copy.
A smartphone screen displaying a financial overview with details on net worth in PHP and USD, assets, liabilities, and spending categories for October.
Screenshots use sample data, not my real accounts.

How it works

Flowchart illustrating the steps for reviewing financial statements before reaching a dashboard, including PDF statement handling, transaction extraction, account saving, and user review of data.

A statement goes from PDF to text in your browser, then Claude pulls out the transactions. Nothing is saved until you’ve reviewed it. Cash expenses you type in skip straight to the account.

It works on free Claude, with real statements

You don’t need a paid plan. The prompt works on the free version of Claude, so anyone with a Claude account can build their own copy.

I tested it with my actual bank and credit card PDF statements, including the password-protected ones banks usually send. It read them, pulled out the transactions, and showed them for me to check before anything was saved. Scanned statements with no selectable text also work, because the app falls back to reading the page image.

Screenshot of a mobile banking app review import screen showing a list of transactions, including food deliveries, bills, and payments with respective amounts and dates.

Your statement password is used only to open the file. It’s never stored or sent anywhere.

Screenshot of a mobile banking app showing the Rewards Visa account. Current balance is ₱24,860.75, which is 31% of the ₱80,000 limit. Several transaction entries are displayed, including 'Grab Food', 'Meralco Online', and 'Coffee with team', along with dates and amounts.
Screenshots use sample data, not my real accounts.

How to build your own

  1. Open claude.ai or the Claude app and start a new chat.
  2. Copy the full prompt below and paste it in.
  3. Wait for Claude to build the artifact, then open it.
  4. Add your first bank account or credit card with its current balance.
  5. Import a PDF statement, review the transactions, and save.
  6. Use the quick-add box for cash expenses as they happen.

If you’d rather use different currencies, change them in the app’s Settings, or edit the CURRENCIES part of the prompt before you send it.

The full prompt

Copy everything in the box below.

Create an interactive artifact: a personal finance tracker app I can
use right here in Claude. Build it as a single React artifact, ready
to use with no setup.
SAVING MY DATA
- Use the artifact's persistent storage so my data is still there
when I come back. If persistent storage isn't available, keep data
in memory and make "Export backup" (copyable JSON) and
"Import backup" (paste JSON) very visible so I never lose anything.
CURRENCIES
- Main currency PHP, second currency USD (editable in Settings).
- Never convert or combine them. Show every total per currency.
ACCOUNTS
- Add bank accounts (assets) and credit cards (liabilities):
name, currency, current balance.
- Credit cards also have credit limit and due day of the month.
- I can update a balance anytime; keep a dated history of updates.
- Tapping an account opens its detail page showing ALL its history,
newest first: imported statement transactions, expenses charged to
it, manual balance updates, and statement imports (with statement
date and balance). Filter by month and type, show a running
balance, and let me edit or delete any record.
- Every record is saved against its account, not only in the
expenses list.
EXPENSES
- Quick-add box at the top: I type "2000 dinner" or "15 usd netflix"
and it saves an expense for today (PHP unless I say usd).
- Auto-guess a category (food, transport, bills, shopping,
subscriptions, other). I can change it.
- List with filters by month, category, and account (cash or a card).
STATEMENT IMPORT
- The import form has, in this order: the PDF file picker, an
optional "PDF password" field (masked, with a show/hide toggle),
the account dropdown, then the "Import" button.
- Read the PDF in the browser with pdf.js (from cdnjs.cloudflare.com)
and extract the text from every page, using the password if one
was entered.
- If the file is locked and the password is blank or wrong, show an
error right under the password field and keep the file selected
so I can retry. Use the password only to open the file, then clear
the field. Never save or send the password.
- If a page has no readable text (scanned image), render it with
pdf.js and read it with Tesseract.js (from cdnjs.cloudflare.com),
showing a progress bar.
- Send the extracted text to Claude to pull out each transaction
(date, description, amount, currency), plus the statement date,
ending balance and due date if they appear. Process long
statements in chunks so nothing gets cut off.
- Show a review list so I can fix, skip, or delete rows, with likely
duplicates flagged, before saving. Save every confirmed row to the
selected account's history.
- On the review screen, add a checkbox "Update account balance to
match this statement" (checked by default). When checked, set the
account's balance to the statement's ending balance, log it as a
balance correction in the account history (old balance, new
balance, statement date), and update the due date. Only apply this
if the statement is newer than the latest one already imported for
that account; otherwise warn me and leave it unchecked.
- Also keep a "Paste statement" box for statements I copy as text,
which goes through the same Claude extraction and review.
DASHBOARD
- Net worth per currency = bank balances minus card balances.
- Cards: assets, liabilities, net worth, spending this month.
- Charts: net worth over time, spending by category this month,
monthly spending for the last 12 months.
- "Due soon" panel: cards due in the next 7 days, highlighted.
DESIGN
- Clean and modern, made for a phone screen first, big tap targets,
numbers with thousands separators, dark mode support.
- Start empty with a short friendly "Add your first account" guide.
Build the complete, working app. No placeholders.

Tips before you start

  • Always check the review list. Claude is good at reading statements, but take a few seconds to confirm amounts and dates before you save.
  • Export a backup now and then. It takes one tap and keeps a copy of your data outside the app.

Make it yours

Once the app is built, you can keep shaping it just by chatting with Claude in the same conversation. Tell it what you want changed, and it updates the app for you.

Treat the prompt as a starting point, not a rulebook. Track your expenses your own way, at your own pace. A few things you could ask for:

  • “Add a chart of my savings growth over the year.”
  • “Let me set a monthly budget per category and warn me when I’m close.”
  • “Add savings goals, like an emergency fund, with a progress bar.”
  • “Add a category for pet expenses.”

That’s the whole setup. One prompt replaced a spreadsheet, a Notion template, and a lot of manual typing. If you try it, I’d love to hear how it works with your banks.

What’s next: my ETF and stock tracker

I also track my ETFs and stocks with Claude. If you’d like to see how I set that up, leave a comment below and I’ll write it up next.

Leave a Reply

I won’t send you spam. Unsubscribe at any time.

Discover more from Jeffrey Carandang

Subscribe now to keep reading and get access to the full archive.

Continue reading