Skip to content

Building your structure

Available onEstimatorBuilder

Open Cost Codes with an estimate selected, and use Add New to build the tree.

The cost code tree with branches expanded

Drag a cost code onto another to move it underneath.

Field What it does
Code Your cost code. Sorts the list and appears on reports and orders.
Name What the cost code is called.
Parent Which cost code this sits under. Blank makes it top level.
Sorting Index Position among its siblings, when you do not want code order.
Note Anything you want to record about scope or inclusions.

Filter Structure… and Filter WBS… narrow a long tree while you work, and Keep this box open lets you add several in a row without the dialog closing each time — worth ticking when you are setting up a structure from scratch.

Drag a cost code onto another one to move it underneath it. It takes anything below it with it, and goes to the end of its new branch.

  • While you drag, the cost code under the pointer lights up if it can take it, or turns pink with the reason if it can’t — too deep, or inside itself — so you know before you let go.
  • A strip appears at the top of the tree: drop there to move it to the top level.
  • Hold it over a closed branch for a moment and the branch opens, so you can reach a place deep in the tree without letting go.

Changing Parent on the cost code itself does the same thing, and is easier when the two are far apart in a long tree. The Parent box is searchable — type part of a name or code — and greys out the places the cost code can’t go, with the reason beside each.

  • Find by name or code filters as you type and highlights the matches. Whatever a match sits under is shown greyed, so you can see where it lives. Enter jumps to the first match.
  • The tree remembers which branches you opened and closed — through saves, drags, refreshes, and closing the window. Only the branch of whatever you just saved or moved opens, so you can see the result. The expand-all and collapse-all buttons beside the search box reset it.
  • The keyboard works too: the arrow keys move around (right opens a branch, left closes it or goes up a level), Enter edits, Delete deletes, Insert adds a cost code beside the selected one and Shift+Insert adds one inside it.

Choose columns on the toolbar picks which columns the grid shows, and it remembers your choice for next time. Show all brings them all back.

Codes do most of the organising. A numeric scheme with room to grow is the usual approach:

100 Preliminaries
200 Site works
300 Concrete
310 Slab
320 Driveway and paths
400 Framing
500 Roofing
600 External cladding
700 Windows and doors
800 Services
810 Plumbing
820 Electrical
830 HVAC
900 Internal linings
1000 Fixing and joinery
1100 Wet areas
1200 Painting
1300 Floor coverings
1400 External works
1500 Final clean and handover

Leaving gaps is the whole point. Coding trades 100 apart means you can add 330 Retaining walls in three years without renumbering anything, and the order still comes out right.

Settings…, on the ⋮ menu beside the toolbar, controls the code and index SmarteBuild suggests when you add a cost code:

Setting What it does
Sorting index increments The gap it leaves between one cost code and the next. 10 gives you 10, 20, 30 — room to slot something in later without renumbering.
Link index and code Fills the Code box with the sorting index, instead of leaving it blank for you to type — and keeps it matching if you change the index or pick a different parent.
Digits in a generated code Pads that code, so 10 becomes 010 at three digits. Only used with Link index and code.

These are saved against your login, so they carry across every structure you open. Whatever it suggests is only a starting point — overtype either box before saving.

Cost codes sort by code by default. Sorting Index overrides that when you want a different order among siblings — useful if your codes came from an accounting system whose numbering does not run in build sequence.

Ordering the tree in build sequence rather than alphabetically is worth doing. An estimate that reads in the order the job happens is far easier to check for things you have missed, because a gap shows up as a stage that is not there.

A rear extension does not need the full structure. Trimmed to what the job actually has:

Code Name Parent
100 Preliminaries —
200 Site works —
300 Concrete —
310 Slab Concrete
400 Framing —
500 Roofing —
600 External cladding —
700 Windows and doors —
810 Plumbing Services
820 Electrical Services
900 Internal linings —
1000 Fixing and joinery —
1200 Painting —
1500 Final clean —

Starting from your standard template and deleting what does not apply is faster than building this from nothing, and it keeps the codes consistent with your other jobs.

Link to a price list cost code ties one of your cost codes to a cost code in a price list. It is what decides where a price list item lands when you bring it into an estimate: items filed under the linked price list code arrive under this cost code.

Pick the price list, then the code in it — the picker is the same searchable tree as the Parent box, and it opens on the code this one is already linked to, so you can see the current link before you change it. Remove the link breaks it again.

This is the quiet answer to “why did that item land there?” An item that arrives in the wrong cost code usually means the link points somewhere unexpected, not that the item is filed wrongly in the price list.

The ribbon button still reads Group Items in Cost Codes, but it opens the window now called Organise items — one column per cost code list, so you can file items into all of them from one place. See Organise Items.

You can add, rename and re-parent cost codes at any time, and the items under them follow.

The one thing to be careful about is deleting a cost code that is in use. Before it deletes anything, SmarteBuild lists everything that points at it and what will happen to each:

  • cost codes underneath move up to the top level — they are not deleted
  • estimate items under it lose their cost code. The dialog says how many jobs they’re on and how much they’re worth. They stay on those jobs, listed in the BOQ under Not in a cost code until filed again
  • invoice lines against it are deleted — shown in pink so you do not miss it
  • a cost code used by a tender, a WBS note or a to-do can’t be deleted until those are cleared, and the dialog says which

Better: pick a cost code under Move them to another cost code first? in the same dialog. The items move there and the old cost code is deleted in one step, so they’re never left without one. If you do leave them, Not in a cost code in the BOQ finds them. The delete happens all at once: if anything goes wrong part way, nothing is changed.