The Analyst's Path

Phase 2Financial statement analysis and quality of earningsPresentation trackPR2.0121,936 words2 h 2 min of readingabout 10 hours of study8 concept pagesfree

Chart-Choice Grammar: Match the Chart to the Message

Somebody drew a pie chart of quarterly sector returns. Realty had returned 18.4% for the quarter and Pharma had lost 16.2%, and the spreadsheet did what spreadsheets do. It added the eight numbers, arrived at 28.5, and gave Realty a slice of 232.42 degrees.

Presentation track, branch pr-chart-craft (Chart Craft) · Node PR2.01 · ~10 focused hours · Mastery gate ≥ 85%

Somebody drew a pie chart of quarterly sector returns. Realty had returned 18.4% for the quarter and Pharma had lost 16.2%, and the spreadsheet did what spreadsheets do. It added the eight numbers, arrived at 28.5, and gave Realty a slice of 232.42 degrees. Realty is 5% of the index. Its slice covered nearly two thirds of the circle, and the two sectors that lost money got no slice at all, because a pie cannot draw a negative number and so it silently dropped them.

Nobody in the room said anything. The chart was clean. The colours matched the house palette, the labels were legible, the title was spelled correctly, and every rule of alignment and typography that the mechanics branch teaches had been obeyed. It was also arithmetic nonsense. The analyst wasn't careless. He chose a form that can't express the thing he was claiming, and once he'd made that choice, nothing downstream could rescue it. You can't declutter your way out of the wrong chart, and you can't fix it with a better title. The form gets decided first, and everything else gets decided inside it.

Advertisement

The work here is narrower than it sounds. You aren't asking what looks good. You're asking what your message is, and which forms can carry a message of that shape without lying. Only that second question has a defensible answer. There's a short list of message types, each type has a small set of forms that can express it, and getting from one to the other is a lookup. Taste doesn't come into it.

The tool for this is a chart-choice table called the form heuristic, and it takes six inputs. What kind of claim are you making. How many categories. Is the horizontal variable ordered. How many series. Do the parts sum to a meaningful whole with no negatives. Does the reader need to look up an exact value. Feed those six answers in and one primary form comes out, with one permitted alternate and a list of forms that are ruled out. The same lookup grades the drills and runs inside the slide checker. So your answer and the machine's answer come from the same place, and you're never just two people with opinions arguing over a slide.

Skipping it costs you something real. A chart gets about three seconds from somebody who won't go back, and in those three seconds the form does most of the talking. Length on a common baseline is read accurately. Angle is read badly. Area is read worse than angle. Position along a common scale is read best of all. So a dot plot beats a pie for the same data, and a line beats an area for a percentage. None of that is taste. William Cleveland and Robert McGill measured the ranking experimentally in 1984. When you choose a form, you're choosing where on that ranking your reader has to work.

Colour, gridlines, labels and the sentence at the top of the chart all matter enormously, and none of them is taught here. Decluttering comes next, and the title comes after that. What gets settled here, completely, is the form: bar or line or scatter or table, and which of the four permanent fails you've just talked yourself into.

One limit before the grammar starts. Following the heuristic won't make your charts interesting, because interesting comes from having something worth saying. It will stop you being wrong, and being wrong is the more common problem. A form that can't support the claim in its own title does more damage in a business deck than any amount of ugliness, and nobody sees it unless they're looking for it. It survives every review. A fifteen-second lookup prevents it.


Learning objectives

You can:

  1. Classify an analytical message into one of the seven types (comparison, change over time, composition, relationship, distribution, ranking, deviation) from the sentence a chart is meant to prove, and show how rewriting the sentence changes the type.
  2. Run the shared form heuristic on six stated inputs and return a primary form, a permitted alternate and the forms that are ruled out, matching what the drills and the slide checker return for the same inputs.
  3. Choose between a column and a bar on label length and category count, and compute the label width a slide of a stated size actually gives you.
  4. Select a form for change over time from the number of periods, the number of series and the sampling interval, and state what a two-period form throws away.
  5. Choose a composition form among stacked bar, hundred-percent stacked bar, waterfall and treemap, and prove from the angle arithmetic why a pie above three slices fails.
  6. Read and defend a scatter plot, computing the correlation and the share of variance it leaves unexplained, and state exactly what the chart licenses you to claim.
  7. Choose among histogram, box plot and dot plot for a distribution, and name what each one hides, including the bimodality a box plot cannot show.
  8. Rule out the four permanent fails (three-dimensional effects, dual axes, truncated bar baselines, the pie with a legend) and compute the distortion each one introduces, including a lie factor.
  9. Decide the axis questions on their own merits: the zero baseline where the mark encodes length, the log scale where the message is a rate, and the break that must be declared.
  10. Decide when a table or a sentence beats a chart, and defend a sort order as the claim it is.

Prerequisites & connections

Builds on. Nothing hard. This is a branch entry, and the arithmetic never goes beyond percentages, ratios and a correlation you can compute in a spreadsheet. PR1.03 is the recommended run-up. If you can already build shapes, tables and objects cleanly, your attention goes on the choice and not on the construction. If you haven't done it, nothing below breaks. Every chart is specified in words and in a table, so you can answer every question with a pencil.

Feeds forward. PR2.02 takes the form you chose here and strips it down: data ink, the eight deletions, pre-attentive attributes and the colour formula that makes one series carry the message. PR2.03 puts the sentence on top of it. It turns a correct form into an argument with an action title, a single focal point and a small-multiple grid where one chart can't hold the series. PR3.01 handles the diagrams that aren't charts at all, where the content relates ideas to each other and no numbers are involved. PR4.02 stacks the titles across a whole deck so the chart-level claims add up to a case. The chart-choice drill set, thirty situations graded against the heuristic below, is the gate that goes with this material.

Six neighbours own material that touches this one, and none of it is rebuilt here. PR0.01 owns the one-sentence takeaway, the audience profile and the medium choice. It carries a deliberately shallow six-line grammar table so that its own examples can name a chart without teaching the grammar. PR2.02 owns colour, so every chart below is described in terms of accent and neutral, with no named colours. PR2.03 owns the action title, small multiples as a layout device and the dashboard, so the titles quoted below are written correctly but not taught. M10.03 owns the written deliverable, the memo and the report, and that's where the lie factor gets taught inside a written exhibit instead of a slide. DA1.04 owns plotting in Python, including the library calls and the axis objects, and it assumes the choice made here. CN1.03 owns the answer-first synthesis that produces the message a chart then has to prove. When a section below touches one of those ideas it just names it and moves on.


Core teaching content

Choosing the right chart type

Choosing the right chart type means letting the message decide the form. You write the one sentence you want a reader to believe, and a lookup table turns its message type and a few facts about the data into a form that can carry it. It matters because the data doesn't suggest the chart: the same numbers support any of seven message types, depending on the question you asked.

7 min read, on its own page

Bar chart vs column chart

Columns run vertically and their labels sit underneath in a space as wide as the column. Bars run horizontally and their labels sit to the left in a space as wide as you choose to make it. The rule that follows is arithmetic. Count the characters in your longest category name, work out the horizontal space one column gets, and if the name doesn't fit, use bars.

3 min read, on its own page

Line chart vs bar chart

Lines win for five or more points with four or fewer series. They encode change as slope, which the eye reads well, and they show the shape of a series and not just its endpoints: the plateau, the inflection, the month everything turned. Columns beat lines when the periods are discrete events, as opposed to samples of a continuous quantity, and when there are few enough of them to read individually. Quarterly dividends are events. Monthly closing prices are samples of something that existed every day.

4 min read, on its own page

Part-to-whole chart

Composition claims are about parts of a whole, and they are the messages that go wrong most often, because the whole is frequently not a whole. The parts must be mutually exclusive and must together exhaust the total, or the reader will read a share that is not a share. And the total itself must mean something: revenue by segment sums to revenue, which is meaningful, while returns by sector sum to a number that means nothing at all.

4 min read, on its own page

Scatter plot

A relationship message says two measured variables move together, and there is essentially one form: position on two common scales, one point per unit of observation. A scatter plot with fifteen or more points is the only chart that lets a reader see the strength of a relationship, its shape, and the observations that do not fit. A scatter licenses you to say that two variables are associated, to state how strongly, and to name the observations that break the pattern.

4 min read, on its own page

Histogram vs box plot

A distribution message says the values are spread across a range in a particular shape, and it's the type analysts skip most often. The habit is to report a mean and move on, and the mean is frequently a number that describes nothing in the dataset. A box plot hides bimodality, and it hides it completely. A histogram shows the shape if the bin width lets it.

4 min read, on its own page

Diverging bar chart

A deviation message is about the gap from a reference: budget, prior year, benchmark, target. The natural form is a diverging bar centred on zero, sorted by the deviation, with the positive and negative directions distinguished. Deviation is also where relative and absolute stop being interchangeable. If the message is about control, the percentage is the point. If the message is about cash, the money is the point.

3 min read, on its own page

9. The four permanent fails, with their arithmetic

Four forms are ruled out in every circumstance. Each has an argument, and each has a number.

Three dimensions on a two-dimensional quantity is the first. A 3-D column adds depth that encodes nothing, and it introduces a real reading error, because the reader has to decide whether the value is the front face or the back face of the column top. Perspective makes the near columns larger than the far ones at equal value, and the chart gains nothing in exchange. There's one legitimate use of a third spatial dimension, a real surface over two continuous inputs, and it's almost never what a business chart is doing.

