OrderDen is pre-release software. There is no paid plan yet, no support model, and no guarantee your data will be preserved. Read this before you put your business in it or tell us what broke.

Docs / Operations

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

The container a whole piece of work hangs off — its quote, its orders, its invoices, the timber, the hours and the parking — and the one question at the end of it: did that project make money?

A commission is not a line item. It is a piece of work — a run of two hundred enamel pins, a set of shelves, a wedding order — and at the end of it there is exactly one question: did that project make money?

A project is the container that answers it. The quote, the orders, the invoices, the material off the shelf, the two days at the bench and the courier to the client all point at the same thing, and the Overview adds them up.

Small-batch makers get the same thing for a different reason: labour logged per batch, so "what did that run of two hundred candles actually cost?" stops being a guess.

Opening a project

Projects → New project. A title, a client, and a date if you have one. That is it. The project earns its detail as the work happens; asking for all of it up front is how a lead never gets recorded at all.

  • Status — Lead, Quoted, Active, On hold, Completed, Cancelled. Raising a quote from a project moves it to Quoted for you.
  • Tags and who is on it for the board.
  • Rates for this project — see rates.

Starting one from a quote

Convert to project on a quote opens a project for that work — the quote's client, and the quote's value as the contract figure. The quote is not used up by it: it keeps its status and its lines and simply points at the new project, so it can still become an order or an invoice afterwards. See Quotes.

What goes on a project

Everything that can belong to a piece of work points at it: quotes, orders, invoices, purchases, expenses, production runs, stock off the shelf and files. A quote converted to an order carries the project across, and so does an invoice raised from that order, so the chain stays joined without anybody re-picking it at each step.

An order is optional. It is for something to make and ship — schedule it, pick it, post it. A project billed for hours, materials and expenses never needs one: bill straight from the Overview, as often as the job needs. Plenty of projects finish having only ever had a quote and two invoices.

Anything already written can be moved onto a project afterwards — pick the project on the document's own form.

The project page

