# SmartVisuals Org Chart for Power BI

> Org chart for Power BI from an employee table, zero DAX, never a broken visual. Free: search, photos, branch view. Premium: headcount and cost roll-ups.

- Page: https://www.smartvisuals.io/visuals/org-chart
- Fields and settings: https://www.smartvisuals.io/visuals/org-chart/settings
- Microsoft Marketplace: https://marketplace.microsoft.com/en-us/product/smartvisuals.smartvisuals-org-chart?tab=overview
- Package: https://www.smartvisuals.io/downloads/smartvisuals-org-chart-1.0.1.0.pbiviz
- Sample report (zipped .pbip): https://www.smartvisuals.io/samples/smartvisuals-org-chart-sample-1.0.1.0.zip
- Price: Free tier for every viewer; premium $2.99 per user per month or $29 per user per year on Microsoft Marketplace, with a 30-day free trial. Premium works in edit mode without a licence; unlicensed viewers see the free tier, never a blocked visual.
- Certified by Microsoft: no
- Version: 1.0.1.0
- GUID (visualType and publicCustomVisuals): `orgChart198BA137CFFE4E33AFF8A22A8BC151CF`

## What is free

- **A hierarchy from any employee table**: Unlimited people, any id type (numbers, codes, e-mails), multiple tops, missing managers, loops and duplicates handled and explained in a data-notes strip.
- **Branch, neighbourhood and search**: Open a branch from a click or a slicer with a breadcrumb back, see a person's managers, peers and reports on one screen, and search the whole organization ignoring accents and case, with the path highlighted.
- **Cards that carry the facts**: Photos from data URIs or initials, job title, department, extra lines, direct-report count, badges from flag columns and conditional formatting on cards.
- **Positions, vacancies and dotted lines**: Vacant positions, job shares, one person on two positions, assistants beside their manager, contractors, dotted-line managers, team cards and swimlanes by department.
- **Card actions and exports**: Open the HR profile, chat in Teams or write an e-mail from a card (https links only, on a click), a vector PDF of the chart in one page or poster tiles, and a CSV data-quality report.
- **Privacy threshold**: Hide figures and roll-ups on branches smaller than a number of people you set. A protection is never paywalled.
- **Themes, keyboard and five languages**: Four themes with their own card style, top-down or left-to-right layouts, one-tab-stop keyboard navigation, a screen-reader list view, high contrast, and English, Czech, German, Spanish and French.

## What premium adds

- **Headcount, FTE and cost roll-ups**: How many people and how much budget sit under every manager, for any bound measure, formatted with the measure's own format string.
- **Span of control and org health**: Span bands and colouring, managers of one and over-span lists, an insights strip that names the outliers, and a health panel with layers, manager ratio, vacancy rate and cost per head.
- **Plan vs actual**: Target headcount or budget against actual, with the variance on every card and the plan rolled up through the tree.
- **Snapshot comparison and history**: Joiners, leavers, moves and new titles between any two dates, attrition per branch, a headcount sparkline per manager and a timeline player.
- **Scenario planning**: Move teams by drag and drop, add and vacate positions, save named scenarios, compare them with today in headcount and cost, and export the moves as CSV.
- **Org-unit view, composition and people list**: The department tree derived from the people table with roll-ups, team composition bars by any category, and a CSV people list of the visible branch.

## Fields