Dual axes are the second, and the commonest by a distance. Two series, two vertical scales, and the author picks both. Whatever relationship the lines seem to have was manufactured by that choice. Nobody found it in the data, and nothing on the chart tells the reader a choice was made. Move the right-hand axis and the crossing point moves with it. The repairs are indexing both series to a common base and plotting them on one axis, or splitting them into two panels with a shared horizontal axis. Both are fair to the data, and both take about a minute. The written-deliverables material works through a numerical demonstration of the distortion.

A truncated baseline where the mark encodes length is the third, and it carries the biggest number of the four, so it deserves the full arithmetic. Take on-time delivery at a logistics firm for three quarters: 94.1%, 94.6%, 95.2%. The real improvement is 1.1 percentage points, a relative change of 1.1690%. Now draw three columns with the axis starting at 93.5. The bar heights become 0.6, 1.1 and 1.7, so the third bar is 2.8333 times the height of the first, and the depicted change is 183.33%. Divide the depicted effect by the actual effect and the lie factor is 156.83. That's a lot of distortion to hide behind three tidy columns. Edward Tufte defined the lie factor in The Visual Display of Quantitative Information as the ratio of the effect shown in the graphic to the effect in the data. Anything far from 1.0 is a graphic making a claim its numbers don't.

The more useful half of that lesson is what the zero-anchored bar chart does instead. Anchored at zero, the third bar is 1.0117 times the first, and a real 1.1-point operational improvement is invisible. So you change the mark. Drawing the bad chart on a zero baseline fixes nothing, because the zero-baseline rule applies to length encodings and not to position encodings. A dot plot or a line with the axis running 93.5 to 95.5 and a reference line at the 95.0% contractual floor shows the improvement clearly and lies about nothing, since position along a scale carries no implicit claim about zero.

A pie above three slices, or with a legend at any slice count, is the fourth. The angle argument is in section 5. The legend argument is separate and applies to every chart form: a legend makes the reader hold a colour in memory, travel to the key, match it, and travel back, once per series. Direct labels remove the whole operation. A pie is the worst case, because the slices are arranged around a circle and the legend is in a list, so the reader is matching two different orderings.

Truncated y-axis

A bar's meaning is its length, so cutting the axis cuts the meaning. You need the zero baseline where length encodes the value, and nowhere else. A line's meaning is the position of its points and the slope between them, so a line chart of a bond yield running 6.8% to 7.4% does not need to start at zero and would be unreadable if it did.

3 min read, on its own page

11. Sorting as an argument

The order of categories on an axis is a claim, and most charts make one their author didn't intend.

Three orders exist. Intrinsic order applies where the categories have a real sequence: time, months, age bands, credit-rating grades, a Likert scale. Sort by that, always, and never sort those by value, because breaking a sequence the reader already holds costs them more than any ranking gains. Value order applies everywhere else and is the default: sorted descending, the chart answers "who is biggest" before the reader has read a single label. Arbitrary order, which in practice means alphabetical or the order the rows happened to sit in the source data, is a claim that nothing about the ordering matters.

Watch what that costs on real categories. Six states with revenue of 31.2, 22.6, 19.9, 18.4, 16.8 and 11.3 crore. Sorted by value, Maharashtra is the first row and a reader learns the top two carry 44.76% of the book without doing any work. Alphabetically, Maharashtra is the third row, Gujarat comes first, and the reader has to scan and compare across the whole chart to find the largest. The data is identical. The second chart makes the reader do the work the first one did for them, and readers of business charts don't do work.

Sorting can also change a chart's message without anyone noticing. Sorted descending by the current period, the chart is about level. Sorted by change, it is about momentum. Sorted by deviation from a benchmark, it is about performance against a standard. Three sorts, one dataset, three different arguments, and only one of them is the sentence you wrote at the start.

You can take two practical rules from this. Sort by the variable your title names, so the sort and the sentence agree. And when a chart is one of a series, keep the sort stable across the series unless you say you changed it, because a reader who has learned the order in the first exhibit will read the second one through it.

12. When a table beats a chart, and when a sentence beats both

A chart is a tool for showing shape and comparison at a glance. When the reader's task is neither of those, the chart is the wrong object, and three conditions signal it.

The first is lookup. A reader who needs a specific value, to two decimal places, to put into their own model, wants a table. Any chart forces them to read a value off a scale, and they'll get it wrong.

The second is heterogeneous units. When rows are measured in different things, no common scale exists and a chart of them is a category error.

The third is precision that carries a consequence. A covenant is breached at a number, not near one.

A covenant compliance schedule brings all three together. Five covenants at a synthetic US mid-market borrower: total net leverage capped at 3.50 times against an actual of 3.05; interest coverage floored at 2.50 against 3.42; fixed-charge coverage floored at 1.25 against 1.31; minimum liquidity of $25.0m against $41.8m; a capital expenditure cap of $18.0m against $12.4m spent. Two of the five sit inside 15% of their threshold. As percentages of threshold, the headroom runs 4.80%, 12.86%, 31.11%, 36.80% and 67.20%. Those are five numbers computed from three different units, and they aren't comparable to each other in any meaningful sense.

What the table can do, and what makes it the right form, is carry a column the chart could never invent. Translate each EBITDA-linked test into the fall in EBITDA that would breach it. Fixed-charge coverage breaks at a 4.58% fall, total net leverage at 12.86%, interest coverage at 26.90%. Now the covenants are on one scale and ranked by the thing that actually matters. And look at the leverage cushion: it's 2.81 times the fixed-charge cushion. That column is analysis. Building a table is what produced it.

Sometimes the answer is a sentence. Three data points is a sentence. On-time delivery of 94.1%, 94.6% and 95.2% over three quarters, against a 95.0% contractual floor, is fully carried by twenty-three words: on-time delivery improved 1.1 points over three quarters, from 94.1% to 95.2%, clearing the 95.0% contractual floor for the first time in Q3. A chart of three columns adds nothing except the temptation to truncate the axis, and it costs a slide.

The threshold worth remembering: below about five data points, write the sentence unless the reader needs the level against a reference, in which case a dot plot with the reference line is the smallest honest chart. A chart of three numbers on a slide is usually there because the section looked thin, and that isn't a reason.

13. Running the heuristic on a live problem

Six inputs and a table are easy to agree with and slightly harder to apply, so here's the procedure at the pace it actually runs.

Start with the sentence, written down. Not thought, written, because a sentence you have not written is usually two sentences.

Name the type. If two types seem to fit, the verb decides. "Grew" is change over time. "Accounts for" is composition. "Beats" is comparison. "Is associated with" is relationship. If the verb is "shows" or "highlights", you haven't written a claim yet, and the type can't be named.

Count n, the categories or the points. Then answer the four remaining questions: is the horizontal variable ordered, how many series, do the parts sum to a meaningful whole with no negatives, and does the reader need to look a value up.

Read the row and note the ruled-out column, because that's the one you'll need later. Being able to say "not a stacked bar, because the total is not part of the claim" is what makes a chart choice defensible in a review, and a defence you cannot state is a choice you did not make.

Then run the four permanent fails as a final pass, because they override the table. It takes four seconds and it catches the dual axis your software offered you when you added a second series.

One last habit, and it's the one that separates people who use this well from people who merely own the table. When the row you land on feels wrong, the usual cause is upstream: the sentence is the wrong sentence. An analyst who wanted a pie almost always wanted a composition message, and the reason the pie fails is usually that the message was really about change or about comparison. The fix is to rewrite the sentence. Leave the heuristic alone.

{
  "skill": "Auditing a chart-form choice against the shared heuristic, and catching the forms a tool suggested rather than a message demanded",
  "use": "After you have written your own sentence, named your own message type and picked a form from the table, describe the chart to an assistant in words (message, form, number of categories, whether the axis is ordered, number of series, whether the parts sum to a whole, whether values can be negative) and ask it to run the same six inputs and disagree with you. Use the disagreement as a prompt to re-examine your sentence. Never let it pick the form.",
  "tools": ["Chat assistants (Claude, ChatGPT, Gemini)", "A spreadsheet or Python for the correlation, share and angle arithmetic the audit needs"],
  "prompt": "My message sentence is: <SENTENCE>. My data has <N> categories, <S> series, the horizontal variable is <ordered / unordered>, the values <do / do not> sum to a meaningful whole, <do / do not> include negatives, and the reader's task is <lookup / glance>. I have chosen a <FORM>. Do four things and nothing else. 1) Classify my sentence into exactly one of: comparison, change over time, composition, relationship, distribution, ranking, deviation, and quote the verb that decided it. 2) State which forms are ruled out by my inputs and why, checking specifically for dual axes, a truncated baseline on a length encoding, three-dimensional effects, and a pie above three slices. 3) Tell me one thing my chosen form throws away that the data contains. 4) If my sentence contains two claims, split it. Do not choose a form for me and do not rewrite my sentence into something more confident.",
  "verify": "Recompute every number the chart will carry before you accept anything the assistant says about it: the shares must sum to 100, the waterfall drivers must sum to the net change, the correlation must be computed from the observations rather than described, and any angle or percentage the argument rests on must come from your own arithmetic. Then check the assistant's classification against the verb in your own sentence: if it named a type your verb does not support, one of you has misread the claim and it is worth finding out which before the chart exists. An assistant that agrees with your form without naming what the form discards has not audited anything.",
  "diy": "You must be able to run the six inputs and return the primary form, the alternate and the ruled-out list from memory, with no tool open, in under a minute. That is what the drill set grades and what the checker enforces, and it is the skill that survives into a meeting where somebody asks why the chart is a slope and not a bar. An assistant is useful for the disagreement and useless for the decision, because the decision rests on the message you are prepared to defend, and you cannot defend a form you did not choose.",
  "market": "IN"
}

