Docs / Sales

Projects: track time, costs and profit on a piece of work

Group a job's quote, orders, invoices, materials, hours and expenses, and see whether it made money.

A project holds one piece of work, such as a run of 200 enamel pins, a set of shelves or a wedding order, and answers one question at the end: did it make money? Its quotes, orders, invoices, the material off the shelf, the hours and the expenses all point at it, and the Overview adds them up.

It works for small batches too: log the labor against a batch and you can see what a run of 200 candles cost.

Opening a project

Projects → New project. Enter a Project name, a client and a date if you have one, then press Create project. Add the rest as the work happens.

On the project's Details tab:

  • Status: Lead, Quoted, Active, On hold, Completed or Canceled. Converting a quote to a project sets it to Quoted or Active.
  • Team: the people working on it.
  • Labor rate for this project and Material markup %, for a project costed differently from the rest (see what an hour costs).

The projects list filters by status and client.

Starting one from a quote

Convert to project on a quote opens a project with the quote's client and the quote's value as the contract figure. The quote isn't used up: it keeps its status and lines and links to the project, so it can still become an order or an invoice. See Quotes.

What goes on a project

Quotes, orders and invoices have a Project picker, which lists open projects. An order converted from a quote on a project stays on it, and so does an invoice raised from that order. Stock you use on the project, and stock picked for its orders, count toward it. Expenses and purchases can be put on a project through the API.

An order is optional. Use one for something to make and ship. A project billed for hours, materials and expenses can bill straight from its Overview.

The project page

