# Printable Graph Paper Planner

> Works out how a grid of squares actually falls on a sheet of paper: how many squares fit across and down, where the first line sits measured from the paper edge, how long every line is end to end, and how much of the sheet is ink. Everything is computed in this browser tab.

Use it: https://tessalor.com/en/print/printable-graph-paper

This tool runs entirely in the browser. Nothing entered into it is uploaded.

## Formula

```
printableWidth  = pageWidth  - 2 x margin
printableHeight = pageHeight - 2 x margin

across = floor(printableWidth  / spacing)
down   = floor(printableHeight / spacing)

gridWidth  = across x spacing
gridHeight = down   x spacing

centred:   firstLineX = margin + (printableWidth  - gridWidth ) / 2
           firstLineY = margin + (printableHeight - gridHeight) / 2
top-left:  firstLineX = firstLineY = margin

verticalLines   = across + 1
horizontalLines = down   + 1

a line is heavy when  every > 0  and  index mod every = 0
heavyVertical = floor(across / every) + 1

lineLength = verticalLines x gridHeight + horizontalLines x gridWidth

Wv = total width  of the vertical   strokes, capped at gridWidth
Wh = total height of the horizontal strokes, capped at gridHeight

inkArea  = Wv x gridHeight + Wh x gridWidth - Wv x Wh
coverage = inkArea / (pageWidth x pageHeight)

Every length above is held as a whole number of micrometres.
```

## Assumptions

- Every length is held as a whole number of micrometres, a thousandth of a millimetre, because the answer turns on a floor division and a floating-point millimetre gets that wrong by an entire column. On A4 with a 6 mm margin and 4.4 mm squares, 198 divided by 4.4 evaluates to 44.99999999999999, so a naive implementation reports 44 squares where there are 45.
- Only whole squares are counted. A partial square in the leftover strip is not drawn and not included, because a grid that ends in a sliver is what makes printed graph paper look wrong.
- Ink coverage treats each stroke as centred on its line and entirely on the paper. At a zero margin the outermost line loses half its width over the edge, so the figure is a fraction of a per cent high there.
- Paper sizes are trimmed sizes. Your printer's own hardware margin, usually 4 to 6 mm, is not deducted, so a margin below about 5 mm may be clipped by the printer rather than by the page.
- Every millimetre here assumes the sheet is printed at 100%. Browsers and print dialogues default to fitting the page, which shrinks everything by two or three per cent and makes 5 mm squares measure 4.9.

## Inputs

| Name | Label | Type | Default | Range |
| --- | --- | --- | --- | --- |
| `pageSize` | Paper | select | a4 |  |
| `orientation` | Orientation | select | portrait |  |
| `spacing` | Square size | number | 5 | 1 to 50 |
| `lineWeight` | Line weight | number | 0.25 | 0.05 to 2 |
| `margin` | Margin | number | 10 | 0 to 50 |
| `majorEvery` | Heavy line every | integer | 5 | 0 to 20 |
| `majorWeight` | Heavy line weight | number | 0.5 | 0.05 to 3 |
| `alignment` | Where the grid sits | select | centre |  |

## Outputs

- `totalSquares` — Squares on the sheet (integer), primary
- `squaresAcross` — Squares across (integer)
- `squaresDown` — Squares down (integer)
- `gridWidth` — Grid width (mm) (number)
- `gridHeight` — Grid height (mm) (number)
- `firstLineX` — First line from the left edge (mm) (number)
- `firstLineY` — First line from the top edge (mm) (number)
- `linesDrawn` — Lines drawn (integer)
- `majorLines` — Of those, heavy (integer)
- `lineLength` — Total line length (m) (number)
- `inkCoverage` — Page covered by ink (percent)

## Questions

### How many 5 mm squares fit on a sheet of A4?

With a 10 mm margin all round, 38 across and 55 down, which is 2,090 squares. With no margin at all it is 42 by 59, or 2,478. The width divides exactly either way, because 210 mm is 42 whole squares; the height never does, because 297 is not a multiple of 5.

### Why is my top margin 11 mm when I asked for 10?

Because a whole number of squares almost never fills the page exactly, and the leftover has to go somewhere. A4 gives 277 mm of printable height at a 10 mm margin, and 55 squares of 5 mm is 275 mm. Centring splits the spare 2 mm between the top and the bottom, so both become 11 mm. Choose the top-left layout under "More options" if you would rather keep the margin you asked for and put the whole remainder at the bottom.

### Why does my printed sheet measure slightly small?

Almost always because it was scaled. Print dialogues default to fitting the page to the printable area, which shrinks everything by two or three per cent — enough to turn 5 mm squares into 4.9 mm. Set the scale to 100%, or "Actual size", and turn off "fit to page". A ruler laid along ten squares is the quickest check: 5 mm squares should measure 50 mm.

### Is anything uploaded?

No. The arithmetic runs in this browser tab and there is no server to send it to. The figures and the line list never leave the machine you are reading this on.

### What is the smallest margin worth setting?

About 5 mm on a desktop printer. Almost none of them can print to the edge of the sheet: there is a hardware border, typically 4 to 6 mm and often larger at the trailing edge, that the paper feed simply cannot reach. Ask for less than that and the outermost lines are cropped by the printer rather than by anything on this page.

## Sources

- [CSS Paged Media Module Level 3](https://www.w3.org/TR/css-page-3/) — W3C, applies to Working Draft, 14 September 2023. Retrieved 2026-07-30.
- [CSS Values and Units Module Level 3](https://www.w3.org/TR/css-values-3/) — W3C, applies to absolute length units. Retrieved 2026-07-30.
- [SI Units — Length](https://www.nist.gov/pml/owm/si-units-length) — National Institute of Standards and Technology, applies to the 1959 international inch, exactly 25.4 mm. Retrieved 2026-07-30.

## Variants

- [How many 5 mm squares fit on a sheet of A4?](https://tessalor.com/en/print/printable-graph-paper/5mm-squares-on-a4)
- [Does quarter-inch graph paper fit US Letter exactly?](https://tessalor.com/en/print/printable-graph-paper/quarter-inch-on-us-letter)

---

Estimate, not advice. See https://tessalor.com/en/disclaimer.
Machine-readable catalogue: https://tessalor.com/api/tools.json
