{
  "id": "rolling-offset",
  "version": "3b54aa9891a6",
  "status": "published",
  "name": "Rolling Offset Calculator",
  "question": "What is my rolling offset travel?",
  "summary": "Rolling offset calculator: the true offset, the travel (centre-to-centre pipe length) and the run of a rolling pipe offset from its rise and roll, with 45°, 60°, 22.5° or any fittings.",
  "category": "construction",
  "subcategory": "materials",
  "url": "https://www.acalculator.org/construction/rolling-offset-calculator",
  "markdown": "https://www.acalculator.org/construction/rolling-offset-calculator.md",
  "kind": "function",
  "method": "True offset = √(rise² + roll²); travel = true offset ÷ sin θ; run = true offset ÷ tan θ.",
  "assumptions": [
    "Both fittings have the same angle θ, and rise and roll are measured centre to centre of the pipe.",
    "Travel is centre to centre; take off each fitting’s make-up (take-out) to get the length of pipe to cut."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "rise": {
        "title": "Rise",
        "description": "The offset in one direction, such as up and down, centre to centre.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0,
        "maximum": 1000
      },
      "roll": {
        "title": "Roll",
        "description": "The offset in the other direction, such as sideways, centre to centre.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0,
        "maximum": 1000
      },
      "a": {
        "title": "Fitting angle",
        "description": "The angle of the two fittings that make the offset.",
        "type": "string",
        "enum": [
          "45",
          "60",
          "30",
          "22.5",
          "11.25",
          "custom"
        ]
      },
      "deg": {
        "title": "Angle, degrees",
        "description": "The fitting angle, more than 0° and less than 90°.",
        "type": "number",
        "minimum": 0.01,
        "maximum": 89.99
      }
    }
  },
  "outputs": {
    "travel": {
      "label": "Travel",
      "description": "True offset ÷ sin θ: the centre-to-centre length of the angled pipe.",
      "format": "quantity",
      "unit": "in"
    },
    "trueOffset": {
      "label": "True offset",
      "description": "√(rise² + roll²).",
      "format": "quantity",
      "unit": "in"
    },
    "run": {
      "label": "Run (setback)",
      "description": "True offset ÷ tan θ: how far along the line the offset takes.",
      "format": "quantity",
      "unit": "in"
    },
    "multiplier": {
      "label": "Travel multiplier",
      "description": "1 ÷ sin θ: travel = true offset × this.",
      "format": "number"
    },
    "rollAngle": {
      "label": "Roll angle",
      "description": "The angle to turn the offset off vertical: arctan(roll ÷ rise), in degrees.",
      "format": "number"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "rise": 0.30479999999999996,
      "roll": 0.2286,
      "a": "45",
      "deg": 45
    },
    "outputs": {
      "travel": 0.5388153672641491,
      "trueOffset": 0.38099999999999995,
      "run": 0.381,
      "multiplier": 1.4142135623730951,
      "rollAngle": 36.86989764584403
    },
    "text": "The travel is 21.213 in for a true offset of 15 in and a run of 15 in."
  },
  "examples": [
    {
      "given": {
        "rise": 0.30479999999999996,
        "roll": 0.2286,
        "a": "45"
      },
      "expect": {
        "trueOffset": 0.381,
        "travel": 0.5388153672641492,
        "run": 0.381
      },
      "source": "OpenStax, Algebra and Trigonometry 2e, section 7.2 Right Triangle Trigonometry (sin θ = opposite ÷ hypotenuse, tan θ = opposite ÷ adjacent) and the Pythagorean theorem, https://openstax.org/books/algebra-and-trigonometry-2e/pages/7-2-right-triangle-trigonometry (retrieved 2026-10-03); hand calculation in content.mdx: √(12² + 9²) = 15 in; 15 ÷ sin 45° = 21.213 in; 15 ÷ tan 45° = 15 in",
      "tolerance": 1e-12
    },
    {
      "given": {
        "rise": 0.2032,
        "roll": 0.15239999999999998,
        "a": "60"
      },
      "expect": {
        "trueOffset": 0.254,
        "travel": 0.29329393674832993,
        "run": 0.14664696837416497
      },
      "source": "OpenStax, Algebra and Trigonometry 2e, section 7.2 Right Triangle Trigonometry (sin θ = opposite ÷ hypotenuse, tan θ = opposite ÷ adjacent) and the Pythagorean theorem, https://openstax.org/books/algebra-and-trigonometry-2e/pages/7-2-right-triangle-trigonometry (retrieved 2026-10-03); hand calculation in content.mdx: √(8² + 6²) = 10 in; 10 ÷ sin 60° = 11.547 in; 10 ÷ tan 60° = 5.774 in",
      "tolerance": 1e-12
    },
    {
      "given": {
        "rise": 0.3,
        "roll": 0.4,
        "a": "custom",
        "deg": 30
      },
      "expect": {
        "trueOffset": 0.5,
        "travel": 1,
        "multiplier": 2
      },
      "source": "OpenStax, Algebra and Trigonometry 2e, section 7.2 Right Triangle Trigonometry (sin θ = opposite ÷ hypotenuse, tan θ = opposite ÷ adjacent) and the Pythagorean theorem, https://openstax.org/books/algebra-and-trigonometry-2e/pages/7-2-right-triangle-trigonometry (retrieved 2026-10-03); hand calculation in content.mdx: √(0.3² + 0.4²) = 0.5 m; 0.5 ÷ sin 30° = 1 m",
      "tolerance": 1e-12
    }
  ],
  "sources": [
    "OpenStax, Algebra and Trigonometry 2e, section 7.2 Right Triangle Trigonometry: sin = opposite ÷ hypotenuse, tan = opposite ÷ adjacent, retrieved 2026-10-03. https://openstax.org/books/algebra-and-trigonometry-2e/pages/7-2-right-triangle-trigonometry",
    "NIST Special Publication 811 (2008), Appendix B: 1 in = 25.4 mm exactly, retrieved 2026-10-03. https://www.nist.gov/pml/special-publication-811"
  ],
  "related": [
    "pipe-volume",
    "feet-and-inches",
    "inch"
  ],
  "changelog": []
}
