Methodology · calibration, storage and limits
Ruler calibration, error bands and limits
Real Sizer turns a visual match with a bank card into a screen scale. This page explains that calculation, the error band shown with it, and how a saved calibration is checked. It also covers the cases that need a fresh match, even when the readout is still green.
What is measured, saved and checked
What is measured. Calibration measures one ratio: how many of your display's pixels cover a millimeter. No browser is told the physical size of the screen it draws on, so you supply that ratio by matching an outline to a clean, smooth-edged reference held just above the display without touching it. Every millimeter, inch and fraction the calibrated ruler draws comes from it. Marks sit at their exact fractional pixel positions. Snapping them to whole pixels would move a mark by up to half a pixel, which is 0.13 mm at the uncalibrated density.
How it is kept. The tool saves the match as device pixels per millimeter, together with the display readings the browser reported at the time, and compares those readings on later visits. A pixel-ratio change is corrected by arithmetic, and the readout names the correction. Any other change it detects takes the readout out of green and asks for a re-check. The browser-specific cases are below. Nothing is sent anywhere: the calibration stays in your browser, and the site's content security policy blocks connections to outside origins.
What it cannot tell you. The tool cannot see which object you are holding, and it cannot tell two screens apart when both report the same resolution and settings. Casting, mirroring and magnifiers change the size of the final image without changing any reading the page takes. All of these fall outside the calibration's error band.
What this site claims
The calibrated ruler makes four claims.
- A green reading applies your match. It means the saved record passed every state check, and a centimeter drawn on screen is a centimeter to within the band printed beside it, as long as you matched the right reference on this same display.
- The band is worked out for the reference and edge you used. It adds the object's permitted dimensional spread to a fixed alignment allowance and covers those two sources of error only.
- Closely spaced marks are omitted. A graduation level whose pitch falls below three device pixels is dropped. The readout names the omitted level and the density needed to show it.
- Nothing leaves your device. Your calibration is held in one record in your own browser's storage, including the density, reference and display readings. There are no accounts, analytics or uploads.
How a calibration is taken
Use a bank card, ID card or driving license in ISO/IEC 7810 format ID-1, with nominal dimensions of 85.60 by 53.98 mm. Use one that is clean, flat, undamaged and smooth-edged; hold it just above the display without touching it, do not press or slide it on the glass, and look square-on while you drag the outline until the edges agree. Any extra gap or tilt is outside the printed band. For the long edge, the tool divides the matched width in CSS pixels by 85.60 mm to get pixels per millimeter. The outline travels from 129 to 1369 CSS pixels across the long edge, which is 1.5 to 16 pixels per millimeter: enough to cover a living-room television used as a browser at one end and a 13-inch 4K laptop at 100% scaling at the other. A match left at either end of that travel is refused, because the control has run out of room and the real edge could lie farther out.
The control chooses a step small enough to stay within 0.35% of the outline being matched. For a card near the uncalibrated desktop scale, a single-pixel step is 0.31%. A shorter reference needs a finer step to provide the same relative adjustment.
The edge and orientation are separate choices. The edge determines the reference length and error band; the orientation determines whether the outline runs across or down the screen. Changing direction does not change the calculation. On a phone, the 85.60 mm long edge may fit down the portrait screen even when it is too wide to fit across it.
The band, in full
The calibration band uses this formula:
band% = object tolerance% + (0.7 mm / reference length in mm) × 100
The first term is the dimensional tolerance recorded from the object's standard. The second is an assumed alignment allowance of 0.7 mm across the pair of edges you line up, the same for every reference, so two references differ only by their lengths and their published tolerances. The terms are added, not combined in quadrature, so the band allows for both errors pushing in the same direction. The result is rounded up for display. The standard's tolerance describes a conforming object under the standard's conditions, and a worn card or sheet can fall outside it.
| Reference and edge | Nominal | Object tolerance | Alignment slop | Printed band |
|---|---|---|---|---|
| Bank card, long edge | 85.60 mm | 0.351% | 0.818% | ±1.2% |
| Bank card, short edge | 53.98 mm | 0.371% | 1.297% | ±1.7% |
| A4 sheet, long edge | 297.00 mm | 0.673% | 0.236% | ±1.0% |
| A4 sheet, short edge | 210.00 mm | 0.952% | 0.333% | ±1.3% |
The same 0.7 mm alignment allowance is 1.59 times larger as a share of the card's 53.98 mm short edge than of its 85.60 mm long edge. That makes the printed short-edge band half a percentage point wider. Use the long edge when it fits; use the short edge with the wider band when it does not.
What an uncalibrated screen shows
CSS defines an inch as exactly 96 pixels, and a millimeter as 96/25.4 = 3.7795 pixels. Browsers use those figures as fixed layout conversions and do not check them against the screen. Before calibration, this ruler draws at that 96 pixels per inch, so its real size depends on the panel's density and on the scaling between CSS pixels and the display. The table below works that size out for seven displays from the panel density and pixel ratio in each row.
| Display | Panel density | Pixel ratio | CSS px per real inch | A CSS inch renders as |
|---|---|---|---|---|
| 24-inch 1920×1080 | 91.8 ppi | 1 | 91.8 | 1.046 in (+4.6%) |
| 27-inch 2560×1440 | 108.8 ppi | 1 | 108.8 | 0.88 in (−12%) |
| MacBook Pro 14-inch, default scaling | 254 ppi | 2 | 127 | 0.76 in (−24%) |
| 13.3-inch 1920×1080 at 100% | 166 ppi | 1 | 166 | 0.58 in (−42%) |
| iPhone 15 | 460 ppi | 3 | 153 | 0.63 in (−37%) |
| Pixel 7 | 416 ppi | 2.625 | 158.5 | 0.61 in (−39%) |
| 15.6-inch 4K at 100% | 282 ppi | 1 | 282 | 0.34 in (−66%) |
The examples run both larger and smaller than physical size, so no single correction factor fixes them. A ruler drawn at 96 pixels per inch looks just like a calibrated one, which is why the ruler prints its calibration state beside every reading. The uncalibrated state is neutral: it means no match has been made yet. Keep hard or abrasive objects away from the display; use the printable ruler or another physical ruler for those jobs.
Measuring a distance within the page itself is a different job. The CSS pixel ruler measures layout distances, such as the span between its handles, in CSS pixels and uses no physical calibration.
How a calibration is kept
The ruler draws in CSS pixels, but it stores the matched density in device pixels per millimeter and converts with the browser's reported pixel ratio:
D_phys = ppmm_css × devicePixelRatio, and on any later visit ppmm_css = D_phys / devicePixelRatio.
Page zoom in Chrome, Edge and Firefox changes that ratio, and so does an operating-system display-scaling change on Windows and GNOME. Dividing the stored density by the current ratio gives the right CSS scale, so the calibration survives both. That was measured: one calibration, four operating-system display scales, and a 100 mm span drawn as 378.5 device pixels at every one of them. Safari page zoom and macOS scaled resolutions work differently and get separate checks, described below.
The saved display snapshot contains the pixel ratio, reported native pixel count, browser chrome width and height, viewport width in device pixels, layout scale, pinch scale, the measured width of a CSS inch, and, when available, the ratio of pointer travel on the screen to travel within the page. The privacy policy names all ten of those fields individually and lists the rest of the calibration record. The page compares these readings on each visit, whenever the browser fires a relevant event, and on a timer. The timer is there because a pixel-ratio change can happen without any event: in testing, the ratio went from 1 to 3 and back with the viewport fixed, and the browser fired nothing.
The stored record has checks of its own:
- Matching and storage use different ranges. The matching control covers 1.5 to 16 CSS pixels per millimeter. The stored density is checked against 1.2 to 28 device pixels per millimeter, roughly 30 to 711 pixels per inch. Because the stored range is the wider one, a good calibration read back at a different pixel ratio is kept even when its CSS-pixel value falls outside the matching range.
- An invalid record is discarded, and the page says so. A record that fails its schema version or its value bounds is thrown away and not repaired. The ruler goes back to the uncalibrated 96-pixel assumption and explains why the saved match was dropped.
- A reading the page could not take is stored as missing. An unavailable CSS-inch or pointer measurement is compared as absent. If it were stored as zero, it would look like a large disagreement with the display and drop a valid calibration out of green for no reason. A missing reading also cannot confirm that the display stayed the same.
Once a calibration is more than about six months old, the readout leaves green and asks for another twenty seconds with a card. The match may still be right; after that long, the page has no way to know what has changed.
Where those claims stop
These are the limits of the ruler, its saved ratio and its printed band.
Moving to another monitor
This page cannot detect a move to a different monitor of the same resolution. Take a 1080p calibration from a 24-inch panel to a 32-inch one: the reported resolution, pixel ratio, window, browser chrome and CSS-inch width all stay the same, while the glass is a third larger. The ruler is then 33% wrong, in green, with a ±1.2% band printed beside it. After any move to another screen, calibrate again, even though nothing on the page has asked you to. This case is also why a calibration is re-offered after about six months.
Casting, mirroring and magnifiers
A tab cast or mirrored to a television or projector is rescaled after the browser has drawn it, and an operating-system magnifier, such as the accessibility zoom on macOS and Windows, enlarges the final image the same way. None of the page's own readings change, so the readout stays as it was. Use the ruler on the display where you matched the reference, without casting or magnification. If the saved record is copied to another machine, match again there: the page notices that move only when the new display reports different readings.
Marks this ruler will not draw
Each graduation level needs a pitch of at least three device pixels, center to center: one pixel of line and two pixels of clear gap. Closer than that, the marks blur together or alias into a flat gray band with nothing left to count, so the ruler leaves that level out. The threshold depends only on the calibrated density.
| Graduation | Step | Device px per mm needed | Density needed | 24-inch 1080p (3.61) | 27-inch 1440p (4.28) |
|---|---|---|---|---|---|
| Millimeters | 1 mm | 3.0 | 76.2 ppi | yes | yes |
| Sixteenths of an inch | 1.5875 mm | 1.9 | 48.0 ppi | yes | yes |
| Thirty-seconds of an inch | 0.79375 mm | 3.8 | 96.0 ppi | no | yes |
| Half-millimeters | 0.5 mm | 6.0 | 152.4 ppi | no | no |
At the densities shown, neither display meets this ruler's threshold for half-millimeter marks. The lower-density example also omits thirty-second-inch marks. When a level is dropped, the page names it and prints the density that would have kept it, rounded up to the next whole pixel per inch so the printed figure is never below the real threshold.
Which reference objects are offered
The site's data holds sixteen reference objects. One is offered as a primary reference: the ID-1 bank card. A sheet of A4 is offered as a cross-check. The other fourteen are refused by name, each with its reason.
An object becomes selectable only after its dimensional tolerance has been read from a published standard and recorded with the clause, the derivation, at least two independent sources and a verification date. When the engine loads the data, it checks that those fields are present and withholds any row that lacks one. The fields are required because a tolerance guessed too small would understate the band while every other step of the arithmetic still came out right. Banknotes, US Letter sheets and coins are in that position today: their nominal sizes are listed on the calibration page, but no tolerance has been recorded for them, so they cannot be selected.
Two withheld objects do have recorded tolerances. The older-style ID-2 card would give a narrower modeled band, about ±1.0% against the ID-1 card's ±1.2%, but the two formats are easy to confuse. The ID-2 long edge is 22.7% longer than the ID-1 edge, so choosing the wrong format would put the ruler about 23% out before alignment even enters. A mini-SIM would have a ±3.6% band and can be confused with a nano-SIM, a different form factor with a 103% long-edge size difference relative to the smaller card. The tolerance band does not cover choosing the wrong object. The outline match cannot tell the page which card you are holding.
Paper is accepted only as a cross-check: ask the tool to calibrate from paper and it refuses and asks for a card match first. A sheet's long edge keeps the relative alignment allowance small, but a sheet can bow away from a vertical screen, and that bias is systematic and falls outside the band arithmetic.
What the band does not model
A bowed or damaged card, any gap or tilt while the reference is held above the display, parallax between the cover glass and the pixels, and screen curvature all fall outside the printed band, and any of them can be larger than it. The page cannot measure any of them. Use a flat, undamaged reference, keep it off the glass and look at it square-on. If you cannot hold it steady enough to compare the edges, use a physical ruler.
Browser zoom and altered display readings
The stored-density formula corrects a scale change when the browser reports that change through the pixel ratio. Safari (WebKit, on macOS and iOS) leaves the pixel ratio unchanged on page zoom, so there the tool watches the page layout and, when available, the pointer. When those readings show a zoom, the readout leaves green, says the calibration may be stale and asks for a re-match; it does not guess a correction factor. On macOS scaled resolutions the scaling factor lands in the reported pixel count while the pixel ratio stays put, so the saved density describes the framebuffer, and a change in that count is treated as drift. Fingerprinting-resistance modes, such as those in Firefox, Tor and Brave, can alter or restrict the values these checks read. The tool does not identify those modes. It discards and reports a record that fails validation, but altered values that still pass can put the ruler at the wrong scale.
This site keeps no database of device screen sizes. Resolution and pixel ratio do not identify a panel: Android devices can share those values, and iOS Display Zoom, macOS scaled resolutions and privacy settings change what is reported. The screen diagonal you can type in only starts the outline near the expected size and gives a sanity check. It does not count as a calibration or earn a green badge; the reference still has to be matched.
The cross-check threshold is tighter than the bands
When a second, independent reference agrees with the first to within 1%, the state becomes cross-checked, the only readout state on this site that earns the word verified. Above 1%, the tool reports the disagreement and leaves the original calibration unchanged. The threshold is tighter than the two bands: a card at ±1.2% and an A4 long edge at ±1.0% can differ by 2.1%, using the unrounded model terms, with each reading inside its own band. So a disagreement above 1% means the second object did not confirm the first; it does not show that the first was wrong. Every cross-check uses the same fixed 1% threshold.
How the reference figures are kept
Each verified reference row records its date, its sources, the standard clause and the arithmetic that turns the dimensional tolerance into a percentage. Writing that arithmetic out makes a derivation checkable without fetching the standard again, and it caught a unit error in an earlier draft of the card's short-edge figure: a difference in millimeters had been entered as a percentage, which understated that tolerance by a factor of 1.85.
Each row carries its own verification date, and re-checking a row moves only that row's date. The bank card, the A4 sheet and the withheld ID-2 and mini-SIM rows carry dates and sources; the other rows do not. The calibration page prints every row, including the refusals and their reasons.