Free Expense Tracker Template for Google Sheets (And How to Automate It)
A good expense tracker doesn't need to be complicated. It needs to be consistent: the same columns, filled in the same way, every time. The problem isn't the spreadsheet - it's the discipline of actually keeping it updated.
This post gives you a free template to start with, explains how to structure it properly, and then shows you how to stop filling it in by hand entirely.
What a Good Expense Tracker Needs
Before jumping to a template, it's worth being clear about what fields actually matter. A lot of expense trackers try to do too much. Here's what a clean, functional one needs:
| Column | Why It Matters |
|---|---|
| Date | Essential for period filtering and tax filings |
| Vendor | Who issued the invoice or receipt |
| Description | What was purchased or what the service was |
| Amount (excl. tax) | The net amount before tax |
| Tax / VAT | The tax portion separately - required for VAT returns |
| Total | The amount actually paid |
| Currency | Critical if you deal with international suppliers |
| Category | For budget analysis (e.g. Software, Travel, Supplies) |
| Invoice / Receipt # | For cross-referencing with source documents |
| Notes | Optional context, reimbursement status, etc. |
That's ten columns. Clean, comprehensive, and compatible with most accounting workflows.
The Free Template
Download the CSV template and import it into Google Sheets in under a minute:
👉 Download Expense Tracker Template (CSV)
How to import into Google Sheets:
- Download the CSV file above
- Go to sheets.google.com and create a new spreadsheet
- Click File → Import → Upload and select the downloaded file
- Choose Replace current sheet and click Import data
You'll have a working expense tracker with sample rows and a totals row ready to go. Delete the sample rows, keep the headers, and start logging.
The template includes:
- All ten columns from the structure above (Date, Vendor, Description, Net Amount, Tax/VAT, Total, Currency, Category, Invoice #, Notes)
- A few sample rows to show the expected format
- A TOTAL row with
SUMformulas pre-filled for the numeric columns
It's intentionally simple. No macros, no scripts, no dependencies. You can extend it as needed.
How to Use It Correctly
A few habits that make the difference between a spreadsheet that helps and one that becomes a chore:
Log immediately, not later. The biggest failure mode for expense trackers is batching. "I'll log everything at the end of the month" turns into a painful two-hour session of digging through emails. Log as invoices arrive.
Separate net and tax amounts from day one. Many people just log the total. This creates a problem at tax time when you need to split VAT from net amounts. Keep them in separate columns from the start.
Use a fixed category list. Don't invent new categories on the fly. Decide your categories once (Software, Office, Travel, Marketing, Professional Services, etc.) and stick to them. The summary tab only works if categories are consistent.
Keep the source document. The spreadsheet is a summary. For each row, the underlying invoice or receipt should be accessible - ideally filed in a Google Drive folder linked to the same period.
The Problem With Manual Entry
Even with the best template in the world, the bottleneck is the same: someone has to read every invoice and type the data in.
A supplier sends you a PDF. You open it, find the total, find the VAT, find the date, find their name, type it all in. Three minutes. Multiply that by the number of invoices you receive in a month, and you're looking at a real chunk of time - for something that adds zero value.
The data is already in your inbox. The question is how to get it into the spreadsheet without the manual step in between.
Automating the Template With Mail2Ledger
Mail2Ledger is a Gmail add-on that connects your inbox directly to your Google Sheet. When an invoice arrives - whether as an email body or a PDF attachment - it uses Gemini AI to extract all the relevant fields and adds a new row to your spreadsheet automatically.
The workflow is:
- Invoice arrives in Gmail
- Open Mail2Ledger in the sidebar
- AI extracts vendor, date, amounts, VAT, and description
- Review the extracted data (edit anything if needed)
- Click sync - the row appears in your sheet instantly
The template columns map directly to what Mail2Ledger extracts. You end up with a live, always-current ledger that you never have to fill in manually.
It's the difference between a spreadsheet you maintain and a spreadsheet that maintains itself.
Getting Started
- Make a copy of the template using the link above
- Install Mail2Ledger from the Google Workspace Marketplace - it's free during early access
- Connect your Google Sheet in the Mail2Ledger settings (takes about 30 seconds)
- Open the next invoice that lands in your inbox and try it
The goal isn't to have a perfect system from day one. It's to remove the friction of manual data entry so the system actually gets used.
Questions or feedback? Drop us a line at [email protected].
Follow our journey
We write about building AI productivity tools. No spam, just real updates.