Common mistakes & how experts think differently

  1. Choosing the form from the data's shape instead of the message. A table with categories down the side suggests a bar chart, and a table with dates suggests a line. Both suggestions come from the layout of a spreadsheet. Neither comes from anything you intend to say. The expert writes the sentence first and reads the row, and finds regularly that the same table needs a different form this week because the question changed.
  1. Letting the software's default become the decision. The chart menu offers the forms it can draw, in an order set by product design, with the pie and the dual axis one click away. Defaults aren't neutral. They claim that the commonest choice is the right one. The expert's tell is that they know what they rejected, and can name it before anyone asks.
  1. Treating a set of numbers as a whole because they can be added. Returns, ratios, growth rates and index values can all be summed by a spreadsheet, and none of them makes a total that means anything. Before any part-to-whole form, the expert asks what the sum represents in the world, and abandons the composition message when the answer is nothing.
  1. Reaching for a second axis when a second series arrives. Two series with different units feels like a two-axis problem and is almost always an indexing problem. The expert indexes both to a base period or splits the panels, and treats the appearance of a right-hand axis in their own draft as evidence that they skipped a decision.
  1. Reporting a mean without ever looking at the distribution. The mean is one number and it is cheap, and it describes a bimodal book about as well as an average of two cities describes the weather in either. The expert plots the observations once at the start of any analysis, which takes a minute, and finds the shape before any summary is chosen.
  1. Using a box plot as though it showed the data. It shows five numbers computed from the data, and it draws its most dominant element across the middle half, which can be a region containing nothing. Experts overlay the points whenever the sample is small enough. They use a box plot to compare several groups, and they don't mistake it for a picture of one.
  1. Sorting alphabetically and calling it neutral. Alphabetical order is a claim that the ordering carries no information, which is almost never true of business categories. It is also the order that makes a reader work hardest. The expert sorts by the variable the title names and keeps that sort stable across a series of exhibits.
  1. Fixing a truncated axis by anchoring at zero and stopping there. Zeroing the axis is correct and frequently makes the real movement invisible, which is how the truncation happened in the first place. The expert changes the mark as well, moving from bars to a dot plot or a line with a reference value, so the small movement is legible and no length is being misread.
  1. Believing a scatter's slope is a mechanism. A relationship chart supports an associational claim and a strength, and nothing beyond that. The expert writes the title as an association, states the correlation and the unexplained share, and names at least one alternative story that fits the same points.
  1. Drawing a chart for three numbers. A chart of three points on a slide is a section that looked thin, and it tempts every axis crime available. The expert writes the sentence, keeps the slide for something that needs a picture, and puts the three numbers in the text where they read in half the time.
  1. Choosing a chart when the reader's task is lookup. A reader who must extract a precise value has been given a chart to work around. The expert notices what the reader has to do, whatever the data looks like. The tell is a chart with data labels on every point. That's a table that has been drawn as a picture.

Worked examples

The datasets are synthetic throughout and labelled as such. Each example states the message first, in a sentence, because that's the input the heuristic takes. The data follows, then the form that fails and why, then the form that works, then the checklist you apply to your own charts. All figures come from the same computation and are restated at full precision in the Verify section at the end.

Worked example 1: One sector panel, five candidate forms (India, ₹)

The message. Four of the eight sectors beat the index this quarter and the spread between the best and the worst is 34.6 points, so the index's 2.92% return describes no sector in the panel.

The data. A synthetic eight-sector panel, built to the shape of an Indian broad-market sectoral breakdown: weights and one quarter of returns, with the weights summing to 100.00. The figures are invented so that the arithmetic ties. Run the same procedure on the published sectoral index returns from the exchange when you want a live version.

SectorIndex weight, %Quarterly return, %Contribution, pointsDeviation from index, points
Realty5.0+18.4+0.920+15.484
Metal7.0+12.9+0.903+9.984
IT18.0+9.6+1.728+6.684
Auto9.0+4.2+0.378+1.284
Energy13.0+2.1+0.273−0.816
Bank30.0+1.3+0.390−1.616
FMCG10.0−3.8−0.380−6.716
Pharma8.0−16.2−1.296−19.116
Index100.0+2.916+2.9160.000

The contributions sum to the index return exactly. That's your check that the panel is internally consistent before you draw anything. The equal-weighted mean of the eight returns is 3.5625%, higher than the cap-weighted 2.916% by 0.6465 points, because the two largest sectors by weight were among the weakest performers.

Form 1, the pie of returns. It cannot be drawn. Adding the eight returns gives 28.5, which is not a total of anything: the positives sum to 48.5 and the negatives to −20.0. Treating 28.5 as a whole gives Realty 64.56% of the circle and a slice of 232.42 degrees, for a sector carrying 5% of the index, and the two negative sectors are dropped without a warning. The failure is upstream of the drawing. Returns are not parts of a whole, so no part-to-whole form applies at all.

Form 2, the hundred-percent stacked bar. Same defect in a different shape. It forces the reader to read each sector as a share of a meaningless total, and the negative values either disappear or extend below the axis and break the stack. A stacked bar of index weights would be legitimate, because weights are shares of a real whole, but weights are not the message.

Form 3, the sorted bar of returns. Legitimate, and useful. Eight horizontal bars, sorted from +18.4 to −16.2, zero line visible, direct labels. The reader gets the ranking and the spread immediately. What it doesn't carry is the reference point. Nothing on the chart says where the index is, so a reader can't see that Auto's +4.2 beat the index while Energy's +2.1 didn't.

Form 4, the dot plot with a reference line. One dot per sector on a common horizontal scale, sorted, with a vertical reference line at the index return of 2.916 and the four sectors to its right in one accent. This is the strongest form for the message as written, because the message is about the count above a threshold and about the spread, and both are read directly off the picture.

Form 5, the table. Four columns and nine rows, as printed above. It's the right object for anyone reconciling the panel, because it carries the contribution column that makes the arithmetic checkable. It's the wrong object for the slide. The message is a shape, and the reader would have to build that shape from twenty-four numbers.

The choice, and the reason. The dot plot with the index reference line, sorted by return. The message names a threshold (beat the index) and a spread (34.6 points), the dot plot shows both without any computation by the reader, and it handles the negative values without a special case. The rejected alternative worth naming is the sorted bar, and the only reason to reject it is the reference. A vertical line through eight bars reads as a gridline, and the benchmark gets lost.

A second message from the same panel. If the sentence had been "IT alone contributed 59.26% of the index's 2.92% return, and Pharma subtracted 44.44% of it", the type changes from comparison to composition of a signed total, and the answer becomes a waterfall of the eight contributions ending at 2.916. Same data, different sentence, different form, and both charts are correct for their own claim. The method doesn't get any deeper than that paragraph. It only gets wider.

The checklist to apply.

  1. Write the sentence and name the message type from its verb.
  2. Before any part-to-whole form, ask what the sum means in the world.
  3. Check that the values can be non-negative. If not, the composition family is out.
  4. Ask whether the message names a threshold, and if it does, put the threshold on the chart.
  5. Sort by the variable the sentence names.
  6. Verify the arithmetic that ties the parts to the total before drawing anything.

Worked example 2: Breadth as a line, an area and a slope (US, $)

The setting. A synthetic twelve-month series built to the shape of a broad US equity index. Two quantities: the index level, and market breadth measured as the share of constituents trading above their long-run average. The values are invented so the arithmetic ties. The published index level and a breadth series from a market-data source substitute directly when you want a live version.

MonthIndex levelBreadth, %Level indexed, Jan = 100Breadth indexed, Jan = 100
Jan4,78071100.000100.000
Feb4,83569101.15197.183
Mar4,90272102.552101.408
Apr4,99074104.393104.225
May4,96170103.78798.592
Jun5,04468105.52395.775
Jul5,12066107.11392.958
Aug5,18861108.53685.915
Sep5,21155109.01777.465
Oct5,29049110.66969.014
Nov5,40243113.01360.563
Dec5,48338114.70753.521

The message. The index rose 14.71% over the year while breadth fell 33 points, and 84.85% of that fall came after July, so the year's gain was carried by a narrowing group of names and the narrowing accelerated in the second half.

Form A, the line. Breadth plotted monthly on a vertical axis running 30 to 80, twelve points, one series, with the index shown in a second panel below on a shared horizontal axis. The line carries the whole message: the April peak at 74, the plateau through July, the break, and the 6-point single-month fall from September to October that is twice the average monthly rate. Two panels and not two axes, because the two quantities have different units and section 9 rules out the alternative.

Form B, the area. The same series with the space beneath it filled and the axis anchored at zero, running to 100 because the quantity is a share. Two things go wrong. The fill asserts that the shaded quantity means something, and a share of constituents is not a quantity that accumulates. And the zero anchor leaves the 36-point range that carries the message occupying 36% of the plot height, with 51.35% of the fill at its tallest sitting below the series minimum. A reader sees a large stable block with a slight dip at the right-hand end, which is the opposite of what happened.