| Field | Internal name | Takes | Needed | What it is for |
| --- | --- | --- | --- | --- |
| Employee ID | `employeeId` | Column | Optional | Unique id per person. Any type: numbers, codes, emails. The chart is built by matching Manager ID to this. |
| Position ID | `positionId` | Column | Optional | Optional. Builds the chart over positions: people sharing a Position ID share one card (job share), a position with no Employee ID is an open position, one person may hold several positions. |
| Manager ID | `managerId` | Column | Optional | The Employee ID of the person's manager. Blank = top of the organisation. Unknown ids are grouped under Unassigned and explained, never an error. |
| Name | `name` | Column | Optional | Card headline. |
| Job Title | `title` | Column | Optional | Second line on the card. |
| Department | `group` | Column | Optional | Colours the cards and fills the legend; shown on detailed cards. |
| Photo (Data URI) | `photo` | Column | Optional, up to 5 | A base64 data-URI column (data:image/...). Up to five columns are joined in well order for photos longer than one text value. No external image calls - the visual stays certifiable. Initials are shown when empty. |
| Email | `email` | Column | Optional | Work e-mail. Adds Chat in Teams and Email to the card actions and is searchable. Links open only on a click. |
| Profile URL | `profileUrl` | Column | Optional | An https link to the person's profile (HR system, intranet). Adds Open profile to the card actions. |
| Extra Card Lines | `lines` | Column | Optional, up to 3 | Up to two more text fields on detailed cards (location, email, cost centre). |
| Color By | `colorBy` | Column | Optional | Overrides Department as the colour key. |
| Sort Key | `sortKey` | Column | Optional | Order of reports under the same manager. Numbers sort numerically. |
| Dotted-Line Manager ID | `dottedManagerId` | Column | Optional | A secondary reporting line, drawn dashed. Does not change roll-ups. |
| Card Type | `cardType` | Column | Optional | employee (default), vacancy, assistant or contractor. Vacancies draw as open-position cards and count separately. |
| Snapshot Date | `snapshot` | Column | Optional | Bind when the table holds several snapshots of the organisation. The newest renders; with two, joiners, leavers and moves are highlighted (Premium). |
| Values | `values` | Measure | Optional, up to 4 | Numbers per person (FTE, cost, open requisitions). Shown on the card and rolled up through the tree (Premium). |
| Plan Values | `plans` | Measure | Optional, up to 4 | Targets paired with Values by position (1st plan with 1st value): plan vs actual variance on every card (Premium). |
| Composition | `composition` | Column | Optional | A category (gender, contract type, grade, location) drawn as a 100% bar of each team (Premium). |
| Badges | `badges` | Column | Optional, up to 4 | Up to four flag columns (key person, flight risk, successor ready). yes / true / 1 / x shows the badge. |
| Tooltips | `tooltips` | Measure | Optional, up to 8 | Extra fields for the tooltip. |

## Format pane

Each card is a key under `visual.objects` in a PBIR visual.json; each setting is a property of it. Toggles take `true`/`false`, choices and text a value in single quotes (`'auto'`), numbers a `D` suffix (`12D`).

### Hierarchy (`hierarchy`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Employees Whose Manager Is Missing | `orphans` | `unassigned` (Group Under "Unassigned"), `roots` (Show as Separate Trees) |
| Match IDs Ignoring Case | `caseInsensitiveIds` | On / off |
| Order Reports By | `siblingOrder` | `sortKey` (Sort Key, Then Name), `name` (Name), `data` (Data Order) |
| Levels Open by Default | `autoExpandLevels` | Number |
| Stack Teams of at Least (0 = Never) | `stackLeavesFrom` | Number |
| Stacked Team Columns | `stackColumns` | Number |
| Manager ID Holds | `managerRefersTo` | `position` (The Manager's Position ID), `employee` (The Manager's Employee ID) |
| Assistants Beside Their Manager | `assistantSlot` | On / off |
| Fold Teams of at Least (0 = Never) | `foldTeamsFrom` | Number |
| Group Siblings By | `groupBy` | `none` (Nothing), `department` (Department), `colorBy` (Color By Field) |
| Show | `viewMode` | `people` (People), `units` (Org Units (Premium)) |

### Cards (`cards`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Card Size | `density` | `compact` (Compact (Name Only)), `standard` (Standard), `detailed` (Detailed (Group and Extra Lines)) |
| Photo or Initials | `showPhotos` | On / off |
| Job Title | `showTitle` | On / off |
| Department Line (Detailed Cards) | `showGroup` | On / off |
| Extra Card Lines (Detailed Cards) | `showLines` | On / off |
| Direct Reports Count | `showDirectCount` | On / off |
| Expand / Collapse Buttons | `showExpandChips` | On / off |
| Font | `fontFamily` | `inter` (Inter), `segoe` (Segoe UI), `arial` (Arial), `georgia` (Georgia) |
| Font Size | `fontSize` | Number |
| Chip Labels | `chipLabels` | `short` (Short Field Names), `off` (Numbers Only), `full` (Full Labels) |

### Card Style (`cardStyle`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Card Fill (empty = theme) | `fillColor` | Colour |
| Border Color (empty = theme) | `borderColor` | Colour |
| Custom Shape | `customShape` | On / off |
| Corner Radius | `cornerRadius` | Number |
| Border Width | `borderWidth` | Number |
| Shadow | `shadow` | On / off |
| Name Color (empty = theme) | `nameColor` | Colour |
| Job Title Color (empty = theme) | `titleColor` | Colour |
| Detail Lines Color (empty = theme) | `detailColor` | Colour |

