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 β get the bot link from admin, 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 and balance sheet.
Budgeting Tool β set monthly budgets and check how actual spending compares.
Finance Tracker runs as a Telegram bot and a web app. Both share the same data in real time.
@userinfobot on Telegram. It replies with your numeric ID./start in the bot to verify it works. Type /help for all commands.π Web App: Open the web app URL in any browser. Log in with your username or Telegram ID plus your password.
Password123@. You are prompted to set a new password immediately after. Change it anytime via your username (top right) β User Settings.
| Tab | Purpose |
|---|---|
| Transactions | Record transactions via Form, Chat, Photo, or Bulk |
| Report | Income statement and balance sheet |
| History | Browse and undo past transactions |
| Others | Manage accounts, categories, recurring rules, FX rates |
A 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 |
| Locked Investment | Superannuation, home equity | Same as Investment but flagged as non-liquid |
| 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 2,000.00
β Added: NAB Savings (cash, AUD, alex)
/editaccount on Telegram, or Others β Accounts β click any field inline./deactivateaccount NAB Savings/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 Trx ID: A1B2C3
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 Trx ID: A1B2D4
/transact Action: expense Source: NAB Savings Destination: Woolworths Currency: AUD Amount: 60.00 Category: Groceries
β Expense AUD 60.00 from NAB Savings β Woolworths π Groceries Trx ID: A1B2E5
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 β NAB Savings πΌ Salary Trx ID: B3C4D5
/transact Action: income Source: Employer Pty Ltd Destination: NAB Savings Currency: AUD Amount: 5000 Category: Salary
β Income AUD 5,000.00 β NAB Savings πΌ Salary 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 β just upload the document to the bot. On Telegram it always uses aggregate mode (collapsing the file into one summarised income and one expense entry).
| 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 maps columns to the app schema. 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 Trx ID: C5D6E7
β Transfer AUD 500.00 from NAB Savings β USD Account π Internal Transfer 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 Trx ID: D7E8F9
Invest, Source = cash account, Destination = investment accountInvestment account β Cash account. Realises P&L. The gap between proceeds and proportional cost basis is profit or loss.
β Withdraw AUD 6,000.00 from Vanguard ETF β NAB Savings π Investment 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 Trx ID: F1G2H3
My NAB account balance is $8,000, adjust itUpdate Vanguard ETF market value to $6,000AdjustSchedules a transaction to repeat automatically on a regular schedule. Each day at 7 AM AWST (UTC+8), the system checks which rules are due and either executes them, asks for confirmation, or asks for the amount.
| Mode | Behaviour |
|---|---|
| OFF | Executes automatically, no prompt. Use for fixed, predictable amounts. |
| ON | Sends a YES/NO confirmation before executing. |
| 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 NO to skip.
π Recurring Payment Due Expense from NAB Savings β Power Co Utilities Enter payment amount in AUD: Or type NO to skip.
β Expense AUD 150.00 from NAB Savings β Power Co β‘ Utilities 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
Classify spending for reports. Each category has a name, optional aliases, and an emoji icon. Fuzzy matching: type groceries and it finds Groceries.
/addcategory Name: Groceries Aliases*: food, supermarket, woolies Icon*: π
β Category added: π Groceries
β Category added: π½οΈ Dining Out
Paid $80 dentist on NAB (Health)
Used 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β31st). This is what backdated reports use to convert amounts to your display currency β it's display-only and never changes the rate stored on a transaction or any account balance. If the rate isn't cached yet, the bot fetches and stores it automatically.β Transfer AUD 500.00 from NAB Savings β USD Account π Internal Transfer Trx ID: H5I6J7
Financial snapshot for any month. Open the Report tab, pick a month and display currency, then click Get Report. All amounts convert to your chosen display currency using stored FX rates.
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 Income, 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 Income: 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) β liquid assets only. |
| Net Worth + Locked | Full picture including non-liquid investments. Use this for total wealth tracking. |
π¦ 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. |
Set monthly budget targets per category, then track how actual spending compares. Available on the web app only.
Click your username (top right) β Budgeting Tool.
| Type | Category | CCY | Budget | Note | |
|---|---|---|---|---|---|
Income |
πΌ Salary |
AUD |
5,000.00 |
β | |
Expense |
π Groceries |
AUD |
600.00 |
Monthly food |
β |
Expense |
β‘ Utilities |
AUD |
200.00 |
β |
Below Manage Budget on the same page. Select a month to see Budget, Actuals, and Remainder side by side for each item.
| Item | CCY | Budget | Actuals | Remainder | Note |
|---|---|---|---|---|---|
| Income | |||||
| πΌ Salary | AUD | 5,000.00 | 5,000.00 |
100%
|
|
| Expenses | |||||
| π Groceries | AUD | 600.00 | 480.00 |
80%
|
Monthly food |
| β‘ Utilities | AUD | 200.00 | 230.00 |
115%
|
|
| π½οΈ Dining Out | AUD | β | 120.00 |
β
|
Unbudgeted |
Browse all past transactions and reverse any of them. Undo is non-destructive β the original entry stays in the ledger and a matching reversal entry cancels it out.
β©οΈ 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.
Send a voice note to the Telegram bot instead of typing. The bot transcribes your speech and 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 Trx ID: V1W2X3
If you have multiple accounts and want to disambiguate, add a caption to the voice note before sending:
ποΈ Heard: paid 120 for electricity bill β Expense AUD 120.00 from NAB Savings β Electricity Provider π Utilities Trx ID: V2W3X4
$ defaults to AUD. Use 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)β Expense AUD 60.00 from NAB Savings β Grocery Store π Groceries Trx ID: H4I5J6 β Expense AUD 20.00 from Amex β Coffee Shop β Dining Trx ID: H4I5J7
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.