A project budget template breaks a project into tasks and prices each one in three parts: labor (hours × hourly rate), materials (units × unit price) and fixed costs such as travel, equipment or space. Ours is a tab in the project management spreadsheet for Google Sheets and Excel. As the work happens, you log expenses and compare budget with actual cost, task by task, and freelancers can use the finished budget as the base of a client quote.
What the Project Budget Template Tracks
Each project gets its own budget, built from its one-off tasks. For every task you fill in:
- Labor: hours and an hourly rate, multiplied into a labor cost.
- Materials: units and a unit price, multiplied into a material cost.
- Fixed costs: travel, equipment or space, and a misc line for anything else.
The template adds these into a budget per task and per project. Alongside it sits an expense tracker where you log real costs as they happen, and the budget vs actual view shows which tasks are running over. The currency comes from the setup tab, and the project manager tab carries budget, expenses, revenue and profit columns for every project, so you can compare them side by side in the multiple project tracker.
Recurring tasks are not part of the project budget. If a repeating cost truly belongs to one project, enter it as a misc cost on a one-off task.
Worked Example: Budget vs Actual for a Website Redesign
A two-person studio is redesigning a dental clinic’s website. The rates and prices below are example numbers, not market rates, so swap in your own. Here the hourly rates are what the time costs the studio, so profit sits on top of this budget rather than inside it.
| Task | Labor | Materials | Fixed costs | Budget |
|---|---|---|---|---|
| Discovery workshop | 6 h × $65 = $390 | 4 workbooks × $12 = $48 | Travel $40 | $478 |
| Wireframes and design | 24 h × $65 = $1,560 | 10 stock photos × $15 = $150 | None | $1,710 |
| Build the site | 40 h × $80 = $3,200 | 1 plugin license × $99 = $99 | None | $3,299 |
| Photo shoot at the clinic | 5 h × $65 = $325 | None | Travel $40, equipment $120 | $485 |
| Content entry and testing | 12 h × $50 = $600 | None | None | $600 |
| Launch and staff training | 4 h × $65 = $260 | 6 printed guides × $5 = $30 | Travel $40 | $330 |
| Total | $6,335 | $327 | $240 | $6,902 |
Labor is $6,335 of the $6,902 total, about 92%. On service projects like this one, hours are where a budget is won or lost, so estimate them task by task rather than as one lump.
Five tasks in, the expense tracker shows this:
| Task | Budget | Actual | Variance | Why |
|---|---|---|---|---|
| Discovery workshop | $478 | $502 | +$24 (+5.0%) | Printed 6 workbooks, not 4 |
| Wireframes and design | $1,710 | $1,905 | +$195 (+11.4%) | 3 extra hours of revisions |
| Build the site | $3,299 | $3,139 | -$160 (-4.8%) | Finished 2 hours early |
| Photo shoot at the clinic | $485 | $485 | $0 | On budget |
| Content entry and testing | $600 | $750 | +$150 (+25.0%) | 3 extra hours, content arrived late |
| Finished tasks | $6,572 | $6,781 | +$209 (+3.2%) |
The project is $209 over so far. If launch and training lands on its $330 budget, the project finishes at $7,111. The variance column also tells the studio what to change next time: revisions and late content cost 6 extra hours between them, so the next quote should either budget a revision round or state how many are included.
Turning it into a quote. Add a 10% contingency to the $6,902 budget ($690, for $7,592). To earn a 25% margin on the price, divide by 0.75: $7,592 ÷ 0.75 = $10,123. Note that a 25% margin is a 33% markup on cost, not 25%. Our guide on how to write a project quote explains the difference and what else the quote should say.
How to Set Up a Project Budget in the Spreadsheet
- On the setup tab, choose your currency and name your phases.
- Add the project on the project manager tab with its dates, owner and revenue.
- Enter the project’s one-off tasks on the variable tasks tab, so the budget, the Gantt chart and the Kanban board all share the same list.
- On the project budget tab, enter hours and rate, units and unit price, and any travel, equipment/space or misc costs for each task.
- Log every expense in the expense tracker as it happens, not at the end of the month.
- Review budget vs actual at the end of each phase, while there is still time to change course.
The Method: Estimate Bottom Up, Track as You Go
Good project budgets share a few habits:
- Estimate per task, not per project. A single “website: $7,000” guess hides where the money goes. Our guide on how to estimate project costs walks through labor, materials, fixed costs and contingency with a fully worked estimate.
- Make sure nothing is missing. A work breakdown structure lists every deliverable before you price anything, which is where forgotten tasks such as training or testing turn up.
- Keep contingency separate. Padding every task hides the risk. One contingency line shows exactly how much of the buffer you have used.
- Track variance while it can still help. A 25% overrun spotted after one task is a conversation with the client. Spotted at the end, it is a lost profit.
For a renovation, where materials and trades carry more of the cost, the home renovation project plan shows the budget lines and contingency to plan for.
Build Your Own Project Budget Spreadsheet
Columns on a sheet named Budget: A: Task, B: Hours, C: Rate, D: Units, E: Unit price, F: Travel, G: Equipment/space, H: Misc, I: Budget, J: Actual, K: Variance. Log expenses on a sheet named Expenses with A: Date, B: Task, C: Amount.
Budget in I2, identical in Google Sheets and Excel:
=B2*C2 + D2*E2 + F2 + G2 + H2
Actual in J2, summing every logged expense for that task. The range differs:
- Google Sheets:
=SUMIFS(Expenses!C2:C, Expenses!B2:B, A2) - Excel:
=SUMIFS(Expenses!C:C, Expenses!B:B, A2)
Google Sheets accepts open-ended ranges such as C2:C that grow with the log. Excel does not, so use whole columns or a fixed range like C2:C1000. If you format the expense log as an Excel table named Expenses, =SUMIFS(Expenses[Amount], Expenses[Task], A2) also works.
Variance in K2, the same in both: =IF(J2=0, "", J2-I2). A positive number means over budget, and the IF keeps tasks with no spending yet from showing a false saving. For the percentage, use =IF(J2=0, "", J2/I2-1) and format it as a percent.
Over-budget highlight. Select A2:K30 and add a custom formula rule, =$J2>$I2, with a light red fill. It is the same formula in Google Sheets (Format > Conditional formatting) and Excel (Home > Conditional Formatting > New Rule).
Quote price. With the margin you want in M1 (25%) and the contingency in M2 (10%): =SUM(I2:I30)*(1+M2)/(1-M1). On the example above, that returns the same $10,123.
Who This Project Budget Template Suits
It works well for:
- freelancers and small studios pricing fixed-fee work who want the quote to rest on real task costs;
- homeowners planning a renovation or a big purchase with several suppliers;
- small teams who want the budget tied to the same tasks as their timeline and board.
It is a planning and tracking tool, not accounting software. If you need invoices, payroll or tax reports, keep those in your accounting system and use this budget to decide what to charge and to see where the money went. For tax questions on project income, a qualified accountant is the right person to ask.
A final tip: when a project closes, copy its budget vs actual numbers into a short note of what ran over and why. Three projects later, that note is the most accurate estimating guide you own.