# SmartVisuals Process Metro Map for Power BI

> Power BI visual that draws a process as a metro line: traffic as line width, drop-off at every stage, and with Premium leg times, late legs and comparison.

- Page: https://www.smartvisuals.io/visuals/metro-map
- Fields and settings: https://www.smartvisuals.io/visuals/metro-map/settings
- Microsoft Marketplace: https://marketplace.microsoft.com/en-us/product/smartvisuals.smartvisuals-metro-map?tab=overview
- Package: https://www.smartvisuals.io/downloads/smartvisuals-metro-map-1.0.0.0.pbiviz
- Sample report (zipped .pbip): https://www.smartvisuals.io/samples/smartvisuals-metro-map-sample-1.0.0.0.zip
- Price: Free tier for every viewer; premium $1.99 per user per month or $19 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.0.0
- GUID (visualType and publicCustomVisuals): `metroMap46DA0FE8892C461FBB9D31EF17BE2CF7`

## What is free

- **One funnel of up to six stages**: Bind a Stage and a Traffic measure; Stage Order sets the order, otherwise stations order by traffic.
- **Drop-offs and entries at every gap**: The line narrows as traffic leaves. Every drop-off leaves the line as an exit with its count and share; traffic that joins mid-way joins as an entry.
- **Labels at every station**: Traffic, share of start, share of previous station, or two together. Stations can be numbered.
- **Four themes, every colour, boardroom mode**: SmartVisuals, Dark, Clean and Slate, every colour yours, a per-line colour that accepts conditional formatting (fx), moving trains for wall screens and a boardroom mode that shows the same numbers as a plain table.
- **Readable at any size**: Horizontal, vertical or automatic. A small tile angles the names, then shows every other one, then drops values, before anything overlaps or is cut. A minimum text size can be set.
- **Built for real reports**: Click a station to cross-filter, click a line to filter the line, Ctrl+click for several, right-click for the context menu. Highlights from other visuals draw as a bright core inside each line. Tooltips on every station and leg, plus your own tooltip measures.
- **Accessible, in every tier**: One tab stop, arrow keys from station to station, a screen-reader table, Windows high contrast with a stripe pattern per line, and reduced motion honoured or forced.
- **No watermark, no time limit**: The free map is a finished visual. Nothing leaves your report: no network calls, no tracking, no external fonts.

## What premium adds

- **Leg times**: Bind Time From Previous Stage and every leg carries its time in days, hours, minutes, weeks or months; the end-to-end time is in the last station's tooltip.
- **Target Time (SLA)**: Legs over their target get a clock and the overrun, a dashed works-zone outline and a line in the insight sentence. Never colour alone.
- **Time heat**: Every leg coloured by its time against the median leg, from quicker to slower, no target needed. The badges keep the numbers.
- **Comparison Volume**: Last quarter, last year or plan. The change shows at every station with an arrow, the comparison width runs as a casing behind each line, and the insight names the leg whose conversion moved most.
- **The insight sentence**: How many reach the end, the biggest drop, the slowest leg, how many legs ran late and the biggest change. Computed offline in your report's number format.
- **Real processes**: More than six stages, and several lines. Bind a Line field and each value becomes a metro line; shared stages become interchanges, a branch leaves the main line and rejoins it, an express line bypasses the stations it skips.

## Fields

