# Curtain fabric calculator

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

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `curtain-fabric-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 tracks up to 50 m, up to 20 panels and fabric 10 cm to 5 m wide. Fullness and allowances are your choices.

### Inputs and settings

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

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `unit` | Measurement unit | select | "cm" | Allowed: cm, m, mm, in |
| `trackWidth` | Track or pole width | number | 200 | min=0 step=any |
| `returns` | Returns and overlaps (total) | number | 0 | min=0 step=any |
| `fullness` | Fullness ratio | number | 2 | min=1 max=4 step=any |
| `panels` | Panels | number | 2 | min=1 max=20 step=1 |
| `sideHems` | Side hem allowance per panel | number | 0 | min=0 step=any |
| `fabricWidth` | Fabric width | number | 140 | min=0 step=any |
| `drop` | Finished drop | number | 220 | min=0 step=any |
| `heading` | Heading allowance | number | 10 | min=0 step=any |
| `hem` | Hem allowance | number | 15 | min=0 step=any |
| `repeat` | Pattern repeat | number | 0 | min=0 step=any |
| `placement` | Add one repeat to place the pattern | checkbox | true |  |
| `liningWidth` | Lining fabric width (optional) | number | 140 | 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

Track or pole above 0 and up to 50 m, returns up to 5 m, fullness 1 to 4, 1 to 20 panels, fabric and lining widths 10 cm to 5 m, finished drop up to 10 m, each allowance up to 1 m and pattern repeat up to 3 m. Calculated on your device; download a JSON report and CSV files of results and the cutting list.

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

### Complete machine-readable capability record

```json
{
  "id": "curtain-fabric-calculator",
  "category": "calculators",
  "built": true,
  "requirements": "Track or pole above 0 and up to 50 m, returns up to 5 m, fullness 1 to 4, 1 to 20 panels, fabric and lining widths 10 cm to 5 m, finished drop up to 10 m, each allowance up to 1 m and pattern repeat up to 3 m. Calculated on your device; download a JSON report and CSV files of results and the cutting list.",
  "implementation": {
    "fields": [
      {
        "key": "unit",
        "label": "Measurement unit",
        "value": "cm",
        "type": "select",
        "values": [
          "cm",
          "m",
          "mm",
          "in"
        ]
      },
      {
        "key": "trackWidth",
        "label": "Track or pole width",
        "value": 200,
        "type": "number",
        "min": 0,
        "step": "any"
      },
      {
        "key": "returns",
        "label": "Returns and overlaps (total)",
        "value": 0,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Extra width for the curtain ends that turn back to the wall and for panels that overlap in the middle."
      },
      {
        "key": "fullness",
        "label": "Fullness ratio",
        "value": 2,
        "type": "number",
        "min": 1,
        "max": 4,
        "step": "any",
        "help": "Flat fabric width divided by the track width. About 2 is common; sheers often use 2.5 to 3."
      },
      {
        "key": "panels",
        "label": "Panels",
        "value": 2,
        "type": "number",
        "min": 1,
        "max": 20,
        "step": 1,
        "help": "Use 2 for a pair of curtains."
      },
      {
        "key": "sideHems",
        "label": "Side hem allowance per panel",
        "value": 0,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Both side hems of one panel together."
      },
      {
        "key": "fabricWidth",
        "label": "Fabric width",
        "value": 140,
        "type": "number",
        "min": 0,
        "step": "any"
      },
      {
        "key": "drop",
        "label": "Finished drop",
        "value": 220,
        "type": "number",
        "min": 0,
        "step": "any"
      },
      {
        "key": "heading",
        "label": "Heading allowance",
        "value": 10,
        "type": "number",
        "min": 0,
        "step": "any"
      },
      {
        "key": "hem",
        "label": "Hem allowance",
        "value": 15,
        "type": "number",
        "min": 0,
        "step": "any"
      },
      {
        "key": "repeat",
        "label": "Pattern repeat",
        "value": 0,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Vertical repeat of the pattern. Enter 0 for plain fabric."
      },
      {
        "key": "placement",
        "label": "Add one repeat to place the pattern",
        "value": true,
        "type": "checkbox",
        "help": "Only used when the pattern repeat is above 0."
      },
      {
        "key": "liningWidth",
        "label": "Lining fabric width (optional)",
        "value": 140,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Leave empty for unlined curtains.",
        "required": false
      }
    ],
    "registrationFamily": "household-planning",
    "input": false,
    "live": true,
    "presentation": "metrics",
    "note": "Calculated on your device for tracks up to 50 m, up to 20 panels and fabric 10 cm to 5 m wide. Fullness and allowances are your choices.",
    "experience": {
      "automatic": true,
      "single": true,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Curtain 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

Work out how many fabric widths to cut for each curtain panel, the cut drop with hem, heading and pattern repeat, and the total fabric and lining to buy.

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 Curtain fabric calculator

1. Measure the track or pole width and the finished drop, and choose the unit.
2. Enter returns and overlaps, the fullness ratio, the number of panels and the fabric width.
3. Add heading, hem and side hem allowances, and the pattern repeat if the fabric has one.
4. Enter the lining width, or leave it empty for unlined curtains, then review the totals and download the cutting list.

## Useful next steps

- [Pleat calculator](https://happytails.ai/en/calculators/pleat-calculator/) ([Markdown](https://happytails.ai/en/calculators/pleat-calculator.md))

- [Fabric shrinkage calculator](https://happytails.ai/en/calculators/fabric-shrinkage-calculator/) ([Markdown](https://happytails.ai/en/calculators/fabric-shrinkage-calculator.md))

- [Quilt backing calculator](https://happytails.ai/en/calculators/quilt-backing-calculator/) ([Markdown](https://happytails.ai/en/calculators/quilt-backing-calculator.md))

## Widths per panel

The flat width is the track width plus returns and overlaps, multiplied by the fullness ratio, as in the calculate.co.nz curtain method (checked 16 October 2026). Each panel takes its share plus side hems and is rounded up to whole fabric widths. With the defaults, 200 cm at fullness 2 gives 400 cm, 200 cm per panel and 2 widths of 140 cm fabric per panel.

### Cut drop and pattern repeat

Each width is cut to the finished drop plus heading and hem allowances: 220 + 10 + 15 = 245 cm. For patterned fabric the cut drop is rounded up to whole repeats so the pattern matches across widths, as Direct Fabrics explains (checked 16 October 2026); a 254 cm cut with a 64 cm repeat becomes 4 repeats, 256 cm. One extra repeat can be added to place the pattern.

### Totals and lining

Fabric to buy is widths times cut drop, plus the placement repeat. The default pair needs 4 widths of 245 cm, 9.8 m or about 10.72 yd. A single 2 m panel at fullness 2 on 1.4 m fabric with a 2.2 m drop and 25 cm of allowances needs 3 widths and 7.35 m, the same as the calculate.co.nz worked example. Lining uses the same widths rule and allowances, without a repeat.

### Limits

Tracks up to 50 m, up to 20 panels, fullness 1 to 4, fabric and lining 10 cm to 5 m wide, drops up to 10 m and repeats up to 3 m. Shrinkage, railroaded fabric and half widths are not modelled; fullness and allowances are your choices, not standards.
