Track income, expenses, investments, and transfers across multiple accounts. Use Telegram or the web app. Your data stays in sync.
New here? Follow this path to get started fast.
How to Access: open the Telegram bot, log in to the web app, connect your Telegram.
Setting Up Accounts: create an account for every real account: bank accounts, credit cards, investments.
Recording Expenses: snap a receipt, chat the bot, or use the form.
Recording Income: record salary, freelance payments, interest.
Adjustments: reconcile cash accounts to your bank statement; update investment market values to current prices.
Reports: view your income statement, balance sheet, and trend charts.
Tool Pages: budgets, investments, and savings goals, each with its own guide.
Finance Tracker runs as a Telegram bot and a web app. Both share the same data in real time.
/start). The bot's welcome message shows your Telegram ID on a ๐ Your Telegram ID line; tap it to copy./start in the bot to verify it works. Type /help for all commands.Open the web app URL in any browser. Log in with your username or Telegram ID plus your password.
| Tab | Purpose |
|---|---|
| Transactions | Record transactions via Form, Chat, Photo, or Bulk |
| Report | Income statement, balance sheet, and month-by-month trend charts |
| History | Browse, filter, and undo past transactions |
| Manage | Accounts, categories, side jobs, goals, recurring rules, FX rates, and recalculating balances |
Prefer chatting in Claude, ChatGPT, or Grok? Connect them to your finance data and ask questions or record transactions straight from your own AI app.
Grab your Server URL from User Settings โ AI Access (MCP), paste it into your AI app, and sign in with your Finance Tracker account. No token or Client ID to copy, leave those fields blank. Access stays limited to your family’s data.
An account is any financial account: bank account, credit card, investment portfolio, or wallet. Every transaction moves money between accounts (or between an account and an external party like a merchant or employer).
| Type | Examples | Behaviour |
|---|---|---|
| Cash | Bank account, e-wallet, physical cash | Balance up on income, down on expense |
| Investment | Stocks, ETF, crypto, mutual fund | Tracks cost basis and market value separately |
| Investment + Lock | Superannuation, home equity | An Investment account with the Lock toggle on: same behaviour, but flagged non-liquid and kept out of Net Worth |
| Credit | Credit card, credit line | Balance increases when you spend (liability) |
| Payable | Bills owed | Balance increases when you owe more |
| Receivable | Invoices out, loans to others | Balance increases when others owe you more |
| Action | What Moves | Shortcuts |
|---|---|---|
| Expense | Money out of an account to an external party | E, EX |
| Income | Money into an account from an external party | I, IC |
| Transfer | Money between two accounts | T, TR |
| Invest | Cash account โ Investment account | V, IV |
| Withdraw | Investment account โ Cash account | W, WI |
| Adjust | Set an account to a target balance | A, AD |
Every user belongs to a family. A family is a shared workspace. Members can see and use each other's accounts, record transactions against any account in the family, and view the same reports together.
| Rule | Detail |
|---|---|
| Shared accounts | All accounts within a family are visible and usable by every member. Alex can record an expense from his partner's account, and it appears in both their reports. |
| Shared categories | Categories are defined at the family level. Members share the same category list; adding or editing a category applies to everyone in the family. |
| Full isolation | Families are completely isolated from each other. Users outside your family cannot see, edit, or delete any of your data: accounts, transactions, categories, or reports. |
Create an account for each real-world account before recording transactions. The account starts at zero until you set an opening balance.
/addaccount Name: NAB Savings Type: cash Currency: AUD Owner*: alex Initial Balance*: 1500
โ Added: NAB Savings (cash, AUD, alex) Opening balance: AUD 1,500.00
โ Added: NAB Savings (cash, AUD, alex)
/editaccount on Telegram, or Manage โ Accounts โ the pencil on the row, which reopens the same form prefilled./deleteaccount NAB Savings
Reduces the source account balance. Records what you paid and to whom. Net worth decreases.
When the bot isn't 100% certain, it shows what it understood and asks for confirmation before saving.
๐ I think I understood: Expense AUD 60.00 From: NAB Savings To: Woolworths Category: ๐ Groceries Is this correct? Reply Y (Yes) to confirm or N (No) to cancel.
โ Expense AUD 60.00 from NAB Savings โ Woolworths ๐ Groceries ๐๏ธ 17/07/2026 09:14 AM ๐ - Trx ID: A1B2C3
/transact Action: expense Source: NAB Savings Destination: Woolworths Currency: AUD Amount: 60.00 Category: Groceries
โ Expense AUD 60.00 from NAB Savings โ Woolworths ๐ Groceries ๐๏ธ 17/07/2026 09:25 AM ๐ - Trx ID: A1B2E5
Send a receipt photo. Add a caption with your account name so the bot knows where to debit. The bot executes immediately when it can read the receipt and identify the account.
โ Expense AUD 60.00 from NAB Savings โ Woolworths ๐ Groceries ๐๏ธ 17/07/2026 09:20 AM ๐ - Trx ID: A1B2D4
Hold the microphone button and speak instead of typing. The bot transcribes your speech, echoes back ๐๏ธ Heard: โฆ so you can verify, then runs it through the same pipeline as a typed message. All transaction types work.
๐๏ธ Heard: spent 45 dollars on groceries from NAB โ Expense AUD 45.00 from NAB Savings โ Grocery Store ๐ Groceries ๐๏ธ 17/07/2026 10:15 AM ๐ - Trx ID: V1W2X3
Spent $60 at Woolworths from NAB Savings, GroceriesExpense $80 groceries from NAB on 2025-05-01Expense $100 internet from NAB on 2025-07-25, executed automatically on that date.
Increases the destination account balance. Records who paid you. Net worth increases.
โ Income AUD 5,000.00 from Employer โ NAB Savings ๐ผ Salary ๐๏ธ 17/07/2026 08:01 AM ๐ - Trx ID: B3C4D5
/transact Action: income Source: Employer Pty Ltd Destination: NAB Savings Currency: AUD Amount: 5000 Category: Salary
โ Income AUD 5,000.00 from Employer Pty Ltd โ NAB Savings ๐ผ Salary ๐๏ธ 17/07/2026 08:00 AM ๐ - Trx ID: B3C4D5
IncomeEmployer Pty Ltd)Salary $5,000 to NAB from EmployerGot $500 freelance payment to NAB SavingsInterest $20 into NAB, Interest incomeImport many transactions at once from a CSV, Excel, or PDF bank export. The AI maps each row to your accounts and categories. Also available on Telegram: upload the document to the bot. On Telegram it always uses aggregate mode, collapsing the file into one summarised income entry and one expense entry, and saves them straight away without a review screen.
| Option | When to use |
|---|---|
| Template | Download the CSV template, fill in your transactions, upload. No AI parsing; fastest and most reliable for manual entry. |
| AI parse | Upload a raw bank statement (any format). AI reads the columns automatically. Review the result before saving. |
| Aggregate | Collapses all rows into a single income total and a single expense total for the period. Good for monthly summaries. |
| Process directly | Saves transactions immediately without a review screen. Use only when you trust the source file. |
Moves money between two of your own accounts. Total net worth stays the same; money just changes location.
โ Transfer AUD 1,000.00 from NAB Savings โ Amex ๐ Internal Transfer ๐๏ธ 17/07/2026 11:30 AM ๐ - Trx ID: C5D6E7
โ Transfer AUD 500.00 from NAB Savings โ USD Account ๐ Internal Transfer ๐๏ธ 17/07/2026 11:31 AM ๐ - Trx ID: C5D6E8
TransferCash account โ Investment account. Adds to cost basis. Net worth unchanged; liquid cash decreases.
โ Invest AUD 5,000.00 from NAB Savings โ Vanguard ETF ๐ Investment ๐๏ธ 17/07/2026 02:00 PM ๐ - Trx ID: D7E8F9
Invest, Source = cash account, Destination = investment accountInvestment account โ Cash account. Realises profit/loss based on the current market value.
โ Withdraw AUD 6,000.00 from Vanguard ETF โ NAB Savings ๐ Investment ๐๏ธ 17/07/2026 02:05 PM ๐ - Trx ID: E9F0G1
Withdraw, Source = investment account, Destination = cash accountSets an account to a specific target balance. The system calculates the difference and records the correction. No counterpart account needed.
| Account Type | What Changes |
|---|---|
| Investment | Updates market value only (not cost basis). The gap between market value and cost basis becomes Unrealised P/L in reports. Use this to mark your portfolio to current price. |
| Cash / Credit / Other | Directly sets the balance. Use this to reconcile against your bank statement. |
โ Adjust AUD 6,000.00 โ Vanguard ETF Adj: +AUD 1,000.00 ๐ Market Revaluation ๐๏ธ 17/07/2026 04:00 PM ๐ - Trx ID: F1G2H3
My NAB account balance is $8,000, adjust itUpdate Vanguard ETF market value to $6,000AdjustAn adjustment is the gap between what your books said and what the real balance is. The Income Statement reports that gap under Other โ Adjustments. The sign tells you which way your tracking drifted.
| Adjustment | What It Means |
|---|---|
| Positive (+) | An untracked inflow: money that lifted your net worth but was never logged, like income you missed. On a cash / asset account this means the real balance was higher than your books. On a liability (credit card, payable) it is reversed: you owe less than your books said, from a repayment you forgot to log or an overstated debt. |
| Negative (-) | An untracked outflow: money that lowered your net worth but was never logged, such as a missed expense, a bank fee, cash you spent and forgot. On a cash / asset account the real balance was lower than your books. On a liability it is reversed: you owe more than your books said, from a card purchase you never recorded. |
| Zero (0) | Books already matched reality, so no correction was needed. This is the goal: accounting integrity preserved. Every real movement was logged as a proper transaction, so nothing had to be patched. |
The sign always reads from your net worth, not the raw account balance. On liability accounts the balance direction is flipped: owing more is an expense (โ), owing less is income (+). So a positive adjustment is always income-like and a negative one always expense-like, whatever the account type.
Schedules a transaction to repeat automatically on a regular schedule. Each morning, due rules are executed automatically, or you're asked to confirm or enter the amount.
| Mode | Behaviour |
|---|---|
| OFF | Executes automatically, no prompt. Use for fixed, predictable amounts. |
| ON | Asks Have you done this? first, and only records it when you reply Y. |
| OPEN | Asks you to enter the amount each time. Use for variable expenses (electricity, etc.). |
| Frequency | Day Spec | Meaning |
|---|---|---|
| Monthly | 15 | 15th of each month |
| Monthly | end | Last day of each month |
| Monthly | monday-2 | 2nd Monday of each month |
| Weekly | friday | Every Friday |
| Fortnightly | friday | Every other Friday |
The bot prompts you on the due date. Reply with the amount to record the transaction, or N to skip it this time.
๐ Recurring Payment Due Expense from NAB Savings โ Power Co Utilities Enter payment amount in AUD: Or type N (No) to skip.
โ Expense AUD 150.00 from NAB Savings โ Power Co โก Utilities ๐๏ธ 17/07/2026 07:02 AM ๐ Recurring R018 Trx ID: G2H3I4
โ Recurring added: Expense AUD 20.00 | Monthly on 15 | OFF (Auto) ID: R042 Next run: 2026-06-15
/listrecurring ยท Edit: /editrecurring ยท Delete: /deleterecurring R042
A trigger word that stands for a whole transaction. For something you buy the same way over and over.
Save the sandwich you buy every weekday once, then type sub and it is recorded.
โ Expense AUD 7.00 from Amex โ Subway Sandwich ๐ฝ๏ธ Dining ๐๏ธ 17/08/2026 12:05 PM Trx ID: P4Q5R6
A shortcut message holds three things: the trigger, an amount, and an account. Amount and account are optional, and the order is free.
sub, SUB, Sub.sub 10, SUB $10, $10 sub, 7 Subsub $7, sub 7,000, sub AUD7sub from latitude, sub latitude, sub 7 amex, sub use cashsub 7 from amex, 7 from amex subsub dari amex 7, sub 7 pakai amex, 8000 ke investment salary$10 subway card topup stays a Transport top-up and sub ticket $7 stays an ordinary ticket. Anything else is read normally, exactly as if you had no shortcut.
sub 9sub from amexType the trigger into the AI box on the Transactions tab and it fills the entry card in straight away, with no AI call.
Classify spending for reports. Each category has a name, optional aliases, and an emoji icon.
/addcategory Name: Groceries Aliases*: food, supermarket, woolies Icon*: ๐
โ Category added: ๐ Groceries
โ Category added: ๐ฝ๏ธ Dining Out
Paid $80 dentist on NAB (Health)
Track a side gig, freelance work, or a small side business as its own mini P&L, separate from your main categories but rolled up net into your income statement.
โ Side job added: ๐ป Freelance (monthly)
monthly nets income/expenses into your income statement every month; oneoff holds the side job open until you close it (good for a single gig or event), then nets its lifetime total in the month it's closed.โ Income AUD 300.00 โ NAB Savings ๐ Freelance, Design ๐๏ธ 17/07/2026 10:12 AM ๐ Logo design Trx ID: K1L2M3
oneoff job once it's done, or Delete Side Job once it has zero transactionsUsed when a transaction involves two different currencies. Rates are stored per currency pair and refreshed daily automatically.
๐ฑ FX Rates โโโโโโโโโโโโ AUDIDR: 12628.01651745 โณ updated 23/05/2026 04:33 PM AUDUSD: 0.71275825 โณ updated 23/05/2026 04:33 PM USDAUD: 1.40300024 โณ updated 23/05/2026 04:33 PM
๐ฑ FX Rates: AUDIDR (current) โโโโโโโโโโโโ AUDIDR: 12628.01651745 โณ updated 23/05/2026 04:33 PM
/fxrate AUD matches every pair containing AUD (e.g. AUDIDR, AUDUSD, USDAUD). /fxrate AUDIDR matches that exact pair.โ FX: AUDUSD = 0.645 USDAUD = 1.550388
๐ฑ FX Rates: AUDIDR (2026-05 (end of month)) โโโโโโโโโโโโ AUDIDR: 12511.40200000
YYYY-MM to look up the rate as it stood at the end of that month (the 28th to the 31st). This is what backdated reports use to convert amounts to your display currency. It is display-only and never changes the rate stored on a transaction or any account balance.โ Transfer AUD 500.00 from NAB Savings โ USD Account ๐ Internal Transfer ๐๏ธ 17/07/2026 09:05 AM ๐ - Trx ID: H5I6J7
Financial snapshot for any month. Open the Report tab, pick a month and display currency, then click Generate Report. All amounts convert to your chosen display currency using stored FX rates.
| Mode | What You Get |
|---|---|
| Monthly | Income statement and balance sheet for one month. The default. |
| Yearly | The same two reports for a whole year. Each month converts at its own closing rate, so the year matches the sum of its months. |
| Trend | Charts across a range of months: Balance Sheets Over Time, Income Statements Over Time, Debt Ratio, Net Liquidity, Monthly Adjustments, and Monthly Unrealised P/L. Pick a start and end month, then click Show Trend. |
Revenue and expenses for the selected month, grouped by category. Within each category, transactions are split by currency, so AUD and IDR income show as separate lines. The summary totals are all converted to your display currency.
| Section | What It Shows |
|---|---|
| Income | All income transactions, grouped by category then currency. |
| Expenses | All expense transactions, grouped by category then currency. |
| Other: Adjustments | Net difference from cash, credit, and other account reconciliations for the period. When you set an account to its real balance via Adjust, the correction flows here, not into a spending category, because it is a balance correction, not actual spending. |
| Other: Unrealised P/L | Change in investment market value that has not been cashed out. When you mark an investment account to its current price via Adjust, the gain or loss appears here, not as income or expense, because no money has actually moved out of the investment. |
| Summary | Total Income, Total Expense, Net Savings, all converted to your display currency regardless of original transaction currencies. |
๐ Income Statement: alex (2026-05) [AUD] Income โโโโโโโโโโโโ โข ๐ผ Salary: AUD 5,000.00 Expenses โโโโโโโโโโโโ โข ๐ Groceries: AUD 300.00 โข ๐ฝ๏ธ Dining: AUD 100.00 โข โก Utilities: AUD 150.00 Other โโโโโโโโโโโโ โข Adjustments: AUD 20.00 โข Unrealised P/L: +AUD 1,000.00 Total Income: AUD 5,000.00 Total Expense: AUD 550.00 Net Savings: AUD 4,450.00
/incomestmt YYYY-MM [owner] [currency]. Omit owner to see all users; omit currency to use your default display currency.
Snapshot of all account balances at month-end. Each account is shown in its original currency and converted to your display currency.
| Section | What It Shows |
|---|---|
| Assets | Cash, investment, and receivable accounts. Investment accounts show both cost basis (what you paid) and current market value. |
| Liabilities | Credit card and payable accounts: money you owe. |
| Net Worth | Total Assets minus Total Liabilities. Excludes locked investments (super, property), so liquid assets only. |
| Net Worth + Locked | Full picture including non-liquid investments. Use this for total wealth tracking. |
gram or t oz (troy ounce), instead of the market code (XAUG, XAG, XPT, XPD). A small chip next to the account name says which metal it is; in History the chip is shortened to G / S / Pt / Pd, and hovering it shows the full name. Telegram, CSV and PDF spell it out: Safe Deposit (Gold): 50.00 grams (AUD 9,362.09).
๐ฆ Balance Sheet: 2026-05 [AUD] Assets โโโโโโโโโโโโ ๐ต Cash โข NAB Savings: AUD 8,000.00 ๐ Investments (Cost / Market) โข Vanguard ETF: AUD 5,000.00 / AUD 6,000.00 Liabilities โโโโโโโโโโโโ ๐ณ Credit โข Amex: AUD 500.00 Total Assets: AUD 14,000.00 Total Liabilities: AUD 500.00 Net Worth: AUD 13,500.00 Net Worth + Locked: AUD 13,500.00
/balancesheet YYYY-MM [currency]. Omit currency to use your default display currency.
Additional metrics shown alongside the report in the web app.
| Card | What It Means |
|---|---|
| Debt Ratio | Total Liabilities รท Total Assets. Shows what fraction of your assets is funded by debt. 0% means no debt; 100% means liabilities equal assets. |
| Net Liquidity by Currency | Liquid assets minus liabilities, broken down per currency, without converting to the display currency. Shows how much actual cash you have available in each currency. |
Three pages that go further than the tabs: budgets, investments, and savings goals. They share one layout, so learning one teaches the other two. Web app only, and each has its own guide.
Set a limit for a month, narrow it to certain categories or people if you want, then read what you actually spent against it.
Hold shares, funds, metals or crypto in an investment account. Prices arrive daily, and cost basis, market value and UP/L are kept side by side.
Put a purpose on money you already hold, and watch each goal fill up. One bar per goal, divided by the accounts the money sits in.
Browse all past transactions and reverse any of them.
โฉ๏ธ Reversed: expense AUD 60.00 Original: A1B2C3 โ Reversal: X9Y0Z1
/undo with no argument reverses your most recent transaction./history lists recent transactions with their IDs.US$500 or 500 SGD for others.yesterday, last Friday, on the 3rd, 2026-01-05NAB if you configured aliases for that accountpaid $80 dentist on NAB (Health)adjust cash to 500+300+200, 3 tickets at $45, groceries 12.50*4dinner was $100, 25% is dining, 50% of $1,200 to savings$100 dinner: 25% dining, 75% gifts to relativesinvest 0.02 BTC from Binance or invest 10 grams of gold from BCA (10 XAUG works too)โ Expense AUD 60.00 from NAB Savings โ Grocery Store ๐ Groceries ๐๏ธ 17/07/2026 12:00 PM ๐ - Trx ID: H4I5J6 โ Expense AUD 20.00 from Amex โ Coffee Shop โ Dining ๐๏ธ 17/07/2026 12:00 PM ๐ - Trx ID: H4I5J7
State one amount and how to slice it. You get one transaction per share, each with its own category.
โ Expense AUD 50.00 from Amex โ dinner ๐ฝ๏ธ Dining ๐๏ธ 17/07/2026 07:30 PM ๐ dinner (25%) Trx ID: K7L8M9 โ Expense AUD 150.00 from Amex โ dinner ๐ Gifts ๐๏ธ 17/07/2026 07:30 PM ๐ dinner (75%) Trx ID: K7L8N0
25% dining, 75% relatives. The full total is read from the image, then split into one entry per share.
Everything /help lists. Send /help [command] for the full usage of any one of them.
| Group | Commands |
|---|---|
| ๐ฆ Accounts | /addaccount ยท /listaccounts ยท /editaccount ยท /deleteaccount |
| ๐ธ Transactions | /transact ยท /undo |
| ๐ Reports | /incomestmt ยท /balancesheet ยท /summary ยท /trend ยท /history ยท /budget ยท /downloadreport |
| ๐ท๏ธ Categories | /addcategory ยท /editcategory ยท /deletecategory ยท /listcategories |
| ๐ Recurring | /addrecurring ยท /listrecurring ยท /editrecurring ยท /deleterecurring |
| ๐ Portfolio | /portfolio |
| ๐ Goals | /goal |
| ๐ฑ FX Rates | /fxrate |
| ๐ง Maintenance | /recalc |
/summary gives the headline metrics for a month or a year, /trend plots net savings and net worth month by month, and /downloadreport sends the income statement, the balance sheet, or both as a CSV, PDF, or PNG file. Portfolios and goals are created in the web app; /portfolio and /goal read them back.
When the AI is uncertain (ambiguous account name, missing field), it shows what it understood and asks for confirmation. Reply YES or NO, or correct the details and send again.