Rules 8-15

Make it easy to read.

Eight rules that cut the work a reader does to get the numbers right: honest axes, a sensible order, labels where the data is, a tidy grid and plain words.

Rule 8

Honest axes. Bars start at zero, one unit gets one scale.

Presentations and dashboards

A bar's length is its value. Start the axis at $28 instead of $0 and a bar twice as long no longer means twice as much. Zelazny and IBCS agree: bars and columns start at zero. Line charts may zoom in, because they show change through slope, not length, but say so on the axis.

BeforeThe axis starts at $28
Column chart titled Average of Pay Rate by Sex with the axis starting at 28. The Male column at 32.91 looks four times as tall as the Female column at 29.12.
  • Men's column looks four times as tall as women's.
  • The real difference is 13%.
AfterThe axis starts at $0
Column chart titled Men are paid $3.79 an hour more than women on average, a 13% gap. Women $29.12/hr in grey, men $32.91/hr in blue, axis from zero.
  • Both columns in proportion: $32.91 against $29.12 an hour.
  • The subtitle says what the average doesn't adjust for, so nobody reads it as pay for the same job.

The second trap is the dual axis. Power BI's line and clustered column chart can give each measure its own scale. Where the line crosses the columns then depends only on the two scales Power BI picked, but readers read it as meaning something.

BeforeTwo scales on one chart
Combo chart titled Hires and Exits by Year: hires as columns on a 0-90 left axis, exits as an orange line on a 0-30 right axis. In 2015 the exits line rises above the hires column.
  • 1 Exits seem to overtake hires in 2015. They didn't: 26 people left and 36 were hired.
  • The reader has to check which axis each series uses.
AfterTwo charts, one scale
Two column charts titled Hires still beat exits every year, but the gap shrank to 10 in 2015. Hired and Left per year on the same 0-90 scale, 2015 in blue.
  • Both charts run from 0 to 90, so their heights compare directly.
  • Hires beat exits every year, but the gap fell from 70 in 2011 to 10 in 2015.

In Power BI

  1. Bars from zero: Format visual > Visual > Y-axis > Range > Minimum: 0 (X-axis on a bar chart). Column and bar charts usually start at zero on their own, so check this whenever someone has typed a minimum.
  2. Same unit, same scale: type the same Minimum and Maximum on every chart of that unit on the page. Or use Small multiples, which share one axis.
  3. Combo charts: if both measures share a unit, turn the Secondary y-axis off so they share one scale. If they don't, build two charts and line them up.
Rule 9

Sort deliberately. By value, unless the order is built in.

Presentations and dashboards

Sorted bars make the ranking instant: the reader sees first, second and last without reading a number. Alphabetical order hides it. Below, the highest rate sits ninth of ten.

The exception is categories with a natural order: time, ratings, size bands, pay bands. Those keep their order. Months sorted A to Z (April, August, December) break the year apart.

BeforeA to Z
Bar chart titled Turnover Rate by Employee Source, ten sources in alphabetical order, all in default blue.
  • The highest rate, search engine at 60%, is ninth in the list.
  • Finding the lowest means reading every bar.
AfterHighest to lowest
Bar chart titled Search engine hires leave at 60%, referral hires at 13%, sorted from highest to lowest, search engine in blue and employee referral in light blue.
  • First and last sit where the eye expects them, and the title names both.
  • Only sources with 15 or more hires. Smaller sources rest on a handful of people.
BeforeMonths A to Z
Column chart titled Sum of Spend by Month with months in alphabetical order: April, August, December, February and so on.
  • April comes first, then August. The two spikes look unrelated.
  • Labels with two decimals, in thousands.
AfterMonths in calendar order
Column chart titled Recruiting spend spikes in February and August, when the job fair runs. Months January to December, February ($10K) and August ($11K) in blue.
  • The February and August spikes, six months apart, line up with the Diversity Job Fair's two payments of $5,129 and $4,892.

In Power BI

  1. Sort by value: More options (...) > Sort axis, pick the measure, then Sort descending.
  2. Months and other ordered text: in Table view, select the Month column, then Column tools > Sort by column and pick Month Number.
  3. No number column yet? Add one in Power Query (Add column > Custom column) or with DAX: Month Number = MONTH ( Calendar[Date] ). The same trick orders pay bands and tenure buckets.
Rule 10

Label the data directly. Put each name where its data is.

Presentations and dashboards

A legend sends the eye on a round trip: find the colour in the legend, find the line, come back for the next one. With five lines in five colours, readers lose track. Knaflic's fix is to write each series name at the end of its line, in the line's colour, and drop the legend.

BeforeA legend for five lines
Line chart titled Count of Employee Source by Hire Year and Channel, five coloured lines with markers, gridlines and a legend at the top.
  • Five colours to match against a legend at the top.
  • Markers and gridlines add 25 dots and four lines. Nothing says which line matters.