| Field | Internal name | Takes | Needed | What it is for |
| --- | --- | --- | --- | --- |
| Stage (Station) | `stage` | Column | Optional | The stage name. Every stage is a station; a stage that several lines share becomes an interchange. Up to 6 stages are free; more are a Premium feature. |
| Stage Order | `step` | Column | Optional | Optional number or sortable text that orders the stages. Without it, stations order by traffic, largest first. |
| Line (Path) | `line` | Column | Optional | Optional: which path a row belongs to (channel, product, route). Each value is a metro line. Several lines are a Premium feature. |
| Traffic (Volume) | `volume` | Measure | Optional | How many reached the stage: orders, candidates, tickets. Sets the line width. |
| Time From Previous Stage | `duration` | Measure | Optional | Premium: average (or median) time it took to get here from the previous station. Shown on the leg, with end-to-end time and time heat. |
| Target Time | `target` | Measure | Optional | Premium: the time a leg should take. Legs over it are flagged as late. |
| Comparison Volume | `compare` | Measure | Optional | Premium: the same traffic for a comparison period (last quarter, last year, plan). |
| Tooltips | `tooltips` | Measure | Optional, up to 8 | Extra measures shown in 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`).

### Theme (`theme`)

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

### Layout (`layout`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Style | `style` | `metro` (Metro map), `boardroom` (Plain table (boardroom mode)) |
| Orientation | `orientation` | `auto` (Auto), `horizontal` (Horizontal), `vertical` (Vertical) |
| Line Width | `widthMode` | `tapered` (Tapered (narrows as traffic leaves)), `uniform` (Uniform per leg) |
| Thinnest Line (px) | `minLineWidth` | Number |
| Thickest Line (px, 0 = Auto) | `maxLineWidth` | Number |
| Station Size (%) | `markerSize` | Number |
| Numbers | `numberDisplay` | `compact` (Compact (4.1K)), `full` (Full (4,120)) |

### Lines (`lines`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Color | `color` | Colour |

### Stations (`stations`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show Names | `showNames` | On / off |
| Name Size | `nameSize` | Number |
| Name Color | `nameColor` | Colour |
| Angled Names | `rotation` | `auto` (When crowded), `never` (Never), `always` (Always) |
| Show Values | `showValues` | On / off |
| Values | `valueContent` | `volumeShare` (Traffic and share of start), `volume` (Traffic), `share` (Share of start), `conversion` (Share of previous station), `volumeConversion` (Traffic and share of previous) |
| Value Size | `valueSize` | Number |
| Value Color | `valueColor` | Colour |
| Number The Stations | `stepNumbers` | On / off |

### Drop-offs (`dropoffs`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show Exits | `show` | On / off |
| Show Exit Labels | `showLabels` | On / off |
| Exit Label | `labelContent` | `countShare` (Count and share), `count` (Count), `share` (Share) |
| Label Color | `color` | Colour |

### Leg Times (`times`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show Leg Times | `show` | On / off |
| Time Unit | `unit` | `days` (Days), `hours` (Hours), `minutes` (Minutes), `weeks` (Weeks), `months` (Months), `none` (Use the measure's format) |
| Decimals | `decimals` | `auto` (Auto), `0`, `1`, `2` |
| Badge Size | `size` | Number |
| Late Leg Color | `lateColor` | Colour |
| Time Heat: Premium: colours every leg by its time against the median leg, from quicker to slower. No target needed; the badges keep the numbers. | `heat` | On / off |

### Comparison (`comparison`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show Change At Stations | `showDeltas` | On / off |
| Show Comparison Width | `showGhost` | On / off |
| More Traffic Is | `increaseIs` | `good` (Good), `bad` (Bad) |

### Insight Strip (`insights`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show Insights: Premium: one sentence on top of the map - how many reach the end, the biggest drop, the slowest leg, late legs and the biggest change. | `show` | On / off |
| Position | `position` | `top` (Top), `bottom` (Bottom) |
| Text Size | `size` | Number |

### Legend (`legend`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show Legend | `show` | On / off |
| Position | `position` | `top` (Top), `bottom` (Bottom) |
| Text Size | `fontSize` | Number |

### Animation (`animation`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Draw In On Load | `intro` | On / off |
| Moving Trains | `trains` | On / off |
| Train Speed (%) | `trainSpeed` | Number |

### Accessibility (`accessibility`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Reduce Motion: No draw-in and no moving trains: the final map only. Follow system setting honours the viewer's reduced-motion preference. | `reduceMotion` | `system` (Follow system setting), `always` (Always reduce), `off` (Off (always animate)) |
| Focus Outline Color: Colour of the keyboard focus outline. Empty follows the theme; high contrast always uses the system colour. | `focusColor` | Colour |
| Focus Outline Width (px): Width of the keyboard focus outline around the focused station. | `focusWidth` | Number |
| Minimum Text Size (px, 0 = Off): No label is drawn smaller than this. When the tile is too small, labels are left out (the tooltip, keyboard and table still have them) rather than shrunk. | `minFontSize` | Number |
| Line Patterns: Gives every line its own stripe pattern so lines are told apart without colour. Bullets and names always identify lines too. | `linePatterns` | `auto` (In high contrast), `always` (Always), `off` (Off) |
