Freelance Expense Tracker

Log income and expenses, see monthly and category breakdowns, and export a CSV ledger for tax filing — no signup, no server. Your data lives in this browser only.

Total Income
$0.00
Total Expenses
$0.00
Net Profit
$0.00

Add Entry

How it works

Everything runs inside your browser using localStorage — no data is ever sent to a server. Here is the workflow:

  1. Add entries — type a date, amount, category, and short note. Income entries are positive; expense entries are negative (the UI tracks the sign for you).
  2. View the ledger — all entries are shown in reverse-date order. Filter by year, month, or type. Delete any entry with the × button.
  3. Check reports — the Reports tab shows monthly income vs. expense totals and a ranked category breakdown with a visual bar chart.
  4. Export for tax filing — download a CSV at any time. Open it in Excel, Numbers, or Google Sheets to produce Profit & Loss statements for self-employment tax (Schedule C in the US) or equivalent.
  5. Import — paste in entries from another tool via CSV with at minimum date, amount, and category columns.

Summary formula: Net Profit = Total Income − Total Expenses. Category bars are scaled to the largest category in each group (income or expense).

Frequently asked questions

Is my financial data private?
Yes, completely. All data is stored in your browser's localStorage. Nothing is sent to any server. If you clear browser data or use a different browser or device, the entries will not be there — export a CSV regularly as your backup.
Can I use this to prepare my taxes?
This tracker produces a clean CSV ledger that works as source data for Schedule C (US self-employment), a UK Self Assessment, or similar filings. It does not calculate tax owed — use the ledger inside tax software or hand it to your accountant. Categorising expenses correctly (software, travel, professional services, etc.) saves time when your tax preparer reviews the numbers.
What CSV format should I import?
Your CSV must have a header row with at least three columns named date, amount, and category. Column names are case-insensitive. The type column (income / expense) is optional — if absent, positive amounts are treated as income and negative amounts as expenses. The note column is also optional. Dates should be in YYYY-MM-DD, MM/DD/YYYY, or DD/MM/YYYY format.
How much data can I store?
Browsers typically allow 5 MB of localStorage per origin. Each entry is roughly 150–200 bytes, so you can store tens of thousands of entries before hitting the limit. If you are approaching limits, export and archive older years.
Does this work offline?
Once the page is loaded in your browser, all features — adding entries, viewing reports, exporting CSV — work without an internet connection. The page needs to be loaded at least once while online.