Templates › Business and freelance
Side Hustle Income Tracker
Made for people earning on the side of a day job.
Record income, costs and hours for each side hustle to see which ones are worth it, with totals for this month and this tax year and a tax pot based on your chosen rate. The summary carries a chart that redraws itself as you type.
- Tabs
- 5
- Columns
- 23
- Fill themselves in
- 19
£4.99one payment, yours to keep
- Opens in Excel, Google Sheets and Numbers
- Delivered straight away
- No macros, nothing to install
- Change it free before you buy
Payment is handled by Stripe. Your card details go to them and never to us. Sales are final, which is why every tab, column and calculation is shown on this page first.
Everything inside, before you pay
This is the whole design: every tab, every column and how each calculated one is worked out. White cells are yours to fill in; the shaded ones work themselves out and are locked so a formula cannot be overwritten by accident. There is room for 1,420 rows.
Hustles
| Column | Type | Worked out as |
|---|---|---|
| Hustle | text | |
| Status | choice (list) | |
| Tax Rate | percent | |
| Total Income | currency | IF(ISBLANK([name]), "", SUMIF([Income!hustle], [name], [Income!amount])) |
| Total Costs | currency | IF(ISBLANK([name]), "", SUMIF([Costs!hustle], [name], [Costs!amount])) |
| Profit | currency | IF(ISBLANK([name]), "", [income]-[costs]) |
| Hours | number | IF(ISBLANK([name]), "", SUMIF([Hours!hustle], [name], [Hours!hours])) |
| Profit per Hour | currency | IF(ISBLANK([name]), "", IFERROR([profit]/[hours], 0)) |
| Tax Year Profit | currency | IF(ISBLANK([name]), "", SUMIFS([Income!amount], [Income!hustle], [name], [Income!date], ">="&DATE(YEAR(TODAY())-IF(TODAY()<DATE(YEAR(TODAY()),4,6),1,0),4,6)) - SUMIFS([Costs!amount], [Costs!hustle], [name], [Costs!date], ">="&DATE(YEAR(TODAY())-IF(TODAY()<DATE(YEAR(TODAY()),4,6),1,0),4,6))) |
| Tax to Set Aside | currency | IF(ISBLANK([name]), "", ROUND(MAX([ty_profit], 0)*[tax_rate], 2)) |
Income
| Column | Type |
|---|---|
| Date | date |
| Hustle | choice (from Hustles › name) |
| Description | text |
| Amount | currency |
Costs
| Column | Type |
|---|---|
| Date | date |
| Hustle | choice (from Hustles › name) |
| Category | choice (list) |
| Description | text |
| Amount | currency |
Hours
| Column | Type |
|---|---|
| Date | date |
| Hustle | choice (from Hustles › name) |
| Hours | number |
| Notes | text |
Summary
| Measure | Worked out as |
|---|---|
| Income this month | SUMIFS([Income!amount], [Income!date], ">="&(EOMONTH(TODAY(),-1)+1), [Income!date], "<="&EOMONTH(TODAY(),0)) |
| Costs this month | SUMIFS([Costs!amount], [Costs!date], ">="&(EOMONTH(TODAY(),-1)+1), [Costs!date], "<="&EOMONTH(TODAY(),0)) |
| Profit this month | SUMIFS([Income!amount], [Income!date], ">="&(EOMONTH(TODAY(),-1)+1), [Income!date], "<="&EOMONTH(TODAY(),0)) - SUMIFS([Costs!amount], [Costs!date], ">="&(EOMONTH(TODAY(),-1)+1), [Costs!date], "<="&EOMONTH(TODAY(),0)) |
| Hours this month | SUMIFS([Hours!hours], [Hours!date], ">="&(EOMONTH(TODAY(),-1)+1), [Hours!date], "<="&EOMONTH(TODAY(),0)) |
| Profit per hour this month | IFERROR((SUMIFS([Income!amount], [Income!date], ">="&(EOMONTH(TODAY(),-1)+1), [Income!date], "<="&EOMONTH(TODAY(),0)) - SUMIFS([Costs!amount], [Costs!date], ">="&(EOMONTH(TODAY(),-1)+1), [Costs!date], "<="&EOMONTH(TODAY(),0))) / SUMIFS([Hours!hours], [Hours!date], ">="&(EOMONTH(TODAY(),-1)+1), [Hours!date], "<="&EOMONTH(TODAY(),0)), 0) |
| Income this tax year | SUMIFS([Income!amount], [Income!date], ">="&DATE(YEAR(TODAY())-IF(TODAY()<DATE(YEAR(TODAY()),4,6),1,0),4,6)) |
| Costs this tax year | SUMIFS([Costs!amount], [Costs!date], ">="&DATE(YEAR(TODAY())-IF(TODAY()<DATE(YEAR(TODAY()),4,6),1,0),4,6)) |
| Profit this tax year | SUM([Hustles!ty_profit]) |
| Hours this tax year | SUMIFS([Hours!hours], [Hours!date], ">="&DATE(YEAR(TODAY())-IF(TODAY()<DATE(YEAR(TODAY()),4,6),1,0),4,6)) |
| Profit per hour this tax year | IFERROR(SUM([Hustles!ty_profit]) / SUMIFS([Hours!hours], [Hours!date], ">="&DATE(YEAR(TODAY())-IF(TODAY()<DATE(YEAR(TODAY()),4,6),1,0),4,6)), 0) |
| Tax to put aside | SUM([Hustles!tax_set_aside]) |
| Profit all time | SUM([Income!amount]) - SUM([Costs!amount]) |