### Colors & Connectors (`colors`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Color Cards By | `colorMode` | `group` (Department / Color Field), `depth` (Level in the Hierarchy), `span` (Span of Control (Premium)), `none` (One Color) |
| Connector Style | `connectorStyle` | `theme` (Theme Default), `elbow` (Right Angles), `rounded` (Rounded Corners), `straight` (Straight Lines), `curved` (Curves) |
| Connector Line | `connectorDash` | `solid` (Solid), `dashed` (Dashed), `dotted` (Dotted) |
| Connector Color (empty = theme) | `connectorColor` | Colour |
| Connector Width | `connectorWidth` | Number |
| Dotted-Line Managers | `showDotted` | On / off |
| Dotted-Line Color (empty = theme) | `dottedColor` | Colour |

### Department Colors (`departmentColors`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Department Color 1 | `c0` | Colour |
| Department Color 2 | `c1` | Colour |
| Department Color 3 | `c2` | Colour |
| Department Color 4 | `c3` | Colour |
| Department Color 5 | `c4` | Colour |
| Department Color 6 | `c5` | Colour |
| Department Color 7 | `c6` | Colour |
| Department Color 8 | `c7` | Colour |
| Department Color 9 | `c8` | Colour |
| Department Color 10 | `c9` | Colour |
| Department Color 11 | `c10` | Colour |
| Department Color 12 | `c11` | Colour |
| Department Color 13 | `c12` | Colour |
| Department Color 14 | `c13` | Colour |
| Department Color 15 | `c14` | Colour |
| Department Color 16 | `c15` | Colour |
| Department Color 17 | `c16` | Colour |
| Department Color 18 | `c17` | Colour |
| Department Color 19 | `c18` | Colour |
| Department Color 20 | `c19` | Colour |
| Department Color 21 | `c20` | Colour |
| Department Color 22 | `c21` | Colour |
| Department Color 23 | `c22` | Colour |
| Department Color 24 | `c23` | Colour |
| Department Color 25 | `c24` | Colour |
| Department Color 26 | `c25` | Colour |
| Department Color 27 | `c26` | Colour |
| Department Color 28 | `c27` | Colour |
| Department Color 29 | `c28` | Colour |
| Department Color 30 | `c29` | Colour |

### Team Composition (`composition`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Composition Bar (Premium) | `showComposition` | On / off |
| Bar Covers | `compositionScope` | `team` (The Direct Team), `subtree` (Everyone Below) |

### Composition Colors (`compositionColors`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Composition Color 1 | `k0` | Colour |
| Composition Color 2 | `k1` | Colour |
| Composition Color 3 | `k2` | Colour |
| Composition Color 4 | `k3` | Colour |
| Composition Color 5 | `k4` | Colour |
| Composition Color 6 | `k5` | Colour |
| Composition Color 7 | `k6` | Colour |
| Composition Color 8 | `k7` | Colour |
| Composition Color 9 | `k8` | Colour |
| Composition Color 10 | `k9` | Colour |
| Composition Color 11 | `k10` | Colour |
| Composition Color 12 | `k11` | Colour |

### Badges (`badgeStyle`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Badge 1 Icon | `b0Icon` | `flag` (Flag), `star` (Star), `alert` (Alert), `heart` (Heart), `shield` (Shield), `clock` (Clock) |
| Badge 1 Color | `b0Color` | Colour |
| Badge 2 Icon | `b1Icon` | `flag` (Flag), `star` (Star), `alert` (Alert), `heart` (Heart), `shield` (Shield), `clock` (Clock) |
| Badge 2 Color | `b1Color` | Colour |
| Badge 3 Icon | `b2Icon` | `flag` (Flag), `star` (Star), `alert` (Alert), `heart` (Heart), `shield` (Shield), `clock` (Clock) |
| Badge 3 Color | `b2Color` | Colour |
| Badge 4 Icon | `b3Icon` | `flag` (Flag), `star` (Star), `alert` (Alert), `heart` (Heart), `shield` (Shield), `clock` (Clock) |
| Badge 4 Color | `b3Color` | Colour |
| Any Text Counts as On | `anyValue` | On / off |

### Rules (fx) (`conditional`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Card Fill | `fxFill` | Colour |
| Accent | `fxAccent` | Colour |
| Name Color | `fxName` | Colour |
| Job Title Color | `fxTitle` | Colour |
| Chip Fill | `fxChip` | Colour |

### Legend (`legend`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show Legend | `showLegend` | On / off |
| Position | `legendPosition` | `bottomLeft` (Bottom Left), `bottomRight` (Bottom Right), `topLeft` (Top Left), `topRight` (Top Right), `top` (Top Strip), `bottom` (Bottom Strip) |
| Font Size (0 = Card Font) | `legendFontSize` | Number |
| Text Color (empty = theme) | `legendColor` | Colour |

