Estimating is where you price a job. You build an estimate line by line (or import it), set your markup, and once it’s approved it becomes the source of two important things: the contract price you put in front of the client, and the budget you track costs against in Job Cost. This guide covers building estimates, composites, importing, linking to takeoff, separable portions, specifications, and the approve-then-budget flow.
Cost codes first. Every included or allowance line that you want carried into the budget needs a cost code. If your codes aren’t set up yet, do that before you estimate (see Jobs & Job Cost).
How estimates work
- A job can have multiple estimates — each is a version (revision), so you can price options or re-estimate as the design firms up.
- An estimate moves through Draft → Submitted → Approved, and can also be Rejected or Archived.
- Only one estimate per job can be Approved at a time. Approving a new one archives the previously approved estimate.
- An Approved estimate is locked — you can’t change its line items. This protects the budget and contract price that depend on it. You can un-approve to edit again, with two caveats (below).
Builder cost vs. contract price
Every line carries two numbers:
- Builder cost — what it costs you to do the work (the sum of material, labour, subcontractor, equipment and other costs × quantity). This is what becomes your budget.
- Contract price — builder cost plus markup. This is what the client pays.
The difference, captured when you approve, is your markup — and that’s the margin tracked separately from the budget in Job Cost.
Creating an estimate
- Open the job and go to Estimating, or start from the Estimating dashboard / Manage estimates.
- Create estimate. Give it a name (e.g. “Initial Estimate”). You can optionally copy from an existing estimate to start a new revision from a previous one.
- Choose the cost code set that populates the cost code dropdown for this estimate, and decide whether to enable separable portions (see below).
You’re then taken into the estimate sheet to start pricing.
The detailed estimate sheet
The detailed estimate sheet is an Excel-like grid for pricing the job. Each row is a line item with:
- Cost code — picked from the dropdown (your cost code set).
- Specification status — Included, Excluded, Allowance, or Note only. This controls whether the line is part of the priced works, carried as an allowance, or just descriptive.
- Allowance kind — when a line is an Allowance, mark it Prime Cost or Provisional Sum.
- Description, quantity and unit (lm, m², m³, ea, etc.).
- Costs per unit — split across material, labour, subcontractor, equipment and other.
- Calculation — you can enter a formula to work out quantities, like a spreadsheet.
- Markup % — a per-line markup that overrides the estimate-wide default.
As you fill in costs and quantities, the sheet calculates the line’s builder cost and contract price for you, and rolls them up to estimate totals.
Markup
Set a global markup percentage for the whole estimate, then override it on individual lines where you need a different margin. The estimate total contract price reflects both.
Composite items
A composite item is an assembly — a parent row made up of several child lines (for example a “Waffle pod slab” composite containing pods, mesh, concrete, pumping and labour, or an “FC clad timber stud wall” composite containing studs, top and bottom plates, FC sheet, fixings and labour). Child rows can scale with the parent quantity or stay fixed.
- Build a composite on the sheet and add its child lines.
- Save a composite to the composite library to reuse it across estimates.
- Manage your reusable composites in the composite library manager.
This lets you price repeatable scopes consistently instead of rebuilding them each time.
Pricing from vendor quotes
If you’ve run an RFQ and received vendor quotes (see Purchasing), you can apply a vendor quote line to an estimate line to drop the quoted rate straight onto your estimate, keeping a record of where the price came from.
The Price Library
A price library is a catalogue of priced lines you can build estimates from — your own rate schedule, a supplier’s catalogue, or a set of rates harvested from what you’ve actually paid. Libraries live at Settings → Price Libraries and are shared across the company.
Setting one up
A library has a name, a type — Internal (your own rates), Supplier (linked to a vendor), or Imported — an optional location (handy when your Brisbane and Gold Coast rates differ), an effective date and a status.
Each item carries:
- Description, SKU / item code, category and sub-category
- Unit —
m²,lm,ea,kg, whatever you work in - Five separate rates, ex GST — Material, Labour, Subcontractor, Equipment and Other. Splitting them means a line can carry supply and install separately, and the total rate is just the sum.
- Min order qty and qty increment — for things that come in packs
- Rate as at — the date that rate was true. This is what tells you a price is going stale.
- An optional default cost code
Importing a price list
Import on a library walks you through four steps: Upload → Match → Review → Import.
Upload takes CSV, TSV, Excel or PDF. A PDF goes through OCR, so a supplier’s printed or scanned price list works as well as a spreadsheet — a long one shows its progress as it’s read.
Match is where you tell CortexPM what each column is. It pre-suggests from the headers; you correct what it got wrong. Description and Unit are required, plus at least one rate column. If the price column looks GST-inclusive you’ll see a GST will be stripped badge — rates are always stored ex GST.
Review shows the mapped rows with anything doubtful flagged. Drop the flagged rows in one go, or skip any rows sitting above the header row, then Import.
Choose whether existing items get updated or only new ones added. Existing items match on SKU first, then description plus unit. An update never overwrites a cost code you’ve mapped.
Watch out: the ceiling is 25,000 rows per file. A bigger catalogue needs splitting.
Keeping rates current
Adjust prices applies a percentage to every rate on the items you’ve ticked — 5 for
5% up, -2.5 for 2.5% down — and restamps the rate as at date. It only touches ticked
items, so you can lift one category without disturbing the rest.
The better move is to harvest real rates. When you receive a supplier invoice, tick Harvest this invoice’s line items into the Price Library as paid rates on the OCR review screen and you’ll get a row-by-row confirmation before anything is written. You can also push a purchase order’s actual prices back into the library — see Purchasing.
Tip: harvesting is the difference between a price library that drifts out of date and one that tells you what things cost this month.
Using it on an estimate
On the estimate sheet, Add → Add From Price Library opens a search across every active library — type at least two characters, search hits description and SKU, tick what you want and Add to Estimate. Composite children can be pulled the same way from the composite library manager.
The important bit: the rate is copied onto the estimate line at the moment you add it. Adjust the library afterwards — bulk change, re-import, harvest — and existing estimate lines don’t move. Your priced job stays as you priced it. The line keeps a link back to the library item, so you can see where a rate came from.
Importing and exporting line items
For larger estimates, work in Excel and import:
- Download the estimate template — an Excel file with the right columns and dropdowns for Specification status and Type.
- Fill in your lines. Cost code can be left blank and selected later in the sheet if you
prefer. If your cost code column reads like
380 - Concrete Foundations, the number is taken as the code and the rest as its name; a cell with no leading number is reported back to you rather than guessed at. - Upload the file. CortexPM creates the line items. If one row has a problem, it’s skipped and reported — it won’t abort the whole import.
Watch out: you can’t import into an approved (locked) estimate. Unlock it first.
You can also export the estimate to PDF for your own records.
Linking to takeoff
If you’ve measured quantities in Takeoff (see Takeoff), estimate lines can be tied to takeoff items so their quantities stay accurate:
- Check takeoff sync tells you how many estimate lines have quantities that no longer match their linked takeoff measurements.
- Update takeoff quantities pulls the latest measured quantities onto those lines, so a change on the drawings flows through to your pricing without retyping.
Allowances and what happens downstream
Marking a line as an Allowance and picking Prime Cost or Provisional Sum does more than label it. It sets up a chain that runs through the contract, the client’s selections and the final account.
- Prime Cost (PC) — a supply item. Tapware, appliances, floor coverings.
- Provisional Sum (PS) — supply and install. Landscaping, driveways.
Both are cost assumptions carried in the contract sum and reconciled against actual later.
Excess margin %. On an allowance line you can set an Excess Margin % — the margin you charge on any amount over the allowance. Leave it blank and the line’s own markup % is used, which is what most people want. Set it when a particular allowance warrants different treatment.
How it plays out: if the client’s selection comes in over the allowance, they pay the excess plus that margin. Under, and the saving is credited to them in full — you don’t take margin off a credit. If the choice matches the allowance exactly, there’s nothing to adjust.
What flows from here: the contract carries an Allowance Schedule, client selections get drafted from the allowances automatically, and the difference is booked through an Allowance Adjustment when the client chooses. See Contracts for the allowance register and CRM & Client Selections for the selection side.
Watch out: a specification is a snapshot. Change a markup or excess margin on the estimate afterwards and you need to Rebuild from estimate for the specification to match.
Separable portions
Enable separable portions on an estimate to split it into stages or portions (e.g. separable portions under the contract, or build stages). Line items and budgets can then be assigned to a portion, and costs, claims and reporting can be tracked per portion. Turn this on when the contract or program is structured in stages.
Specifications
A specification is the written scope document you put in front of a client — what’s included, excluded, allowances and notes — generated from your estimate.
Generating a specification
- From the estimate, open the specification wizard.
- The wizard maps your estimate line items into specification items, each classified as a Heading, Included, Excluded, Note, Allowance or Narrative.
- Review and generate. The specification is created with sections and clauses you can then refine.
Editing and structuring
- Add, edit and reorder sections to organise the document.
- Add clauses within sections for the detailed wording.
- Allowances (Prime Cost / Provisional Sum) and schedules carry through from the estimate.
The specification lifecycle
A specification moves through Draft → Generated → Submitted to client → Approved, and can be Superseded when you issue a revised version.
- Submit sends it for client review.
- Approve / accept records the client’s acceptance.
- Supersede replaces it with a newer version while keeping the history.
- Export the specification or a proposal PDF to send to the client.
Approving an estimate and creating the budget
This is the step that connects estimating to the rest of CortexPM.
- When the estimate is final, approve it. It locks, and any previously approved estimate for the job is archived.
- Choose Create budget from estimate. CortexPM aggregates the estimate’s builder costs by cost code and writes them as the job’s budget lines (see Jobs & Job Cost).
Remember: the budget is builder cost only — markup is excluded and tracked separately. Every included/allowance line must have a cost code, or CortexPM will list the lines that are missing one and stop until you fix them.
Un-approving
If you need to change an approved estimate, un-approve it to unlock editing. Two things to know:
- You cannot un-approve once the job has a head contract — contracts are created from the estimate, so it’s frozen at that point.
- If a budget has already been created from the estimate, un-approving and re-editing can affect your job cost figures. Re-run Create budget from estimate afterwards to bring the budget back into line, and check it.
Where to next
Estimates are most accurate when their quantities come straight off the drawings — see Takeoff. Once your estimate is approved and the budget is created, move on to Purchasing to start committing costs, or Contracts to formalise the head contract.