SpoolCalc

Where the numbers
come from

You are going to cut steel based on what this app tells you. You should be able to check it. Here is every formula, every source, and a set of worked examples you can run through with a pocket calculator.

The data

Fitting dimensions come from ASME B16.9, U.S. Customary tables. Not from a formula, not from another app, not from memory. The tables were read from the standard itself and entered one row at a time.

The full text of ASME B16.9 is public, because the standard is incorporated by reference into United States federal regulation. You can read the same document we used:

law.resource.org/pub/us/cfr/ibr/002/asme.b16.9.2003.pdf

Table 12 for long radius elbows, Table 15 for short radius, Table 17 for tees.

The shortcut that breaks

Every apprentice learns that a 45 degree elbow takes off 0.625 × the pipe size. That holds from 4" up. Below that, the standard sets a larger minimum and the shortcut is wrong.

Pipe Shortcut says ASME says Error
3/4"0.469"0.750"0.281"
1"0.625"0.880"0.255"
1-1/2"0.938"1.120"0.182"
2"1.250"1.380"0.130"
3"1.875"2.000"0.125"
6"3.750"3.750"none

Two fittings per offset, so the error doubles. On 3/4" pipe a calculator using the shortcut sends you better than half an inch long.

SpoolCalc reads the table, not the shortcut.

The formulas

Offset

travel  = rise / sin(angle)
advance = rise / tan(angle)
cut     = travel − takeout − takeout − 2 × weld gap

Rolling offset

true offset = √(rise² + roll²)
travel      = true offset / sin(angle)
roll angle  = atan(roll / rise)  ← the clock position

Parallel offset

shift per line = spacing × tan(angle / 2)

Bend every line at the same point and the perpendicular spacing in the diagonal drops to spacing × cos(angle). The shift puts it back. You can check it: shift × sin(angle) + spacing × cos(angle) comes back to the spacing you started with, at any angle.

Miter cut

welds       = pieces − 1
cut face    = total angle / (2 × welds)
end piece   = radius × tan(turn / 2)
mid piece   = 2 × end piece
template    = (OD / 2) × tan(cut face) × (1 − cos φ)

Branch cut

t(φ) = [ √(R² − r²·sin²φ) − r·cos φ·cos α ] / sin α

Two cylinders intersecting. R is the run radius, r the branch radius, α the angle between the axes, φ the position around the branch. At 90 degrees this reduces to √(R² − r²·sin²φ).

Cutback

new takeout = radius × tan(new angle / 2)

Worked examples

These are published problems from other sources, with their published answers. Run them through SpoolCalc and you get the same numbers. Every one of them is also a test that runs on each build.

Problem Published answer SpoolCalc
10" offset, 45° travel 14.14", run 10" 14 1/8", 10"
12" offset, 30° travel 24", shrink 3 1/4" 24", 3 1/4"
Rolling: 1 ft rise, 1 ft roll, 45° true offset 1.41421 ft, travel 2 ft same
Rolling: 12" rise, 18" roll, 45° true offset 21.63", travel 30.59" same
3 piece 90° miter cut face 22.5° 22.5°
6" LR 90 takeout 9" 9"
6" 45° takeout 3 3/4" 3 3/4"

One you can do on paper

6" pipe, two long radius 45 elbows, 10" offset, no weld gap.

travel  = 10 / sin 45° = 14.142"
takeout = 3.750"  ← ASME B16.9, Table 12
cut     = 14.142 − 3.750 − 3.750 = 6.642"
         = 6 5/8"

How it is tested

86 automated tests run on every build. They cover three different kinds of claim, because each one catches a different kind of mistake.

1. Agreement with the trade

The multipliers printed in every pipefitting handbook are pinned as tests: 11.25° → 5.126, 22.5° → 2.613, 30° → 2.000, 45° → 1.414, 60° → 1.155. If a change breaks one, the build fails.

2. Internal consistency

Different screens must not disagree. The takeout the Cutback screen gives you has to equal the takeout the Offset screen uses at the same angle. The arc removed plus the arc left has to equal the whole elbow. A mitered elbow has to get closer to a true arc as you add pieces, never further.

3. Published problems

The worked examples above, taken from sources that have nothing to do with this app, encoded as tests with their published answers.

What this does not prove

Tests show the maths is sound and matches what the trade publishes. They do not show that the app asks you for the right measurement, or that it matches the fit-up practice on your job, or that the drawing reads the way you expect on a ladder at seven in the morning.

Only real work proves that. If you build something with SpoolCalc and a number does not land, that is the most useful thing anyone can send us. Tell us the pipe size, the fitting, what you entered and what you measured after: tech@clk.company

Fitting dimensions are nominal. Real fittings vary within manufacturing tolerance. Always check the fitting in your hand before you cut.