Skip to content
§11.1.1

Cover Every Data Point

A few correct values, or every point in the chart?

✅ NormativeSettled. The requirement holds as written.📄 Page ruleCan be applied from the page alone.Read §11.1.1 in the RFC ↗

The requirement

A chart MUST be rendered as a chart table that holds every data point the chart draws: every category position × every series, plus every printed callout that belongs to a position. A data point MUST NOT be skipped because it is hard to read; it MAY be left out only when no printed text can locate it or it is genuinely unreadable.

When it applies

A chart is a data display, so its conforming rendering is its content — see Images and Figures (§12.1.2). A rendering that gets a few prominent points right while the rest of the chart is missing is not a rendering of the chart.

Reading the examples. Each one pairs a source page with the output the rule expects. ✅ Sample: the rule applies. ❌ Counter-sample: it looks like it applies and does not, or a rendering got it wrong. A non-conforming output, in red, is shown only for contrast. … marks content left out of an excerpt.

What full coverage means

Chart Data points the chart table MUST hold
Grouped or stacked bars positions × series (the sample below: 6 years × 4 groups = 24 values)
Single series one per position
Printed callouts and totals one each, where a printed label can locate them — see Legend and Overlay Values (§11.2.4)
Multi-panel figure every panel, without exception — see Multiple Charts and Reference Ink (§11.1.3)

Two kinds of position MUST still be covered:

  • A labeled position with no mark is a data point whose value is 0 — the histogram's empty 1500 bin is 0 (see Bars and Histograms (§11.2.1)).
  • A position the axis does not label is located by its axis value: 2023 on a year axis that ticks every third year, 2500 on a bin axis that labels every other bin. The printed, regularly labeled axis is the calibration; a position that no printed calibration reaches is not locatable.

What may be left out

The default is in. A data point that can be read MAY be left out only when:

  • no printed text can uniquely locate it — see Labels (§11.1.2); the unnamed companion curve in Legend and Overlay Values (§11.2.4) is the standing example; or
  • it is genuinely unreadable — too blurred, too dense, or overlapping beyond judgment.

Leaving a point out MUST NOT be replaced by invented text: a made-up series name, a made-up category or a placeholder cell stands for nothing on the page (see Never Drop, Never Invent (§2.2)).

The page is the only reference

Values are read from the page. A value MUST NOT be shaded towards what some parser or earlier rendering produced, and a correct value stays correct however many renderings disagree with it (see The Page Is the Ground Truth (§2.1)).

The chart table

Every table representing a chart MUST open with <table data-source="chart">. The data-source="chart" attribute belongs on the opening <table> tag, including when the chart prints a data grid that supplies the table's content (see Chart With a Printed Data Grid (§9.1.2)). A table representing an ordinary printed table MUST NOT carry data-source="chart".

The layout of the chart table. A chart table MUST be laid out as follows, so that every chart table reads the same way — category down, series across:

  • one HTML <table data-source="chart"> per chart or panel, at the chart's place in reading order;
  • the chart's title, subtitle or caption in <caption> inside that table, first or last according to reading order (see Titles Banners Captions (§9.7.3)); its printed notes and source follow the table;
  • one row per category position (axis tick, bar, bin, slice, tile, region, named point), in the order the axis runs — left to right, top to bottom, a pie clockwise from the top;
  • a first column holding the category labels, then one column per series in legend order;
  • a header row holding the printed series names, its first cell holding the printed category-axis title or left empty; a single series with no printed name is headed by the printed value-axis title; when nothing printed names any column, the table has no header row;
  • a printed total that is not itself a category (a stack total above its bar) sits in a last column under an empty header cell;
  • printed text of the chart that is not a data point — axis titles not used as headers, unit notes, reference-line labels, event callouts, annotation boxes, legend entries of series that carry no value — follows the table as plain text in reading order.

The value in each cell is governed by Values and Tolerances (§11.1.4); the labels in the first column and the header row by Labels (§11.1.2).

01

✅ SampleThe rule applies

Six stacked bars over six labeled yearsdigital-services-survey-2024_p62

Six stacked bars over six labeled years, four legend series, every segment printing its value: full coverage is 6 × 4 = 24 values, all printed, so all copied as printed — count and share together.

Source page
Cover Every Data Point — Six stacked bars over six labeled years. Source page.
Expected output
Figure 2.2 Number and percentage of municipalities in each DSI group, 2014 to 2024
Low DSI Middle DSI High DSI Very high DSI
2014 32 (16.6%) 74 (38.3%) 62 (32.1%) 25 (13.0%)
2016 32 (16.6%) 57 (29.5%) 75 (38.9%) 29 (15.0%)
2018 15 (7.8%) 65 (33.7%) 73 (37.8%) 40 (20.7%)
2020 8 (4.1%) 59 (30.6%) 69 (35.8%) 57 (29.5%)
2022 7 (3.6%) 53 (27.5%) 73 (37.8%) 60 (31.1%)
2024 11 (5.7%) 44 (22.8%) 62 (32.1%) 76 (39.4%)

Sources: 2014-2024 Caldrivane Digital Services Surveys.

Cover Every Data Point · Source page

Six stacked bars over six labeled years

Cover Every Data Point — Six stacked bars over six labeled years. Source page.

More

Rule id charts-cover-every-data-point · charts basics