Building your structure
Available onEstimatorBuilder
Open Cost Codes with an estimate selected, and use Add New to build the tree.

Drag a cost code onto another to move it underneath.
The fields
Section titled “The fields”| 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.
Moving things around
Section titled “Moving things around”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.
Finding your way around a long tree
Section titled “Finding your way around a long tree”- 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.
Coding
Section titled “Coding”Codes do most of the organising. A numeric scheme with room to grow is the usual approach:
100 Preliminaries200 Site works300 Concrete310 Slab320 Driveway and paths400 Framing500 Roofing600 External cladding700 Windows and doors800 Services810 Plumbing820 Electrical830 HVAC900 Internal linings1000 Fixing and joinery1100 Wet areas1200 Painting1300 Floor coverings1400 External works1500 Final clean and handoverLeaving 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.
Letting SmarteBuild number them
Section titled “Letting SmarteBuild number them”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.
Ordering
Section titled “Ordering”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.
Worked example: the Hendricks extension
Section titled “Worked example: the Hendricks extension”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.
Linking a cost code to a price list
Section titled “Linking a cost code to a price list”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.
Group Items
Section titled “Group Items”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.
Changing the structure later
Section titled “Changing the structure later”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.