The title, number, client and status stay at the top. Everything else is on tabs: Overview (did it make money, and what's ready to bill), Details, Documents, Time, Costs, Attachments, Messages and History. Time, Attachments and Messages show a count when there's something in them. The tab is part of the address, so you can bookmark a project open on a tab.

Time

Log hours on the Time tab.

  • Type it in. There's no timer in the app. Track your hours however you already do and log them here.
  • Hours and minutes go in separate boxes, so "1h 45" is easy to enter. When your workspace has at least two other people, a Who picker lets you log time for someone else.
  • Billable (it shows the hourly billing rate) or Not billable, plus a Description of what was done. Billable time can go on an invoice. The rest is still costed against the project.

Fixing an entry

Edit on an entry opens it: the date, hours and minutes, description, rate, and whether it's billable. Project moves it to another open project, for time logged against the wrong job. Owners and admins also get Who, to move it to the teammate who did the work. Moving an entry costs it again at the new project's or person's rate, and both projects' totals follow.

Once time is on an invoice it shows Invoiced on with the invoice number, and only its description can change. To change the rest, remove its line from the invoice or void the invoice, and the entry is editable again. Remove isn't offered on invoiced time for the same reason.

An entry with a timer still running, such as one brought in from another app, shows Running. Discard removes it without logging anything.

What an hour costs

Every entry carries two rates:

  • Hourly cost: wages, payroll tax, insurance and a share of rent, van and power. Costing labor at the bare wage makes a project look more profitable than it was.
  • Hourly billing rate: what you bill an hour. The gap between the two is your margin on labor.

Both are in Company Settings → Rates, which shows how the cost adds up. The What you charge card there also has your Material markup. Between the two, Your own time, per hour is a third figure: what an hour of your own hands-on work is worth, which bills of materials cost their labor minutes at. It is not used for project time. A project's Labor rate for this project replaces the hourly cost for that project's time; billing still uses the workspace's hourly billing rate.

Each entry keeps the rates it was logged at, so a raise next month doesn't change what last month's work cost.

If the wage is 0 and nobody on the entry has a wage of their own, the time is logged with its cost unknown, not as free. The entry reads cost unknown, no labor rate was set, and the project's Cost so far says Labor not costed with the hours it leaves out and a link to Set your rates. Setting the wage costs the time you log from then on.

Billing time and expenses

The Overview tab has a Ready to bill card: everything on the project that's done and not yet billed, each with a tick box. Time is grouped the way the invoice will show it, one row per day at each rate, so the total on the button is the total on the invoice. Expenses show at what re-billing them charges, markup included.

Untick anything you're not billing yet, and it stays on the card.

Put it on picks where it goes: an open invoice on this project, or a new draft invoice, created in the same click and headed with the project's number and title. Paid and void invoices aren't offered.

Time goes on as lines, one per day, such as "2026-08-14: labor on Hopewell kitchen" with 7.5 in the quantity. Each entry records the line it went on, so it can't be billed twice. Billed time can't be deleted, and only its description can be edited.

If the invoice goes away, the work comes back. Delete a draft invoice and its hours, expenses and material go back to Ready to bill. Remove one of those lines from an invoice and only those hours come back. Other edits to the invoice don't change what's billed.

Voiding an invoice asks whether to release the work back to unbilled, ticked by default. Leave it ticked and the work goes back to Ready to bill. Untick it when the client really was charged and a credit note is the correction. Expenses follow the same rules; see charging an expense back.

If the time bills at zero an hour, the card says so. Set an hourly billing rate in Company Settings → Rates first.

Charging material back

Material from your shelf shows on the card under Material, netted per item: 5 meters taken on Tuesday and 2 put back on Thursday is one line for 3 meters.

It's priced at what it left the shelf at, plus your material markup. So the invoice and the project's material cost agree. Change the markup for one project on its Details tab.

Once material is billed, Put back goes from that row on the Costs tab, so you can't bill a client for stock that's back on your shelf. It comes back to Ready to bill when its line is removed from the invoice, the draft is deleted, or the invoice is voided with the work released.

The Documents tab starts a quote, an order or an invoice for this project, on a form that already knows the client and the project.

Using stock on a project

The Stock used card on the Costs tab takes material off your shelf and puts it in the project's material cost. Pick the item or variant and how much.

It's valued at the average cost it leaves at, never at a typed price, so the project's material cost goes up by what the shelf lost. Put back reverses it at the same cost, so the two cancel exactly even if the average has moved.

Lines on a project's documents

A project's quotes, orders and invoices take the same lines as any other: an item or a typed description, and notes (see lines and notes). Time and material billed from the project come in as lines priced for you: time at its hourly billing rate, material at its cost plus your material markup.

Quoted against actual

The Overview tab shows:

  • Contract: what was agreed, the accepted quote's value before tax (its subtotal, less the discount, plus shipping). With no accepted quote, it uses the newest sent one. A draft, declined or expired quote never counts, so a project with only a draft shows no contract.
  • Cost so far: material (bought for the project, used from stock, or picked for its orders, at what it left the shelf at), labor (time entries at their saved rates), expenses (without tax, on the project or on any of its orders), and freight and fees: the freight on its orders' shipments and the payment fees on its invoices.

Material you buy for a project and receive into stock moves to the shelf. It comes back into the project's cost when it leaves the shelf for the project, so it counts once.

  • Margin: the contract less the cost, as an amount and a percentage. It's measured against the contract, not against what's been invoiced, so a half-billed project doesn't look like a loss halfway through.
  • Waiting to be billed: hours and expenses not yet on an invoice.

Every figure is a sum of what was recorded. Nothing is estimated. Under Quoted against actual, a warning says when quote lines have no cost (the quoted cost leaves them out) and when purchases, expenses, freight or fees are in a different currency from the project's (its quote's, or your base currency with no quote). Those are left out of the cost rather than added as if they were the same currency.

Project profitability

Reports → Project profitability shows every project in a period: quoted, contracted, invoiced, cost by type, and margin. Margins under 15% are flagged. The period picks projects that ended in it, plus projects still running that were created in it. Canceled projects aren't included.

Through the API

Projects, time entries and profitability are in the public API: /projects, /projects/{id}/profitability, /projects/{id}/time-entries, /projects/{id}/bill (time, expenses and material in one call, creating the invoice if you don't name one), /projects/{id}/bill-time, /projects/{id}/bill-expenses, /projects/{id}/bill-stock, /projects/{id}/stock, /projects/{id}/comments and /reports/project-profitability. Document lines accept a kind.

Everything on this page is on the free tier: one person, the whole product, no card.

Start free