Hustlay
Blog · 10 min read

How to Track Profit Per Project as a Freelancer (Free Template Inside)

The exact spreadsheet structure, the four data points per project, and the allocation formulas — with a copyable template you can paste into Google Sheets.
Published April 24, 2026

Building a profit-per-project tracker doesn't require accounting software. A Google Sheet with the right structure will do everything except read your receipts for you. Below is the exact structure I used for two years before building Hustlay — copy it, paste it into a sheet, and you're running.

The template has three tabs: Transactions (every row is one dollar in or out), Projects (the dimension table), and P&L (the pivot that reads the first two). You'll update the Transactions tab daily; the P&L tab updates itself.

Tab 1: Transactions

One row per payment received, expense paid, or hour logged:

DateProjectTypeAmountCategoryNotes
2026-04-02Consulting — Acmeincome$1,800ServicesInvoice #14
2026-04-03Consulting — Acmeexpense-$14SoftwareFigma monthly
2026-04-04Sharedexpense-$55InternetComcast
2026-04-05Etsy shopincome$234SalesPayout week 14
2026-04-05Etsy shopexpense-$82MaterialsPaper + ink
2026-04-06Consulting — Acmehours4TimeStrategy doc

Keep it strict: every row must have a project. "Shared" counts as a project for the purposes of allocation, but never leave the column blank. Rows with blanks get dropped from the pivot.

The Type column takes one of three values: income, expense, hours. Amounts for income are positive; for expenses, negative; for hours, a count (no dollar sign).

Tab 2: Projects

One row per project. This is your dimension table — the P&L joins on project name, so the names must match exactly (including "Shared").

ProjectTypeTarget hourlyActive
Consulting — AcmeClient$150Yes
Etsy shopEcommerce$40Yes
NewsletterContent$60Yes
SharedOverheadYes
Consulting — Old ClientClient$120No

The "Target hourly" column is what you want your profit per hour to be on this project. The P&L tab shows you the gap between target and actual. That gap is where all the useful conversations with yourself happen.

Tab 3: P&L — the math

Sort the Projects list, then for each row compute these formulas against the Transactions tab:

  • Revenue: =SUMIFS(Transactions!D:D, Transactions!B:B, A2, Transactions!C:C, "income")
  • Direct expenses: =-SUMIFS(Transactions!D:D, Transactions!B:B, A2, Transactions!C:C, "expense")
  • Hours: =SUMIFS(Transactions!D:D, Transactions!B:B, A2, Transactions!C:C, "hours")

That gives you per-project totals excluding shared overhead. Now the allocation step:

The shared cost allocator

Two cells at the top of the P&L sheet:

  • Total shared overhead (pulled from the Shared row's "Direct expenses").
  • Total hours across active projects (SUMIFS on hours, excluding Shared row).

Then add an "Allocated overhead" column per project:

= $TotalSharedOverhead * (ProjectHours / $TotalActiveHours)

That's the hours-weighted split. If your overhead scales with revenue instead (merchant accounts, accountant fees), swap ProjectHours for ProjectRevenue and TotalActiveHours for TotalActiveRevenue.

Net profit per project is then Revenue − DirectExp − AllocatedOH. Profit per hour is NetProfit ÷ Hours. Margin is NetProfit ÷ Revenue.

A filled-in example

Month: April. Active projects from the Projects tab. Shared overhead for the month: $890. Total active hours: 148.

ConsultingEtsyNewsletter
Revenue$7,200$940$280
Direct expenses$58$410$0
Hours607216
Allocated overhead$361$433$96
Net profit$6,781$97$184
Margin94%10%66%
Profit / hour$113$1.35$12
Target / hour$150$40$60
Gap-$37-$39-$48

Three useful observations from the filled-in sheet:

  1. Consulting is the only profitable project in absolute terms, but even it's $37/hr short of the target rate. The client-work conversation: raise rates or move admin time out of billable scope.
  2. Etsy looks technically profitable ($97) but at $1.35/hr it's a hobby, not a business. Ignore the margin; look at the profit-per-hour.
  3. Newsletter is the closest to target and has a healthy margin. The problem is scale — 16 hours can't move the bottom line much. Worth examining whether to grow it or park it.

Habits that keep the template honest

  • Enter transactions the day they happen. Not at end-of-month. Memory decay + receipt loss = your sheet lies to you.
  • Log hours daily. Pick a time tracker (Toggl, Clockify, your phone's stopwatch app). Dump totals into the sheet once a week.
  • Reconcile monthly. Total income in the sheet should match bank deposits minus platform fees. If it doesn't, something's miscategorized.
  • Don't change the allocation method mid-year. Pick one (hours or revenue) in January, keep it through December. The comparability of month-over-month numbers is worth more than any minor precision gain from switching methods.

When to graduate from a spreadsheet

The spreadsheet version holds up well through maybe 5 active projects and 200 transactions/month. Past that, four things start to break:

  • Receipt entry becomes the dominant time cost (20+ min/week)
  • Multi-currency conversions require a lookup that won't stay current
  • Shared cost allocation across 5+ projects means updating formulas in 15+ cells every month
  • Sharing the sheet with an accountant requires hours of reformatting

If you're hitting any of those, it's time. Hustlay's 7-day Pro trial imports the same three tables from a CSV export of your sheet, so you don't lose history. Most freelancers cross this threshold between year 2 and year 3.

Grab the template
Copy the structure from the tables above into a Google Sheet. The formulas are at the top of the P&L section — paste them into row 2 of each project column, then drag down. If you want a pre-built copy, email support@hustlay.com with subject "P&L template" and we'll send the Google Sheets link.

Related: if you want the theory behind why this is the right structure for multi-stream freelancers, read the pillar guide on profit per project.

Related reads

Freelancer Profit Tracker: How to See Which Project Actually Makes Money
Why bank balances and spreadsheets lie about freelance profitability, and the minimum-viable system for seeing which project actually earns — including a hours-to-margin walkthrough.
Shared Business Expenses: How to Split One Bill Across Multiple Projects
When a single $50/mo VPS runs three projects, how do you allocate the cost fairly? IRS-acceptable methods, a worked example, and the mistakes that trigger audits.
How to Calculate Your Real Hourly Rate as a Freelancer (Calculator Inside)
Your billed rate is a headline number. Your real hourly rate — revenue divided by every working hour, billed or not — is usually 30–50% lower. Here's how to compute it and lift it.
Free forever plan · No credit card

See which of your hustles actually makes money.

Set up in under 2 minutes. 7-day Pro trial, no credit card.
7-day Pro trialFree forever planCancel anytime
Start 7-day Pro trial