Form C, the slope chart. Two positions, January at 71 and December at 38, one straight line between them. It asserts a decline of 3.00 points a month, sustained. Nothing in the data is sustained: breadth rose in two months, was still 74 in April, and gave up 28 of its 33 points after July. The slope chart gets the endpoints right and everything they were supposed to reveal wrong.

The choice, and the reason. The line, in a two-panel layout with a shared horizontal axis. The rejected alternative is the slope chart, and the rule that rejects it is the sampling row of the heuristic: exactly two periods is a slope chart's case, twelve ordered points is a line's case, and a slope chart drawn from twelve points is a decision to discard ten of them.

The version for a single panel. Where only one panel is available, index both series to January equals 100 and plot them together. The gap opens from February and reaches 61.19 index points by December, and one axis carries both because the units are gone. The base must be stated on the chart, because an indexed series without its base is unreadable, and the footnote costs eight words: Jan = 100; level 4,780, breadth 71%.

One caveat that belongs on the chart. Breadth is bounded at 0 and 100 and the index level is not, so indexing them together compresses a bounded series and an unbounded one onto the same scale. The two-panel version has no such problem. It's the primary, and the indexed version is the fallback.

The checklist to apply.

  1. Count the ordered points before choosing between a line and a slope chart.
  2. Ask what the fill would mean before filling under a line.
  3. Anchor at zero wherever the mark encodes length, including an area.
  4. Never solve two units with two axes. Index, or split the panels.
  5. State the base of any indexed series on the chart.
  6. Check the claim about the path against the path, not against the endpoints.

Worked example 3: A revenue bridge that a stacked bar cannot show (India, ₹)

The setting. Vaidya Wellness (synthetic), an Indian personal-care business. FY25 revenue of ₹52.00 crore, FY26 revenue of ₹66.20 crore, with the change attributed to five drivers.

DriverEffect, ₹ croreRunning total, ₹ crore
FY25 revenue52.00
New customers+11.9063.90
Price and mix+4.6068.50
Quick-commerce channel+2.2070.70
Existing-customer volume−2.9067.80
Discontinued SKUs−1.6066.20
FY26 revenue+14.2066.20

The message. Revenue grew 27.31%, and every rupee of it came from new customers, price and one new channel: revenue from customers the company already had fell ₹2.90 crore, which is 5.58% of the FY25 base.

The wrong version. A stacked column pair, FY25 and FY26, split by channel. The channel data is real and ties out: general trade 24.40 to 25.10, modern trade 12.10 to 14.90, own site 9.80 to 13.60, marketplace 5.70 to 10.40, quick commerce 0.00 to 2.20, totalling 52.00 and 66.20 exactly. The chart is arithmetically clean and it answers a different question, which is how the channel mix shifted. General trade fell from 46.92% to 37.92% of revenue while marketplace rose from 10.96% to 15.71%. Useful, and it contains no trace of the existing-customer decline, because that decline cuts across every channel.

The version that seems like a fix and is not: a pie of the drivers. Two of the five are negative, so the form cannot be drawn, and the failure is the same one as in the first example.

The corrected version. A waterfall. FY25 at 52.00 as an anchored column on the left, five floating columns for the drivers in the order given, FY26 at 66.20 as an anchored column on the right. Positive drivers in one accent, negative in a second, connector lines between the tops. Direct labels on every column carrying the signed value, and the two anchors carrying their levels.

Described in full: seven columns across the plot, the two anchors sitting on the baseline and the five drivers floating at their running totals, with the vertical axis running 0 to 75 so that the anchors read as levels and not as changes. The order is deliberate, positives first and negatives after, because that separates gross additions from gross subtractions visually. A footnote gives the check: 11.90 + 4.60 + 2.20 − 2.90 − 1.60 = 14.20, and 52.00 + 14.20 = 66.20.

What the waterfall shows that nothing else does. Gross additions of 18.70 against gross subtractions of 4.50, a gross-to-net ratio of 1.3169. New customers alone are 63.64% of gross additions and 83.80% of net growth. And the existing-customer bar, the only large negative, is the one a reader's eye goes to, because it breaks the direction of travel. In a stacked bar it doesn't exist as an object at all.

A note on the driver order. Ordering positives before negatives is one convention and ordering by magnitude is another, and both are defensible. What isn't defensible is an order chosen to bury a driver in the middle of the run where the eye passes over it. Say which convention you used in the footnote, and use the same one across a series of bridges.

The checklist to apply.

  1. Ask whether the message is about a level or about the composition of a change.
  2. If it is a change decomposed into signed drivers, the form is a waterfall.
  3. Confirm the drivers sum exactly to the net change before drawing.
  4. Anchor the start and end columns on the baseline so they read as levels.
  5. State the ordering convention.
  6. Check whether a legitimate alternative chart answers a different question, and say which question yours answers.

Worked example 4: Two bars that erase the finding (US, $)

The setting. Fourteen synthetic US software companies, each with a net revenue retention rate and a revenue growth rate for the same year.

CompanyRetention, %Growth, %CompanyRetention, %Growth, %
19811811331
210114911526
3104171011729
4106221111933
5108191212142
6109311312444
7111241412834

The message. Retention and growth move together, with a correlation of 0.8928, and retention leaves 20.30% of the variation in growth unexplained: three of the eight companies above 110% retention grew more slowly than the fastest company below it.

The wrong version. Two columns. Retention under 110% averages 19.0% growth, retention at or above 110% averages 32.875%, and the second bar is 1.7303 times the first. Title: "Retention drives growth." Everything on the chart is arithmetically true and the chart supports none of it. It hides the overlap, hides the sample size of six and eight, hides the fact that the split at 110 was a choice the analyst made, and asserts a direction of causation that fourteen observations cannot establish.

The corrected version. A scatter. Retention on the horizontal axis running 95 to 130, growth on the vertical running 0 to 50, fourteen points, a fitted line, and the statistics stated on the chart face: r = 0.89, r squared = 0.80, n = 14. Four points labelled: the two that sit furthest above the line and the two furthest below it, since the residual range runs from +7.50 to −8.48 and those four are the companies worth asking about.

Described in full: a square plot area, both axes labelled with units, and the fitted line drawn thin and in a neutral so it does not outrank the points. The annotation sits in the top-left corner and reads r = 0.89, n = 14, with a footnote naming the fitted relationship, growth = 1.00 × retention − 85.4. No legend, because there is one series.

What the numbers license. The slope of 0.9990 says that across this range, one point of retention is associated with about one point of growth, so a company at 120% retention sits about 20 points of growth above a company at 100%. The correct title is an association: "Retention and growth move together across these fourteen companies, and retention explains about 80% of the variation in growth." The incorrect title is the one on the two-bar version, and the word that makes it incorrect is "drives".

The three stories that fit these points. Retention could raise growth, by making every new customer an addition instead of a replacement. Growth could raise measured retention, because a company adding customers fast has a young base that has not yet had the chance to churn. And a third factor, an expanding category, could raise both without either touching the other. The scatter cannot distinguish them. Naming all three in the speaker notes is what separates an analyst from a chart.

A note on the sample. Fourteen points is the lower end of what a scatter can fairly carry. State n on the chart, as the specification above does, and resist splitting fourteen observations into buckets, since every bucket is then a mean of five or six points with a standard error nobody will show.

The checklist to apply.

  1. Plot the observations before computing any group mean.
  2. Compute the correlation. Don't just describe the relationship in words.
  3. Put r, r squared and n on the chart face.
  4. Write the title as an association, and check it for causal verbs.
  5. Label the observations that break the pattern, not the ones that confirm it.
  6. Name at least one alternative explanation that fits the same points.

Worked example 5: A mean that describes nothing (India, ₹)

The setting. Suvarna Finance (synthetic), an NBFC in Maharashtra. Forty loans disbursed in a month, ticket sizes in rupees lakh, ranging from 0.62 to 7.20 and totalling ₹123.55 lakh.

The message. The mean ticket of ₹3.09 lakh describes no loan in the book. The portfolio is two products, a two-wheeler cluster of 22 loans averaging ₹0.92 lakh and a used-car cluster of 18 loans averaging ₹5.73 lakh, and nothing at all was written between ₹1.28 and ₹4.60 lakh.

The data, as four candidate summaries.

SummaryValue
Mean3.0888
Median1.1850
Standard deviation2.4443
Five-number summary0.62 / 0.895 / 1.185 / 5.54 / 7.20
Loans within ±10% of the mean0 of 40
Loans between 2.00 and 4.000

The wrong version, one. A column chart of mean ticket by branch: Pune 0.7818, Nashik 1.0664, Kolhapur 5.1389, Aurangabad 6.3300. It reads as a story about four branches behaving differently. It is the same two-cluster structure sliced by geography, and every branch mean is itself a number that describes few of its own loans.

The wrong version, two. A box plot alone. The box runs from 0.895 to 5.54, an interquartile range of 4.645, and it is the largest and darkest element on the chart. Twenty loans fall inside it and none of them lies between 1.28 and 4.60, so the chart's dominant feature spans a region containing no data. A reader takes the middle of a box to be a dense region. Here it is the emptiest part of the whole distribution.

The corrected version. A dot plot of all forty observations on a horizontal scale from 0 to 8 lakh, one dot per loan, jittered vertically where dots would overlap, with the mean and the median marked as two vertical reference lines and labelled. Forty points is small enough to show every one, and the reader sees the two clusters, the empty middle, and the mean sitting in the emptiest part of the range.

