Business· Help center

Help center › Jobs & booking

How to run a client project with tasks, time and a budget

Put a client's work on a board and a timeline, with steps, milestones and tasks that wait on others, start from a template or a quote, track and approve time, watch the budget and the team's hours, keep a monthly retainer, bill the unbilled hours and see each client's profit.

Updated 2026-10-25

A Client project is the work an agency or studio does for one client: a website rebuild, a brand refresh, a campaign. It holds the tasks, the time spent on each one and the budget. Open Work → Jobs and switch to the Client projects view.

Start a project

  1. Press New project.
  2. Type a name, such as "Website rebuild", and pick the client it is for.
  3. Press Start project.

Only someone who manages the business starts a project, renames its columns or sets its budget.

Start from a template or a quote

Under Start from in the New project card:

  • A template copies a project you kept with Save as template: its columns and every task, with the person, the estimate, the steps, the milestones and what waits on what. Pick the first day, and each task's start and due day keep the same gaps the template had. Every task starts open, and someone who has since left the team is taken off their tasks.
  • A quote makes a project from one of the client's quotes. Each line of the quote becomes a task. A line priced by the hour (its unit is hour or hours) becomes the task's estimate, the hours add up to the project's budget, and when every hourly line has the same price that price becomes the project's hourly rate. A quote makes one project.

To keep a project as a template, open it and press Save as template. The template is named after the project.

Add tasks and move them along

Type a task in Add a task and press Add. Each task can have a person, a due date and an estimate in hours. Set these in the List view.

The Board view shows a column for each stage: To do, In progress, Review and Done. Drag a card to another column, or use the card's own Move to menu, which works from the keyboard. A task moved to Done is done; moved back, it is open again.

A project task given to someone is also on their own task list, so ticking it done there moves it on the board too.

To rename the columns or add one, press Rename columns. Renaming a column keeps its tasks where they are.

Draft the tasks from a brief

Press Tasks from a brief on a project, then paste the client's brief or email, or describe the project, and press Draft tasks. Otto drafts a task list with estimates, steps and milestones. Nothing is added yet: untick what you do not want and press Add these. Otto treats the brief as information only, never as instructions. Drafting uses Otto's AI, so it counts toward your plan's usage.

Steps, milestones and tasks that wait on others

Press Details on a task to set:

  • Starts and Due: the days the timeline draws the task between.
  • Milestone: a point such as "Design approved". Milestones show on the client's own page.
  • Step of: makes the task a step of a bigger one. Steps go one level deep and show under their task in the List and Timeline views.
  • Waits on: the tasks that must be done first. A task cannot be moved to Done, on the board or on the task list, until everything it waits on is done, and Otto says which one is still open. A task cannot wait on itself or on something that already waits on it.

See the timeline

Switch the view to Timeline. Each task with a start day or a due day is a bar from one to the other, and a milestone is a diamond. Amber means the task waits on another one, red means overdue and green means done. The dashed line is today. Tasks with no dates are listed under the timeline so none go missing. Press a task's name to open its details.

Track time

  • Press Start on a task to run a timer, and Stop when you finish. Only one timer runs per person: starting another stops the first.
  • Press Log time to type hours afterwards, with the day, a note and whether the time is billable to the client.

My week shows your own timesheet: each day's entries, the week's hours and how many were billable. Someone who manages the business can pick anyone's week there.

Reminders to log time

If you switch notifications on for your device and keep A reminder to log your time on client projects on, Otto reminds you once a weekday, after 4 pm where the business is, when you have nothing logged or running on a client project that day. Only people who tracked project time in the last two weeks are reminded, so someone who never tracks time is never nudged. Reminders are not sent during the business's quiet hours.

Approve time before it is billed

A manager can approve a person's week: open My week, pick the person and press Approve this week. Approved entries are marked and locked, so they cannot be changed or removed until someone presses Take approval back.

To bill only approved time, open Team hours and switch on Approve time before billing. Then Bill unbilled time takes only approved hours and says how many entries still wait for approval, and a retainer month cannot be billed while any of its time is not approved. With the switch off, approving is optional and billing works as before.

Set a budget

