Skip to main content

Estimating: costs, markup and margin behind your quotes

Cost every line of a quote, price it with a markup, see your margin before it goes out, and turn the accepted quote into the job’s budget.

Estimating is an add-on, included in Pro and Enterprise, that an owner switches on in Settings, then Integrations & Add-ons. It adds what each line of a quote costs you, so you can see your margin before the quote goes out. It is not a separate document: your quote stays exactly as your customer sees it, and the costs sit behind it.

Your customer never sees a cost. Costs are kept apart from the quote, so they are never on the PDF, an email, the online quote, the client portal or anything sent to Xero, MYOB or QuickBooks.

Who sees costs

Owners always see costs. A team member sees them when their role has Job costs & margins at View, and changes them with Job costs & margins at Edit. Set this in Settings, then Team, then Roles and permissions. Everyone else builds and sends quotes as before and never sees a cost or a margin.

An estimator who builds your quotes needs Job costs & margins at Edit to cost them.

Cost a quote

A line with no cost counts as costing nothing, and the summary says how many lines have no cost yet. Margin is the sell price less the cost, over the sell price, ex GST. Markup is the sell price less the cost, over the cost.

  1. 1.Open a quote in the quote builder. Below Line items is Costs and margin, with every line you have quoted.
  2. 2.Type each line’s Unit cost, ex GST: what one unit costs you.
  3. 3.Type a Markup and the line’s sell price follows it. Change the sell price in the lines above instead, and the markup is worked out from it.
  4. 4.Each line shows its Cost and its Margin. The total shows the quote’s cost and margin, and the header shows the margin beside the total.
  5. 5.Save the quote. Its costs are saved with it.

The price book

Quotes, then Price book lists what each item costs you and what you sell it for, ex GST. A business that moved from ServiceM8 finds its Materials there already. Click New item to add one, or Import a price list to bring in a supplier’s list.

In the quote builder, Add from price book adds the items you tick, with how many of each, as a new category: each at its sell price, or its cost with your default markup when it has none, with its cost behind it. When lines on a quote match price book items by name or code, Fill costs from the price book takes their costs in one go.

When an item’s cost has changed in your price book since an unsent quote was costed, the quote says so, and Use the new costs updates those lines. An accepted quote never changes.

Import a supplier price list

Items are matched to your price book by code, then by name. A cost or sell price someone set by hand is never overwritten without asking: the preview lists them under Prices someone set by hand, and only the ones you tick Use the file’s price change. A price list can have up to 2,000 rows at a time.

  1. 1.Go to Quotes, then Price book, and click Import a price list.
  2. 2.Choose the supplier’s CSV file. Add the supplier’s name if the file does not have a column for it.
  3. 3.Match each column to the file’s heading. VexOp+ guesses them from the headings, and the name and the cost are needed.
  4. 4.Check the preview: new items, items updated, items already the same and rows not used, with the reason.
  5. 5.Click Import.

Assemblies

An assembly is a group of priced items you quote together, like 1 flight of stairs: stringers, treads and labour. Go to Quotes, then Assemblies, and click New assembly. Give it a name, add its items with Add item or Add from price book, each with a quantity, a unit cost and a unit sell price, then click Save assembly. An item with no sell price is sold at cost.

In the quote builder, Add an assembly adds one to the quote as a category named after it, every item at its quantity times how many you choose, with its costs behind it.

Add from price book and Add an assembly are for quotes built line by line. A quote started from a preset keeps the preset’s lines, and you can still cost them.

New estimate from a lead

On a lead, an enquiry that is not a client yet, the main action is New estimate for anyone who can see costs. It opens the quote builder for that lead with Costs and margin ready, without making a job first. Once the quote is accepted, convert it to a job as usual.

Margin floor and default markup

Go to Settings, then Invoicing & Numbering, then Estimating. Margin floor is the lowest margin a quote can go out at without approval: a quote under it waits for an approver before it is sent, whoever builds it. Leave it blank for no floor. Default markup is the markup a line takes when it has a cost and no sell price.

Owners and roles that can approve quotes and see job costs are told in the bell when a quote under your margin floor is waiting. An approver’s own quote, and their Send, never wait. An approval holds for the margin it was given at: if the costs of an approved quote go up and take it further under the floor, it waits for approval again. Owners, and roles with both Settings and Job costs & margins at Edit, can change these settings.

The job’s budget

When a costed quote is accepted, its costs become the job’s budget, and they can no longer change. An approved variation with costs adds to it, and a voided one comes off.

In the job’s Financials, Budget shows the Estimated cost, the Quoted margin, what the job has Spent so far (logged labour at your labour rate plus the job’s expenses) and the Margin so far, with the estimated cost of each category.

The Work in Progress report gains Budget columns, and Quoted vs Actual Margin shows Quoted % beside Actual %, for people who can see costs.

If Estimating is switched off

Every cost, price book item, assembly and budget is kept, but Costs and margin, the price book, assemblies, the margin floor, New estimate and the budget columns are hidden, and no quote waits for the margin floor. Switch Estimating back on and it all comes back. See the article on switching add-ons on and off.

All help guides

Need a hand with this? Talk to us