AfterNames at the line ends
Line chart titled Referrals grew from the smallest hiring channel in 2011 to the largest in 2015. Referrals in blue, other channels grey, each line named at its end with its 2015 value.
  • Each line is named where it ends, with its 2015 value.
  • Referrals in blue, the rest grey: from 8 hires in 2011, the fewest, to 14 in 2015, the most.

In Power BI

  1. Format visual > Visual > Legend: Off.
  2. Line charts: turn on Series labels and set the position to Right. Each name sits at the end of its line, in its colour.
  3. Bar and column charts: Data labels On, and put the category on the axis rather than in the Legend well.
  4. If a legend must stay, move it to the top left and order it like the lines.
Rule 11

Data labels or axis, not both. Say each number once.

Presentations and dashboards

With labels on every bar, the value axis repeats the same numbers less precisely, and gridlines exist only to help read values off that axis. IBCS puts it plainly: labels on the data make the axis unnecessary. Keep one or the other.

It works the other way too. A line with 60 points can't carry 60 labels. Keep the axis there and label only the latest point, or the high and the low. Dense dashboard charts and small multiples can keep light gridlines for the same reason.

BeforeLabels, axis and gridlines
Column chart titled Sales pays $56 an hour on average, more than twice Production's $23, with data labels, a dollar value axis and gridlines.
  • Every value appears twice: exactly on the column, roughly on the axis.
  • Gridlines cross columns that already carry their number.
AfterLabels only
The same column chart with data labels only: no value axis and no gridlines. Sales in blue, Production in light blue.
  • The same numbers with less ink.
  • The title does the comparison: $56 against $23, more than twice.

In Power BI

  1. Data labels: On. Under Values, set Display units to None and Value decimal places to 0.
  2. Value axis Off: Y-axis on a column chart, X-axis on a bar chart. Keep the category axis; it names the bars.
  3. Gridlines: Off.
  4. Long line charts: keep the Y-axis, turn data labels off, and label the last point with a measure that returns a value only for the latest date.
Rule 12

Align to a real grid. Equal gaps, edges in line.

Presentations and dashboards

Readers notice a crooked page before they read it. A gap that is 4 to 8 px off already looks wrong, and a page that looks careless gets its numbers trusted less. Edges that line up also let the eye travel in straight lines from card to chart to table.

Pick one outer margin and one gap, then calculate widths instead of dragging: width = (content width − gap × (n − 1)) ÷ n.

BeforePlaced by eye
Report page with four cards of different widths and heights, two charts starting at different heights, and a table indented from everything above. Red dashed guides and markers 1 to 3 show the edges that don't line up.
  • 1 Cards of four widths, with gaps of 8, 22 and 14 px and tops that step up and down.
  • 2 The two charts start 10 px apart and end at different right edges.
  • 3 The table is indented 14 px from everything above it.
AfterOn a grid
The same page on an even grid: four equal cards, two equal charts and a full-width table, with blue dashed guides showing shared edges and equal 16 px gaps.
  • One 16 px margin and one 16 px gap everywhere.
  • Two cards plus a gap equal one chart, so the gap between the charts lines up with the gap between cards two and three.

In Power BI

  1. Turn on View > Gridlines and Snap to grid.
  2. Type sizes and positions: Format visual > General > Properties > Size (Height, Width) and Position (Horizontal, Vertical).
  3. Work the widths out. On a 1280 × 720 page with 24 px margins and 16 px gaps, four cards are (1232 − 3 × 16) ÷ 4 = 296 px wide.
  4. To line up several visuals at once, select them and use Format > Align: Align top, then Distribute horizontally.
Rule 13

Fewer visuals, bigger main visual. White space is fine; clutter isn't.

Presentations and dashboards

Each visual is a question the reader has to ask and answer. Nine small charts give nine half-answers, each too small to read, with no hint which one matters. When a page has spare room, make the main visual bigger rather than adding another one.

Rough limits: one or two visuals on a presentation page. On a dashboard, six to ten data visuals, three to five cards and up to three slicers. Anything more goes to a drillthrough page or a tooltip.

BeforeNine visuals, no point
Page titled HR Overview with nine small visuals in a three by three grid, each with a field-name title such as Count of Sex by Sex, in mixed default colours.
  • Nine field-name titles, mixed colours, values too small to read.
  • Nothing on the page says where to look.
AfterOne main visual
Page titled Search engine hires leave at 60%, referral hires at 13%, with three cards on the left, a callout, and one large bar chart of share who left by source with a company 34% line.
  • The title states the finding. Three cards give the numbers it rests on.
  • One big chart proves it, with the company rate as the yardstick.

In Power BI

  1. Size the main visual first, then fit the rest around it. Give it at least half the page.
  2. Replace three near-identical visuals with one that switches measure: Modeling > New parameter > Fields, add the measures, and use the parameter's slicer.
  3. Move detail out to a drillthrough page or a report-page tooltip (see rule 2).