Press Budget and choose:

  • Hours: the number of hours the project is worth.
  • Fixed fee: an amount, with the hourly rate that tracked time burns it at.

All tracked time counts against the budget, billable or not, because unbillable hours are where over-servicing hides. The bar shows how much is used. Otto sends you a notice once when a project reaches 80% of its budget and once when it reaches 100%. Raising the budget starts the warnings again from where it stands.

Planned against tracked, and scope creep

Each project shows its tracked hours against its planned hours, which are the task estimates added up. When the estimates add up to more than an hours budget, the project says so, and Otto sends you a notice once: this is scope creep showing before the hours are spent. Once the estimates fit again, a later creep warns again.

Bill the unbilled time

Press Bill unbilled time. Otto makes a draft invoice for the client with one line per task: the unbilled billable hours times the project's hourly rate. Nothing is sent. Those hours are marked as billed, so they are never billed twice, and they can no longer be changed or removed.

The button says why beside itself when it cannot be used: no unbilled billable time, hours with no bill rate yet, or a position that does not write invoices.

Bill a fixed fee by milestone

On a project whose budget is a Fixed fee, a milestone can bill a share of the fee. Open the milestone's Details and type the share, such as 30 for 30%. The milestones of a project can share out at most 100% of the fee. Once the milestone is done, press Bill 30% on it: Otto makes a draft invoice for that share of the fee, and nothing is sent. Each milestone is billed once.

Once a fixed-fee project has billed a milestone, it is billed by milestone from then on: Bill unbilled time no longer bills its hours, and the button says so beside itself. That way the same work is never billed twice. Its hours still count against the budget and in Profit.

Bill expenses on to the client

Expenses linked to a project are listed under Expenses on this project, for positions that see money. Switch one on to bill it to the client: the next Bill unbilled time adds it as its own line at its amount, even when there is no time to bill. Only approved expenses in your business's own currency are added: one recorded by someone who does not manage the business waits for a manager's approval under Finances first. Once billed, an expense is locked and cannot be changed or removed. Expenses left off are still counted as costs in Profit.

Bill rates for a client or a person

Each hour is billed at the first of these that is set:

  1. The project's own Hourly rate, under Budget.
  2. The client's rate, also under Budget on any of the client's projects. It applies to all of that client's projects with no hourly rate of their own.
  3. The person's Bill rate an hour, under Team hours.
  4. The rate for their position, under Bill rates by position in Team hours.

When people with different rates worked on a task, the invoice has one line for each rate. Bill rates are set and seen only by positions that see money.

Give a client a retainer

A retainer is a number of hours a month a client pays a monthly fee for, across all of that client's projects. Open the Retainers tab beside Projects and My week, and press New retainer.

  1. Pick the client.
  2. Type the hours a month and choose the first month.
  3. Turn on Unused hours roll over to the next month if hours a client does not use carry on, and type the most hours that may roll over. Left empty, that is one month's hours.
  4. Type the monthly fee and the rate for hours over the bank.
  5. Press Set up retainer.

Each month shows the hours included, the hours rolled over from the month before, the hours used and what is left or over. Hours used are the billable time on any of the client's projects on a day in that month, so time typed in late still counts in the right month. A month that goes over leaves nothing to roll over.

Otto sends you a notice once when a month reaches 80% of its hours and once when it goes over. Setting up or changing a retainer does not warn about months already past those points.

Bill a retainer month

Once a month has ended, press the Bill button beside it, such as Bill September. Otto makes a draft invoice for the client with the monthly fee, plus the hours over the bank at your overage rate. Nothing is sent. A month is billed once: its time is marked as billed and can no longer be changed.

Time from the retainer's first month on is billed with its month, not with Bill unbilled time on a project, so the same hours are never billed twice. The project's button says so beside itself. Time from before the retainer started is still billed from the project.

The current month says Bills once the month ends, because its hours are not known until then. A retainer with a billed month cannot be removed; change its hours instead.

Your team's hours and utilization

Open the Team hours tab (for someone who manages the business). For one week it shows each person's:

  • Tracked hours, and how many were billable.
  • Billable share: billable hours out of the hours they work a week. The hours a week are 40 unless you type another number.
  • Target %: type the billable share you aim for. Someone below it is marked.
  • Booked ahead: the estimates of their open project tasks due that week, marked when it is more than the hours they work.

