# Rafter length calculator

- Human page: https://happytails.ai/en/calculators/rafter-length-calculator/
- Markdown: https://happytails.ai/en/calculators/rafter-length-calculator.md
- Structured JSON: https://happytails.ai/agents/en/calculators/rafter-length-calculator/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `rafter-length-calculator` |
| Category | calculators |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Automatic updates after valid input or file selection. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Calculated on your device for runs up to 50 m, overhangs up to 5 m and pitches above 0 up to 48 per 12, 75 degrees or 400%. Lengths run along the measuring line between plumb cuts.

### Inputs and settings

No free-text input is required. Use the file inputs and/or settings below.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `spanMode` | Measure | select | "Building span" | Allowed: Building span, Run of one rafter |
| `spanUnit` | Span and overhang unit | select | "ft" | Allowed: ft, in, m, cm, mm |
| `span` | Building span | number | 24 | min=0 step=any |
| `run` | Rafter run | number | 12 | min=0 step=any |
| `overhang` | Overhang, measured level | number | 1 | min=0 step=any |
| `pitchFormat` | Pitch entered as | select | "Rise per 12 run" | Allowed: Rise per 12 run, Angle in degrees, Percent slope |
| `pitch12` | Rise per 12 units of run | number | 6 | min=0 max=48 step=any |
| `pitchAngle` | Roof angle (degrees) | number | 30 | min=0 max=75 step=any |
| `pitchPercent` | Slope (%) | number | 50 | min=0 max=400 step=any |
| `sizeUnit` | Lumber size unit | select | "in" | Allowed: in, mm, cm |
| `ridgeThickness` | Ridge board thickness (optional) | number | "" | min=0 step=any |
| `rafterDepth` | Rafter depth (optional) | number | 5.5 | min=0 step=any |
| `seatLength` | Birdsmouth seat length (optional) | number | 3.5 | min=0 step=any |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

