Pillar · how to run a project · 12 min read
Set the project up once. The rest runs on its own.
Milestones and budgets before kickoff. One PM tool, one timesheet tool with four rules, four alerts, and twenty minutes on Friday. One setup for a 2–10 person agency, in the order a project happens.
Darren Clark · founder, Handl · ran a 2–12 person agency for 20 years
The loop every project runs through
The loop every project runs through
01
Quote
Milestones, budgets, rates, billing plan
02
The work
Tasks and milestones in your PM tool
03
The hours
Time logged daily against tasks
04
The invoice
Drafted from the milestone or the hours
05
The books
Pushed to QuickBooks or Xero
Each step feeds the next. When one is missing, the next one is guesswork: no budget means no alert, no task means no hours, no hours means no invoice.
1 · Before kickoff
Write the billable units down before anyone logs an hour.
A project you can run is a project you can invoice. Both come from the same four lines, and they get written once, when the quote is signed, not when the first invoice is due.
Northlake Studio · Brand identity
ExampleDeposit on signature
30% of fee · invoice drafted when they sign
$7,200
1 · Discovery
Sam 24h · Priya 16h · 40 h budget · invoice on completion
$6,000
100% of hours budget used2 · Identity
Priya 60h · Sam 30h · 90 h budget · invoice on completion
$6,800
62% of hours budget used3 · Guidelines
Priya 30h · 30 h budget · invoice on completion
$4,000
0% of hours budget used
- Budget alert at 80%
- Deadline alert 3 days out
- Allocation alert at 100%
The four lines
Milestones that match the quote
If the client signed three deliverables, the project has three milestones. Not seven tasks, not one lump.
An hours budget per milestone
Your best guess is fine. It is the thing the 80% alert watches, so a guess beats a blank.
Who is on it, and their rate
Cost rate and billable rate per person, set once. Margin can only be read if cost is known.
What triggers each invoice
On signature, on completion, on a date, or at the end of a cycle. Write it next to the milestone.
Retainers and hourly work get the same treatment with different words: included hours and an overage rate instead of milestones, a cycle end instead of a completion.
2 · One tool for the work
Pick the PM tool by discipline. Then make its milestones match the quote.
The tool matters less than the rule. Every task sits under a milestone, and the milestones are the ones on the quote. That is what lets “milestone done” mean “invoice drafted”.
PM tools by discipline
- Dev shops

Fast, opinionated, cycles map to milestones

When the client already lives in it
- Marketing and content

Sections as milestones, easy for clients to read

Boards per client, status columns drive progress
- Design studios

Lists as milestones, time tracking built in

Same reason as above
- Small and simple

Lists as milestones. Cards close, the milestone completes.
Basecamp
To-do lists as milestones. Simple, and clients can read it.
Notion
A status property as the milestone, if your projects already live there.
Handl reads all eight: Jira, Linear, Asana, monday.com, ClickUp, Trello, Basecamp and Notion. Pick the one your team will actually keep up to date.
Three rules for the PM tool
One project per client job
Not one board for the whole agency. Milestones live inside the project.
Milestones named like the quote
"Discovery", "Identity", "Guidelines". The client recognises them on the invoice.
Done means done
A milestone is complete when its last task closes. Confirm it, then the invoice drafts.
Not on the list above? Handl reads and writes to all of these.
- Reads the work · project management






Basecamp
Notion
- Reads the hours · timesheets
- Writes the invoice · accounting
- Takes the payment
- Also

- GitHub
3 · One tool for time
Four timesheet rules. The tool matters less than the rules.
Timesheets fail for one reason: they are filled in on Friday from memory. Fix the habit and any of these four tools will do.
Thursday 23 Oct · Priya
ExampleLogo refinement, round 2
Northlake · 2 Identity
3:15
BillableClient call: colour direction
Northlake · 2 Identity
0:45
BillableHarbour Dental site fixes
Harbour Dental · Retainer Oct
1:30
BillableTeam standup
Internal
0:30
Internal
6:00 logged · 5:30 billableRounded to 15 min
The four rules
Log daily, not Friday
Ten minutes at the end of each day. Friday timesheets are fiction with a decimal point.
Against a task, not a project
"Northlake" tells you nothing. "Logo refinement, round 2" tells you where the budget went.
Billable on by default
Flip it off for internal work. The default decides whether hours leak.
Rounding agreed up front
Fifteen minutes is common. Put it in the agreement and in the tool, then stop arguing about it.
The four timesheet tools

Simplest. Start a timer, pick the task, done.

If you already invoice from it and want to keep that.

Free for the whole team. Fine for under ten people.

