# SmartVisuals Split-Flap Board for Power BI

> A free split-flap departure board for Power BI: real flip animation, only changed characters flip on refresh, status lamps, auto-paging and a live clock.

- Page: https://www.smartvisuals.io/visuals/split-flap
- Fields and settings: https://www.smartvisuals.io/visuals/split-flap/settings
- Microsoft Marketplace: https://marketplace.microsoft.com/en-us/product/smartvisuals.smartvisuals-split-flap?tab=overview
- Package: https://www.smartvisuals.io/downloads/smartvisuals-split-flap-1.0.2.0.pbiviz
- Sample report (zipped .pbip): https://www.smartvisuals.io/samples/smartvisuals-split-flap-sample-1.0.2.0.zip
- Price: Free, every feature, no licence.
- Certified by Microsoft: no
- Version: 1.0.2.0
- GUID (visualType and publicCustomVisuals): `splitFlapBoardB7A58C9F7EBB4557ACA009E07D64B986`

## What is free

- **Real split-flap mechanics**: Per-character drums that only turn forward, digit drums for times and numbers, and a cascade you choose: sweep, curtain, row by row, scattered or all at once.
- **Only what changed flips**: A data refresh turns just the characters that moved; resizing or switching the theme never re-flips the board.
- **Status lamps and status measures**: On track, Watch, Problem and Done from editable word lists or a DAX measure with codes, ranges and thresholds, each with a lamp of its own shape.
- **Made for wall screens**: Auto-paging with page indicator and progress bar, a live clock in the viewer's zone, UTC or one of 20 cities, crisp at 4K and an OLED burn-in guard.
- **Three layouts and a boardroom table**: Departure board, word-wrapped message board and KPI tiles, plus a plain table style that shows the same data with no motion.
- **Four themes, every colour yours**: Teal terminal, classic black airport board, gallery white and blue station board; {green}, {red} or {yellow} in the text makes a solid colour flap.
- **Built for real reports**: Cross-filtering, tooltips with every field, one keyboard tab stop, a screen-reader table, high contrast and reduced motion.

## Fields

| Field | Internal name | Takes | Needed | What it is for |
| --- | --- | --- | --- | --- |
| Time | `time` | Column | Optional | Departure or due time (a date/time or text column). Shown on a digits drum. |
| Destination / Item | `primary` | Column | Optional | The main text of each row: destination, order, line, product. |
| Details | `details` | Column | Optional, up to 6 | More text columns in board order: carrier, dock, gate, platform, shift. |
| Numbers | `numbers` | Measure | Optional, up to 6 | Measures shown as columns (quantity, OEE, minutes late). In KPI tiles the first one is the big value. |
| Status | `status` | Column | Optional | Status text. Words such as On time, Delayed, Cancelled, Departed colour the row and light a lamp with its own shape. |
| Status Measure | `statusValue` | Measure | Optional | A measure that decides the status: text such as On time or Delayed, or a code (1, 0, -1, 2) mapped in the Status card. With a Status column too, the column is shown and the measure decides the colour. |
| Tooltips | `tooltips` | Measure | Optional, up to 8 | Extra measures shown in the tooltip. |
| Row ID | `rowId` | Column | Optional | Optional, not shown: a key such as a shipment number that keeps two otherwise identical rows apart. |

## 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 |
| --- | --- | --- |
| Layout | `layout` | `board` (Departure board), `message` (Message / headline), `tiles` (KPI tiles) |
| Style | `style` | `flap` (Split-flap), `plain` (Plain table (boardroom mode)) |
| Rows Per Page (0 = Fill) | `rowsPerPage` | Number |
| Characters Per Line | `messageColumns` | Number |
| Lines | `messageLines` | Number |
| Tiles Per Page (0 = Auto) | `tilesPerPage` | Number |
| Largest Flap Height (px, 0 = Fit) | `maxCharHeight` | Number |
| Letter Case | `letterCase` | `upper` (UPPER CASE (authentic)), `asis` (As in the data) |
| Accented Letters | `accents` | `keep` (Keep (Č, Ö, Ł, É)), `fold` (Fold to A to Z) |
| Flap Font | `font` | `barlow` (Barlow Condensed (built in)), `segoe` (Segoe UI), `arial` (Arial), `mono` (Monospace) |
| Character Size (%) | `charScale` | Number |
| Show Hinge Line | `showHinge` | On / off |

### Flip Animation (`animation`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Animate Flips | `animate` | On / off |
| Flaps Per Second | `speed` | Number |
| Drum Travel | `travel` | `full` (Full drum (authentic)), `short` (Last few flaps), `direct` (One flap) |
| Cascade | `cascade` | `sweep` (Sweep across the board), `curtain` (Curtain (edges to centre)), `rows` (Row by row), `random` (Scattered), `together` (All at once) |
| Cascade Spacing (ms) | `stagger` | Number |
| Flip In On Load | `introFlip` | On / off |

