A complete guide to tracking billable hours in Excel — no app subscription required. Know exactly where your time goes and turn logs into invoices in minutes.
Most freelancers undercharge because they undercount. They estimate a project will take 8 hours, it takes 14, and they invoice for the original quote. Without a time log, there's no data to push back with — and no way to price the next similar project accurately.
This guide walks you through building a complete freelance time tracker in Excel or Google Sheets. You'll have a working log sheet by the end, plus formulas that turn raw time entries into invoice-ready totals automatically.
Time tracking is not just about invoicing. Done consistently, it becomes one of the most powerful business intelligence tools available to a freelancer.
| Benefit | What you learn | Business impact |
|---|---|---|
| Accurate invoicing | Exact billable hours per client | Reduce under-billing by 10–25% |
| Scope creep detection | Hours vs. original estimate | Know when to renegotiate or decline revision requests |
| Real hourly rate on fixed projects | Total hours × effective rate | Set better project minimums |
| Client profitability ranking | Revenue ÷ hours by client | Identify which clients to grow and which to drop |
| Tax log (W-2 offset) | Home office, equipment use hours | Support deduction claims if audited |
| Pricing future work | Average hours per project type | Quote with confidence, not guesswork |
Open a new Excel workbook. Name the first sheet Time Log. Create these seven columns starting in row 1:
| Col | Header | Format | Type | Example |
|---|---|---|---|---|
| A | Date | yyyy-mm-dd | Required | 2026-03-01 |
| B | Client | Text | Required | Acme Corp |
| C | Project | Text | Required | Brand Refresh |
| D | Description | Text | Required | Logo revisions — round 2 |
| E | Start | h:mm AM/PM | Optional | 10:00 AM |
| F | End | h:mm AM/PM | Optional | 12:30 PM |
| G | Hours | Number (2 dec) | Required | 2.50 |
| H | Rate ($/hr) | Currency | Optional | $95 |
| I | Amount | Currency | Formula | $237.50 |
| J | Invoiced? | Yes / No / — | Optional | No |
If you track start and end times in columns E and F, use this formula in column G to convert to decimal hours:
Add a second sheet named Billing Summary. This is where you generate invoice totals at billing time without manually searching the log.
| Column | Content | Formula / Source |
|---|---|---|
| A | Client Name | Manual list of your active clients |
| B | Unbilled Hours | =SUMIFS(TimeLog!G:G, TimeLog!B:B, A2, TimeLog!J:J, "No") |
| C | Unbilled Amount | =SUMIFS(TimeLog!I:I, TimeLog!B:B, A2, TimeLog!J:J, "No") |
| D | Last Entry Date | =MAXIFS(TimeLog!A:A, TimeLog!B:B, A2) |
| E | Invoice Ready? | =IF(C2>0, "YES ✓", "—") |
When you invoice a client, go to the Time Log and change the "Invoiced?" column from "No" to "Yes" for all billed rows. The summary will automatically clear to zero for that client.
This optional but powerful sheet ranks clients by effective hourly revenue — revealing which relationships are worth growing and which are quietly draining your time.
| Column | Header | Formula |
|---|---|---|
| A | Client | Client names |
| B | Total Hours (YTD) | =SUMIF(TimeLog!B:B, A2, TimeLog!G:G) |
| C | Total Billed (YTD) | =SUMIF(TimeLog!B:B, A2, TimeLog!I:I) |
| D | Effective Rate | =IFERROR(C2/B2, 0) |
| E | % of Total Hours | =B2/SUM($B$2:$B$20) |
| F | % of Total Revenue | =C2/SUM($C$2:$C$20) |
If most of your work is project-based rather than hourly, time tracking is still worth doing — the purpose just shifts from invoicing to pricing intelligence.
Track every project the same way. After 6 months, you'll know that "brand identity projects" average 18 hours and "website audits" average 6 hours. This data is worth more than any pricing guide.
Log your original estimate in a "Quoted Hours" column next to actual hours. Track the ratio over time. If you consistently deliver in 80% of quoted time, you're leaving room. If you consistently hit 130%, you're underquoting.
Add "R1", "R2", "R3" to the project description. This makes it easy to spot which project types generate the most revision work — often a sign that scope or brief quality needs addressing upstream.
Define in your contract that work exceeding quoted hours by more than 15% triggers a change order. Your time log gives you the documented evidence to enforce this professionally.
The biggest failure mode with time tracking is inconsistency — logging faithfully for two weeks then abandoning it. Build a minimal weekly habit instead of trying to log in real-time every day.
| When | Action | Time |
|---|---|---|
| Start of work session | Note the time and what you're starting (sticky note or phone) | 30 sec |
| End of work session | Log the entry in your Time Log sheet | 1–2 min |
| Friday afternoon | Review weekly totals on Billing Summary sheet, flag anything unbilled | 5 min |
| Billing day (weekly or bi-weekly) | Use Billing Summary to generate invoices, mark rows as "Yes" in Time Log | 10–20 min |
| Monthly | Review Client Profitability sheet — sort by effective rate | 10 min |
Many freelancers round 45-minute sessions to 0.5 hours "to be fair to the client." Over a year, this giveaway compounds. Bill in 0.25-hour (15-minute) increments at minimum. If you spent 45 minutes, log 0.75.
Emails, calls, revision communication, and project management are work. If your contract covers it (or if you're tracking for pricing purposes), log it. A 2-hour project that generates 45 minutes of email follow-up is really a 2.75-hour project.
Use a single scratch note (physical or digital) to jot start times throughout the day. Enter them into Excel once at end of day rather than switching tabs constantly. Batch logging takes under 3 minutes per day.
Logging client and project is enough for invoicing, but adding a "Type" column (Design / Writing / Strategy / Admin / Development) lets you see where your hours actually go — and which service lines are most time-efficient.
The profitability data is the long game. Revisit your Client Profitability sheet quarterly. It will tell you more about your business than any dashboard.
| Freelance Stage | Billable Hours Target | Admin + Business Dev | Total Work Hours |
|---|---|---|---|
| New (first year) | 60–80 hrs/mo | 40–60 hrs/mo | 100–140 hrs/mo |
| Growing (1–3 yrs) | 80–120 hrs/mo | 20–40 hrs/mo | 100–160 hrs/mo |
| Established (3+ yrs) | 100–140 hrs/mo | 15–25 hrs/mo | 115–165 hrs/mo |
| At capacity | 130–160 hrs/mo | 10–20 hrs/mo | 140–180 hrs/mo |
Add a third sheet named Invoice Generator. This sheet pulls from the Time Log and formats a printable invoice automatically.
| Cell | Content | Formula / Source |
|---|---|---|
| B1 | Your Name / Business | Hardcoded text |
| B3 | Invoice Number | Increment manually: INV-001, INV-002... |
| B4 | Invoice Date | =TODAY() |
| B5 | Due Date | =TODAY()+30 |
| B7 | Client Name | Dropdown from client list |
| B10 | Line items | SUMIFS from Time Log filtered by client + "No" invoiced |
| B15 | Subtotal | =SUM(B10:B14) |
| B16 | Tax (if applicable) | =B15*0.0 (adjust to local rate) |
| B17 | Total Due | =B15+B16 |
When ready to send, File → Export as PDF and email directly. After sending, update the Time Log rows to "Yes" in the Invoiced? column.
The FlowDesk Finance Dashboard includes a pre-built time tracker, billing summary, invoice generator, and client profitability report — all connected and ready to use in 10 minutes.
Get Finance Dashboard — $19One-time purchase · Instant Excel download · Free updates
Excel or Google Sheets is the best free option for most freelancers. A well-built spreadsheet gives you full control, works offline, requires no subscription, and doubles as a billing tool. Paid apps like Toggl or Harvest are useful if you need team features or client-facing timers, but a spreadsheet covers 90% of freelance needs.
Create a log sheet with columns for Date, Client, Project, Description, Start Time, End Time, Hours, and Rate. Use =HOUR(F2-E2)+(MINUTE(F2-E2)/60) to convert start/end times to decimal hours. Use SUMIFS to total hours by client for invoicing. See the full setup above.
Yes. Tracking time on fixed-price projects reveals your actual hourly rate and scope creep. If a $1,000 project takes 20 hours, you earned $50/hr. If it takes 40 hours, you earned $25/hr. This data is essential for pricing future projects accurately and knowing when to renegotiate.
Most freelancers invoice weekly or bi-weekly for ongoing work, and upon milestone completion for project work. Weekly invoicing improves cash flow, reduces large unpaid balances, and keeps clients aware of accumulating costs. Monthly invoicing is simpler but creates larger gaps in cash flow.
Billable time includes any work done on behalf of a client: core deliverable work, revisions, client calls, briefing review, research specific to their project, and project management time. Non-billable time includes business development, your own admin, networking, and general skill development. Clarify your billing policy in your contract upfront.