Freelance developer expense tracker
A working developer's costs are almost entirely recurring, almost entirely emailed, and spread across more vendors than anyone tracks by hand — cloud, tooling, APIs, hardware.
Quick answer: how should a freelance developer track business expenses?
Because nearly every developer cost is a recurring charge confirmed by email, the reliable method is to capture from the inbox rather than from a card statement — a statement line reading “AWS” is not a receipt. ExpenseBot connects to Gmail, reads the vendor, date and amount from each invoice, and files it into a categorized Google Sheet you own, including variable usage-based cloud bills and annual renewals that arrive once a year.
60-day free trial · No credit card
The developer expense set, and the sprawl problem
Developers are unusual among freelancers in how much of their cost base is subscriptions rather than purchases. There is very little you buy once. There is a great deal you rent monthly, from a dozen different companies, several of which auto-renew annually on a date you have forgotten.
| Category | Typical items |
|---|---|
| Cloud and hosting | AWS, GCP, Azure, Vercel, Fly, Render, object storage, domains |
| Developer tooling | GitHub, JetBrains, Figma, Linear, error monitoring, CI minutes |
| AI and API usage | Model APIs, usage-based credits, third-party API subscriptions |
| Hardware | Laptop, monitors, keyboard, drives, phone for testing |
| Home office | A share of housing costs, plus internet and power where applicable |
| Professional development | Courses, books, certifications, conference tickets and travel |
For a sense of scale beyond anecdote: in ExpenseBot's aggregated, anonymised dataset of 1,647 businesses (July 2026), recurring subscriptions were detected for 16.5% of them, and among those the median was roughly $149 a month across two subscriptions. Across the 356 businesses whose receipts were scanned in that window, Apple appeared for 25.8% and Google for 23.6% — the two most common merchants in the whole set.
That is the general small-business picture, and a developer typically sits well above it on count. The number that matters is your own, which is the argument for capturing rather than estimating. Our write-up on small business subscription costs goes through the benchmark data in more detail.
Why developer expenses are hard to track specifically
Four things make this cost base resist the usual approaches:
- Usage-based billing varies every month. A cloud bill is not a fixed subscription; it is a different number each month, and an average is not a record.
- Annual renewals land once and vanish. The JetBrains or domain renewal that charged in February is the single most commonly missed developer expense, because you have no monthly reminder that it exists.
- Receipts are scattered across a dozen senders. Each vendor emails its own format, from its own address, with its own subject line.
- Personal and business use mix on the same account. The same subscription may be part client work and part your own projects.
A card statement solves none of this. It tells you a charge happened and roughly who to, which is not enough to categorize it, substantiate it, or notice when it doubled.
Hardware: expense it or capitalise it?
This is the question every freelance developer eventually asks about a laptop, and it does not have a single answer. Broadly, tax systems distinguish between equipment cheap enough to write off in the year you bought it and equipment substantial enough to be treated as an asset and depreciated over several years. Where the line sits, whether claiming the immediate write-off requires a formal election, and what conditions attach to it all vary by jurisdiction — and the thresholds are revised periodically.
We are deliberately not quoting a threshold here, because a stale number is worse than no number: it is exactly the kind of thing people carry forward for years after it changed. Ask your tax professional for the figure that applies to your jurisdiction and tax year. What ExpenseBot does is make sure the receipt and its amount are captured and categorized either way, so the decision is about treatment rather than about whether the record exists.
How ExpenseBot captures it
Connect Gmail once. ExpenseBot scans nightly, reads the vendor, date and amount from each invoice, categorizes it, and writes a row to a Google Sheet. Variable cloud bills come through at their actual monthly amounts. Annual renewals get captured on the day they charge, whether or not you remembered them. It labels what it has processed so nothing is double-counted, never sends mail on your behalf, and never deletes anything — see the Gmail receipt scanner for the mechanics.
Where a charge is part business and part personal, open it in Review Expenses and use Split to record it as two portions against the one transaction, so your category totals reflect the business share rather than the whole charge or nothing at all.
The sheet lives in your own Google Drive. Open it without ExpenseBot, script against it with the Sheets API, pull it into a notebook, export it, or keep it entirely if you cancel. There is no proprietary store and no export to request — a point this audience tends to check first, and reasonably so. The Google Sheets expense tracker shows the layout.
At tax time
Because categorization happened on the way in, the year ends as a set of totals — hosting, software, hardware, home office, professional development — that map onto the business-expense schedule you file, Schedule C in the US, T2125 in Canada, the self-employment pages in the UK. Export to QuickBooks Online, Xero, Sage or Wave, or share the sheet; accountants use ExpenseBot free and can work directly from it.
Three guides worth reading before you file: are software subscriptions tax deductible, the home office deduction, and deducting your home internet bill. US filers may also want the US expense tracker guide. If you also do consulting or retainer work, the consultant expense tracker covers tagging costs to a client. Estimates — confirm with your tax professional.
Find out what you are actually paying for
Capture every cloud bill, renewal and hardware receipt as it arrives — into a Google Sheet you own, for $10/month with a 60-day free trial.
Start free — no credit card, 60-day trialFrequently asked questions
Can a freelance developer deduct AWS, GitHub and other subscriptions?
Cloud hosting and developer tooling you pay for to do client work are generally ordinary and necessary business expenses. The general treatment of recurring software costs — including annual plans and mixed personal/business use — is covered on our software subscriptions page. Estimates — confirm with your tax professional.
Can I deduct a new laptop, or does it have to be depreciated?
It depends on the cost and on your jurisdiction. Most tax systems have some threshold or election below which equipment can be written off immediately rather than capitalised and depreciated over several years, but the threshold, the election, and the conditions differ between the US, Canada, the UK and Australia — and they change. Do not assume a number you read somewhere still applies. This is a question worth asking your tax professional directly, because the answer materially changes the year the deduction lands.
What about a home office and my internet bill?
Both are commonly deductible in some proportion for someone working from home, and both have jurisdiction-specific rules about how the proportion is calculated. We have separate guides on the home office deduction and on deducting your home internet bill. Estimates — confirm with your tax professional.
How do I separate personal and business use on the same subscription?
In Review Expenses you can Split an expense into portions, so a subscription used partly for client work and partly personally is recorded as two amounts against the one charge rather than being counted whole or dropped entirely. The split is stored on the expense, so the category totals you export reflect it.
Does it handle usage-based cloud bills that change every month?
Yes — each monthly invoice is captured as its own receipt with its own amount, so a variable AWS or GCP bill produces an accurate month-by-month record rather than an assumed average. That is also what makes an unexpected spike visible, since the rows sit next to each other in the sheet.
Where does the data actually live?
In a Google Sheet in your own Google Drive. You can open it without ExpenseBot, script against it, export it, or keep it in full if you cancel. There is no proprietary format and no export request to file.