{
  "slug": "stair",
  "title": "Stair Calculator",
  "heading": "Stair Calculator",
  "category": "other",
  "url": "https://www.revenuelab.fyi/toolbox/stair",
  "summary": "Riser height, tread depth, and total run to code.",
  "description": "Most residential codes cap risers at 7.75 inches and require treads of at least 10 inches. This divides your total rise into equal risers and checks the result against those limits.",
  "formula": "Risers = round(Total rise ÷ Target riser). Riser height = Total rise ÷ Risers. Run = Treads × Tread depth.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=stair",
  "inputs": [
    {
      "id": "rise",
      "label": "Total rise (floor to floor)",
      "kind": "number",
      "hint": null,
      "default": 108,
      "unit": "in",
      "min": 6,
      "max": null
    },
    {
      "id": "targetRiser",
      "label": "Target riser height",
      "kind": "number",
      "hint": null,
      "default": 7.5,
      "unit": "in",
      "min": 4,
      "max": 8.25
    },
    {
      "id": "tread",
      "label": "Tread depth",
      "kind": "number",
      "hint": null,
      "default": 10.5,
      "unit": "in",
      "min": 9,
      "max": 14
    }
  ],
  "outputs": [
    {
      "id": "riserHeight",
      "label": "Riser height",
      "format": "decimal",
      "hint": null,
      "primary": true
    },
    {
      "id": "risers",
      "label": "Number of risers",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "treads",
      "label": "Number of treads",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "run",
      "label": "Total run (in)",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "stringer",
      "label": "Stringer length (ft)",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "angle",
      "label": "Stair angle (degrees)",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "code",
      "label": "Code check",
      "format": "raw",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Total rise (floor to floor): 108 in",
      "Target riser height: 7.5 in",
      "Tread depth: 10.5 in"
    ],
    "outputs": [
      "Riser height: 7.714",
      "Number of risers: 14",
      "Number of treads: 13",
      "Total run (in): 136.5",
      "Stringer length (ft): 14.5",
      "Stair angle (degrees): 36.3",
      "Code check: Meets typical code"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter total rise (floor to floor) (in).",
      "Enter target riser height (in).",
      "Enter tread depth (in).",
      "Read your riser height on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "rise": 64.8,
        "targetRiser": 4.5,
        "tread": 9
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "rise": 108,
        "targetRiser": 7.5,
        "tread": 10.5
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "rise": 172.8,
        "targetRiser": 8.25,
        "tread": 14
      }
    }
  ],
  "limitations": [
    "Estimates assume standard, average conditions — local rules, pricing, and materials vary.",
    "Results are rounded for readability; add a buffer before ordering, booking, or committing.",
    "Double-check anything with a real cost attached against a local quote."
  ],
  "faq": [
    {
      "q": "How does the stair calculator work?",
      "a": "Most residential codes cap risers at 7.75 inches and require treads of at least 10 inches. This divides your total rise into equal risers and checks the result against those limits. The underlying maths is: Risers = round(Total rise ÷ Target riser). Riser height = Total rise ÷ Risers. Run = Treads × Tread depth."
    },
    {
      "q": "What do I need to enter?",
      "a": "3 values: total rise (floor to floor), target riser height, and tread depth. Each field starts with a sensible default, so you can change one number at a time and watch the result move."
    },
    {
      "q": "What does the riser height result mean?",
      "a": "It is returned as a decimal number and updates live as you edit the inputs, so you can compare two or three versions of a scenario in a few seconds."
    },
    {
      "q": "Is this calculator free, and do I need an account?",
      "a": "Yes, it's free, and no account is required. Nothing you type is stored on our servers — the maths runs entirely in your browser."
    },
    {
      "q": "How accurate is the result?",
      "a": "It applies the standard formula exactly, so the arithmetic is precise. Estimates assume standard, average conditions — local rules, pricing, and materials vary."
    },
    {
      "q": "Who is this tool for?",
      "a": "It's built for anyone doing everyday planning maths — a quick estimate that would otherwise need four browser tabs and a calculator app."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/deck",
    "https://www.revenuelab.fyi/toolbox/lumber",
    "https://www.revenuelab.fyi/toolbox/roofing"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Stair Calculator (https://www.revenuelab.fyi/toolbox/stair)"
}