{
  "title": "Curtain fabric calculator",
  "human_url": "https://happytails.ai/en/calculators/curtain-fabric-calculator/",
  "agent_url": "https://happytails.ai/agents/en/calculators/curtain-fabric-calculator/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/curtain-fabric-calculator.md",
  "content": "Curtain fabric calculator\nWork 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.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Curtain fabric calculator\nMeasure the track or pole width and the finished drop, and choose the unit.\nEnter returns and overlaps, the fullness ratio, the number of panels and the fabric width.\nAdd heading, hem and side hem allowances, and the pattern repeat if the fabric has one.\nEnter the lining width, or leave it empty for unlined curtains, then review the totals and download the cutting list.\nUseful next steps\nPleat calculator\nFabric shrinkage calculator\nQuilt backing calculator\nWidths per panel\nThe 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.\nCut drop and pattern repeat\nEach 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.\nTotals and lining\nFabric 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.\nLimits\nTracks 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.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Pleat calculator",
      "url": "https://happytails.ai/en/calculators/pleat-calculator/"
    },
    {
      "name": "Fabric shrinkage calculator",
      "url": "https://happytails.ai/en/calculators/fabric-shrinkage-calculator/"
    },
    {
      "name": "Quilt backing calculator",
      "url": "https://happytails.ai/en/calculators/quilt-backing-calculator/"
    }
  ],
  "tool": {
    "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"
    }
  },
  "markdown": "# Curtain fabric calculator\n\n- Human page: https://happytails.ai/en/calculators/curtain-fabric-calculator/\n- Markdown: https://happytails.ai/en/calculators/curtain-fabric-calculator.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/curtain-fabric-calculator/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `curtain-fabric-calculator` |\n| Category | calculators |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Automatic updates after valid input or file selection. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nCalculated 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.\n\n### Inputs and settings\n\nNo free-text input is required. Use the file inputs and/or settings below.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `unit` | Measurement unit | select | \"cm\" | Allowed: cm, m, mm, in |\n| `trackWidth` | Track or pole width | number | 200 | min=0 step=any |\n| `returns` | Returns and overlaps (total) | number | 0 | min=0 step=any |\n| `fullness` | Fullness ratio | number | 2 | min=1 max=4 step=any |\n| `panels` | Panels | number | 2 | min=1 max=20 step=1 |\n| `sideHems` | Side hem allowance per panel | number | 0 | min=0 step=any |\n| `fabricWidth` | Fabric width | number | 140 | min=0 step=any |\n| `drop` | Finished drop | number | 220 | min=0 step=any |\n| `heading` | Heading allowance | number | 10 | min=0 step=any |\n| `hem` | Hem allowance | number | 15 | min=0 step=any |\n| `repeat` | Pattern repeat | number | 0 | min=0 step=any |\n| `placement` | Add one repeat to place the pattern | checkbox | true |  |\n| `liningWidth` | Lining fabric width (optional) | number | 140 | min=0 step=any |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nTrack 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.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"curtain-fabric-calculator\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"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.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"unit\",\n        \"label\": \"Measurement unit\",\n        \"value\": \"cm\",\n        \"type\": \"select\",\n        \"values\": [\n          \"cm\",\n          \"m\",\n          \"mm\",\n          \"in\"\n        ]\n      },\n      {\n        \"key\": \"trackWidth\",\n        \"label\": \"Track or pole width\",\n        \"value\": 200,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"returns\",\n        \"label\": \"Returns and overlaps (total)\",\n        \"value\": 0,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\",\n        \"help\": \"Extra width for the curtain ends that turn back to the wall and for panels that overlap in the middle.\"\n      },\n      {\n        \"key\": \"fullness\",\n        \"label\": \"Fullness ratio\",\n        \"value\": 2,\n        \"type\": \"number\",\n        \"min\": 1,\n        \"max\": 4,\n        \"step\": \"any\",\n        \"help\": \"Flat fabric width divided by the track width. About 2 is common; sheers often use 2.5 to 3.\"\n      },\n      {\n        \"key\": \"panels\",\n        \"label\": \"Panels\",\n        \"value\": 2,\n        \"type\": \"number\",\n        \"min\": 1,\n        \"max\": 20,\n        \"step\": 1,\n        \"help\": \"Use 2 for a pair of curtains.\"\n      },\n      {\n        \"key\": \"sideHems\",\n        \"label\": \"Side hem allowance per panel\",\n        \"value\": 0,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\",\n        \"help\": \"Both side hems of one panel together.\"\n      },\n      {\n        \"key\": \"fabricWidth\",\n        \"label\": \"Fabric width\",\n        \"value\": 140,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"drop\",\n        \"label\": \"Finished drop\",\n        \"value\": 220,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"heading\",\n        \"label\": \"Heading allowance\",\n        \"value\": 10,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"hem\",\n        \"label\": \"Hem allowance\",\n        \"value\": 15,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"repeat\",\n        \"label\": \"Pattern repeat\",\n        \"value\": 0,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\",\n        \"help\": \"Vertical repeat of the pattern. Enter 0 for plain fabric.\"\n      },\n      {\n        \"key\": \"placement\",\n        \"label\": \"Add one repeat to place the pattern\",\n        \"value\": true,\n        \"type\": \"checkbox\",\n        \"help\": \"Only used when the pattern repeat is above 0.\"\n      },\n      {\n        \"key\": \"liningWidth\",\n        \"label\": \"Lining fabric width (optional)\",\n        \"value\": 140,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"step\": \"any\",\n        \"help\": \"Leave empty for unlined curtains.\",\n        \"required\": false\n      }\n    ],\n    \"registrationFamily\": \"household-planning\",\n    \"input\": false,\n    \"live\": true,\n    \"presentation\": \"metrics\",\n    \"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.\",\n    \"experience\": {\n      \"automatic\": true,\n      \"single\": true,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Curtain measurements\",\n      \"placeholder\": \"Use the fields below\",\n      \"help\": \"This calculator uses the measurement fields only. Results update as you type. Up to 1,000,000 characters.\",\n      \"action\": null\n    },\n    \"mode\": \"automatic\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nWork 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.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Curtain fabric calculator\n\n1. Measure the track or pole width and the finished drop, and choose the unit.\n2. Enter returns and overlaps, the fullness ratio, the number of panels and the fabric width.\n3. Add heading, hem and side hem allowances, and the pattern repeat if the fabric has one.\n4. Enter the lining width, or leave it empty for unlined curtains, then review the totals and download the cutting list.\n\n## Useful next steps\n\n- [Pleat calculator](https://happytails.ai/en/calculators/pleat-calculator/) ([Markdown](https://happytails.ai/en/calculators/pleat-calculator.md))\n\n- [Fabric shrinkage calculator](https://happytails.ai/en/calculators/fabric-shrinkage-calculator/) ([Markdown](https://happytails.ai/en/calculators/fabric-shrinkage-calculator.md))\n\n- [Quilt backing calculator](https://happytails.ai/en/calculators/quilt-backing-calculator/) ([Markdown](https://happytails.ai/en/calculators/quilt-backing-calculator.md))\n\n## Widths per panel\n\nThe 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.\n\n### Cut drop and pattern repeat\n\nEach 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.\n\n### Totals and lining\n\nFabric 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.\n\n### Limits\n\nTracks 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.\n"
}