Import your WBS from Excel

5 min read · Updated 11 May 2026

Upload an Excel sheet that mirrors the 4-level WBS (Location → Sub-Location → Discipline → Activity) and WBSync builds the tree, the cost codes and the dashboard rows in one pass.

The four levels, in plain English

A WBS is just a hierarchy. WBSync uses four levels because that's what every electrical, mechanical and civil project we've worked on ended up using once they stopped fighting the tool:

L1 Location Building, plot, area L2 Sub-Location Floor, room, zone L3 Discipline Electrical, MEP, civil L4 Activity Pull cable, terminate Hours are logged at L4 — everything above rolls up automatically. Each L4 row has a cost code, budget hours, and a unit of measure.

Use the template (recommended)

Download WBSync_WBS_Template.xlsx from the dashboard banner. It has 6 columns and a few worked examples on the first 10 rows you can delete once you've replaced them.

Column reference

  • Location — top of the tree. Examples: Block A, Plot 17, Substation.
  • Sub-Location — children of Location. Examples: Level 02, Plant Room.
  • Discipline — what trade is doing this work. Free-text but be consistent: Electrical, HVAC, Containment.
  • Activity — the actual task at L4. Examples: Pull 4c+E 16mm SWA, Terminate XLPE.
  • Cost code — your accounting code (e.g. EL-01-002). One per L4 row.
  • Budget hours — the labour budget for this activity (number of man-hours).
The most common mistake. Leaving the Location/Sub-Location column blank because "it's the same as the row above". Excel doesn't know that — fill it in on every row, or use the template's "Fill down" macro.

Step by step

1
Open the project you want to load

From the dashboard, click into a project then choose WBS → Import. If you don't have a project yet, create one — name, currency, contract value, start/end dates.

2
Drop the file on the importer

Drag-and-drop or pick from your machine. We parse the first sheet by default; if the sheet you want is called something else, pick it from the dropdown.

3
Preview the tree

WBSync shows the parsed hierarchy, the cost codes it'll create and any rows that look wrong (missing cost code, zero budget hours, duplicate activity). Nothing is saved yet — you can cancel and re-upload.

4
Click Import

The tree is built, cost codes are created, the dashboard tile lights up. Importing 500 rows takes about 4 seconds.

Edit after import

The WBS is fully editable once imported — rename activities, move them between Sub-Locations, change budgets. Hours that have already been booked travel with their activity. You can also re-import: WBSync matches existing rows by cost code, updates budgets and adds new rows. Hours on rows that were deleted from the spreadsheet are preserved on a hidden "Archive" node — nothing is lost.

Pro tip. Start narrow. Import 30–50 activities for one floor first, log a week of hours, then expand. The shape of the tree is easier to refine when there's real data hanging off it.

What next?

With your tree in place, start collecting hours. Log crew hours →

Frequently asked

What if my project doesn't fit the 4-level model?

You can use fewer levels — just leave the column blank and we'll collapse the tree. Five levels and above aren't supported; the workaround is to fold the deepest level into the Activity name.

Can I re-import after I've started logging hours?

Yes. We match existing rows by cost code, update budgets, and add new rows. Hours on deleted rows are preserved on a hidden Archive node so nothing is lost.

What units of measure are supported for activities?

Hours, metres, items, m², m³, kg, t — the unit is per-activity and used by the % complete drill-down. Hours is the default if you leave the column blank.

Can I edit budget hours after import?

Yes — directly on the WBS page, or via re-import. Edits are version-tracked in the audit log so you have a paper trail for client variations.

Where do cost codes need to be unique?

Within a project. Two projects can reuse the same cost code without colliding.

Related