Rule 14

Format numbers for people. Round to what matters, and give the unit.

Presentations and dashboards

Power BI shows whatever the model holds: 30.72, 0.3389, 84.46K. The reader then has to guess the unit and round in their head. Barbara Minto's point holds for every visual: $4.9 million is easier to grasp than $4,876,987.

Keep three or four significant digits ($3.4M, not $3,412,887), zero or one decimal on percentages, the same decimals across a row, and a unit on every number. Tables are the exception: readers go there for exact values, so keep full precision.

BeforeWhatever the model holds
Four cards reading 30.72, 0.3389, 84.46K and 3.04, above a bar chart of turnover by department labelled 0.3990, 0.3000 and so on.
  • 30.72 what? Dollars an hour, but nothing says so.
  • A rate shown as a decimal, to four places. 84.46K: Auto display units with two decimals nobody needs.
AfterRounded, with units
Four cards reading $31/hr, 34%, $84K and 3.0 yrs, above a bar chart of turnover by department labelled in whole percentages with Production in blue.
  • $31/hr, 34%, $84K, 3.0 yrs: every number has its unit.
  • Bar labels in whole percentages: 40%, not 0.3990.
Power BI showsFormat stringShows
Average pay: 30.72\$#,0"/hr"$31/hr
Turnover rate: 0.33890%34%
Recruiting spend: 84460\$#,0,"K"$84K
Average tenure: 3.040.0" yrs"3.0 yrs
Men's pay vs. women's: 0.1301+0.0%;-0.0%;0.0%+13.0%

In Power BI

  1. Format the measure once, and every visual follows: select it in the Data pane, then in Measure tools > Format choose Custom and type the format string.
  2. On visuals, set Display units to None, never Auto, once the measure carries its own format. Auto is what turns 84,460 into 84.46K.
  3. Cards: Format visual > Callout value sets display units and decimal places.
Rule 15

Plain words, no field names. Write for people, not for the model.

Presentations and dashboards

"Count of Employee Source by Performance Score and Left" tells the reader a machine made the chart and nobody checked it. Field names are written for the data model. "Left: True" and "PIP" mean nothing to someone who has never opened it.

The test: hand the visual to a stranger for five seconds. Every word they see (title, axis, legend, slicer header) should be one they'd say out loud.

BeforeField names everywhere
Stacked column chart titled Count of Employee Source by Performance Score and Left, with a legend titled Left showing False and True, axis titles Count of Employee Source and Performance Score, and raw rating names.
  • Field names in the title, both axis titles and the legend, where "Left" means True or False.
  • Raw rating codes, cut off. Counts, so the big Fully Meets group dwarfs the rest.
AfterPlain words
Bar chart titled Half of low performers left, against a third of those who meet expectations. Below expectations 50% in blue, too early to rate 38%, meets expectations 33% in light blue, above expectations 22%.
  • Seven rating codes grouped into four that anyone can read.
  • The share who left instead of True and False counts. The subtitle flags the small group: only 24 people.
Power BI showsWrite instead
Count of Employee SourceHires
Sum of LeftPeople who left
Left: True / FalseLeft / Stayed
PIP, Needs ImprovementBelow expectations
N/A- too early to reviewToo early to rate
Average of Pay RateAverage pay ($/hr)

In Power BI

  1. Rename for one visual: in the Visualizations pane, double-click the field in its well (or right-click, Rename for this visual).
  2. Rename for every visual: give measures plain names, such as People who left = SUM ( Employees[Left] ), and rename columns in the Data pane.
  3. Plain categories: in Power Query, Add column > Conditional column to map rating codes to groups like Below expectations, or Transform > Replace values.
  4. Type the title yourself in Format visual > General > Title, and turn axis titles off when the title already says it. More on Titles.
Test your eye

Spot the broken rule before you open the answer.

A column chart of pay by sex starts its axis at $28, and men's column looks four times as tall. Fair?

No (rule 8). Column length is the value, so the axis must start at zero. From zero, $32.91 against $29.12 is a 13% gap, not four times.

A chart of spend by month runs April, August, December, February. What's the fix?

Sort the Month column by a month-number column (rule 9): Column tools > Sort by column. Months have a natural order, so they never sort by name or by value.

A line chart has five channels in five colours and a legend underneath. What would you change?

Turn the legend off and name each line at its end (rule 10). Then grey every line except the one the title is about.

A bar chart has data labels on every bar, plus a value axis and gridlines. What goes?

The value axis and the gridlines (rule 11). The labels already give exact values. Keep the category axis, since it names the bars.

A card shows "0.3389" under the label "Sum of Turnover Rate". Which two rules does it break?

Number formatting (rule 14): show it as 34%. Plain words (rule 15): "Sum of" is Power BI's default aggregation, and summing a rate means nothing. Label it "Turnover" or "Employees who left", and add a comparison.