The corrected version for a larger book. Above a few hundred loans the dot plot becomes a smear and a histogram takes over, with the bin width stated on the chart. At 0.50 lakh bins this book reads as 15 loans in the 0.50 to 1.00 bin, 7 in the next, six empty bins, then 3, 4, 5, 3, 2 and 1 across the used-car range. At 2.00 lakh bins the shape survives: 22, 0, 12, 6. At a single bin of 8.00 lakh there is one bar and no information. The bin width changed the conclusion three times. That's why it belongs on the chart.

What the analysis becomes once the shape is visible. Two products with different risk, different tenor and different pricing have been averaged into one portfolio number. The correct next step is to stop reporting a blended mean at all and to report the two segments separately, which no chart could have done for you. In the general case, a distribution chart's job is to tell you that the summary you were about to publish is the wrong summary.

The checklist to apply.

  1. Plot the observations before choosing any summary statistic.
  2. Compare the mean and the median, and treat a large gap as a finding.
  3. Count how many observations lie near the mean, and say so if the answer is none.
  4. Show the points beneath any box plot whose underlying shape is in question.
  5. State the bin width on any histogram.
  6. Ask whether the finding is that the population should have been split.

Worked example 6: The compliance schedule that must be a table (US, $)

The setting. Calder Industrial (synthetic), a US mid-market borrower with five financial covenants tested quarterly. Trailing EBITDA of $46.2m.

CovenantDirectionThresholdActualHeadroomHeadroom, % of threshold
Total net leveragemax3.50x3.05x0.45x12.86%
Interest coveragemin2.50x3.42x0.92x36.80%
Fixed-charge coveragemin1.25x1.31x0.06x4.80%
Minimum liquiditymin$25.0m$41.8m$16.8m67.20%
Capital expenditure capmax$18.0m$12.4m$5.6m31.11%

The message. Two of the five covenants sit inside 15% of their threshold, and once the tests are put on a common scale the fixed-charge coverage covenant breaks first, on a 4.58% fall in EBITDA, against 12.86% for the leverage test.

The wrong version. A bar chart of headroom as a percentage of threshold. Five bars, sorted, running 4.80 to 67.20. It looks like a comparison and it is a category error: those five percentages are computed from three different units, a ratio, a dollar balance and a dollar spending cap, and a percentage of a leverage multiple is not the same kind of object as a percentage of a cash balance. A reader who compares the bars is comparing quantities that do not share a scale.

Why a chart cannot be rescued here. All three lookup conditions apply at once. The reader's task is lookup, since a credit officer needs the actual value to compare against a covenant definition. The units are heterogeneous. And precision carries a consequence, because a covenant is breached at a number and 1.2499 is a default while 1.2500 is not. No amount of chart craft changes any of that.

The corrected version. The table above, plus one computed column the chart could never have invented.

CovenantEBITDA fall that breaches it
Fixed-charge coverage4.58%
Total net leverage12.86%
Interest coverage26.90%

That column puts the three EBITDA-linked tests on one scale, which is the scale the credit committee actually cares about, and it reorders them. By headroom against threshold the ranking is fixed-charge coverage at 4.80%, then the leverage test at 12.86%. By the common EBITDA shock the ranking is the same at the top but the gap is wider: the leverage cushion is 2.8071 times the fixed-charge cushion. At $46.2m of EBITDA the fixed-charge test implies fixed charges of $35.27m, and the covenant breaks when EBITDA falls to $44.08m, a fall of $2.12m.

Where a chart belongs in this pack. One chart, on the next page: the fixed-charge coverage ratio plotted quarterly against its 1.25 floor as a line with a reference line, eight quarters of history. That is a change-over-time message with a threshold, it is the only covenant whose trajectory matters, and it is a different sentence from the compliance schedule. The table answers "where do we stand". The line answers "where is this going". Two messages, two objects, and neither replaces the other.

The checklist to apply.

  1. Ask what the reader's task is: glance, or look up.
  2. Check whether the rows share a unit before putting them on a common scale.
  3. Ask whether a small difference has a consequence, and prefer a table if it does.
  4. Build the derived column that makes the rows comparable, since that's analysis. Formatting can't produce it.
  5. Sort the table by the derived column, not by the source order.
  6. Give the one series whose trajectory matters its own chart, with its threshold drawn.

Worked example 7: Three numbers, and the axis that made them a story (India, ₹)

The setting. Girija Logistics (synthetic). On-time delivery performance for three quarters against a contractual floor of 95.0%: Q1 94.1%, Q2 94.6%, Q3 95.2%.

The message. On-time delivery improved 1.1 points over three quarters and cleared the 95.0% contractual floor for the first time in Q3.

The wrong version. Three columns with the vertical axis starting at 93.5. The bar heights become 0.6, 1.1 and 1.7, so the Q3 bar stands 2.8333 times the height of the Q1 bar and the depicted change is 183.33%. The actual change is 1.1690%. Dividing the depicted effect by the real one gives a lie factor of 156.83.

The version that seems like a fix and is not. The same three columns with the axis anchored at zero. Now the Q3 bar is 1.0117 times the Q1 bar, the difference is 1.1690% of the bar length, and a real operational improvement is invisible to any reader. Honest, and useless. That's the pressure that produces truncated axes in the first place.

The corrected version, if a chart is needed at all. Change the mark. A dot plot with the vertical axis running 93.5 to 95.5, three dots, a horizontal reference line at 95.0 labelled as the contractual floor, and the Q3 dot in an accent because it is the one above the line. Position along a scale carries no implicit claim about zero, so a truncated range is legitimate here in a way it never is for bars. The reader sees a rising series, sees where it crosses the floor, and reads the 0.9-point and 0.4-point shortfalls in Q1 and Q2 directly.

The corrected version, most of the time. The sentence. Twenty-three words carry the level, the change, the reference and the timing, they read in under six seconds, and they cannot be misread. A slide that exists to hold three numbers has usually been built because a section looked thin.

The rule this example installs. The zero baseline applies to length encodings and not to position encodings. A bar means its length, so cutting it cuts the meaning. A dot means its position, so the axis range is a framing choice and doesn't distort anything. What you do owe the reader is a labelled range and a drawn reference. Reaching for a truncated bar axis is a signal that the mark is wrong, not that the axis is.

The checklist to apply.

  1. Count the points. Below about five, the sentence usually does the job, so write it first.
  2. If a chart is needed, ask what the mark encodes before setting the axis.
  3. Anchor at zero for bars, columns and areas, always.
  4. Where zeroing hides a real movement, change the mark. Leave the axis alone.
  5. Draw the reference the message names, and label it.
  6. Compute the lie factor on any chart whose axis you were tempted to cut.

Verify

Every printed figure, at full precision, in the order it appears.

Sector panel: weights sum 100.0000; cap-weighted index return = (30×1.3 + 18×9.6 + 13×2.1 + 10×(−3.8) + 9×4.2 + 8×(−16.2) + 7×12.9 + 5×18.4)/100 = 2.916000; equal-weighted mean 3.562500; difference 0.646500; spread 18.4 − (−16.2) = 34.6000; sectors above the index 4. Contributions +0.920, +0.903, +1.728, +0.378, +0.273, +0.390, −0.380, −1.296, summing to 2.916000000. Deviations +15.4840, +9.9840, +6.6840, +1.2840, −0.8160, −1.6160, −6.7160, −19.1160; weighted deviations sum to 0.000000000. Pie arithmetic: positives 48.5000, negatives −20.0000, arithmetic total 28.5000; Realty share 64.5614%; Realty angle 232.4211 degrees. IT share of the index move 59.2593%; Pharma share −44.4444%.

Breadth: index 4,780 → 5,483, growth 0.14707113 = 14.7071%; breadth 71 → 38, change −33 points; peak 74 in April; peak-to-December fall 36 points; July-to-December fall 28 points; share of the January-to-December fall arriving after July 84.8485%; months breadth rose 2, fell 9. Implied slope-chart rate −33/11 = −3.0000 points a month; worst actual month −6 points, 2.0000 times the implied rate. Area arithmetic: zero-anchored fill below the series minimum 38/74 = 51.3514%; the 36-point band occupies 36.0000% of a 0-to-100 plot. Indexed values as tabled; December gap 114.707113 − 53.521127 = 61.1860 index points.

Revenue bridge: net change 11.90 + 4.60 + 2.20 − 2.90 − 1.60 = 14.2000; 52.00 + 14.20 = 66.2000; growth 14.20/52.00 = 27.307692%; gross additions 18.7000; gross subtractions −4.5000; gross-to-net 1.316901; new customers as a share of gross additions 63.6364% and of net growth 83.8028%; existing-customer decline as a share of FY25 revenue 5.5769%. Running totals 63.90, 68.50, 70.70, 67.80, 66.20. Channel totals 52.0000 and 66.2000; shares sum to 100.000000 in both years; general trade 46.923% → 37.915%, marketplace 10.962% → 15.710%.

Retention and growth: n = 14; mean retention 112.428571; mean growth 26.928571; Pearson r = 0.892777; r² = 0.797050; unexplained variance 20.2950%; OLS slope 0.999005, intercept −85.388178; fitted growth at retention 100 14.5124% and at 120 34.4925%, a difference of 19.9801 points; low-group mean 19.000000 over n = 6; high-group mean 32.875000 over n = 8; ratio 1.730263; the best low-group company at 31 beats 3 of the 8 high-group companies; residuals from +7.4966 to −8.4845, standard deviation 4.271994.

