{
  "name": "Toolertools Calculator Agent",
  "description": "Free home-project material estimators (gravel, concrete, mulch, paint, roofing, and more) and pay calculators (overtime, salary conversions, commission, bonuses, PTO, freelance rates) exposed as a JSON API. Deterministic engines, no authentication, no registration. Results are planning estimates; each calculator page documents its formulas, assumptions, and sources.",
  "version": "1.0.0",
  "documentationUrl": "https://toolertools.com/api/",
  "iconUrl": "https://toolertools.com/favicon.svg",
  "provider": {
    "organization": "Toolertools",
    "url": "https://toolertools.com"
  },
  "supportedInterfaces": [
    {
      "url": "https://toolertools.com/api",
      "protocolBinding": "HTTP+JSON",
      "protocolVersion": "1.0"
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "securitySchemes": {},
  "security": [],
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "gravel",
      "name": "Gravel volume, weight, and cost",
      "description": "Estimate cubic yards and tons of gravel for a rectangular area at a uniform depth, with a recommended order quantity including waste. POST application/json to https://toolertools.com/api/v1/gravel (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "construction",
        "estimation",
        "gravel"
      ],
      "examples": [
        "POST {\"unitSystem\":\"imperial\",\"length\":20,\"width\":10,\"depth\":3,\"gravelType\":\"crushed-stone\",\"pricePerTon\":45} to https://toolertools.com/api/v1/gravel"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "asphalt",
      "name": "Hot-mix asphalt tonnage and cost",
      "description": "Estimate compacted hot-mix asphalt tonnage for a rectangular area, with waste allowance and optional cost. POST application/json to https://toolertools.com/api/v1/asphalt (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "construction",
        "estimation",
        "asphalt"
      ],
      "examples": [
        "POST {\"unitSystem\":\"imperial\",\"length\":40,\"width\":12,\"depth\":3} to https://toolertools.com/api/v1/asphalt"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "concrete",
      "name": "Concrete volume, bags, and cost",
      "description": "Estimate concrete volume for slabs, footings, or cylinders (post holes), with bag counts (40/60/80 lb) and optional ready-mix cost. POST application/json to https://toolertools.com/api/v1/concrete (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "construction",
        "estimation",
        "concrete"
      ],
      "examples": [
        "POST {\"unitSystem\":\"imperial\",\"shape\":\"slab\",\"length\":10,\"width\":10,\"depth\":4,\"pricePerCubicYard\":160} to https://toolertools.com/api/v1/concrete"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "mulch",
      "name": "Mulch bags, volume, and cost",
      "description": "Estimate bags and cubic yards of mulch for a rectangular bed at a uniform depth, with waste allowance and optional bulk cost. POST application/json to https://toolertools.com/api/v1/mulch (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "construction",
        "estimation",
        "mulch"
      ],
      "examples": [
        "POST {\"unitSystem\":\"imperial\",\"length\":25,\"width\":4,\"depth\":3} to https://toolertools.com/api/v1/mulch"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "topsoil",
      "name": "Topsoil volume, weight, and cost",
      "description": "Estimate cubic yards (or m³) and tons (or tonnes) of topsoil for a rectangular area at a uniform depth, with bag counts, waste allowance, and optional cost. POST application/json to https://toolertools.com/api/v1/topsoil (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "construction",
        "estimation",
        "topsoil"
      ],
      "examples": [
        "POST {\"unitSystem\":\"imperial\",\"length\":30,\"width\":20,\"depth\":4} to https://toolertools.com/api/v1/topsoil"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "paint",
      "name": "Paint gallons for a room",
      "description": "Estimate gallons (and liters) of paint for a room from its dimensions, subtracting doors and windows, with a whole-gallons-plus-quarts purchase suggestion. POST application/json to https://toolertools.com/api/v1/paint (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "construction",
        "estimation",
        "paint"
      ],
      "examples": [
        "POST {\"unitSystem\":\"imperial\",\"roomLength\":12,\"roomWidth\":10,\"wallHeight\":8,\"doors\":1,\"windows\":2} to https://toolertools.com/api/v1/paint"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "drywall",
      "name": "Drywall sheets for a room",
      "description": "Estimate drywall sheets for a room (US sheet sizes, imperial only), plus rough screw and joint-compound quantities. POST application/json to https://toolertools.com/api/v1/drywall (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "construction",
        "estimation",
        "drywall"
      ],
      "examples": [
        "POST {\"roomLength\":12,\"roomWidth\":12,\"wallHeight\":8,\"sheetSize\":\"4x8\",\"doors\":1,\"windows\":1} to https://toolertools.com/api/v1/drywall"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "fence",
      "name": "Fence posts, panels, pickets, and rails",
      "description": "Estimate posts, panels or pickets, rails, and gates for a fence run, with an optional itemized cost breakdown. Imperial (feet/inches) only. POST application/json to https://toolertools.com/api/v1/fence (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "construction",
        "estimation",
        "fence"
      ],
      "examples": [
        "POST {\"totalLengthFt\":150,\"heightFt\":6,\"fenceType\":\"wood-privacy\",\"gateCount\":1} to https://toolertools.com/api/v1/fence"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "roofing",
      "name": "Roofing squares and shingle bundles",
      "description": "Estimate roof area, roofing squares, shingle bundles, ridge cap, and drip edge for a gable or hip roof from its footprint and pitch. Complex roofs (valleys, dormers, mixed pitches) need real measurement. POST application/json to https://toolertools.com/api/v1/roofing (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "construction",
        "estimation",
        "roofing"
      ],
      "examples": [
        "POST {\"unitSystem\":\"imperial\",\"length\":40,\"width\":30,\"pitchRise\":6} to https://toolertools.com/api/v1/roofing"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "dumpster",
      "name": "Recommended dumpster size",
      "description": "Recommend a roll-off dumpster size (10–40 yd³) from a debris volume or loose-pile dimensions, accounting for heavy-debris weight limits. POST application/json to https://toolertools.com/api/v1/dumpster (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "construction",
        "estimation",
        "dumpster"
      ],
      "examples": [
        "POST {\"projectType\":\"garage-cleanout\",\"debrisType\":\"household\",\"inputMode\":\"volume\",\"volumeCubicYards\":12} to https://toolertools.com/api/v1/dumpster"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "yards-to-tons",
      "name": "Cubic yards ↔ tons for bulk materials",
      "description": "Convert a bulk-material quantity between cubic yards, cubic meters, US tons, and metric tonnes using the material's bulk density (gravel, topsoil, sand, mulch, asphalt, concrete) or a custom density. POST application/json to https://toolertools.com/api/v1/yards-to-tons (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "construction",
        "estimation",
        "yards-to-tons"
      ],
      "examples": [
        "POST {\"quantity\":10,\"fromUnit\":\"cubic-yards\",\"material\":\"crushed-stone\"} to https://toolertools.com/api/v1/yards-to-tons"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "overtime",
      "name": "Overtime pay and weekly earnings",
      "description": "Calculate regular pay, overtime pay and total weekly pay from an hourly rate, hours and overtime multiplier, with an optional weekly take-home estimate that applies the qualified overtime deduction. POST application/json to https://toolertools.com/api/v1/overtime (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "personal-finance",
        "estimation",
        "overtime"
      ],
      "examples": [
        "POST {\"hourlyRate\":25,\"regularHours\":40,\"overtimeHours\":8,\"multiplier\":1.5} to https://toolertools.com/api/v1/overtime"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "hourly-to-salary",
      "name": "Hourly wage to annual salary",
      "description": "Convert an hourly wage to annual, monthly, biweekly, weekly and daily pay, with an optional take-home estimate. POST application/json to https://toolertools.com/api/v1/hourly-to-salary (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "personal-finance",
        "estimation",
        "hourly-to-salary"
      ],
      "examples": [
        "POST {\"hourlyRate\":32,\"hoursPerWeek\":40,\"weeksPerYear\":52} to https://toolertools.com/api/v1/hourly-to-salary"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "salary-to-hourly",
      "name": "Annual salary to hourly rate",
      "description": "Convert an annual salary to an hourly rate plus daily, weekly, biweekly and monthly pay, with an optional take-home estimate. POST application/json to https://toolertools.com/api/v1/salary-to-hourly (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "personal-finance",
        "estimation",
        "salary-to-hourly"
      ],
      "examples": [
        "POST {\"annualSalary\":85000,\"hoursPerWeek\":40,\"weeksPerYear\":52} to https://toolertools.com/api/v1/salary-to-hourly"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "commission",
      "name": "Sales commission, flat or tiered",
      "description": "Calculate commission on a sale at a flat rate or a tiered rate, total pay with base pay, sales needed for a target commission, and optional supplemental withholding. POST application/json to https://toolertools.com/api/v1/commission (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "personal-finance",
        "estimation",
        "commission"
      ],
      "examples": [
        "POST {\"saleAmount\":48000,\"ratePercent\":6,\"plan\":\"tiered\",\"tierThreshold\":25000,\"upperRatePercent\":8} to https://toolertools.com/api/v1/commission"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "commission-split",
      "name": "Real estate commission split",
      "description": "Split a real estate commission between the listing and buyer sides, then between agent and brokerage, less fees. POST application/json to https://toolertools.com/api/v1/commission-split (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "personal-finance",
        "estimation",
        "commission-split"
      ],
      "examples": [
        "POST {\"salePrice\":450000,\"commissionPercent\":5,\"sideSharePercent\":50,\"agentSplitPercent\":70,\"fees\":395} to https://toolertools.com/api/v1/commission-split"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "raise",
      "name": "New pay after a raise",
      "description": "Calculate new pay after a percentage or dollar raise, the raise per year, month and paycheck, the real raise after inflation, and the optional change in take-home pay. POST application/json to https://toolertools.com/api/v1/raise (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "personal-finance",
        "estimation",
        "raise"
      ],
      "examples": [
        "POST {\"payType\":\"annual\",\"currentPay\":62000,\"raise\":4.5,\"inflationPercent\":3} to https://toolertools.com/api/v1/raise"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "bonus",
      "name": "Bonus take-home after withholding",
      "description": "Estimate bonus take-home after federal (percentage or aggregate method), Social Security, Medicare and state supplemental withholding, or gross up to a target take-home. POST application/json to https://toolertools.com/api/v1/bonus (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "personal-finance",
        "estimation",
        "bonus"
      ],
      "examples": [
        "POST {\"mode\":\"gross\",\"amount\":5000,\"method\":\"percentage\",\"state\":\"TX\"} to https://toolertools.com/api/v1/bonus"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "pto-accrual",
      "name": "PTO accrual and projected balance",
      "description": "Project a paid time off balance from a per-hour, per-pay-period or per-year accrual rate, with an optional cap. POST application/json to https://toolertools.com/api/v1/pto-accrual (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "personal-finance",
        "estimation",
        "pto-accrual"
      ],
      "examples": [
        "POST {\"method\":\"per-hour\",\"earnHours\":1,\"perHoursWorked\":30,\"hoursPerWeek\":40,\"currentBalance\":12,\"cap\":80,\"weeks\":26} to https://toolertools.com/api/v1/pto-accrual"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "pto-payout",
      "name": "Unused PTO payout",
      "description": "Calculate what unused paid time off is worth for hourly or salaried pay, a summary of the state payout rule, and optional supplemental withholding. POST application/json to https://toolertools.com/api/v1/pto-payout (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "personal-finance",
        "estimation",
        "pto-payout"
      ],
      "examples": [
        "POST {\"payType\":\"hourly\",\"pay\":28.5,\"unusedHours\":64,\"state\":\"CA\"} to https://toolertools.com/api/v1/pto-payout"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "freelancer-rate",
      "name": "Minimum freelance hourly rate",
      "description": "Find the minimum hourly rate that covers a target income, self-employment tax, business expenses, time off and a buffer. POST application/json to https://toolertools.com/api/v1/freelancer-rate (GET returns the request schema); full schema in https://toolertools.com/api/openapi.json.",
      "tags": [
        "calculator",
        "personal-finance",
        "estimation",
        "freelancer-rate"
      ],
      "examples": [
        "POST {\"targetIncome\":90000,\"businessExpenses\":8000,\"billableHoursPerWeek\":25,\"weeksOff\":6,\"bufferPercent\":10} to https://toolertools.com/api/v1/freelancer-rate"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ]
}