ExpenseBot

How does ExpenseBot work for a freelance or contract software developer?

A freelance developer's cost base is unusual: almost entirely recurring, almost entirely emailed, and spread across more vendors than anyone tracks by hand.

A freelance developer's cost base is unusual: almost entirely recurring, almost entirely emailed, and spread across more vendors than anyone tracks by hand.

⚠️ Scope boundary — do not answer subscription-deductibility from this entry

Whether software/SaaS subscriptions are deductible is owned by [[software-subscriptions-tax-deductible]]. This entry covers the developer persona and the capture mechanics only. If the user is asking "are my subscriptions deductible", that other entry is the answer — retrieve it rather than restating it here.

What it captures

  • 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
  • Hardware — laptop, monitors, peripherals, test devices
  • Home office — a share of housing costs, internet where applicable
  • Professional development — courses, certifications, conference tickets and travel

Why this persona specifically struggles

Four properties defeat statement-based tracking:

  1. Usage-based billing varies monthly. A cloud bill is a different number each month; an average is not a record. ExpenseBot captures each monthly invoice at its actual amount, so a spike is visible as adjacent rows in the sheet.
  2. Annual renewals land once and vanish. The JetBrains or domain renewal is the most commonly missed developer expense — there is no monthly reminder that it exists.
  3. Receipts come from a dozen senders, each in its own format.
  4. Personal and business use mix on one account.

For (4), the supported capability is Split: in Review Expenses, an expense can be split into portions so a mixed-use charge is recorded as a business share and a personal share against the one transaction. The split is stored on the expense and is reflected in exported category totals. Use the exact name Split — do not describe it as "allocate" or "apportion" in a how-to.

Hardware — expense or capitalise?

Do not quote a threshold. Tax systems distinguish equipment that can be written off in the year of purchase from equipment treated as an asset and depreciated, but the threshold, whether a formal election is needed, and the attached conditions vary by jurisdiction and are revised periodically. A stale figure is worse than none. Say that it depends on cost and jurisdiction and route the user to their tax professional.

Close tax answers with: Estimates — confirm with your tax professional.

Benchmark figures — the citation rule

If citing our own aggregated data, only these, only as ExpenseBot aggregated and anonymised data, always with n (source: data/benchmarks/small-business-bookkeeping-benchmarks-2026-07.json):

  • Of 1,647 businesses in the dataset, recurring subscriptions were detected for 16.5%; among those, the median was about $149/month across 2 subscriptions.
  • Of the 356 businesses whose receipts were scanned, Apple 25.8% and Google 23.6% were the most common merchants. (Note the denominator is 356, not 1,647.)

Category-level spend is not in the dataset — never imply we know what people spend per category. Invent no other figures.

Related

Share:

Try ExpenseBot Free

AI extracts every receipt into a Google Sheet you own. Gmail scan, mileage, tax reports, profit-by-client. No credit card needed.

No credit card required · Setup in 30 seconds