Loan book: n = 40; mean 3.088750; median 1.185000; population standard deviation 2.444267; total 123.5500 lakh; loans within ±10% of the mean 0; loans between 2.00 and 4.00 0; cluster A n = 22, mean 0.924091, range 0.62 to 1.28; cluster B n = 18, mean 5.734444, range 4.60 to 7.20; distance between cluster means 4.810354; the band with no loans in it runs 1.28 to 4.60, a width of 3.3200. Five-number summary 0.6200 / 0.8950 / 1.1850 / 5.5400 / 7.2000; IQR 4.6450; loans inside the box 20, of which 0 lie in the 2.00-to-4.00 gap. Histogram at 0.50 lakh bins 0, 15, 7, 0, 0, 0, 0, 0, 0, 3, 4, 5, 3, 2, 1; at 2.00 lakh bins 22, 0, 12, 6. Branch means 0.7818, 1.0664, 5.1389, 6.3300.

Covenants: headroom 0.4500x, 0.9200x, 0.0600x, $16.8000m, $5.6000m; headroom as a share of threshold 12.8571%, 36.8000%, 4.8000%, 67.2000%, 31.1111%. EBITDA fall to breach: leverage 1 − 3.05/3.50 = 12.8571%; interest coverage 1 − 2.50/3.42 = 26.9006%; fixed-charge coverage 1 − 1.25/1.31 = 4.5802%; ratio of the leverage cushion to the fixed-charge cushion 2.807143. At EBITDA $46.2m: net debt $140.9100m, cap at 3.50x $161.7000m, interest $13.508772m, fixed charges $35.267176m, EBITDA at breach $44.083969m, fall $2.116031m.

On-time delivery: change 1.1000 points, relative 1.168969%; truncated bar heights 0.600, 1.100, 1.700; depicted change 183.333333%; lie factor 183.333333 / 1.168969 = 156.8333; truncated Q3 bar 2.8333 times the Q1 bar; zero-anchored Q3 bar 1.011690 times the Q1 bar; Q1 shortfall 0.9000 points, Q2 shortfall 0.4000 points, Q3 margin 0.2000 points; the replacement sentence runs 23 words.

Practice-set figures: longest channel label 30 characters against 18.4995 characters of available column width, a factor of 1.6217; bank revenue slices 257.040, 51.120, 29.160, 15.480, 7.200 degrees, the two smallest differing by 8.2800 degrees; four regional series spanning 5.80 to 19.40 with growth +22.5806%, −3.7037%, +67.3469%, −6.4516% and a 16.5000-fold distortion under auto-scaling; budget variance +13.60, −1.60, +5.80, −0.90, −11.80, +1.90 on a total of 325.00 against 332.00, a net +7.00 or +2.1538%, with the largest relative variance −24.5833%; doubling series growth 100.0000% for four steps then 50.0000%, log-10 steps 0.301030 and 0.176091; six-state total 120.20 with the top two carrying 44.7587%.


Practice set

Work each one before reading the solution. A calculator is assumed. Numeric answers within 2% of the stated figure count as correct unless a problem says otherwise, and where a problem asks for a form, the answer is only complete when it also names the rejected alternative and the rule that rejected it.

P1 (guided). Name the type from the verb (India). Four sentences about the same table of quarterly sector returns. Classify each into one of the seven message types and name the verb that decided it. (a) "Realty returned 18.4%, more than any other sector." (b) "The index has risen in six of the last eight quarters." (c) "IT contributed 59.26% of the index's return this quarter." (d) "Sectors with higher weights returned less this quarter."

Solution. (a) Comparison, on "more than any other". A sorted bar or dot plot of the eight returns. (b) Change over time, on "has risen", with eight ordered points, which is a line. (c) Composition of a signed total, on "contributed", which is a waterfall of contributions ending at the index return of 2.916. (d) Relationship, on "with higher weights returned less", which is a scatter of weight against return, and with n = 8 the better answer skips the scatter and uses a labelled table with the correlation stated. Four sentences, one dataset, four different forms. The common error is to answer from the data (eight sectors, one quarter, therefore a bar chart). Answer from the verb.

P2 (guided). Columns or bars (India). Six acquisition channels are to be compared on volume: "Business correspondent network", "Direct-to-consumer app", "Bank branch referral", "Corporate salary tie-up", "Dealer point of sale", "Aggregator marketplace". The slide is 13.333 inches wide with 0.5 inch margins and the type is 14-point, giving roughly nine characters to the inch. Decide the orientation, showing the arithmetic.

Solution. The plot area is 13.333 − 1.0 = 12.333 inches. Six columns divide it into 12.333/6 = 2.0555 inches each, which at nine characters to the inch is 18.4995 characters of label. The longest name, "Business correspondent network", runs 30 characters and needs 30/18.4995 = 1.6217 times the space available. Horizontal bars, sorted by volume, with the labels in the left margin at full size. The rejected alternative is a column chart with 45-degree labels, rejected because rotation costs reading speed on a chart the reader has three seconds for, and because the software made the rotation decision. You didn't.

P3 (guided). Twelve points or two (US). A breadth series runs monthly for a year: 71, 69, 72, 74, 70, 68, 66, 61, 55, 49, 43, 38. Somebody proposes a slope chart of January against December. Compute what the slope chart asserts, compute what actually happened, and state whether the proposal survives.

Solution. The slope chart asserts a move from 71 to 38 over eleven intervals, −33/11 = −3.0000 points a month, sustained. The series actually rose in two months, peaked at 74 in April, and gave up 28 of its 33 points after July, which is 28/33 = 84.8485% of the total decline in five of the eleven intervals. The worst single month lost 6 points, 2.0000 times the implied constant rate. The proposal does not survive: the heuristic sends exactly two periods to a slope chart and twelve ordered points to a line, and drawing the slope chart is a decision to discard ten observations. Use the slope chart only when you really do hold two periods.

P4 (guided). Five parts and a circle (India). A bank's revenue splits into interest income 71.4%, fee income 14.2%, treasury 8.1%, insurance distribution 4.3% and other 2.0%. Compute the slice angles, state whether a pie is admissible, and give the form you would use.

Solution. The angles are 71.4% × 360 = 257.040, then 51.120, 29.160, 15.480 and 7.200 degrees. The two smallest slices differ by 8.2800 degrees out of 360, which no reader resolves, and comparing them means travelling around a circle. Five parts is above the three-slice ceiling, so the pie is out. The form is a sorted horizontal bar of the five shares with direct labels, and with one part at 71.4%, the whole chart may really be a sentence: interest income is 71.4% of revenue and the other four sources together are 28.6%.

P5 (independent). What the scatter licenses (US). Fourteen companies give a correlation of 0.8928 between net revenue retention and revenue growth. A colleague proposes the title "Improving retention drives growth". Compute the unexplained share of variance, and write a title you can defend.

Solution. r² = 0.797050 from the unrounded r = 0.892777, so 1 − 0.797050 = 0.2030 and 20.30% of the variation in growth is unexplained by retention. Squaring the displayed 0.8928 gives 0.7971 and the same answer at one decimal place, which is the only precision this claim can carry. The proposed title asserts causation, which no scatter can establish: retention could raise growth, fast growth could flatter measured retention because a young base has not yet had time to churn, and an expanding category could raise both. A defensible title states the association and its strength, for example "Retention and growth move together across these fourteen companies, and retention explains about 80% of the variation in growth". Anything with a causal verb needs an argument the chart does not contain.

P6 (independent). The shared scale (India). Four regions over four years, in ₹ crore. North 12.4, 13.1, 13.9, 15.2. West 18.9, 19.4, 19.1, 18.2. South 9.8, 11.6, 13.7, 16.4. East 6.2, 6.4, 6.1, 5.8. You are building four small line charts in a row. State the scale each panel must use and compute the distortion that auto-scaling would introduce.

Solution. All four panels share one vertical scale spanning at least 5.80 to 19.40, the minimum and maximum across every series. Auto-scaled, each panel fills its own plot with its own range, so East's fall of 6.2 − 5.8 = 0.40 crore occupies the same vertical distance as South's rise of 16.4 − 9.8 = 6.60 crore, a distortion of 6.60/0.40 = 16.5000 times. The growth rates are +22.5806%, −3.7037%, +67.3469% and −6.4516%, and the total moves from 47.30 to 55.60, +17.5476%. A shared scale is what makes the grid a comparison. Without it, you've got four unrelated pictures in a row.

P7 (independent). What the box hides (India). A book of forty loans has the five-number summary 0.62, 0.895, 1.185, 5.54, 7.20 in ₹ lakh, a mean of 3.0888 and a median of 1.1850. Zero loans lie between 2.00 and 4.00 lakh. State what a box plot would show, what it would hide, and the form you would use instead.

Solution. The box spans Q1 to Q3, 0.895 to 5.54, an interquartile range of 4.6450, and it is the largest element on the chart. It correctly reports that twenty loans lie in that band. It hides that not one of them falls between 1.28 and 4.60, so the visually dominant rectangle covers a region containing no data. It also hides the two-cluster structure entirely, since a five-number summary cannot express bimodality. The mean and median differ by a factor of 3.0888/1.1850 = 2.6065, which is itself the signal. Use a dot plot of all forty observations, with the mean and median marked. At forty points nothing needs summarising.

