The Work Breakdown Structure (WBS) Tree View renders your entire project as an interactive hierarchy of node cards — parent phases branch into child tasks, all connected by clean SVG lines. Switch between five display modes (Structure, Cost, EVM, Schedule, Resources) and four live overlays (Health, Risk, Blocker, Tags) to see every dimension of your project in one screen. Export to standalone HTML or PDF for stakeholder sharing.
Click the WBS tab in the view bar at the top — it sits immediately to the right of Gantt. The tree builds automatically from the active project's task structure. Switch projects via the sidebar and the WBS updates instantly.
Every WBS tree starts with a project root node at the top — a full-width card that shows rolled-up values for the entire project:
Clicking the root node opens the Project Editor modal — the same as clicking a project name in the sidebar.
DPlan derives the WBS hierarchy directly from your Gantt task structure — no separate WBS entry is needed. The mapping is:
| Gantt Element | WBS Representation |
|---|---|
| Summary / Phase task | Parent node (grey rounded card, darker header) |
| Regular task | Leaf node (standard card) |
| Milestone | Leaf node with diamond colour indicator |
| Child tasks (parentId) | Positioned below and connected to their parent |
| Top-level tasks (no parent) | Direct children of the project root node |
Tasks indented under a summary phase in the Gantt appear as branches under that phase's node in the WBS tree. The hierarchy can be unlimited levels deep.
Five modes control what data appears on each node card. Switch modes using the toolbar buttons at the top of the WBS view. Switching is instant — no data reloads.
Shows the clean breakdown with no numeric data — ideal for planning reviews and stakeholder walkthroughs where cost or EVM data would be distracting.
Adds budget and cost data to every node. Parent nodes show rolled-up totals from all their descendants.
Full Earned Value Management overlay — the most information-dense mode. Computed from task dates, progress %, and costs against today's date.
| Metric | Formula | Meaning |
|---|---|---|
| PV | Budget × time elapsed | Planned Value — what should be done by today |
| EV | Budget × progress% | Earned Value — value of work completed |
| AC | Actual cost entered | Actual Cost spent so far |
| SPI | EV ÷ PV | Schedule Performance Index (1.0 = on schedule) |
| CPI | EV ÷ AC | Cost Performance Index (1.0 = on budget) |
| EAC | Budget ÷ CPI | Estimate at Completion — projected final cost |
| VAC | Budget − EAC | Variance at Completion — projected over/under |
SPI and CPI badges are colour-coded: green ≥ 0.95, amber 0.8–0.94, red < 0.8. Parent nodes aggregate all descendant EVM values.
Focuses on timeline data per task:
Shows the human and equipment layer of each task:
Overlays add a visual layer on top of any mode — they do not change the mode's data, they add colour-coded signals. Enable/disable each overlay independently using the toggle buttons in the toolbar. Multiple overlays can be active simultaneously.
Adds a coloured left-border strip to each node based on its health status. Health is derived automatically from task data:
| Health | Border Colour | Condition |
|---|---|---|
| 🟢 On Track | Green (#22c55e) | Progress ≥ expected, not overdue, no blockers |
| 🟡 At Risk | Amber (#eab308) | Progress slightly behind, or approaching deadline |
| 🔴 Behind | Red (#ef4444) | Overdue, or significantly behind expected progress |
| ⚫ On Hold | Dark grey | Status = on-hold or cancelled |
| ✅ Complete | Teal (#14b8a6) | Progress = 100% |
Parent nodes inherit the worst health of all their descendants — if any child is Behind, the parent shows Behind.
Shows a ⚠ badge on any node that has a linked risk with score ≥ 4 (Moderate or Critical) in the Risk Register. The badge is red-pulsing when a smart trigger is firing. Requires Risk Register to be enabled in Settings.
Clicking a risk badge on a WBS node navigates directly to the Risk Register with that task's risks visible.
Shows a 🔴 pulsing dot on any node that has at least one unresolved blocker comment. A blocker is a task comment flagged with the 🔴 checkbox in the Task Editor. The dot pulses to draw attention during project reviews. Clicking a blocker dot opens the Task Editor for that task.
Blocker count also feeds the Issue Log — any blocker comment automatically appears in the Issue Log view as a read-only "Blocker Comment" issue card.
Renders all tags assigned to each task as small coloured chips on the node card. Uses the same colours as in the Gantt task list. Useful for confirming tag coverage across the entire WBS at a glance — gaps (untagged tasks) are immediately visible.
The WBS canvas supports free-form navigation for large project trees:
| Action | How |
|---|---|
| Pan | Click and drag on empty canvas space |
| Zoom in | Scroll up / pinch-out (trackpad) |
| Zoom out | Scroll down / pinch-in (trackpad) |
| Reset zoom | Click Reset button in toolbar |
| Fit to screen | Click Fit button in toolbar (centres tree at readable zoom) |
The tree re-centres automatically when you switch projects or modes. Zoom state is not persisted — it resets on project switch.
SVG connector lines link parent nodes to their children using smooth orthogonal paths:
Every WBS node is interactive:
Click WBS HTML in the Export ribbon (or the WBS toolbar). A self-contained HTML file downloads immediately — no server, no dependency on DPlan being open.
The exported file:
[ProjectName]_WBS_[Date].htmlClick WBS PDF in the Export ribbon. DPlan switches to the WBS view (if not already there) and after a brief render delay triggers the browser print dialog. Select Save as PDF in the print dialog. For best results, choose Landscape orientation and set margins to Minimum or None.
Alternatively, use the Print / PDF button inside the exported standalone HTML file, which auto-scales the tree to fit the page before printing — often producing better results than printing directly from DPlan.
| Button | Function |
|---|---|
| Structure / Cost / EVM / Schedule / Resources | Switch display mode |
| Health / Risk / Blocker / Tags | Toggle overlays on/off (multiple can be active) |
| Fit | Scale and centre the tree to fill the canvas |
| Reset | Return to 100% zoom, centred |
| WBS HTML (Export ribbon) | Download standalone HTML snapshot |
| WBS PDF (Export ribbon) | Print/save as PDF |
requestAnimationFrame delay to ensure DOM layout is complete before measuring positions.transform: scale() translate() — no re-render on each frame, only on mode changes.The WBS Tree View reads directly from project.tasks[] in localStorage — the same data as the Gantt. No separate WBS data structure exists. Any task you add, edit, or delete in the Gantt is immediately reflected when you switch to the WBS view. The two views are always in sync.
See also: Gantt View, Earned Value (EVM), Risk Register, Issue Log, Tags, Comments & Blockers.