Span up to 100 m (328 ft) or run up to 50 m, overhang from 0 to 5 m, pitch above 0 up to 48 per 12, 75 degrees or 400%, ridge thickness from 0 to 500 mm, and rafter depth and seat length up to 1 m. Calculated on your device; download a JSON report, a results CSV and an SVG side view.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "rafter-length-calculator",
  "category": "calculators",
  "built": true,
  "requirements": "Span up to 100 m (328 ft) or run up to 50 m, overhang from 0 to 5 m, pitch above 0 up to 48 per 12, 75 degrees or 400%, ridge thickness from 0 to 500 mm, and rafter depth and seat length up to 1 m. Calculated on your device; download a JSON report, a results CSV and an SVG side view.",
  "implementation": {
    "fields": [
      {
        "key": "spanMode",
        "label": "Measure",
        "value": "Building span",
        "type": "select",
        "values": [
          "Building span",
          "Run of one rafter"
        ]
      },
      {
        "key": "spanUnit",
        "label": "Span and overhang unit",
        "value": "ft",
        "type": "select",
        "values": [
          "ft",
          "in",
          "m",
          "cm",
          "mm"
        ]
      },
      {
        "key": "span",
        "label": "Building span",
        "value": 24,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Level distance between the outside faces of the two bearing walls, where the birdsmouth heel cuts sit. Each rafter runs half of it.",
        "showWhen": {
          "spanMode": [
            "Building span"
          ]
        }
      },
      {
        "key": "run",
        "label": "Rafter run",
        "value": 12,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Level distance from the outside face of the bearing wall to the centre line of the ridge.",
        "showWhen": {
          "spanMode": [
            "Run of one rafter"
          ]
        }
      },
      {
        "key": "overhang",
        "label": "Overhang, measured level",
        "value": 1,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Level distance from the outside face of the wall to the plumb cut at the rafter tail. Enter 0 for no tail."
      },
      {
        "key": "pitchFormat",
        "label": "Pitch entered as",
        "value": "Rise per 12 run",
        "type": "select",
        "values": [
          "Rise per 12 run",
          "Angle in degrees",
          "Percent slope"
        ]
      },
      {
        "key": "pitch12",
        "label": "Rise per 12 units of run",
        "value": 6,
        "type": "number",
        "min": 0,
        "max": 48,
        "step": "any",
        "help": "6 means 6 units of rise for every 12 units of level run, a 6/12 roof. From above 0 to 48.",
        "showWhen": {
          "pitchFormat": [
            "Rise per 12 run"
          ]
        }
      },
      {
        "key": "pitchAngle",
        "label": "Roof angle (degrees)",
        "value": 30,
        "type": "number",
        "min": 0,
        "max": 75,
        "step": "any",
        "help": "Angle of the roof surface above level, from above 0 to 75 degrees.",
        "showWhen": {
          "pitchFormat": [
            "Angle in degrees"
          ]
        }
      },
      {
        "key": "pitchPercent",
        "label": "Slope (%)",
        "value": 50,
        "type": "number",
        "min": 0,
        "max": 400,
        "step": "any",
        "help": "Rise divided by run times 100, from above 0 to 400.",
        "showWhen": {
          "pitchFormat": [
            "Percent slope"
          ]
        }
      },
      {
        "key": "sizeUnit",
        "label": "Lumber size unit",
        "value": "in",
        "type": "select",
        "values": [
          "in",
          "mm",
          "cm"
        ]
      },
      {
        "key": "ridgeThickness",
        "label": "Ridge board thickness (optional)",
        "value": "",
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Leave empty to measure to the ridge centre line. Enter the actual thickness, such as 1.5 in for a 2x ridge, to shorten each rafter by half of it, measured level."
      },
      {
        "key": "rafterDepth",
        "label": "Rafter depth (optional)",
        "value": 5.5,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Actual depth of the rafter board measured square to its edge, such as 5.5 in for a 2x6. Needed for the birdsmouth.",
        "required": false
      },
      {
        "key": "seatLength",
        "label": "Birdsmouth seat length (optional)",
        "value": 3.5,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Level length of the seat cut that bears on the wall plate, such as 3.5 in on a 2x4 wall.",
        "required": false
      }
    ],
    "registrationFamily": "roof-and-cladding",
    "input": false,
    "live": true,
    "presentation": "metrics",
    "note": "Calculated on your device for runs up to 50 m, overhangs up to 5 m and pitches above 0 up to 48 per 12, 75 degrees or 400%. Lengths run along the measuring line between plumb cuts.",
    "experience": {
      "automatic": true,
      "single": true,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Rafter measurements",
      "placeholder": "Use the fields below",
      "help": "This calculator uses the measurement fields only. Results update as you type. Up to 1,000,000 characters.",
      "action": null
    },
    "mode": "automatic",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Lay out a common rafter from span or run and pitch: line length, ridge deduction, tail, overall length, plumb and seat cut angles and the birdsmouth heights, with an SVG side view.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use Rafter length calculator

1. Enter the building span or the run of one rafter, the level overhang and the pitch.
2. Add the ridge board thickness only if there is a ridge board; leave it empty to measure to the ridge centre line.
3. Enter the rafter depth and seat length for the birdsmouth heights, or clear them to skip.
4. Review the lengths and cut angles, then download the JSON report, the CSV or the SVG side view.

## Useful next steps

- [Roof pitch calculator](https://happytails.ai/en/calculators/roof-pitch-calculator/) ([Markdown](https://happytails.ai/en/calculators/roof-pitch-calculator.md))

- [Lumber board foot calculator](https://happytails.ai/en/calculators/lumber-board-foot-calculator/) ([Markdown](https://happytails.ai/en/calculators/lumber-board-foot-calculator.md))

- [Cut list optimizer](https://happytails.ai/en/calculators/cut-list-optimizer/) ([Markdown](https://happytails.ai/en/calculators/cut-list-optimizer.md))

## Where each length is measured

Every length runs along the measuring line: a line parallel to the rafter edges through the birdsmouth corner at the outside face of the wall, called the building line. Run is level, from the building line to the ridge centre line. Because the ridge cut and the tail cut are both plumb, the top edge and the uncut bottom edge measure the same as the measuring line between those cuts, so you can hook your tape on either edge from plumb mark to plumb mark.

### Line length and ridge deduction

Line length is the run times √(1 + (rise ÷ run)²), the same multiplier a framing square table gives per foot of run (Ask the Builder, Tim Carter, Cutting a Roof Rafter, checked 16 October 2026). A 24 ft span at 6/12 gives a 12 ft run and a 13.4164 ft line length to the ridge centre. A ridge board is deducted only when you enter its thickness: half of it comes off the run, measured level, so a 1.5 in ridge shortens the rafter by 0.8385 in along its length, not exactly 0.75 in.

### Cut angles

The roof angle is arctan(rise ÷ run) (OpenStax Precalculus 2e, 5.4 Right Triangle Trigonometry, checked 16 October 2026). The plumb cut is 90° minus the roof angle from the rafter edge, and the seat cut equals the roof angle from the edge. On a miter saw, with the rafter flat and an edge on the fence and 0 degrees a square cut, the plumb cut is set to the roof angle and the seat cut to 90° minus it. With a framing square, hold the rise on the tongue and 12 on the blade along the edge.

### Birdsmouth, tail and limits

The heel cut height is the seat length times rise ÷ run, and the height above plate is the rafter depth measured plumb minus that heel. The tail is the level overhang times the same multiplier, ending in a plumb cut. The calculator does not size rafters, check spans, check notch limits or replace your building code. Conversions use NIST SP 811.
