Order economics

Flowtly Editorial Team5 min

A purchase order is a contract with a project behind it, and it is recorded in two sections of that contract: Order lines, where you write what was agreed, and Order economics, where Flowtly reads the same lines back against what actually happened.

Order economics reports and changes nothing. Every figure on it is worked out when you open it, from the order's lines, the time logged on the contract's project, the invoices raised under the contract and the costs booked to the project.

Order lines: what was agreed

Each line is one of two kinds, and they are not interchangeable.

  • A Role line names a role from your Positions, a Rate per hour, and the Estimated hours you expect it to take.
  • A Deliverable line names an outcome and its price. It has no role and no estimated hours, and those fields are not offered — nothing logged against a project says which deliverable it was for, so there would be no actual figure to compare an estimate with.

Add an order line is below the existing ones. A rate takes four decimal places at most and hours two; anything else is refused with the reason rather than rounded into a figure you did not type. Nothing is multiplied out and no total is stored — the rate is the rate and the estimate is the estimate.

An order with no lines says No order lines yet and Order economics says Nothing to compare yet: the table is the lines read back, so it has nothing to show until they exist.

The two sections have different permissions

Writing an estimate says nothing about what anyone is paid, so Order lines is open to the people who manage contracts or budgets. Order economics includes what the hours cost, so it needs the permission to see project profitability as well — and a reader without it does not get an empty table, they do not get the section at all. The person who writes the order and the person who reads its margin are routinely different people, which is why the two sit apart.

See Permissions and Permission groups.

The window the figures cover

Above the table, Window names the period every figure on it obeys. It is the contract's own term — its From and To dates — and an end that was never set reads open, meaning there is no cut-off at all rather than "up to today".

A contract with neither date set shows no window line at all, and its figures then cover everything there is.

The window is stated, not adjusted here: to change it, change the contract's dates. A figure outside the term is not in the table, so a line that reads empty on a contract whose dates were set narrowly is the window talking, not the work.

What each column means

Column What it means
Line The line's description, or the name of the role it prices.
Rate The agreed rate — per hour on a role line, the whole price on a deliverable.
Estimated The hours written on the line.
Actual The hours logged in that role, on the contract's project.
Difference Actual less estimated, signed: +6 h is over the estimate, -6 h under it.
Resource cost What those hours cost, at each person's own cost rate for the day they were logged.

Two things that column list does not say on its own:

  • Hours and costs belong to the project, not to the order. Nothing logged and nothing spent names a purchase order, so the figures are read from the contract's project and its sub-projects. Two orders against one project read the same hours — see When another contract shares the project below.
  • Hours by someone with no agreement in force that day are counted as hours, at no cost. They are not dropped, so the hours are honest and the resource cost beside them is understated. A missing cost rate is worth fixing rather than reading around.

Over the estimate is a warning, not a limit

A line whose actual hours have passed its estimate is marked with a warning sign, and hovering it says so: Over the estimate. A warning only — nothing stops anyone logging more time.

That is the whole of its behaviour. Nothing refuses a time entry because an estimate is used up, nothing closes the line and nobody is asked to approve the overrun. The mark exists so the overrun is noticed while the work is still going on.

A dash is not a zero

A dash in a cell means the figure cannot be stated. A 0 means it was stated, and it is nought. The two are kept apart deliberately, and reading one as the other is the easiest mistake to make on this table.

Three cases produce a dash, and each needs a different response.

  1. A deliverable line never has hours. No estimate, no actual, no difference. Logged time names a project, never a deliverable, so there is nothing to attribute to it. Its rate is its price, and the work behind it shows up in the hours of whichever roles did it.
  2. Two lines pricing the same role. Their hours cannot be told apart — nothing in a time entry says which of the two lines it was worked under — so neither line claims them and both are marked hours not attributable. The hours are not lost: they are reported under the table instead of being split between the lines on a guess.
  3. An hour that no single role claims is reported under the table in its own right, never spread across the lines. The line beneath the table counts the hours and what they cost, and says why: so many entries with nobody planned there, so many with two roles that day.