### Layout (`layout`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Direction | `orientation` | `topDown` (Top to Bottom), `leftRight` (Left to Right) |
| Space Between Cards | `gapX` | Number |
| Space Between Levels | `gapY` | Number |
| Fit to Tile When Data Changes | `fitOnLoad` | On / off |

### Navigation (`navigation`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Toolbar | `showToolbar` | On / off |
| Search Box | `showSearch` | On / off |
| Mini Map | `showMiniMap` | On / off |
| Mini Map Position | `minimapPosition` | `bottomRight` (Bottom Right), `bottomLeft` (Bottom Left), `topRight` (Top Right), `topLeft` (Top Left) |
| Breadcrumb in Branch View | `showBreadcrumb` | On / off |
| Slicer Selection Opens Branch View | `branchFromSelection` | On / off |
| Data Notes Strip | `showDiagnostics` | On / off |
| Static Export Mode (PDF / PowerPoint) | `staticExport` | On / off |
| Scenario Planning (Premium) | `showScenarios` | On / off |
| Card Actions (Profile, Teams, Email) | `cardActions` | On / off |
| Export Button (PDF, CSV) | `showExport` | On / off |
| Show as List Button | `showListButton` | On / off |

### PDF Export (`export`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Layout | `pdfMode` | `fit` (Fit to One Page), `poster` (Poster Tiles) |
| Paper Size | `paperSize` | `a4` (A4), `a3` (A3), `a1` (A1), `letter` (Letter) |
| Orientation | `paperOrientation` | `landscape` (Landscape), `portrait` (Portrait) |
| Title (empty = none) | `pdfTitle` | Text |
| Export Date Line | `pdfDate` | On / off |

### Toolbar & Strips (`chrome`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Font Size (0 = Automatic) | `chromeFontSize` | Number |
| Text Color (empty = theme) | `chromeColor` | Colour |
| Background (empty = theme) | `chromeBackground` | Colour |

### Roll-Ups & Span of Control (`analytics`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Roll-Ups on Cards (Premium) | `showRollups` | On / off |
| Total Headcount Below Each Manager | `showHeadcount` | On / off |
| Include the Manager in Roll-Ups | `includeSelf` | On / off |
| Roll Up Values As | `aggregate` | `sum` (Sum), `avg` (Average), `min` (Minimum), `max` (Maximum) |
| Open Positions Count | `showVacancies` | On / off |
| Assistants Count Toward Span | `assistantsInSpan` | On / off |
| Count Contractors in Headcount | `countContractors` | On / off |
| Plan vs Actual (Premium) | `showVariance` | On / off |
| Variance: Neutral Within +/- % | `varianceLow` | Number |
| Variance: Amber Within +/- % (Beyond = Red) | `varianceHigh` | Number |
| Above Plan Is Favourable | `higherIsGood` | On / off |
| Headcount Trend on Manager Cards (Premium) | `showHistory` | On / off |
| Health Panel Button (Premium) | `showHealthButton` | On / off |
| Hide Figures for Groups Smaller Than (0 = Off) | `privacyK` | Number |
| Span of Control: Narrow up to | `spanLow` | Number |
| Span of Control: Ideal up to | `spanIdeal` | Number |
| Span of Control: Wide up to (Above = Over) | `spanHigh` | Number |
| Insights Strip (Premium) | `showInsights` | On / off |

### Snapshot Comparison (`comparison`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Compare the Two Latest Snapshots (Premium) | `enabled` | On / off |
| Show Leavers as Ghost Cards | `showLeavers` | On / off |
| Change Summary Strip | `showSummary` | On / off |
| Show | `comparisonShow` | `all` (All People), `changed` (Changed Branches Only) |

### Theme (`theme`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Theme | `selectedTheme` | `smartvisuals` (SmartVisuals), `dark` (Dark), `clean` (Clean (White)), `slate` (Slate) |
| Background Color (empty = theme) | `bgColor` | Colour |
| Transparent Background | `transparentBg` | On / off |

### Accessibility (`accessibility`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Focus Outline Color (empty = default) | `focusColor` | Colour |
| Focus Outline Width | `focusWidth` | Number |
| Minimum Text Size | `minFontSize` | Number |
| Reduce Motion | `reduceMotion` | `system` (Follow System Setting), `always` (Always), `off` (Off (Always Animate)) |

### State (`state`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Collapsed | `collapsed` | Text |
| Expanded | `expanded` | Text |
| Focus | `focusId` | Text |
| Expand Levels | `expandLevels` | Number |
| View | `view` | Text |
| Color Keys | `colorKeys` | Text |
| Compared Snapshots | `comparePair` | Text |

### Scenarios (`scenarios`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Scenarios | `data` | Text |
| Active Scenario | `active` | Number |
