{
  "id": "wheelchair-ramp",
  "version": "ca4bf8153bf2",
  "status": "published",
  "name": "Wheelchair Ramp Calculator",
  "question": "Wheelchair ramp slope: how long?",
  "summary": "Wheelchair ramp slope calculator: the ramp length for a rise at 1:12, 1:16, 1:20 or any slope, or the slope of a ramp you measured, with the runs, landings, percent grade and angle.",
  "category": "construction",
  "subcategory": "materials",
  "url": "https://www.acalculator.org/construction/wheelchair-ramp-calculator",
  "markdown": "https://www.acalculator.org/construction/wheelchair-ramp-calculator.md",
  "kind": "function",
  "method": "Run = rise × slope ratio (or ratio = run ÷ rise); runs = rise ÷ most rise per run, rounded up; length in all = run + (runs − 1) × landing.",
  "assumptions": [
    "ADA 405.2: a ramp slope may not be steeper than 1:12; 405.6: one run rises at most 30 in; 405.7.3: landings are at least 60 in long.",
    "The ramp is straight; a turn at a landing changes the footprint but not the lengths.",
    "Lengths are measured level (plan view), as the ADA measures slope."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "find": {
        "title": "Find",
        "description": "Find the ramp length for a slope, or check the slope of a ramp you have measured.",
        "type": "string",
        "enum": [
          "length",
          "slope"
        ]
      },
      "rise": {
        "title": "Rise",
        "description": "The height from the lower level to the top: ground to door threshold.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0.001,
        "maximum": 10
      },
      "s": {
        "title": "Slope",
        "description": "Inches of ramp length for each inch of rise. The ADA allows 1:12 at most.",
        "type": "string",
        "enum": [
          "12",
          "16",
          "20",
          "custom"
        ]
      },
      "k": {
        "title": "Slope ratio, 1 :",
        "description": "Units of ramp length for each unit of rise, such as 14 for 1:14.",
        "type": "number",
        "minimum": 1,
        "maximum": 1000
      },
      "run": {
        "title": "Ramp run",
        "description": "The level distance the sloped part covers, landings left out.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0.001,
        "maximum": 1000
      },
      "mr": {
        "title": "Most rise per run",
        "description": "The most rise one sloped run may have before a landing. ADA: 30 in.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0.001,
        "maximum": 10
      },
      "ld": {
        "title": "Landing length",
        "description": "The length of each level landing between runs. ADA: at least 60 in.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0.001,
        "maximum": 100
      }
    }
  },
  "outputs": {
    "total": {
      "label": "Length in all",
      "description": "The sloped runs plus the landings between them, measured level.",
      "format": "quantity",
      "unit": "ft-in"
    },
    "runLength": {
      "label": "Sloped length, measured level",
      "description": "Rise × the slope ratio: the level distance of all the runs.",
      "format": "quantity",
      "unit": "ft-in"
    },
    "sloped": {
      "label": "Length along the slope",
      "description": "√(rise² + run²): the length of the ramp surface.",
      "format": "quantity",
      "unit": "ft-in"
    },
    "withEnds": {
      "label": "With top and bottom landings",
      "description": "Length in all + one landing at the top and one at the bottom.",
      "format": "quantity",
      "unit": "ft-in"
    },
    "ratioText": {
      "label": "Slope ratio",
      "description": "1 : (run ÷ rise).",
      "format": "text"
    },
    "percent": {
      "label": "Slope, percent",
      "description": "Rise ÷ run × 100.",
      "format": "number"
    },
    "angle": {
      "label": "Slope angle",
      "description": "The arctangent of rise ÷ run, in degrees.",
      "format": "number"
    },
    "runs": {
      "label": "Sloped runs",
      "description": "Rise ÷ most rise per run, rounded up.",
      "format": "integer"
    },
    "landings": {
      "label": "Landings between runs",
      "description": "Sloped runs − 1.",
      "format": "integer"
    },
    "ada": {
      "label": "ADA slope check",
      "description": "Whether the slope is 1:12 or flatter (ADA 405.2).",
      "format": "text"
    },
    "landingText": {
      "label": "Landings",
      "description": "The landings between runs, in words.",
      "format": "text"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "find": "length",
      "rise": 0.6095999999999999,
      "s": "12",
      "k": 12,
      "run": 7.315200000000001,
      "mr": 0.762,
      "ld": 1.524
    },
    "outputs": {
      "total": 7.3152,
      "runLength": 7.3152,
      "sloped": 7.340556055231782,
      "withEnds": 10.3632,
      "ratioText": "1:12",
      "percent": 8.333333333333334,
      "angle": 4.763641690726178,
      "runs": 1,
      "landings": 0,
      "ada": "meets the ADA 1:12 limit",
      "landingText": "no landing between"
    },
    "text": "The ramp takes 24 ft 0 in in all: 24 ft 0 in of slope at 1:12 (meets the ADA 1:12 limit), plus no landing between."
  },
  "examples": [
    {
      "given": {
        "find": "length",
        "rise": 0.6095999999999999,
        "s": "12",
        "mr": 0.762,
        "ld": 1.524
      },
      "expect": {
        "runLength": 7.315200000000001,
        "total": 7.315200000000001,
        "runs": 1,
        "ratioText": "1:12",
        "ada": "meets the ADA 1:12 limit"
      },
      "source": "US Access Board, ADA Accessibility Standards, Chapter 4, 405 Ramps (405.2 slope not steeper than 1:12; 405.6 rise of a run at most 30 in; 405.7.3 landings at least 60 in long), https://www.access-board.gov/ada/#ada-405 (retrieved 2026-10-03); hand calculation in content.mdx: 24 × 12 = 288 in = 24 ft, one run (24 ≤ 30 in)",
      "tolerance": 1e-12
    },
    {
      "given": {
        "find": "length",
        "rise": 0.9144,
        "s": "12",
        "mr": 0.762,
        "ld": 1.524
      },
      "expect": {
        "runLength": 10.972800000000001,
        "runs": 2,
        "landings": 1,
        "total": 12.4968,
        "withEnds": 15.5448
      },
      "source": "US Access Board, ADA Accessibility Standards, Chapter 4, 405 Ramps (405.2 slope not steeper than 1:12; 405.6 rise of a run at most 30 in; 405.7.3 landings at least 60 in long), https://www.access-board.gov/ada/#ada-405 (retrieved 2026-10-03); hand calculation in content.mdx: 36 × 12 = 432 in = 36 ft; 36 ÷ 30 → 2 runs; + 60 in landing = 41 ft; + 2 × 5 ft = 51 ft",
      "tolerance": 1e-12
    },
    {
      "given": {
        "find": "slope",
        "rise": 0.508,
        "run": 6.096,
        "mr": 0.762,
        "ld": 1.524
      },
      "expect": {
        "ratioText": "1:12",
        "percent": 8.333333333333334,
        "angle": 4.763641690726177
      },
      "source": "US Access Board, ADA Accessibility Standards, Chapter 4, 405 Ramps (405.2 slope not steeper than 1:12; 405.6 rise of a run at most 30 in; 405.7.3 landings at least 60 in long), https://www.access-board.gov/ada/#ada-405 (retrieved 2026-10-03); hand calculation in content.mdx: 240 ÷ 20 = 12, so 1:12; 20 ÷ 240 × 100 = 8.33%; atan(1/12) = 4.76°",
      "tolerance": 1e-12
    },
    {
      "given": {
        "find": "slope",
        "rise": 0.762,
        "run": 7.62,
        "mr": 0.762,
        "ld": 1.524
      },
      "expect": {
        "ratioText": "1:10",
        "percent": 10,
        "ada": "steeper than the ADA 1:12 limit"
      },
      "source": "US Access Board, ADA Accessibility Standards, Chapter 4, 405 Ramps (405.2 slope not steeper than 1:12; 405.6 rise of a run at most 30 in; 405.7.3 landings at least 60 in long), https://www.access-board.gov/ada/#ada-405 (retrieved 2026-10-03); hand calculation in content.mdx: 300 ÷ 30 = 10, so 1:10, steeper than 1:12",
      "tolerance": 1e-12
    },
    {
      "given": {
        "find": "length",
        "rise": 0.5,
        "s": "20",
        "mr": 0.75,
        "ld": 1.5
      },
      "expect": {
        "runLength": 10,
        "sloped": 10.012492197250394,
        "runs": 1
      },
      "source": "US Access Board, ADA Accessibility Standards, Chapter 4, 405 Ramps (405.2 slope not steeper than 1:12; 405.6 rise of a run at most 30 in; 405.7.3 landings at least 60 in long), https://www.access-board.gov/ada/#ada-405 (retrieved 2026-10-03); hand calculation in content.mdx: 0.5 × 20 = 10 m; √(0.5² + 10²) = 10.0125 m",
      "tolerance": 1e-12
    }
  ],
  "sources": [
    "US Access Board, ADA Accessibility Standards, Chapter 4, 405 Ramps: 405.2 slope not steeper than 1:12; 405.5 clear width at least 36 in; 405.6 rise of a run at most 30 in; 405.7.2 and 405.7.3 landings as wide as the run and at least 60 in long, retrieved 2026-10-03. https://www.access-board.gov/ada/#ada-405",
    "NIST Special Publication 811 (2008), Appendix B: 1 in = 0.0254 m and 1 ft = 0.3048 m exactly, retrieved 2026-10-03. https://www.nist.gov/pml/special-publication-811"
  ],
  "related": [
    "ada-ramp",
    "stair",
    "roof-pitch"
  ],
  "changelog": []
}