The title, the number, the client and the status badge sit at the top, whatever you are doing. Everything else is on tabs: Overview (did it make money, and what is ready to bill), Details (the project's own fields), Documents, Time, Costs, Files, Messages and Activity — with a count on Time, Files and Messages where there is something to count.

The tab is part of the address, so a project open on its costs can be bookmarked or sent to somebody as it stands. Only the tab you are looking at is loaded, which is why a project with a long history opens quickly.

Time

The Time tab is where the hours go.

  • Type it in. There is no timer: nobody opens the app to start a clock. Track your hours however you already do and log them here.
  • Logging after the fact. Hours and minutes in separate boxes, because a joiner writes "1h 45" and not "1.75". You can log for a teammate who was on site without their phone.
  • Billable or not. Billable time can be put on an invoice; the rest is still costed against the project, because it still cost you.

What an hour costs

Two numbers ride on every entry and they are not the same number.

  • What it cost. The fully burdened rate: the wage, plus employer payroll tax, plus insurance, plus a share of the rent, the van and the power. Costing a project's labour at the bare wage is the classic way a small shop convinces itself a project made money when it did not.
  • What it charges. The charge-out rate — a price, not a cost. The gap between the two is the business.

Both live in Company Settings → Rates, which shows the arithmetic rather than hiding it. A person can have their own wage (owner and admin only; a member never sees anybody's wage, their own included), and a project can carry its own labour rate for the one priced differently from the rest.

Every entry freezes the rate it was written at. A wage rise next month never rewrites what last month's work cost.

Billing time and expenses

The project's Overview tab has a Ready to bill card: everything on this project that has been done and not yet charged for, with a tick beside each thing. Time appears grouped the way the invoice will group it — one row per day worked at each rate — so the total on the button is the total on the document. Expenses appear at what re-billing them charges, markup included.

Untick anything you are not billing yet and it stays on the card for next time.

Put it on chooses where it goes: an invoice already on this project, or a new draft invoice, raised for you in the same click and headed with the project's number and title. You never have to leave the project, raise an empty invoice, and come back — and an invoice that has been paid or voided is not offered, because it can no longer take a line.

Time goes on as Labour lines — "14 August, labour on Hopewell kitchen, 7.5 hrs" is what a client's eye expects on a joinery invoice. Each entry records the line it went out on, so it can never go out twice; that is also why invoiced time cannot be edited or deleted underneath the invoice.

If the invoice goes away, the work comes back. Delete a draft invoice and every hour and expense billed onto it returns to Ready to bill, editable again and free to go out on a different invoice. The same happens to a single line: drop the Labour line from an invoice and those hours come back on their own, without touching the rest of the document. Editing an invoice any other way — a note, a due date, another line — changes nothing about what is billed.

Voiding is different, and deliberately so. A void invoice is still the record of something that was billed and then cancelled, so its lines stay and the time stays billed against them. If that work needs charging again, raise a credit note and a fresh invoice rather than quietly reopening hours a client has already seen. Expenses reuse the same rules — see charging an expense back.

If the project charges out at nothing an hour, the card says so rather than quietly writing lines worth zero. Set a charge-out rate on the project's Details tab first.

Charging material back

Material off the shelf is on the card too, under Material. It is netted per item, not listed movement by movement: five metres taken on Tuesday and two put back on Thursday is one thing to charge for, three metres, and that is the line the client sees.

It is priced the way a Material line is priced everywhere else — what it left the shelf at, plus your material markup — so the figure on the invoice and the figure in the project's material cost are the same number from the two ends. Change the markup for one project on its Details tab.

Once material has been charged, Put back is gone from that row on the Costs tab: putting it back would leave the client billed for stock sitting on your shelf. Credit the invoice line and it returns here, ready to be billed or put back.

The Documents tab starts a quote, an order or an invoice for this project, each opening on a form that already knows the client and the project. Use whichever the job needs — the order is the optional one.

Using stock on a project

The other half of what a project costs is material, and a lot of it is already on your shelf. The Costs tab has a Stock used card: pick the item (or the variant), say how much, and it comes off the shelf and lands in the project's material cost.

It is valued at the weighted average it leaves at — what the ledger says those units cost — never at a price typed on the form, so the project's material figure moves by exactly what the shelf lost. Put back writes the reverse movement at exactly what the original left at, so the two cancel rather than leaving a few cents behind when the average has since moved.

Bill twenty hours and use two of a material, and both land in the same rollup: labour at the rate the entry froze, material at what the ledger says it cost.

Line kinds

Once a workspace has projects, quotes, orders and invoices offer four kinds of line rather than one:

Kind What it is What it is priced at
Item Something out of the catalog, or typed in Whatever you set
Labour Time Your charge-out rate, per hour
Material Stuff bought in Cost plus your material markup
Note A heading or a caveat Nothing — it carries no money at all

The defaults apply only when you leave the price at zero. Typing a price always wins: the one thing worse than no default is a default that argues.

Quoted against actual

The Overview is the answer.

  • Contract — what was agreed: the accepted quote's total.
  • Cost so far — material (bought against the project, plus stock used on it and stock picked for its orders, at what it left the shelf at), labour (the time entries at their frozen rates) and expenses (net of tax).
  • Margin — contract less cost, in money and as a percentage. Measured against the contract rather than against what has been invoiced so far, so a project half-billed does not look like a disaster halfway through.
  • Waiting to be billed — hours and receipts that have not gone onto an invoice yet.

Nothing here is estimated. Every figure is a sum over rows somebody actually wrote, which is what makes the answer arguable-with.

Project profitability

Reports → Project profitability is the same question across every project in a period: quoted, contracted, invoiced, what it cost in each bucket, and the margin. Thin margins — under 15% — are flagged, because a project at 4% is the one thing that has to be noticed before it finishes rather than afterwards. The range selects projects by when they ended, plus those still running that started in it.

Through the API

Projects, time entries and the profitability rollup are all available through the public API: /projects, /projects/{id}/profitability, /projects/{id}/time-entries, /projects/{id}/bill (time and expenses in one call, raising the invoice when you do not name one), /projects/{id}/bill-time, /projects/{id}/stock and /reports/project-profitability. Document lines accept a kind.

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

Start free