A fourth line under the table covers hours that did resolve to a role which no single line prices: … were worked in roles no single line prices. That one usually means the order is missing a line, or has two for a role that needs one.

The consequence of all this is worth stating plainly: the Resource cost column does not add up to the Resource cost total. The total covers every hour logged on the project in the window, including the hours no line could claim. The difference between the two is exactly what those under-table lines report.

Where an hour's role comes from

Nothing recorded against a time entry says what role the person was filling. Flowtly derives it from the resourcing plan: the confirmed bookings for that person, on that project, covering that day.

  • One role, or several bookings all naming the same role — the hours are that role's.
  • No booking at all, or two bookings naming different roles — the hours go to the unattributed line described above. They are never split between the candidates and the busier role is never assumed, because a per-role figure that is really a guess is worse than one that says it does not know.
  • A booking deliberately recorded with no role contributes no role, so a day covered only by one of those reads as nobody planned there.

Which means the fix for a large unattributed figure is usually in the plan rather than in the order: confirm the booking, or put the person on one role for the period. See Capacity by project and Time Tracking.

Costs booked to the project

Below the table, Costs booked to the project lists the supplier invoices, costs and payments carried by the contract's project in the window — each with its date and the share assigned to this project, not the whole document. A cost with no name of its own is listed as Unnamed cost.

A row showing nought is kept rather than hidden. An allocation struck deliberately to nothing is a decision somebody took, and dropping it from the list would make it look as though nobody had ever entered it.

The four totals, and the two not to add together

Total What it is
Billed What was invoiced under this contract.
Resource cost What the logged hours cost.
Linked costs The sum of the costs booked to the project.
Margin Billed, less resource cost, less linked costs.

Billed is what was issued, not what was paid. Every sales invoice line raised under the contract counts, from the moment the invoice exists, whether or not the client has settled it; drafts and deleted invoices stay out. An invoice counts in the period its sale date falls in, amounts are net of discount and converted at the invoice's own rate. A line naming no project still counts — invoices issued against a framework contract frequently name none — while a line naming a project outside this contract's belongs to that project and is left out.

Resource cost and linked costs are kept apart on purpose, and the product says why beside them:

Resource cost and linked costs are kept apart on purpose: a B2B contractor who both logs time and invoices is counted in both, so the margin reads low until that is resolved. Do not add the two together.

So on an order staffed by contractors who invoice their own hours, treat the margin as a floor rather than a figure: the real margin is that number plus whatever those people invoiced for hours they also logged. Costs booked to the project lists the invoices behind the linked cost and Time Tracking the hours behind the resource cost, which is where the overlap is visible. An order staffed only by employees, or only by contractors who log no time, is unaffected.

The budget surface handles the same case differently — there a contractor who also logs time is counted once, as Budget P&L & forecast describes. The two surfaces genuinely differ, so a margin here and a budget figure about the same people are not expected to agree.

When another contract shares the project

When a second contract names the same project, a notice sits above the table: Another contract shares this project, so the hours, the resource cost and the linked costs below are the project's — not this order's alone.

Read it as a statement about every figure underneath, not a footnote. Billed is still this contract's own, because an invoice is raised under one contract; everything derived from the project is shared, so two orders on one project report the same hours and the same costs as each other. Where that matters, give each order its own project — a sub-project of the client's project is enough, and it keeps both orders readable.

A contract that names no project says so instead of showing a table: This contract names no project, so nothing logged or spent can be read against it.

One supplier invoice across two projects

An invoice shared between projects contributes its own share here and the rest to the other project. The split itself is not entered on this screen: it belongs on the incoming invoice, under Categorization, where you give each project its row and its amount. Costs booked to the project is the read-out of that.

