Skip to content

Methodology

How SnapScaleCalc calculates

Every calculator on this site calls the same engine. This page documents what that engine does, the arithmetic it uses, the unit definitions it is anchored to, and where it deliberately refuses to answer.

One engine, many entry points

The site is a single scaling model with different doors into it. A resize percentage, a representative scale, a fit constraint and a print correction are all the same quantity — a scale factor k — presented in the vocabulary of a particular job. Because there is one implementation, two pages cannot disagree: entering the same problem through the workbench, a calculator page or a chain step produces identical output.

Exact rational arithmetic

All values are held as exact fractions of arbitrary-precision integers — a numerator and a denominator — not as floating-point numbers. Parsing, unit conversion, scaling, chaining and constraint solving are all done on those fractions.

This matters because floating point cannot represent 1/3, or even 0.1, exactly. Chaining ten resizes in floating point accumulates drift; chaining ten exact fractions does not. It also means comparisons are trustworthy: the fit solver can identify the limiting axis from true ratios rather than from rounded values that may tie incorrectly.

Rounding happens once, at the moment of display. A value whose decimal expansion terminates is shown in full. A value that repeats — 1/3, or 1:6.833… — is shown truncated with an ellipsis so you can see it was cut, and the exact fraction is always available alongside it. No result is ever computed from a rounded intermediate value.

One boundary is worth stating plainly, because the rest of this page depends on it: “exact” here describes the arithmetic, not the world. The engine guarantees that results follow from the values you entered without drift. It does not measure anything, so it cannot make a measurement more accurate than the ruler that produced it. That distinction is carried through the disclaimer.

Unit definitions

Every length is normalised to exact millimetres before any arithmetic. Imperial units are anchored to the international inch:

  • 1 inch = 25.4 mm exactly (international yard and pound agreement, 1959)
  • 1 foot = 12 in = 304.8 mm
  • 1 yard = 36 in = 914.4 mm
  • 1 mile = 1760 yd = 1,609,344 mm
  • 1 cm = 10 mm, 1 m = 1000 mm, 1 km = 1,000,000 mm

Because 25.4 is held as the fraction 127/5, imperial-to-metric conversion is exact rather than approximate. Input accepts decimals, fractions and mixed numbers, including compound imperial forms such as 3' 7 1/2", and a half inch stays exactly one half.

The core relationships

Everything the site computes derives from a small set of definitions:

  • k = new length ÷ original length
  • percentage = k × 100
  • representative scale = 1 : (1 ÷ k)
  • area factor = k²   volume factor = k³
  • chained scaling: k_total = k₁ × k₂ × … × kₙ
  • reversal: k⁻¹ = 1 ÷ k
  • fit: k_max = min over axes of (available ÷ object)

Each calculator states which of these it used, with your numbers substituted, in the “how this was calculated” panel attached to its result. Nothing is hidden behind a black box.

Conventions are compared, never applied

Documented scales — ISO 5455 drawing scales, NMRA model railway scales, USGS map series, common kit and miniature ratios — are stored as a reference dataset with a named source and a check date for each entry.

The engine may report that your calculated scale is near a documented one, and show the exact percentage that would take you to it. It never silently substitutes the convention for your result. Rounding a measured 1:76.2 to a tidy 1:76 would destroy the very information you measured it for.

Where the engine refuses

Deliberate refusals

  • Ambiguous percentages. “150%” can mean scale to 150% or increase by 150%. Where the readings differ, both are shown rather than one being guessed.
  • Non-uniform print errors. If the horizontal and vertical factors of a bad print disagree, no single correction exists. The calculator says the output is distorted instead of averaging them.
  • Impossible fits. When an object cannot fit a space at any positive scale under the allowed rotations, the result says so and names the binding axis.
  • Division by zero and unparseable input. These produce a stated reason, not a zero, a NaN or a blank field.

What this site does not model

The engine is geometric. It does not model material behaviour, structural strength, weight, cost, printability, machine tolerance, thread and fastener standards, paper movement, print device behaviour, map projection distortion, terrain, or the compatibility of parts between scales.

Those limits are stated on every calculator rather than collected out of the way here, because a geometric answer applied to a physical problem is where scaling actually goes wrong. Nothing on this site is professional engineering, surveying, architectural or safety advice.