### Paging (`paging`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Page Automatically | `autoPage` | On / off |
| Seconds Per Page | `seconds` | Number |
| Show Page Indicator | `showIndicator` | On / off |
| Indicator Size (%) | `indicatorSize` | Number |
| Pause On Hover | `pauseOnHover` | On / off |
| Burn-In Guard (Shift 1 px) | `pixelShift` | On / off |

### Header (`header`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show Header | `show` | On / off |
| Title | `title` | Text |
| Icon | `icon` | `departures` (Departures), `arrivals` (Arrivals), `truck` (Truck), `train` (Train), `factory` (Factory), `clock` (Clock), `none` (None) |
| Title Size (%) | `titleSize` | Number |
| Title Color | `titleColor` | Colour |
| Show Clock | `showClock` | On / off |
| Clock Format | `clockFormat` | `24` (24-hour (14:05)), `12` (12-hour (2:05 PM)) |
| Clock Time Zone | `clockZone` | `local` (Viewer's device), `utc` (UTC), `Europe/London` (London), `Europe/Paris` (Paris), `Europe/Berlin` (Berlin), `Europe/Prague` (Prague), `Europe/Warsaw` (Warsaw), `Europe/Helsinki` (Helsinki), `Europe/Istanbul` (Istanbul), `Asia/Dubai` (Dubai), `Asia/Kolkata` (Mumbai / Delhi), `Asia/Singapore` (Singapore), `Asia/Shanghai` (Shanghai), `Asia/Tokyo` (Tokyo), `Australia/Sydney` (Sydney), `Pacific/Auckland` (Auckland), `Africa/Johannesburg` (Johannesburg), `America/Sao_Paulo` (São Paulo), `America/New_York` (New York), `America/Chicago` (Chicago), `America/Denver` (Denver), `America/Los_Angeles` (Los Angeles) |
| Show Date | `showDate` | On / off |
| Date Size (%) | `dateSize` | Number |

### Column Headings (`headings`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show Column Headings | `show` | On / off |
| Heading Size (%) | `size` | Number |

### Columns (`columns`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Heading | `heading` | Text |
| Width In Characters (0 = Auto) | `width` | Number |
| Alignment | `align` | `auto` (Auto), `left` (Left), `center` (Center), `right` (Right) |
| Show Column | `show` | On / off |

### Dates And Numbers (`values`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Date/Time Format | `timeFormat` | `auto` (Auto), `HH:mm` (14:05), `h:mm a` (2:05 PM), `dd MMM` (27 SEP), `EEE HH:mm` (SAT 14:05), `dd MMM HH:mm` (27 SEP 14:05), `yyyy-MM-dd` (2026-09-27) |
| Numbers | `numberDisplay` | `full` (Full (1,240)), `compact` (Compact (1.2K)) |

### Status (`status`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show Status Lamps | `showLamps` | On / off |
| Color | `colorMode` | `word` (The status word), `row` (The whole row), `lamp` (Lamp only) |
| On Track Color | `goodColor` | Colour |
| On Track Words | `goodWords` | Text |
| On Track Codes | `goodCodes` | Text |
| On Track Code Shows As | `goodLabel` | Text |
| Watch Color | `watchColor` | Colour |
| Watch Words | `watchWords` | Text |
| Watch Codes | `watchCodes` | Text |
| Watch Code Shows As | `watchLabel` | Text |
| Problem Color | `problemColor` | Colour |
| Problem Words | `problemWords` | Text |
| Problem Codes | `problemCodes` | Text |
| Problem Code Shows As | `problemLabel` | Text |
| Done Color | `doneColor` | Colour |
| Done Words | `doneWords` | Text |
| Done Codes | `doneCodes` | Text |
| Done Code Shows As | `doneLabel` | Text |

### Board Colors (`colors`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Housing | `housing` | Colour |
| Flap | `flap` | Colour |
| Characters | `ink` | Colour |
| Printed Labels (Headings, Date, Page) | `labels` | Colour |
| Hinge Line | `hinge` | Colour |
| Flap Edge | `flapEdge` | Colour |
| Lamp Socket | `socket` | Colour |
| Unlit Lamp | `lampOff` | Colour |
| Accent (Rule, Progress) | `accent` | Colour |
| Module Shadow | `shadow` | On / off |
| Orange Rule Under The Title | `brandRule` | On / off |

### Accessibility (`accessibility`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Reduce Motion: Replace flips and the page-progress bar with instant changes. 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, 0 = Auto): Width of the keyboard focus outline. 0 scales it with the flaps (at least 2 px). | `focusWidth` | Number |
| Minimum Text Size (px, 0 = Off): No title, heading, date, page number or boardroom-mode text is drawn smaller than this. Board and tile flaps trim long columns and page instead of shrinking below it, as far as the tile allows. | `minFontSize` | Number |