Tracked time for remote and contract teams.
Handl syncs all four every few hours and stamps each entry with the person’s rate, so hours become cost and billable value as they land.
4 · Alerts worth having
Four alerts, set once, on every project.
You will not look at the numbers every day. Nobody does. Alerts look for you, and the four below cover most of what goes wrong on a small project.
Project alerts · Northlake Studio · Brand identity
ExampleOn by default on every new project
Hours allocation exceeded (on by default)
Someone has logged more hours than they were allocated on a milestone.
100%
Milestone deadline (on by default)
A milestone is due and is not done.
3 days out
Budget consumed (on by default)
The milestone has burned most of its hours budget. Time to talk to the client, not after.
80%
Project gone quiet (on by default)
Hourly or retainer work with no time logged. Either it is finished, or nobody is logging.
T&M only
Worth switching on
Margin below target (off by default)
Cost against revenue dropped under the margin you set at the quote.
e.g. 40%
Pace overrun (off by default)
At the current burn, the milestone will finish over budget.
projected
Weekly hours per person, over or under (off by default)
Someone logged far more, or far less, than their week. Catches burnout and under-logging.
per week
Channels: in-app, email to the project creator, Slack if connected. Cost figures stay hidden from anyone without the cost-rate permission.
Thresholds are yours to change. The point is that they exist before the project starts, so nobody has to remember to look.
Example numbers only. Not accounting advice.
5 · The Friday rhythm
Twenty minutes on Friday.
Alerts catch the exceptions. The rhythm catches everything else. Same five questions every week, in the same order, with the same three things open.
Friday review · week of 20 Oct
ExampleAny hours logged this week that are not on a billing plan? (ticked)
Northlake: 4.5 h on "client call" sat outside milestone 2. Moved.
Which milestones are past 80% of budget? (ticked)
Identity at 62%. Fine. Harbour retainer at 34 of 40 included hours.
What is due next week? (ticked)
Identity completion, Thu. Guidelines kick-off.
What invoices go out this week? (ticked)
Harbour retainer cycle (Fri). Nothing else.
Anything we caught that would have gone unbilled? (not ticked)
The 4.5 h above. Logged in the Caught tab.
What to have open
Your PM tool
Milestone status and what closed this week.
Your timesheet tool
This week's hours by person and project.
The billing schedule sheet
Every client, every trigger, what is due.
Who runs it
The owner, until there is a project manager. Then the PM runs it and the owner reads the summary. It never gets delegated to “whoever has time”, because that is nobody.
6 · Connecting the dots
One project, start to paid.
Northlake Studio, a $24,000 brand identity job. Fixed fee with a 30% deposit, three milestones, two people. Example numbers throughout.
Wk 0
Quote signed
Milestones, budgets, rates and billing plan written. Deposit invoice drafted.
$7,200
Wk 1
Work starts
Discovery tasks in Linear. Hours land in Toggl daily, against tasks.
Wk 3
Discovery done
Last task closes. Milestone confirmed. Invoice drafted from it.
$6,000
Wk 5
Budget alert
Identity at 80% of 90 h with design rounds left. Scope conversation now, not later.
Wk 7
Identity done
Agreed one extra round as a change. Invoice drafted with the extra line.
$6,800 + $1,500
Wk 9
Guidelines done
Final invoice drafted. Project margin read while it is fresh: 48%.
$4,000
Wk 11
Paid
Payments land, books updated in QuickBooks or Xero. Next quote uses the real hours.
$25,500
Reads the work






Basecamp
Notion
Reads the hours
Writes the invoice
Nothing in this article needs Handl. The run sheet does it by hand. Handl is what you reach for when the by-hand version is eating Friday.
Questions
Before you set this up
- Timesheets or the PM tool first?
- PM tool. Hours mean nothing without a task to sit under. A week of tasks, then switch on time.
- We are three people. Is this overkill?
- Three people on two billing models is exactly where it starts to leak. The whole setup is four lines per project and ten minutes a day.
- What about retainers?
- Same loop, different words: included hours and an overage rate instead of milestones, a cycle end instead of a completion. The alerts are the same.
- Do I need all four alerts?
- Budget at 80% is the one that pays for the rest. Start there if you must start with one.
Free tools
Take something with you
Where Handl fits
Handl is the connection between the tools in this article.
It reads the milestones from your PM tool and the hours from your timesheet tool, sets the four alerts on every new project, drafts the invoice when the milestone or the cycle completes, and pushes it to QuickBooks or Xero.
- Not a project management tool.
- Not a timesheet tool.
- Not an accounting platform.
Set the project up once.
From $29/mo. 7-day free trial. For 2–20 person agencies on QuickBooks or Xero.