What it's for
- Fixed-price, time-and-materials and retainer projects in one place.
- Spotting a project that will run over before it does.
- Retainers where unused hours roll over to the next month.
What's inside
- Projects
- Type, client, dates, budget in hours and money, and retainer hours a month with rollover.
- Rates
- An hourly rate for each person or role, used to value time.
- Time log
- Date, project, person or role, and hours. Rate and value fill in.
- Summary
- Hours and money used, % of budget, hours left, monthly burn and the forecast at completion, as of a date you choose.
- Retainers
- Twelve months per retainer: hours available (with rollover), used and left.
Preview
| Project | Dates | Budget | Used | Monthly burn | Forecast at end |
|---|---|---|---|---|---|
| Acme website | 1 Feb to 30 Apr 2027 | 200 h, 30,000 | 110 h (55%), 17,200 (57%) | 77.9 h | 227.7 h, 27.7 h over |
The 110 hours are 90 developer hours at 160 and 20 designer hours at 140, worth 17,200. After 43 days (1.41 months) that is a burn of 77.9 hours a month. The 46 days left (1.51 months) at that rate add 117.7 hours, so it lands at 227.7 hours: 27.7 over budget. On the Retainers sheet, a 20-hour monthly retainer with rollover that used 15 hours in January has 25 hours in February.
How to use it
- On Rates, list each person or role with an hourly rate.
- On Projects, add each project: its type, start and end dates, and a budget in hours, money or both. For a retainer, add its hours a month and whether unused hours roll over.
- Log time in the Time log against a project and a person or role.
- On Summary, "As of" shows today. Type a date to see the position on another day.
- On Retainers, type the first month and pick each retainer project.
The formulas, explained
- Monthly burn
-
=C5/((MIN($B$2,end)-start+1)/30.4375)Hours used ÷ months elapsed. A month is 30.4375 days, the average month (365.25 ÷ 12).
- Forecast at completion
-
=C5+J5*MAX(0,end-$B$2)/30.4375Hours used plus the monthly burn for the months left.
- Retainer hours available
-
=$B5+IF($C5="Yes",MAX(0,D51),0)This month's hours, plus last month's unused hours if they roll over. Overruns aren't carried forward.
- Retainer hours used
-
=SUMIFS('Time log'!$D$4:$D$503,'Time log'!$B$4:$B$503,$A28,'Time log'!$A$4:$A$503,">="&D$4,'Time log'!$A$4:$A$503,"<"&EDATE(D$4,1))Hours logged against the retainer from the 1st of the month to the end of it.
Every formula uses functions that Excel, Google Sheets and LibreOffice all have. There are no macros or scripts.
Questions
What is a burn rate?
How fast a project uses its budget: here, hours used per month so far. It assumes the pace so far carries on, which is why it's called a forecast.
What happens to unused retainer hours?
If the project is set to roll over, unused hours carry into the next month. Overruns don't reduce the next month; they show as negative hours left so you can bill or discuss them. Months with no time logged yet show what you would have if nothing were used.
Can I track money as well as hours?
Yes. Add a money budget on Projects and rates on Rates. Value used is hours × the rate for the person or role.
Does it work in Google Sheets?
Yes. Upload it with File > Import. It only uses functions both programs have, such as SUMIFS, INDEX, MATCH, EDATE, MIN and MAX.
About this template
Last reviewed 4 October 2026.
Changes: 4 October 2026: first published.
Free to use and change in your own business. Please don't resell the files or publish them as your own. More free templates.