Two things follow. The amounts here never exceed the invoice, because each project carries only its slice; and an invoice whose split does not add up to its net amount leaves part of the cost charged to nobody, so it is flagged on the document rather than quietly missing from an order's margin. See Transactions management for the split and Transaction Attachments for the flag.

Example use cases

  • A delivery lead quoting the next stage of an engagement reads Difference per role on the current one, and prices the next order from what the work actually took rather than from what was estimated last time.
  • A controller sees a large hours not attributable figure under the table, finds two lines pricing the same role, and merges them into one so the hours land on a line.
  • A project manager reads an unattributed figure counting entries with nobody planned there, confirms the missing bookings, and the hours move onto their roles.
  • A finance lead reviewing an order staffed by contractors treats its Margin as a floor, and checks the contractors' invoices against their logged hours before passing the figure on.
  • An account manager opening an order on a shared project reads the notice above the table and gives the next order its own sub-project, so the two stop reporting each other's hours.

Connection map

Refers toUses upDerived fromPart ofPlanned vs actual
Documented hereDocumented elsewhere
invoice billed to counterparty. invoice taxed by tax-group. cost spends against budget. cost owed to counterparty. bank-transaction reconciled to invoice. bank-connection imports bank-transaction. contract schedules payment-schedule-line. payment-schedule-line invoiced as invoice. contract agreed with counterparty. contract attached to budget. contract orders purchase-order-line. purchase-order-line prices position. purchase-order-line estimated against time-entry. budget raises budget-alert. budget covers project. counterparty defaults to budget. counterparty defaults to project. invoice billed from project. set-off-declaration settles invoice. set-off-declaration declared with counterparty. project linked to budget. lead becomes counterparty. deal sold to counterparty.billed totaxed byspends againstowed toreconciled toimportsschedulesinvoiced asagreed withattached toorderspricesestimated againstraisescoversdefaults todefaults tobilled fromsettlesdeclared withlinked tobecomessold toIInvoice — A sales document issued to a client: line items, dates, tax. It is created, reviewed, previewed and then sent.InvoiceCCounterparty — The other side of a financial document — a client billed, or a supplier owed.CounterpartyTTax group — The tax treatment applied to a line, so rates are set once rather than per document.Tax groupCCost — Money the organisation owes or has spent, tracked against a budget.CostBBudget — The financial envelope an engagement is measured against — what was planned, versus what has actually been spent.BudgetBBank transaction — A movement on a connected bank account. Matching it to an invoice or a cost is what makes the books agree with the bank.Bank transactionBBank connection — The consented link to one bank that transactions arrive through. It can stop working on its own — a consent expires or is withdrawn — so it reports whether it is still working.Bank connectionCContract — The financial terms of an engagement: a structured set of payment schedule lines, in one direction or the other.ContractPPayment schedule line — One dated amount on a contract, in a direction — money owed to a supplier, or due from a client.Payment schedule lineOOrder line — One line of a purchase order: a role priced by the hour with the hours estimated for it, or a deliverable priced as an outcome. A deliverable carries no hours at all.Order linePPosition — The catalogue of job titles a project role is drawn from.PositionTTime entry — What actually happened — work time logged against a project.Time entryBBudget alert — A notice that a budget has gone off plan - spending over the planned amount, or a margin below the one that was planned. It is raised by a daily check rather than by anyone asking for it.Budget alertPProject — The core organizational unit for a business initiative, client engagement or internal work. Everything tracked — time, cost, invoicing, profitability — hangs off one.ProjectSSet-off declaration — A record that your invoices to one counterparty and its cost documents were settled against each other, in amounts that balance exactly. It lowers what remains due on the invoices; it is not a payment.Set-off declarationPProspect — A company you are working but that is not a customer yet. It sits at New, Contacted or Qualified, and everything done to it is logged against it.ProspectDDeal — A sale in progress: a customer, an amount, and the stage it has reached. It cannot exist without a customer, and its stage is never blank.Deal

Related terms