Enter a short description and the amount, then press Enter or the Add expense button to record it.
For a walkthrough of logging, editing, and backing up expenses, see the expense tracker step-by-step guide.
Entries and the running total sit on this browser only, off any server. Export a backup before clearing browser data or moving to another device.
Expense Tracker
Log each expense with a short description and an amount, and the total updates automatically as you add entries.
Key features
- Add an entry with a description and an amount, then press Add or Enter on either field.
- A running total sums every entry and shows "Total spent: $X.XX", counting only the entries currently in the list.
- An entry count shows how many entries you have and how many are not yet reviewed.
- Each entry gets a checkbox to mark it reviewed and a button to remove it.
- An empty description, or an amount that is blank, non-numeric, or negative, shows an inline error and is not added.
When to use it
Use it to track daily spending, split a trip's costs, or keep a running tally of a project's expenses without installing an app or creating an account.
Your data stays in this browser
Your expense entries and the running total behind them are stored in this browser's local storage, so a reload or a closed tab will not reset the tally, and only clearing this site's browser data starts you from zero. Nothing is sent to a server or an account.
Because that data belongs to this one browser, the Export backup (JSON) button is what you use before switching devices or wiping browser data - save the file, then Import backup on the other browser to pick the tally back up.
Where a new entry lands, and how amounts are displayed
Add an entry and it appears at the top of the list, not the bottom, so the one you just logged is always the first thing you see - no scrolling needed to confirm it was added, even after the list has grown long. Every amount in the list and in the running total is shown to exactly two decimal places no matter how it was typed: entering 4 displays as $4.00, and a longer number such as 4.567 rounds to the nearest cent and shows as $4.57. The same two-decimal formatting applies to the running total itself, so mixing whole-number entries and cents entries in the same list never produces a mismatched-looking total at the top of the page.
Frequently Asked Questions
What does Expense Tracker do?
It logs a description and an amount for each expense you add, then adds every amount together into a running total shown above the list.
When is the expense tracker the right fit?
Use it to track daily spending, split a trip's costs with a running tally, or watch a project's expenses add up, without installing an app or signing in.
Does my expense data leave this browser?
No. Entries are saved in this browser via local storage, so the list survives a page reload; clearing this site's browser data removes it, so export a backup first if you want to keep the record.
Can I log an expense that costs $0?
Yes. The amount check only rejects a blank, non-numeric, or negative value; an amount of exactly 0 is accepted and adds a $0.00 entry to the list and the running total.
Does importing a backup replace my current list?
No. Importing merges with what is already there: any entry in your current list that is not in the imported file stays untouched, and only an entry whose id matches one in the file gets updated to the imported version - nothing is silently dropped.
What happens if I import a file that is not a valid backup?
Your current list is left exactly as it was and an error message appears instead - only a file containing a valid list of entries is imported, so a corrupted or unrelated file cannot damage the list you already have.
Can I use symbols like & or quotation marks in a description?
Yes. Those characters display exactly as typed; the description is escaped for display so an ampersand, angle bracket, or quotation mark is never read as HTML or turned into broken markup.
What is the exported backup file named?
Every export downloads a file named expense-tracker-backup.json, regardless of how many entries are in the list or when you export it - the name never changes between exports.