P8 (independent). Sorting a variance (US). Six budget lines, in $m. Raw material 128.0 budget against 141.6 actual; labour 62.0 against 60.4; freight 34.0 against 39.8; power 22.0 against 21.1; marketing 48.0 against 36.2; overheads 31.0 against 32.9. Choose the form, then state which line is the top row under two different sorts and why the choice matters.

Solution. Totals are 325.00 budget and 332.00 actual, a net variance of +7.00 or +2.1538%. The message is a gap from a reference, so the form is a diverging bar centred on zero. Sorted by absolute variance, the top row is raw material at +13.60. Sorted by percentage of budget, the top row is marketing at −24.5833%, with freight second at +17.0588%. Both sorts are fair, they produce different top rows, and the top row is what a reader carries away. Choose the sort that matches the sentence: absolute if the message is about cash, relative if it is about control, and say which one you used.

P9 (independent). Compute the lie (India). A quality metric reads 94.1%, 94.6% and 95.2% across three quarters. A column chart is drawn with the axis starting at 93.5. Compute the lie factor, then state the repair and why anchoring at zero is not it.

Solution. Bar heights are 0.600, 1.100 and 1.700, so the depicted change is 1.700/0.600 − 1 = 183.3333%. The real change is 95.2/94.1 − 1 = 1.168969%. The lie factor is 183.3333/1.168969 = 156.8333. Anchoring at zero is honest and makes the Q3 bar 1.011690 times the Q1 bar, so a real 1.1-point gain becomes invisible, which is the pressure that produced the truncation. The repair is to change the mark: a dot plot or a line on a 93.5-to-95.5 axis with a labelled reference line at the 95.0% floor. Position encodings carry no implicit claim about zero. Length encodings do.

P10 (independent). Linear or log (US). A revenue series runs 4.0, 8.0, 16.0, 32.0, 64.0 and 96.0 over six years. State what a linear axis suggests about the final year, what a log axis shows, and which one matches a message about the growth rate.

Solution. Growth is 100.0000% for each of the first four steps and 50.0000% for the last. On a linear axis the final step of 32.0 ties the largest rise on the chart, the 32.0 from year four to year five, so nothing in the picture says the growth rate halved. On a log axis the steps are log10(2) = 0.301030 four times and then log10(1.5) = 0.176091, so the last step is visibly the shortest, which is what the data says. A message about the rate of change takes the log axis, labelled as logarithmic. A message about the absolute size of the business takes the linear one. The same series supports either sentence and the axis has to match the sentence you wrote.

P11 (independent). The column a chart cannot invent (US). Three EBITDA-linked covenants: total net leverage capped at 3.50x against an actual of 3.05x; interest coverage floored at 2.50x against 3.42x; fixed-charge coverage floored at 1.25x against 1.31x. Rank them by risk and state why a bar chart of headroom percentages gives the wrong answer.

Solution. Convert each to the EBITDA fall that breaches it. Leverage: 1 − 3.05/3.50 = 12.8571%. Interest coverage: 1 − 2.50/3.42 = 26.9006%. Fixed-charge coverage: 1 − 1.25/1.31 = 4.5802%. Fixed-charge coverage breaks first, and the leverage cushion is 12.8571/4.5802 = 2.8071 times as large. A bar chart of headroom as a percentage of threshold puts three quantities computed from different units on one scale, which is a category error, and it also omits the derived column entirely. The table is right because the analysis that makes the rows comparable is a computation, not a rendering.

P12 (independent). Whose order is it (India). Six states with revenue in ₹ crore: Uttar Pradesh 18.4, Maharashtra 31.2, Karnataka 22.6, Tamil Nadu 19.9, West Bengal 11.3, Gujarat 16.8. The default chart is alphabetical. State what the alphabetical order claims, what a value sort gives the reader, and when an alphabetical order would be correct.

Solution. The total is 120.20, and the top two carry (31.2 + 22.6)/120.20 = 44.7587%. Alphabetically, Gujarat is the first row and Maharashtra is the third, so the reader must scan and compare across the whole chart to find the largest value. Sorted descending, Maharashtra is the first row and the concentration is legible immediately. The alphabetical order claims that the ordering carries no information, which is false for these categories. It is correct only where the reader's task is lookup by name, which is a table's job, or where the categories carry an intrinsic sequence, which states do not.


Applied mini-project

Thirty situations, each with a stated message. For each one you produce three things: the primary form, the rejected alternative, and the row of the heuristic that decided it. Budget about 90 minutes for the thirty, then about 30 minutes on the write-up.

How to work it. Answer all thirty before checking any of them. For each situation, write the six inputs in shorthand (type, n, ordered, series, sums-to-whole, lookup), then the primary form, then the rejected alternative and the rule. A complete answer looks like this, using the first situation as the model: comparison, n = 6, unordered, s = 1, no whole, glance, giving a sorted horizontal bar (row 2, labels over 18 characters); rejected the column chart, because rotation is not a fix for a label that does not fit.

Then score yourself against the key, and for each of your first five errors write four sentences: what you chose, what the heuristic returns, which of the six inputs you read wrongly, and the sentence you would have had to write for your original answer to be correct. Spend the most time on that last sentence. A wrong form is almost always a symptom of a message you hadn't pinned down.

The thirty situations.

#MarketThe messageFacts
1IN"The business correspondent network is our largest acquisition channel."6 channels, one period, longest label 30 characters
2US"Gross margin has improved every quarter for two years."8 quarters, one series
3IN"Interest income is 71.4% of revenue."5 revenue lines, one period, sums to 100%
4US"Operating income grew far faster than revenue."8 quarters, two series, different magnitudes
5IN"Loan tickets cluster at two sizes, not around the average."40 observations, one variable
6US"Fixed-charge coverage has the least headroom of the five covenants."5 covenants, three different units, precision matters
7IN"The top two states are 44.8% of revenue."6 states, one period, sums to the book
8US"Companies with higher retention grow faster."14 companies, two continuous variables
9IN"Revenue grew ₹14.2 crore, but existing customers shrank."one total, 5 signed drivers
10US"Breadth fell 33 points over the year, mostly after July."12 monthly points, one series
11IN"Realty led the quarter; Pharma lost 16.2%."8 sectors, one period, values can be negative
12US"Only two of nine sectors beat the index."9 sectors, one period, a reference value
13IN"Our share of the modern-trade channel doubled in two years."2 periods, 6 competitors, shares of a channel
14US"Deal sizes are right-skewed with a long tail."340 observations, one variable
15IN"Three of six cost lines are over budget."6 lines, budget and actual, gap is the point
16US"Revenue is growing but the rate is slowing."6 annual points spanning 4 to 96
17IN"Q3 on-time delivery cleared the 95% floor."3 quarters, one series, a contractual reference
18US"Headcount by function, for the reader to look up."11 functions, exact numbers needed
19IN"The order book is concentrated in two customers."9 customers, one period, sums to the order book
20US"Churn is highest in the first ninety days."12 monthly cohorts, one series
21IN"Four regions, and only one is shrinking."4 regions, 4 years each, one series per region
22US"Marketing spend and pipeline move together, with wide scatter."22 months, two continuous variables
23IN"The FMCG basket costs 6.2% more than a year ago."1 number, one comparison
24US"Twenty-eight branches, ranked on cost-to-income."28 branches, order is the message
25IN"Gross margin fell 220 basis points, and here is why."one change, 4 signed drivers
26US"Revenue mix shifted from licence to subscription over five years."5 years, 3 revenue types, shares are the point
27IN"Yields on the two portfolios have converged."24 monthly points, two series, same units
28US"Every plant is above the safety threshold except one."14 plants, one metric, a threshold
29IN"Salaries range from ₹4.2 lakh to ₹48 lakh across 6 grades."6 grades, 210 observations, spread within each grade
30US"We closed 3 deals in Q1, 4 in Q2 and 4 in Q3."3 periods, small counts