Who is booked in the coming weeks

Under the week's table, Booked in the coming weeks shows six weeks ahead for each person. Each open project task's estimate is spread over the weekdays from its start day to its due day, and a task with only a due day counts in that week. A week in red is more than the hours that person works a week. Tasks given to nobody have their own row, Nobody yet, so work no one is staffed on shows too. A task given to nobody can name who it needs under Details, such as "A designer", and gets a row of its own under that name, so you can plan work for someone you have not hired yet. Tasks with no estimate or no due day are not counted.

To plan work you have not won yet, switch on Tentative on the project. Its hours show apart in each week as "tentative", and in amber when winning it would put that person over their hours. Switch it off once the client says yes.

What the client sees

When jobs is switched on, the client's private page lists each open project with how many tasks are done and its milestones with their due days. A client on a retainer also sees this month's hours used and left. The page shows hours only, never money, and no other tasks.

Share drafts for the client to look at

Open a milestone's Details and add files under Files, such as a draft design as an image or a PDF. Each file you add is the next version. On their page, the client opens the milestone and sees every version, newest first and marked as the latest, and can open each one. Only a milestone's files are shown to the client; files on other tasks stay inside the business.

Work an outside developer uploads reaches a milestone only when you approve it: see Outsource a project to a developer.

The client approves a milestone or asks for changes

On their page, a client can open a milestone and press Approve, or type a note and press Ask for changes. Otto sends you a notice with their answer and note, and the milestone's card on your board says Client approved or shows what they asked for. Opening the milestone changes nothing; only pressing a button records an answer, and a later answer replaces the earlier one.

See which clients and projects make money

Open the Profit tab beside Retainers. It shows each client and each project with its revenue, labour, expenses, profit and margin.

  • Revenue is the invoices made from the project's time, before tax, drafts included and void ones left out. A retainer invoice covers a client's month across all its projects, so it counts for the client, not for one project.
  • Labour is every hour tracked on the project, billable or not, at what an hour of that person costs.
  • Expenses are the expenses linked to the project. Link one when you record it under Finances → Add expense.

What an hour costs comes from, in this order: the cost an hour you type for that person under What an hour costs, the hourly rate in their pay plan, then the usual hourly cost. The figures you type here are the same ones as Hourly costs under Profit on jobs. Hours with none of these are shown as "not costed" and left out of labour, rather than counted as free, so a margin is never better than it really is.

The Profit tab is only for positions that see money and see everyone's work.

See how much of your time is billed and paid

Open the Realization tab beside Profit, and pick the From and To days (this month so far unless you change them). For the billable time worked in those days it shows, in total, by project and by person:

  • Standard value: the hours at each person's bill rate, the same rate Bill unbilled time uses: the project's hourly rate, else the client's, else the person's, else their position's. Hours with no rate anywhere are named, and have no standard value.
  • Not billed yet: the standard value of the time not on an invoice.
  • Billed: what the invoices the time is on charge for it, drafts included and void ones left out, before discount and tax and without expense lines. When an invoice carries more time than these days, its amount is shared out by each entry's standard value.
  • Realization: billed, against the standard value of the time that was billed. If you wrote $400 of time down to $300, that is 75%.
  • Collected and Collection: how much of what was billed has been paid, from the payments recorded on each invoice.

Time not billed yet is never counted as 0% realized: it waits in Not billed yet until it is invoiced. The Realization tab is only for someone who manages the business and sees money.

Ask Otto in chat

In Otto chat, someone who manages the business can say "start a Website rebuild project for Dana from the Website build template, starting May 4" or "start a project for Dana with tasks for discovery, design and build". Otto can also tell you which open projects are over their planned hours, how much of each budget is used and how many tasks are overdue. Starting a project sends nothing to the client.

Good to know

  • Someone whose position sees only its own work sees only the projects with a task given to them, and only their own tasks on those. They do not see retainers.
  • Money figures (a fixed fee, the hourly rate, the money burned, a retainer's fee and overage rate) are shown only to positions that see money. Others see how far along the budget is as a percentage.
  • Task time is separate from clocking in and out under Team, which is for pay.