Methodology

How we build and check our tools

What the tools do with your numbers, the formulas behind them, how we test them, and what to do if you find a mistake.

Last reviewed September 30, 2026.

How charts are drawn

Every chart is generated as an SVG image by the same code, in your browser for the editor and at build time for the example images on this site. Sharing one implementation means the pictures in our guides are exactly what the tools produce. PNG and JPG exports rasterize that SVG on your device.

  • Axes. Value axes use steps of 1, 2 or 5 × 10ⁿ. Bar charts include zero by default, because bar length is what encodes the value.
  • Stacking. Positive values stack upward from zero and negative values downward. In 100% mode each value is divided by the sum of absolute values in its category.
  • Sorting. Categories sort by the first series, or by the category total for stacked charts. A Pareto chart always sorts descending.
  • Pareto. The cumulative percentage at each category is the running total divided by the grand total. The left axis runs 0 to the total so the line aligns with 100%.
  • Pie. Angles are proportional to each value’s share of the total, clockwise from 12 o’clock. Zero, empty and negative values are omitted.
  • Line. Missing values break the line. Optional smoothing uses monotone cubic (Fritsch–Carlson) interpolation, which cannot overshoot the data.

Histogram formulas

The histogram maker uses these standard rules, with n values, sample standard deviation s and interquartile range IQR:

  • Sturges: k = ⌈log₂ n⌉ + 1 bins.
  • Square-root: k = ⌈√n⌉ bins.
  • Scott: width = 3.49 · s · n−1/3.
  • Freedman–Diaconis: width = 2 · IQR · n−1/3.

Quartiles use linear interpolation between order statistics (the same as Excel’s QUARTILE.INC and R’s default). Rule-based widths are rounded to the nearest 1, 2, 2.5 or 5 × 10ⁿ for readable bin edges. Each bin includes its lower edge and excludes its upper edge, except the last, which includes both. The bin width guide works through an example.

Number parsing

Pasted and imported numbers may include currency symbols, percent signs, spaces and parentheses for negatives. When a value contains both a comma and a dot, the last one is treated as the decimal mark. A lone comma is read as a thousands separator when it groups digits in threes (or in the Indian pattern), otherwise as a decimal comma. A header row is detected when every cell after the first is text, or when every one is a four-digit year.

How we test

  • Automated tests cover number parsing and formatting, axis scales, CSV parsing, histogram binning and quartiles, sorting and Pareto maths, and that every chart type renders without invalid values, including empty, single-value and very large data sets.
  • Visual checks. Every example image and diagram is inspected after it is generated.
  • Consistency. Numbers quoted in guides (for example the bin widths in the histogram guide) are computed with the same code the tool uses.
  • Build checks. Before each release we verify that every page has a unique title, description and canonical URL, one H1, valid structured data, and no broken internal links or images.

Tests do not replace judgement. If a tool produces a result that looks wrong, please tell us.

Sample data

All example datasets on this site are invented for illustration and are labeled “sample data” wherever they appear. They are not real statistics. When a guide or tool cites a real source, we link to it.

Accessibility

Each chart carries a title and a plain-language description generated from its data, and the Export tab offers the same text as copyable alt text. Controls are labeled and keyboard operable. A color-blind-safe palette and hatch patterns are available. We aim for WCAG 2.2 AA; if something in the tool is hard to use with your assistive technology, please tell us.

How we use AI assistance

We use AI tools to help draft code and text. AI output is not published unchecked: formulas are verified with automated tests, statements about tool behavior are checked against the code, and factual claims are checked against the sources they cite. The site does not generate pages in bulk; every page has a specific purpose and distinct content.

Corrections and updates

If you find an error, email contact@bargraphmaker.tech with the page and what is wrong. We correct confirmed errors and record substantive changes in the changelog. We change a page’s “updated” date only when its content changes in a way that matters to readers.