The key. Check only after all thirty are written.

  1. Sorted horizontal bar, row 2. Rejected the column, because a 30-character label does not fit 18.5 characters of width.
  2. Line, row 5. Rejected the column chart, because eight quarters of a continuous margin are samples rather than discrete events.
  3. Sorted horizontal bar of the five shares, or a sentence, row 10. Rejected the pie, because five slices exceed the three-slice ceiling and the two smallest differ by 8.28 degrees.
  4. Two indexed lines on one axis, or two panels, row 5 plus the dual-axis fail. Rejected the dual axis, because the author's scaling would manufacture the relationship.
  5. Dot plot of all observations, row 16. Rejected the box plot, because a five-number summary cannot show bimodality.
  6. Table with a derived common-scale column, row 20. Rejected any chart, because the units are heterogeneous and precision has a consequence.
  7. Sorted horizontal bar of shares, row 10. Rejected the pie, because six parts are above the ceiling.
  8. Scatter with the correlation stated, row 13. Rejected the bar of group means, because it erases the overlap.
  9. Waterfall, row 12. Rejected the stacked bar, because it cannot show a signed driver.
  10. Line, row 5. Rejected the slope chart, because two periods discard the path that carries the message.
  11. Sorted bar or dot plot of returns, row 1. Rejected every part-to-whole form, because returns do not sum to a meaningful whole and two are negative.
  12. Dot plot with a reference line at the index, row 19. Rejected the plain sorted bar, because the message names a threshold that the bar cannot carry cleanly.
  13. Slope chart, row 7. Rejected two pies, because the reader would compare twelve angles from memory.
  14. Histogram with the bin width stated, row 15. Rejected the dot plot, because 340 points become a smear.
  15. Diverging bar centred on zero, row 19. Rejected the paired bar of budget against actual, because the gap is the message and a paired bar makes the reader compute it.
  16. Line on a logarithmic axis, row 5 plus the log rule. Rejected the linear axis, because the message is about the rate and the linear axis shows the last step as the largest.
  17. Dot plot with a reference line, or a sentence, row 8. Rejected the column with a truncated axis, whose lie factor is 156.83.
  18. Table, row 20. Rejected the bar chart, because the reader's task is lookup.
  19. Sorted horizontal bar of shares, with the top two labelled, row 10. Rejected the pie, because nine parts are far above the ceiling.
  20. Line, row 5. Rejected the column chart only if the cohorts are samples of a continuous process, and note that monthly cohorts are arguably discrete, which makes the column defensible here. Say which reading you took.
  21. Small multiples of lines on a shared scale, which is row 6's form although four series over four points sits just below both of its thresholds, so a single four-series line chart is defensible if you say which reading you took. Rejected auto-scaled panels either way, since they would distort by 16.5 times.
  22. Scatter with the correlation stated, row 13. Rejected the two-line time series, because the message is about the association rather than about either path.
  23. A sentence, row 20 in spirit. Rejected any chart, because one number is not a chart.
  24. Sorted dot plot, row 18. Rejected the bar chart, because 28 bars become a wall of ink and the message is order.
  25. Waterfall, row 12. Rejected the pie, because the drivers are signed.
  26. Hundred-percent stacked bar, three parts across five years, row 11. Rejected the stacked area, because the middle band has no common baseline.
  27. Two lines on one axis, row 5. Rejected small multiples, because the units are identical and the convergence is the message, which needs both series in one frame.
  28. Dot plot with a reference line at the threshold, row 19. Rejected the sorted bar, because the message is about the exception relative to a reference.
  29. Box plots by grade with the points overlaid, row 17. Rejected the bar of grade means, which hides the spread that is the message.
  30. A sentence, row 8 or row 20. Rejected the column chart of three counts, because three small integers read faster as words.

Rubric. Twenty points, passing at 16, with no zero on any row.

#Criterion012
1Message type named for all thirtyfewer than 25 attemptedall attempted, several types unnamedevery situation carries a named type
2Primary form correct19 or fewer of 3020 to 24 of 3025 or more of 30
3Rejected alternative namedrarelynamed for mostnamed for every situation
4The deciding rule citednot citedcited looselythe heuristic row or the named fail is cited each time
5The six inputs recordedabsentpartialall six recorded in shorthand for each situation
6Permanent fails caughtmissed two or moremissed oneevery dual-axis, pie, truncated-baseline and 3-D trap caught
7Error write-upsfewer than fivefive, thinfive, each naming the input misread
8The counterfactual sentenceabsentvaguefor each error, the sentence that would have made your original form correct
9Ambiguity handled honestlyforced a single answernoted ambiguity without resolvingnamed the ambiguity, took a reading, and said which
10Arithmetic where a rule needs itnone computedone computedthe label width, the slice angles and the lie factor computed rather than asserted

Any row whose evidence is missing scores zero regardless of how well the write-up reads. Row 8 is the one that carries the learning: a form you chose wrongly is recoverable, and a message you never wrote down is not.

A note on the situations that really are ambiguous. Numbers 20, 21, 23, 27 and 30 have more than one defensible answer, and that is deliberate. The heuristic returns a primary form from six inputs, and where an input is itself a judgement, two competent analysts will read it differently. The marks go to naming the input that's in question, taking a position and saying which reading you took. Agreeing with the key earns nothing by itself. That's what a defensible chart choice looks like in a review.


Reading & resources

Core (do these).

  • William Cleveland and Robert McGill, "Graphical Perception" (Journal of the American Statistical Association, 1984): the experimental source of the accuracy ranking used throughout, in which position along a common scale is recovered most accurately and angle and area much less so. Read it for the method as much as for the result. [Free] [Intermediate]
  • Gene Zelazny, Say It With Charts: the original message-to-form mapping, written for a consulting audience, and the closest published ancestor of the heuristic table above. The five comparison types it names map onto the seven used here with two splits. [Paid] [Beginner]
  • Cole Nussbaumer Knaflic, Storytelling with Data: the most practical modern treatment, and the one that connects form choice to the decluttering craft the next node teaches. The companion exercise book, Let's Practice, is the better buy if you want repetitions more than argument. [Paid] [Beginner]
  • Stephen Few, Show Me the Numbers: the reference treatment of table and graph design, and the place to go when you want the reason behind a rule and not just the rule. Its chapters on quantitative scales and on when a table wins are directly relevant here. [Paid] [Intermediate]
  • Edward Tufte, The Visual Display of Quantitative Information: the source of the data-ink argument and of the lie factor computed above. Read it for the standard of care; some of its specific prescriptions have been argued with since, which the field regards as healthy rather than embarrassing. [Paid] [Intermediate]

Going deeper.

  • Alberto Cairo, How Charts Lie: the best short treatment of chart deception, covering axis manipulation, the dual-axis problem and the aggregation traps that a bar of group means falls into. [Paid] [Beginner]
  • Naomi Robbins, Creating More Effective Graphs: a form-by-form catalogue with a strong treatment of the dot plot, which is under-used in business charts and appears in six rows of the heuristic. [Paid] [Intermediate]
  • Kieran Healy, Data Visualization: A Practical Introduction: free to read online at socviz.co, and unusually good on why a chart that is technically correct can still mislead. The code is in R, and the argument is language-independent. [Free] [Intermediate]
  • Tamara Munzner, Visualization Analysis and Design: the academic frame, organised around the task a visualisation serves and not around what it looks like. Heavier going, and the right book if you want the theory behind the six inputs. [Paid] [Advanced]
  • Leland Wilkinson, The Grammar of Graphics: the formal treatment of a chart as a composition of data, marks and scales, which is where the word grammar in the title above comes from. [Paid] [Advanced]

Free references.

  • The Financial Times Visual Vocabulary: a one-page poster mapping nine relationship types to chart forms, published free by the FT's visual journalism team and widely used as a desk reference. Its categories differ slightly from the seven used here. Comparing the two is a useful exercise, because you'll see that the mapping is a convention with reasons behind it. It isn't a law. Checked September 2026; verify it, since the poster is periodically revised.
  • The data-to-viz decision tree: a free online decision tree from data type to chart form, with the caveats each form carries. It reasons from the data, which is the opposite direction to the one taken here. Read both and the difference between the two approaches becomes obvious.

Do this, not just read. Take the last five charts you built. For each one, write the sentence it was meant to prove, name the message type, run the six inputs, and compare the form the heuristic returns with the form you drew. Any disagreement is either a chart to redraw or a sentence you had not written. Fifteen minutes, five charts, and it is the fastest audit available to you.


Teach it back & journal

Feynman prompt. Explain to a competent colleague who builds charts every week, and who has never questioned how they choose one, why the form is decided before anything else and why it cannot be repaired afterwards. Lead with the arithmetic. The principle on its own won't move them. A pie of eight sector returns gives a sector carrying 5% of the index a slice of 232.42 degrees, because 28.5 is not a total of anything. A column chart of 94.1%, 94.6% and 95.2% with the axis cut at 93.5 has a lie factor of 156.83, and anchoring the axis at zero makes the real improvement 1.17% of the bar length, so the answer is a different mark. A different axis won't do it. A slope chart of a twelve-point series asserts 3.00 points a month when one month lost 6 and 84.85% of the fall came in the last five. Then make the harder point, which is that none of those three charts is a rendering failure. Each is a form that cannot express the sentence its author wrote, and the sentence was never written down, which is how the wrong form got chosen. If your colleague can tell you, unprompted, which six questions they would ask before drawing anything, they have the grammar. If they can only tell you that pies are bad, they have a rule and not a reason, and the rule will fail them the first time somebody hands them three parts that really do sum to a whole.

Journal prompt. Open the last five charts you built or received. For each one, write the sentence it was meant to prove, in your own words, before looking at its title. Then run the six inputs and write down what the heuristic returns. Count the disagreements. For each disagreement, decide which of two things really happened: you drew the wrong form for a sentence you had, or you never had a sentence and the software chose for you. Those are different failures with different repairs, and analysts consistently report the first when the second is what occurred. Then write a paragraph about the form you reach for by default, because everybody has one. Some people default to the line chart and end up converting every message into a time series. Some default to the stacked bar and turn every comparison into a composition. Some default to the table because a table cannot be accused of anything, and then wonder why nobody reads their exhibits. Name yours, find the two charts in your last five where it did damage, and write what you would draw instead. Finish with the one input of the six that you skip most often. For most people it is the question about whether the parts sum to a meaningful whole, because it's the only one that makes you think about what the numbers are, and not what they look like. It's also the one that catches the worst errors.


This module's flashcards and mastery quiz are wired into the app: see the node's Quiz and Reviews.

Advertisement

The gate

The module's flashcards and its quiz are in the app. The quiz is the gate: you need 85% to pass it, and the next module opens when you do.