{
  "protocolVersion": "0.3.0",
  "name": "Calcgrid",
  "description": "Open calculator engine for AI agents and people: finance, health, math, unit conversion, physics, chemistry, statistics and everyday calculators, each available as HTML, Markdown, JSON API, MCP tool and A2A skill. Read-only, deterministic calculations; every result carries the formula, sources and an ISO 8601 timestamp.",
  "url": "https://tttkmbb.com/a2a",
  "preferredTransport": "JSONRPC",
  "additionalInterfaces": [
    {
      "url": "https://tttkmbb.com/a2a",
      "transport": "JSONRPC"
    }
  ],
  "provider": {
    "organization": "Calcgrid",
    "url": "https://tttkmbb.com"
  },
  "iconUrl": "https://tttkmbb.com/favicon.svg",
  "version": "1.0.0",
  "documentationUrl": "https://tttkmbb.com/docs/a2a.md",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "securitySchemes": {},
  "security": [],
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "search_calculators",
      "name": "Search calculators",
      "description": "Find calculators by keyword; returns calculator ids (skill ids) with required inputs. Use before any calculation when the id is unknown.",
      "tags": [
        "search",
        "discovery"
      ],
      "examples": [
        "search: mortgage payment",
        "search: convert miles to km"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "compound-interest",
      "name": "Compound Interest Calculator",
      "description": "Computes the future balance of a principal earning compound interest at a chosen compounding frequency, optionally with a fixed deposit at the end of every month, and splits the result into contributions and interest. Use when: You need to project a savings account, certificate of deposit or investment balance from a starting amount, an annual rate, a term and optional monthly deposits. Do not use when: Interest is not reinvested (use simple-interest), you need the deposit required to hit a target (use savings-goal), or you are repaying a loan (use loan-payment).",
      "tags": [
        "finance",
        "compound interest",
        "future value",
        "savings growth",
        "interest calculator",
        "monthly contributions"
      ],
      "examples": [
        "compound-interest principal=10000 annual_rate_percent=5 years=10 compounding_frequency=monthly",
        "compound-interest principal=5000 annual_rate_percent=6 years=20 compounding_frequency=monthly monthly_contribution=100"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "simple-interest",
      "name": "Simple Interest Calculator",
      "description": "Computes interest that accrues only on the original principal (no compounding) over a term in years, and the resulting total amount. Use when: The agreement states simple, non-compounding interest, e.g. short-term personal loans, some bonds and statutory interest on late payments, or you want a quick estimate. Do not use when: Interest is reinvested or charged on accrued interest (use compound-interest), or you need the level payment of an amortizing loan (use loan-payment).",
      "tags": [
        "finance",
        "simple interest",
        "interest calculator",
        "principal rate time",
        "prt formula"
      ],
      "examples": [
        "simple-interest principal=1000 annual_rate_percent=5 years=3",
        "simple-interest principal=25000 annual_rate_percent=4.5 years=2.5"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "loan-payment",
      "name": "Loan Payment Calculator",
      "description": "Computes the level monthly payment of a fully amortizing fixed-rate loan from principal, annual rate and term, plus the total paid and total interest over the life of the loan. Use when: You need the monthly payment or total interest cost of an auto, personal, student or other fixed-rate installment loan given its amount, APR and term. Do not use when: You need property tax, insurance and HOA in the payment (use mortgage-payment), or you know the payment and want the payoff time (use debt-payoff).",
      "tags": [
        "finance",
        "loan payment",
        "monthly payment",
        "amortization",
        "auto loan",
        "personal loan"
      ],
      "examples": [
        "loan-payment principal=200000 annual_rate_percent=6 term_years=30",
        "loan-payment principal=25000 annual_rate_percent=7 term_months=60"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "mortgage-payment",
      "name": "Mortgage Payment Calculator",
      "description": "Computes the monthly principal-and-interest payment of a fixed-rate mortgage from home price, down payment, rate and term, then adds property tax, home insurance and HOA dues to give the full monthly housing payment and lifetime interest. Use when: You want the monthly cost of buying a home with a fixed-rate mortgage, including escrowed taxes and insurance, or the total interest over the loan. Do not use when: The loan is adjustable-rate or interest-only, or you only need the payment on a plain loan amount (use loan-payment).",
      "tags": [
        "finance",
        "mortgage payment",
        "piti",
        "home loan",
        "monthly mortgage",
        "property tax"
      ],
      "examples": [
        "mortgage-payment home_price=250000 down_payment=50000 annual_rate_percent=6 term_years=30 annual_property_tax=3000 annual_home_insurance=1200",
        "mortgage-payment home_price=400000 down_payment=80000 annual_rate_percent=6.5 term_years=30"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "apy",
      "name": "APY Calculator",
      "description": "Converts a nominal annual rate (APR) into the effective annual yield (APY) for a given compounding frequency, and reports the periodic rate and the one-year growth of 1,000. Use when: You want to compare deposit accounts or loans quoted with different compounding frequencies, or need the effective annual rate for a nominal rate. Do not use when: You need a balance after several years or with deposits (use compound-interest), or the account quotes an APY already and you want the nominal rate (enter it as annual compounding).",
      "tags": [
        "finance",
        "apy",
        "apr to apy",
        "effective annual rate",
        "compounding frequency",
        "annual percentage yield"
      ],
      "examples": [
        "apy apr_percent=5 compounding_frequency=monthly",
        "apy apr_percent=4 compounding_frequency=daily"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "savings-goal",
      "name": "Savings Goal Calculator",
      "description": "Solves for the fixed end-of-month deposit required to grow current savings to a goal amount within a given number of years at a monthly-compounded annual rate. Use when: You know the target amount, the deadline and an expected return and want the monthly saving required (emergency fund, down payment, tuition). Do not use when: You already know the deposit and want the resulting balance (use compound-interest or future-value), or the contributions are irregular.",
      "tags": [
        "finance",
        "savings goal",
        "how much to save per month",
        "sinking fund",
        "monthly deposit",
        "target amount"
      ],
      "examples": [
        "savings-goal goal_amount=50000 years=10 annual_rate_percent=5",
        "savings-goal goal_amount=20000 current_savings=5000 years=3 annual_rate_percent=4"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "future-value",
      "name": "Future Value Calculator",
      "description": "Computes the future value of a present lump sum and, optionally, of a level payment made every compounding period (ordinary annuity or annuity due) at a constant rate. Use when: You need the textbook FV of a single amount and/or a series of equal payments, e.g. for finance coursework, retirement projections or comparing investment options. Do not use when: Payments are monthly while interest compounds at another frequency (use compound-interest), or you need to discount a future amount to today (use present-value).",
      "tags": [
        "finance",
        "future value",
        "fv formula",
        "annuity",
        "time value of money",
        "investment growth"
      ],
      "examples": [
        "future-value present_value=1000 annual_rate_percent=8 years=10 compounding_frequency=annually",
        "future-value present_value=0 annual_rate_percent=6 years=5 compounding_frequency=monthly periodic_payment=200"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "present-value",
      "name": "Present Value Calculator",
      "description": "Discounts a single future amount back to today's value at a constant annual rate and compounding frequency, and reports the discount factor and the amount of discount. Use when: You need to know what a future sum is worth today, e.g. to compare a lump sum now against a payment later, or to price a zero-coupon bond. Do not use when: You need the value of a stream of payments (use future-value for accumulation, or a dedicated annuity/NPV tool), or you want to grow money forward (use future-value).",
      "tags": [
        "finance",
        "present value",
        "pv formula",
        "discounting",
        "discount factor",
        "time value of money"
      ],
      "examples": [
        "present-value future_value=10000 annual_rate_percent=5 years=10 compounding_frequency=annually",
        "present-value future_value=100000 annual_rate_percent=6 years=20"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "roi",
      "name": "ROI Calculator",
      "description": "Computes the net gain and percentage return on investment from the amount invested and its final value, and the annualized (compound) return when the holding period in years is given. Use when: You want the total percentage return of an investment, project or marketing spend, optionally converted to a per-year rate for comparison across holding periods. Do not use when: There were multiple cash flows at different dates (that needs IRR/NPV), or you only need the growth rate between two values (use cagr).",
      "tags": [
        "finance",
        "roi",
        "return on investment",
        "annualized return",
        "investment gain",
        "percentage return"
      ],
      "examples": [
        "roi initial_investment=10000 final_value=15000 years=3",
        "roi initial_investment=2000 final_value=1500"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "cagr",
      "name": "CAGR Calculator",
      "description": "Computes the compound annual growth rate that turns a beginning value into an ending value over a number of years, together with the total return and growth multiple. Use when: You need a smoothed per-year growth rate for revenue, a portfolio, a population or any quantity measured at two points in time. Do not use when: You need to account for interim deposits or withdrawals (CAGR ignores cash flows; use a money-weighted return), or the period is under a year.",
      "tags": [
        "finance",
        "cagr",
        "compound annual growth rate",
        "growth rate",
        "annualized growth",
        "investment return"
      ],
      "examples": [
        "cagr beginning_value=10000 ending_value=19000 years=3",
        "cagr beginning_value=100 ending_value=50 years=2"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "inflation",
      "name": "Inflation Calculator",
      "description": "Projects how an amount's cost rises and its purchasing power falls over a number of years at a constant annual inflation rate, using compound growth of the price level. Use when: You want to estimate what today's amount will cost in the future, or what a future sum is worth in today's money, from an assumed inflation rate. Do not use when: You need historical conversions between two calendar years (that requires a CPI table such as the BLS inflation calculator), or investment discounting (use present-value).",
      "tags": [
        "finance",
        "inflation calculator",
        "purchasing power",
        "future cost",
        "cost of living",
        "real value"
      ],
      "examples": [
        "inflation amount=1000 annual_inflation_percent=3 years=10",
        "inflation amount=50000 annual_inflation_percent=2 years=20"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "tip",
      "name": "Tip Calculator",
      "description": "Computes the tip from a bill amount and tip percentage, the total including tip, and the per-person share when the bill is split evenly. Use when: You need to add a gratuity to a restaurant, delivery or service bill and optionally divide the total among several people. Do not use when: People pay for different items or unequal shares (use bill-split), or you need to add sales tax rather than a tip (use sales-tax).",
      "tags": [
        "finance",
        "tip calculator",
        "gratuity",
        "split the bill",
        "restaurant tip",
        "how much to tip"
      ],
      "examples": [
        "tip bill_amount=85.5 tip_percent=18 split_between=3",
        "tip bill_amount=42 tip_percent=20"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "discount",
      "name": "Discount Calculator",
      "description": "Computes the final price and amount saved after a percentage discount, an optional second discount applied to the reduced price, and optional sales tax on the result. Use when: You want the sale price after a percent-off promotion, the effective rate of two stacked discounts (e.g. 20 % off plus an extra 10 %), or the checkout price with tax. Do not use when: You know the original and sale prices and need the percentage off (use percentage-change), or the discount is a fixed amount rather than a percent (just subtract it).",
      "tags": [
        "finance",
        "discount calculator",
        "percent off",
        "sale price",
        "double discount",
        "how much do i save"
      ],
      "examples": [
        "discount original_price=80 discount_percent=25",
        "discount original_price=200 discount_percent=20 second_discount_percent=10 tax_percent=8"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "sales-tax",
      "name": "Sales Tax Calculator",
      "description": "Adds sales tax at a given rate to a pre-tax price, or works backwards from a tax-inclusive total to the pre-tax price and the tax paid. Use when: You need the checkout total for a price and a combined state/local sales-tax rate, or want to know how much of a receipt total was tax. Do not use when: The tax is a value-added tax quoted as net/gross (use vat, which is the same arithmetic with VAT terminology), or you need the tax rate for a specific location (look it up first).",
      "tags": [
        "finance",
        "sales tax",
        "tax calculator",
        "price plus tax",
        "reverse sales tax",
        "pre-tax price"
      ],
      "examples": [
        "sales-tax amount=100 tax_rate_percent=8.25 mode=add_tax",
        "sales-tax amount=108.25 tax_rate_percent=8.25 mode=extract_tax"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "vat",
      "name": "VAT Calculator",
      "description": "Adds VAT at a given rate to a net price, or removes it from a gross (VAT-inclusive) price, returning net, VAT and gross amounts. Use when: You need the VAT-inclusive price for an invoice, or the net price and VAT portion of a gross amount, at a known rate such as 20 % (UK), 19 % (Germany) or 21 % (Netherlands). Do not use when: You are dealing with US sales tax terminology (use sales-tax; the arithmetic is identical), or with multiple rates on one invoice (compute each line separately).",
      "tags": [
        "finance",
        "vat calculator",
        "add vat",
        "remove vat",
        "net to gross",
        "value added tax"
      ],
      "examples": [
        "vat amount=100 vat_rate_percent=20 mode=add_vat",
        "vat amount=119 vat_rate_percent=19 mode=remove_vat"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "margin-markup",
      "name": "Margin and Markup Calculator",
      "description": "Computes profit, gross margin percentage and markup percentage from a unit cost and a selling price, or derives the selling price from cost plus a target margin or markup. Use when: You are pricing a product or service and need to convert between cost, price, margin (profit as % of price) and markup (profit as % of cost). Do not use when: You need the sales volume that covers fixed costs (use break-even) or the tax on the price (use sales-tax / vat).",
      "tags": [
        "finance",
        "margin calculator",
        "markup calculator",
        "gross margin",
        "markup vs margin",
        "pricing"
      ],
      "examples": [
        "margin-markup cost=50 price=80",
        "margin-markup cost=40 margin_percent=25"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "break-even",
      "name": "Break-Even Calculator",
      "description": "Computes the contribution margin per unit and the number of units and revenue required for total revenue to equal total costs (or to reach a target profit). Use when: You are planning a product, service or event and need to know how many units must be sold at a given price to cover fixed costs, or to earn a specific profit. Do not use when: Price or variable cost changes with volume (needs a stepwise or non-linear model), or you only need margin/markup on one unit (use margin-markup).",
      "tags": [
        "finance",
        "break even",
        "break-even point",
        "contribution margin",
        "cost volume profit",
        "units to sell"
      ],
      "examples": [
        "break-even fixed_costs=10000 price_per_unit=50 variable_cost_per_unit=30",
        "break-even fixed_costs=60000 price_per_unit=25 variable_cost_per_unit=10 target_profit=15000"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "rule-of-72",
      "name": "Rule of 72 Calculator",
      "description": "Estimates the doubling time of an amount growing at a fixed annual rate with the Rule of 72, and compares it with the exact result ln 2 / ln(1 + r) for annual compounding and ln 2 / r for continuous compounding. Use when: You want a quick mental-math estimate of how long money (or debt, or prices) takes to double at a given annual growth rate, plus the exact figure. Do not use when: You need the balance after a specific number of years (use compound-interest) or the rate implied by two values (use cagr).",
      "tags": [
        "finance",
        "rule of 72",
        "doubling time",
        "how long to double money",
        "rule of 70",
        "compound growth"
      ],
      "examples": [
        "rule-of-72 annual_rate_percent=8",
        "rule-of-72 annual_rate_percent=6"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "debt-payoff",
      "name": "Debt Payoff Calculator",
      "description": "Computes how many months a fixed monthly payment takes to clear a balance charged a given APR with monthly compounding, plus the total interest paid and the size of the final payment. Use when: You know a credit-card, loan or other balance, its APR and what you can pay each month, and want the payoff date and interest cost. Do not use when: You know the term and need the required payment (use loan-payment), or the payment is a percentage of the balance that shrinks over time (minimum-payment schedules).",
      "tags": [
        "finance",
        "debt payoff",
        "credit card payoff",
        "how long to pay off",
        "months to pay off debt",
        "total interest"
      ],
      "examples": [
        "debt-payoff balance=5000 annual_rate_percent=18 monthly_payment=200",
        "debt-payoff balance=2000 annual_rate_percent=24 monthly_payment=50"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "salary-converter",
      "name": "Salary Converter",
      "description": "Converts a pay amount quoted per hour, day, week, two weeks, month or year into all the other periods, using the hours per week, days per week and paid weeks per year you specify. Use when: You need to compare an hourly wage with an annual salary, or see what a salary works out to per month, per week or per hour before tax. Do not use when: You need take-home pay after income tax and deductions, or overtime at a premium rate (multiply the extra hours by the premium separately).",
      "tags": [
        "finance",
        "salary converter",
        "hourly to salary",
        "salary to hourly",
        "annual to monthly",
        "wage calculator"
      ],
      "examples": [
        "salary-converter amount=25 period=hourly",
        "salary-converter amount=75000 period=annual"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "bmi",
      "name": "BMI Calculator",
      "description": "Computes body mass index (BMI) from weight and height and classifies it with the WHO adult categories, plus the healthy weight range for that height. Use when: You need an adult's BMI, its WHO/CDC weight category, or the weight range that corresponds to a normal BMI (18.5–24.9) for a given height. Do not use when: The person is under 20 years old (children need age- and sex-specific BMI percentiles), or you need body-fat percentage (use body-fat) or calorie needs (use bmr / tdee).",
      "tags": [
        "health",
        "bmi",
        "body mass index",
        "weight category",
        "obesity",
        "healthy weight"
      ],
      "examples": [
        "bmi weight_kg=70 height_cm=175",
        "bmi weight_kg=95 height_cm=180"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "bmr",
      "name": "BMR Calculator",
      "description": "Estimates basal metabolic rate (calories burned at complete rest per day) with the Mifflin-St Jeor equation, and also reports the revised Harris-Benedict estimate. Use when: You need resting daily calorie needs for an adult from sex, weight, height and age, as a base for diet or TDEE calculations. Do not use when: You need total daily calories including activity (use tdee), the person is a child, pregnant, or has very high muscle mass (use a body-fat based equation such as Katch-McArdle instead).",
      "tags": [
        "health",
        "bmr",
        "basal metabolic rate",
        "resting energy expenditure",
        "calories",
        "mifflin st jeor"
      ],
      "examples": [
        "bmr sex=male weight_kg=70 height_cm=175 age_years=30",
        "bmr sex=female weight_kg=60 height_cm=165 age_years=40"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "tdee",
      "name": "TDEE Calculator",
      "description": "Estimates total daily energy expenditure from Mifflin-St Jeor BMR and an activity level, and derives calorie targets for maintaining, losing or gaining weight. Use when: You need daily maintenance calories for an adult, or calorie targets for a mild/standard deficit or surplus. Do not use when: The person is a child, pregnant or breastfeeding, or you only need the resting rate (use bmr).",
      "tags": [
        "health",
        "tdee",
        "maintenance calories",
        "calorie needs",
        "energy expenditure",
        "cutting"
      ],
      "examples": [
        "tdee sex=male weight_kg=70 height_cm=175 age_years=30 activity_level=moderate"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "body-fat",
      "name": "Body Fat Calculator",
      "description": "Estimates body-fat percentage from height and neck, waist (and hip for women) circumferences using the US Navy method, and classifies the result with ACE categories. Use when: You want a tape-measure estimate of body-fat percentage and fat/lean mass without calipers or a DEXA scan. Do not use when: High accuracy is required (DEXA, hydrostatic weighing or BIA are better), or the person is a child or pregnant.",
      "tags": [
        "health",
        "body fat",
        "body fat percentage",
        "navy method",
        "body composition",
        "lean mass"
      ],
      "examples": [
        "body-fat sex=male height_cm=175 waist_cm=85 neck_cm=38 weight_kg=70",
        "body-fat sex=female height_cm=165 waist_cm=75 neck_cm=33 hip_cm=95"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "ideal-weight",
      "name": "Ideal Weight Calculator",
      "description": "Computes ideal body weight from height and sex with the four common clinical formulas (Devine, Robinson, Miller, Hamwi) and the BMI 18.5–24.9 healthy range. Use when: You need a reference 'ideal' weight for an adult, e.g. for drug dosing (Devine) or general guidance, or the healthy weight range for a height. Do not use when: The person is under 18 or you need body-composition targets; the formulas are population averages, not individual prescriptions.",
      "tags": [
        "health",
        "ideal weight",
        "ideal body weight",
        "devine",
        "robinson",
        "miller"
      ],
      "examples": [
        "ideal-weight sex=male height_cm=175",
        "ideal-weight sex=female height_cm=160"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "water-intake",
      "name": "Water Intake Calculator",
      "description": "Estimates daily drinking-water needs from body weight (35 ml per kg) plus an allowance for exercise time, reported in litres, millilitres and 240 ml cups. Use when: You want a practical daily fluid target for a healthy adult based on weight and activity. Do not use when: The person has kidney, heart or liver disease, is pregnant, or works in extreme heat; medical advice supersedes this rule of thumb.",
      "tags": [
        "health",
        "water intake",
        "hydration",
        "fluid needs",
        "how much water"
      ],
      "examples": [
        "water-intake weight_kg=70 exercise_minutes_per_day=30",
        "water-intake weight_kg=55"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "calorie-deficit",
      "name": "Calorie Deficit & Weight Loss Time Calculator",
      "description": "Converts a weight change goal into total energy and the number of days and weeks required at a given daily calorie deficit or surplus, using 7,700 kcal per kilogram of body fat. Use when: You know the current and target weight and a planned daily deficit (or surplus) and want a time estimate, or want the deficit needed to hit a date. Do not use when: You need a medically supervised plan, the target implies more than 1 kg/week loss, or the person is a child; metabolic adaptation makes long projections approximate.",
      "tags": [
        "health",
        "calorie deficit",
        "weight loss time",
        "how long to lose weight",
        "3500 calories",
        "7700 kcal"
      ],
      "examples": [
        "calorie-deficit current_weight_kg=80 target_weight_kg=75 daily_deficit_kcal=500"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "macros",
      "name": "Macro Calculator",
      "description": "Splits a daily calorie target into grams of protein, carbohydrate and fat using a preset ratio (balanced, low-carb, high-protein, keto) or custom percentages. Use when: You have a calorie target (from tdee) and want gram targets for each macronutrient. Do not use when: Medical diets (renal, diabetic, PKU) are involved; those need individualised prescriptions.",
      "tags": [
        "health",
        "macros",
        "macronutrients",
        "protein carbs fat",
        "iifym",
        "keto macros"
      ],
      "examples": [
        "macros calories_per_day=2000 preset=balanced",
        "macros calories_per_day=2200 preset=custom protein_percent=35 carbs_percent=35 fat_percent=30"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "heart-rate-zones",
      "name": "Heart Rate Zone Calculator",
      "description": "Estimates maximum heart rate from age (Tanaka or Fox formula) and computes the five training zones, using the Karvonen heart-rate-reserve method when resting heart rate is supplied. Use when: You need training heart-rate ranges (zones 1–5) for an adult from age, optionally refined by resting heart rate. Do not use when: The person takes heart-rate-limiting medication (e.g. beta blockers) or has a measured maximum heart rate from a test (use that instead of an age formula).",
      "tags": [
        "health",
        "heart rate zones",
        "target heart rate",
        "max heart rate",
        "karvonen",
        "training zones"
      ],
      "examples": [
        "heart-rate-zones age_years=30",
        "heart-rate-zones age_years=40 resting_heart_rate=60 max_hr_formula=fox"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "pregnancy-due-date",
      "name": "Pregnancy Due Date Calculator",
      "description": "Estimates the due date, conception date and current gestational age from the first day of the last menstrual period, adjusting for cycle length (Naegele's rule). Use when: You know the first day of the last period and want the estimated due date, trimester dates or gestational age on a given date. Do not use when: Cycles are very irregular, the LMP is unknown, or an ultrasound dating is available (ultrasound dating in the first trimester is more accurate and takes precedence).",
      "tags": [
        "health",
        "due date",
        "pregnancy",
        "naegele",
        "gestational age",
        "conception date"
      ],
      "examples": [
        "pregnancy-due-date last_period_date=2026-01-01 cycle_length_days=28 as_of_date=2026-04-15",
        "pregnancy-due-date last_period_date=2026-03-10 cycle_length_days=32"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "ovulation",
      "name": "Ovulation Calculator",
      "description": "Estimates the ovulation date, the six-day fertile window and the next period start from the first day of the last period and the average cycle length. Use when: You want to estimate the most fertile days of a regular menstrual cycle. Do not use when: Cycles vary by more than a few days, hormonal contraception is used, or you need contraception (calendar estimates are not reliable for preventing pregnancy).",
      "tags": [
        "health",
        "ovulation",
        "fertile window",
        "fertility",
        "cycle",
        "next period"
      ],
      "examples": [
        "ovulation last_period_date=2026-09-01 cycle_length_days=28"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "waist-to-height-ratio",
      "name": "Waist-to-Height Ratio Calculator",
      "description": "Divides waist circumference by height and classifies the ratio using the 'keep your waist to less than half your height' guidance (NICE 2022). Use when: You want a simple central-adiposity screen that predicts cardiometabolic risk better than BMI alone. Do not use when: The person is under 18 or pregnant.",
      "tags": [
        "health",
        "waist to height ratio",
        "whtr",
        "central obesity",
        "waist circumference"
      ],
      "examples": [
        "waist-to-height-ratio waist_cm=85 height_cm=175",
        "waist-to-height-ratio waist_cm=100 height_cm=170"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "lean-body-mass",
      "name": "Lean Body Mass Calculator",
      "description": "Estimates lean body mass (fat-free mass) from weight, height and sex with the Boer (1984), James (1976) and Hume (1966) formulas. Use when: You need fat-free mass for drug dosing, nutrition planning or as a body-composition reference without a scan. Do not use when: You have measured body-fat percentage (lean mass = weight × (1 − body fat) is then more accurate) or the person is a child.",
      "tags": [
        "health",
        "lean body mass",
        "fat free mass",
        "lbm",
        "boer",
        "james"
      ],
      "examples": [
        "lean-body-mass sex=male weight_kg=70 height_cm=175",
        "lean-body-mass sex=female weight_kg=60 height_cm=165"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "protein-intake",
      "name": "Protein Intake Calculator",
      "description": "Recommends a daily protein range in grams from body weight and goal (sedentary RDA 0.8 g/kg up to 1.6–2.2 g/kg for muscle gain or fat loss), based on the ISSN position stand. Use when: You want a protein target in grams per day for an adult given their activity or goal. Do not use when: Kidney disease or other medical conditions limit protein; consult a clinician.",
      "tags": [
        "health",
        "protein intake",
        "how much protein",
        "grams of protein",
        "protein per kg"
      ],
      "examples": [
        "protein-intake weight_kg=70 goal=sedentary",
        "protein-intake weight_kg=80 goal=muscle_gain"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "blood-pressure",
      "name": "Blood Pressure Category Calculator",
      "description": "Classifies a systolic/diastolic blood pressure reading into the ACC/AHA 2017 categories (normal, elevated, stage 1, stage 2, hypertensive crisis) and reports mean arterial and pulse pressure. Use when: You have a resting blood-pressure reading and want the standard adult category plus MAP and pulse pressure. Do not use when: Diagnosing hypertension (requires repeated readings over time) or for children and pregnant women, who use different thresholds.",
      "tags": [
        "health",
        "blood pressure",
        "hypertension",
        "systolic",
        "diastolic",
        "map"
      ],
      "examples": [
        "blood-pressure systolic_mmhg=118 diastolic_mmhg=76",
        "blood-pressure systolic_mmhg=135 diastolic_mmhg=85"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "body-surface-area",
      "name": "Body Surface Area Calculator",
      "description": "Computes body surface area in square metres from height and weight using the Mosteller and Du Bois formulas, as used for chemotherapy and other weight-independent dosing. Use when: You need BSA for drug dosing, cardiac index or physiological normalisation. Do not use when: You need body composition or BMI; BSA does not indicate fatness.",
      "tags": [
        "health",
        "body surface area",
        "bsa",
        "mosteller",
        "du bois",
        "chemotherapy dosing"
      ],
      "examples": [
        "body-surface-area weight_kg=70 height_cm=175"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "running-pace",
      "name": "Running Pace Calculator",
      "description": "Computes running pace in min/km and min/mile and speed in km/h and mph from a distance and elapsed time, and projects the finish time for 5 km, 10 km, half marathon and marathon at that constant pace. Use when: You know a distance and the time it took (or a target time) and need the pace, the equivalent speed, or the time that pace gives over standard race distances. Do not use when: You want a realistic prediction of a longer race from a shorter one (pace slows with distance; use race-time-predictor), or you only need to convert between pace and speed units (use pace-converter).",
      "tags": [
        "fitness",
        "running pace",
        "pace calculator",
        "min per km",
        "min per mile",
        "race splits"
      ],
      "examples": [
        "running-pace distance=10 distance_unit=km time=50:00",
        "running-pace distance=5 distance_unit=mi time=45:00"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "race-time-predictor",
      "name": "Race Time Predictor",
      "description": "Predicts finish times for 5 km, 10 km, half marathon and marathon from one known race result using Riegel's endurance formula T2 = T1 × (D2/D1)^1.06, with the corresponding paces. Use when: You have a recent race time (or time trial) and want equivalent-effort predictions for other standard distances, e.g. to set a marathon goal from a half-marathon result. Do not use when: You only need the pace or constant-pace splits of a run (use running-pace), the known effort was a trail or very hilly race, or it was shorter than about 1.5 km or longer than a marathon.",
      "tags": [
        "fitness",
        "race time predictor",
        "riegel formula",
        "marathon prediction",
        "half marathon time",
        "equivalent performance"
      ],
      "examples": [
        "race-time-predictor distance=10 distance_unit=km time=50:00",
        "race-time-predictor distance=21.0975 distance_unit=km time=1:45:00"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "calories-burned",
      "name": "Calories Burned Calculator",
      "description": "Estimates the calories burned during an activity from body weight, duration and the activity's MET value from the 2011 Compendium of Physical Activities, using the ACSM metabolic equation kcal/min = MET × 3.5 × kg / 200. Use when: You need an estimate of energy expenditure for a workout, sport or chore of known duration for a person of known weight. Do not use when: You need total daily calorie needs (use tdee) or resting expenditure (use bmr); MET values are population averages and ignore fitness level, terrain and intensity within a category.",
      "tags": [
        "fitness",
        "calories burned",
        "met values",
        "energy expenditure",
        "exercise calories",
        "running calories"
      ],
      "examples": [
        "calories-burned weight_kg=70 duration_minutes=30 activity=running_6_mph",
        "calories-burned weight_kg=65 duration_minutes=60 activity=walking_3_5_mph"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "one-rep-max",
      "name": "One-Rep Max Calculator",
      "description": "Estimates the one-repetition maximum from a weight lifted for 2–12 repetitions using the Epley, Brzycki and Lombardi equations, reports their average, and lists training loads at 95 % to 70 % of that 1RM. Use when: You want to estimate maximal strength or program training percentages without attempting a true single-rep maximum. Do not use when: The set was more than 12 repetitions (prediction error grows quickly) or was not taken close to failure; use a heavier, lower-rep set instead.",
      "tags": [
        "fitness",
        "one rep max",
        "1rm calculator",
        "epley",
        "brzycki",
        "lombardi"
      ],
      "examples": [
        "one-rep-max weight_lifted=100 reps=5",
        "one-rep-max weight_lifted=60 reps=10"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "vo2-max",
      "name": "VO2 Max Calculator",
      "description": "Estimates maximal oxygen uptake (VO2max, ml/kg/min) from the distance covered in the Cooper 12-minute run test, and/or from the ratio of maximum to resting heart rate (Uth et al. 2004). Use when: You have a 12-minute run distance or resting and maximum heart rates and want a field estimate of aerobic fitness. Do not use when: A laboratory or wearable-measured VO2max is available, or the person cannot run continuously for 12 minutes; the heart-rate method also requires a true (measured) maximum heart rate.",
      "tags": [
        "fitness",
        "vo2 max",
        "cooper test",
        "12 minute run",
        "aerobic capacity",
        "heart rate ratio method"
      ],
      "examples": [
        "vo2-max distance_m=2800",
        "vo2-max resting_heart_rate=60 max_heart_rate=180"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "steps-to-distance",
      "name": "Steps to Distance Calculator",
      "description": "Converts a pedometer step count into distance using a measured stride length, or a walking stride estimated from height (stride ≈ 0.414 × height). Use when: You have a daily step count and want to know the distance walked in kilometres and miles, or the number of steps in a kilometre or mile. Do not use when: The steps were mostly running (running strides are considerably longer; enter a measured stride_length_m instead) or you need calories (use calories-burned with the walking activity).",
      "tags": [
        "fitness",
        "steps to km",
        "steps to miles",
        "10000 steps distance",
        "stride length",
        "pedometer"
      ],
      "examples": [
        "steps-to-distance steps=10000 height_cm=175",
        "steps-to-distance steps=8000 stride_length_m=0.8"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "swim-pace",
      "name": "Swim Pace Calculator",
      "description": "Computes swimming pace per 100 metres and per 100 yards, speed in m/s and km/h, and the number of 25 m and 50 m pool lengths from a swum distance and time. Use when: You swam (or plan to swim) a given distance in a given time and need the pace per 100 m or 100 yd, e.g. to set interval targets. Do not use when: The distance is in yards (convert first: 1 yd = 0.9144 m) or you need running/cycling pace (use running-pace or pace-converter).",
      "tags": [
        "fitness",
        "swim pace",
        "pace per 100 m",
        "pace per 100 yards",
        "swimming speed",
        "pool lengths"
      ],
      "examples": [
        "swim-pace distance_m=1500 time=30:00",
        "swim-pace distance_m=400 time=6:40"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "pace-converter",
      "name": "Pace Converter",
      "description": "Converts a running pace or speed given in any one of min/km, min/mile, km/h or mph into all four units, plus seconds per km/mile and metres per second. Use when: You need to translate a treadmill speed into a pace, a min/mile pace into min/km, or any other pace/speed unit conversion. Do not use when: You have a distance and time rather than a pace (use running-pace) or a swim time (use swim-pace).",
      "tags": [
        "fitness",
        "pace converter",
        "min per km to min per mile",
        "km/h to pace",
        "treadmill speed to pace",
        "mph to min per mile"
      ],
      "examples": [
        "pace-converter pace_min_per_km=5:00",
        "pace-converter speed_mph=6"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "percentage",
      "name": "Percentage Calculator",
      "description": "Solves the three basic percentage questions (a percentage of a number, what percentage one number is of another, and the whole behind a known part and percentage). Always returns the part, the whole and the percent. Use when: You need a percentage of a value, the percentage one value represents of another, or the base value that a part and its percentage imply. Do not use when: You need the percentage change between two values (use percentage-change), a price after a percentage discount (use discount) or a tax amount (use sales-tax).",
      "tags": [
        "math",
        "percentage",
        "percent of",
        "what percent",
        "percent calculator",
        "part whole percent"
      ],
      "examples": [
        "percentage mode=percent_of x=15 y=240",
        "percentage mode=is_what_percent x=30 y=120"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "percentage-change",
      "name": "Percentage Change Calculator",
      "description": "Computes the relative change from an old value to a new value as a percentage, the signed absolute change, the new/old ratio and the symmetric percent difference. Use when: You have a starting and an ending value and need the percentage increase or decrease, or a symmetric percent difference between two comparable values. Do not use when: You need a percentage of a number (use percentage), an annualised growth rate over several years (use cagr) or an investment return (use roi).",
      "tags": [
        "math",
        "percentage change",
        "percent increase",
        "percent decrease",
        "percent difference",
        "relative change"
      ],
      "examples": [
        "percentage-change old_value=50 new_value=65",
        "percentage-change old_value=80 new_value=60"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "quadratic-equation",
      "name": "Quadratic Equation Solver",
      "description": "Solves ax² + bx + c = 0 with the quadratic formula, reporting the discriminant, both roots (real, or complex conjugates written as strings), the vertex of the parabola and the sum and product of the roots. Use when: You need the solutions of a second-degree polynomial equation, or the vertex and discriminant of a parabola y = ax² + bx + c. Do not use when: The coefficient a is 0 (the equation is linear: x = −c / b), or you need roots of x^n = c for other powers (use nth-root).",
      "tags": [
        "math",
        "quadratic equation",
        "quadratic formula",
        "discriminant",
        "roots",
        "parabola vertex"
      ],
      "examples": [
        "quadratic-equation a=1 b=-5 c=6",
        "quadratic-equation a=1 b=2 c=5"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gcd-lcm",
      "name": "GCD and LCM Calculator",
      "description": "Computes the greatest common divisor (highest common factor) and least common multiple of two or more integers with the Euclidean algorithm. Use when: You need the GCD/HCF or LCM of a list of integers, e.g. to reduce fractions, find a common denominator or check whether numbers are coprime. Do not use when: You need the prime factors themselves (use prime-factorization) or want to reduce a single fraction (use fraction-simplifier).",
      "tags": [
        "math",
        "gcd",
        "lcm",
        "greatest common divisor",
        "least common multiple",
        "hcf"
      ],
      "examples": [
        "gcd-lcm numbers=12,18",
        "gcd-lcm numbers=4,6,8"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "prime-factorization",
      "name": "Prime Factorization Calculator",
      "description": "Decomposes an integer into its prime factors by trial division, tests primality, and derives the number and sum of its divisors from the exponents. Use when: You need the prime factors of an integer up to 10^12, want to know whether it is prime, or need its divisor count. Do not use when: You need the GCD or LCM of several numbers (use gcd-lcm) or factorials and binomial coefficients (use factorial, combinations-permutations).",
      "tags": [
        "math",
        "prime factorization",
        "prime factors",
        "is prime",
        "number of divisors",
        "factor a number"
      ],
      "examples": [
        "prime-factorization n=360",
        "prime-factorization n=97"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "factorial",
      "name": "Factorial Calculator",
      "description": "Computes n! = 1 × 2 × … × n for integers from 0 to 170, together with the number of decimal digits, the number of trailing zeros and a scientific-notation form. Use when: You need the factorial of an integer, e.g. for counting arrangements or as a building block of permutations and combinations. Do not use when: n exceeds 170 (the result overflows double precision; use Stirling's approximation or log-gamma) or you need C(n, k) / P(n, k) directly (use combinations-permutations).",
      "tags": [
        "math",
        "factorial",
        "n factorial",
        "n!",
        "trailing zeros",
        "how many digits"
      ],
      "examples": [
        "factorial n=5",
        "factorial n=20"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "combinations-permutations",
      "name": "Combinations and Permutations Calculator",
      "description": "Counts the ways to choose k items from n: combinations C(n, k) when order does not matter and permutations P(n, k) when it does, with or without repetition. Use when: You need nCr (binomial coefficient), nPr, or the number of multisets or sequences of length k drawn from n items. Do not use when: You need the probability of a specific outcome (use probability-of-events or binomial-distribution) or a plain factorial (use factorial).",
      "tags": [
        "math",
        "combinations",
        "permutations",
        "ncr",
        "npr",
        "binomial coefficient"
      ],
      "examples": [
        "combinations-permutations n=10 k=3 with_repetition=false",
        "combinations-permutations n=5 k=2 with_repetition=true"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "exponent",
      "name": "Exponent Calculator",
      "description": "Raises a base to any real exponent (base^exponent), including negative and fractional exponents, and reports the reciprocal and a scientific-notation form. Use when: You need a power such as 2^10, 1.05^30 or 8^(1/3), or a quick check of how large a power gets. Do not use when: You need the exponent that produces a given result (use logarithm) or the n-th root with sign handling for negatives (use nth-root).",
      "tags": [
        "math",
        "exponent",
        "power",
        "raise to the power",
        "squared",
        "cubed"
      ],
      "examples": [
        "exponent base=2 exponent=10",
        "exponent base=4 exponent=1.5"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "nth-root",
      "name": "Nth Root Calculator",
      "description": "Computes the principal n-th root of a number (value^(1/n)), returning the real negative root for odd n and the second, negative root for even n. Use when: You need √x, ∛x or any integer-degree root, including odd roots of negative numbers. Do not use when: You need a fractional power such as x^(2/3) (use exponent) or the solutions of a quadratic (use quadratic-equation).",
      "tags": [
        "math",
        "nth root",
        "square root",
        "cube root",
        "radical",
        "root of a number"
      ],
      "examples": [
        "nth-root value=16 n=4",
        "nth-root value=-32 n=5"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "logarithm",
      "name": "Logarithm Calculator",
      "description": "Computes the logarithm of a positive number to any base using the change-of-base formula, and always reports the natural, common (base 10) and binary (base 2) logarithms. Use when: You need log_b(x) for an arbitrary base, or ln, log10 and log2 of a number at once. Do not use when: You need to raise a base to a power (use exponent) or a root (use nth-root); for pH-style −log10 of a concentration use ph.",
      "tags": [
        "math",
        "logarithm",
        "log",
        "natural log",
        "ln",
        "log base 2"
      ],
      "examples": [
        "logarithm value=1000 base=10",
        "logarithm value=8 base=2"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "fraction-simplifier",
      "name": "Fraction Simplifier",
      "description": "Reduces a fraction to lowest terms by dividing by the GCD and converts it to a mixed number, a decimal and a percentage. Use when: You have a numerator and denominator and want the reduced fraction, its mixed-number form, decimal value or percent. Do not use when: You need to add or multiply fractions (reduce each result with this tool afterwards) or to simplify a ratio of non-integers (use ratio).",
      "tags": [
        "math",
        "simplify fraction",
        "reduce fraction",
        "lowest terms",
        "mixed number",
        "fraction to decimal"
      ],
      "examples": [
        "fraction-simplifier numerator=6 denominator=8",
        "fraction-simplifier numerator=10 denominator=4"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "ratio",
      "name": "Ratio Calculator",
      "description": "Simplifies a ratio a:b to lowest terms (decimals are scaled to integers first), expresses it as a decimal, as n:1 and as percentage shares, and optionally scales it to a new value of a. Use when: You need to reduce a ratio, compare two quantities, or find the matching second value when the first is scaled (e.g. mixing or recipe ratios). Do not use when: You are solving a/b = c/x with three known values (use proportion) or reducing a fraction with sign handling (use fraction-simplifier).",
      "tags": [
        "math",
        "ratio",
        "simplify ratio",
        "ratio to decimal",
        "scale ratio",
        "a to b"
      ],
      "examples": [
        "ratio a=6 b=4 new_a=9",
        "ratio a=2.5 b=1.5"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "proportion",
      "name": "Proportion Calculator",
      "description": "Solves the proportion a / b = c / x for the unknown fourth term by cross-multiplication (x = b × c / a) and reports the common scale factor. Use when: Three terms of a proportion are known and you need the fourth, e.g. converting a recipe, map scale or unit rate. Do not use when: You only want to simplify a ratio (use ratio) or the unknown is a percentage (use percentage).",
      "tags": [
        "math",
        "proportion",
        "solve proportion",
        "cross multiply",
        "a/b = c/x",
        "missing value"
      ],
      "examples": [
        "proportion a=2 b=3 c=4",
        "proportion a=5 b=8 c=12.5"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "slope",
      "name": "Slope Calculator",
      "description": "Computes the slope of the line through two points (rise over run), its y- and x-intercepts, the slope-intercept equation y = mx + b, the angle of inclination and the distance between the points. Use when: You have two points and need the gradient or the equation of the line through them. Do not use when: You need a best-fit line through many points (use linear-regression) or only the distance between two points (use distance-2d).",
      "tags": [
        "math",
        "slope",
        "gradient",
        "rise over run",
        "line equation",
        "y intercept"
      ],
      "examples": [
        "slope x1=1 y1=2 x2=3 y2=6",
        "slope x1=0 y1=3 x2=4 y2=1"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "distance-2d",
      "name": "Distance Between Two Points Calculator",
      "description": "Computes the straight-line (Euclidean) distance between two points in the plane, their midpoint, the coordinate differences and the Manhattan distance. Use when: You have two (x, y) coordinates and need the distance between them or the point halfway between them. Do not use when: You need the slope or equation of the line through the points (use slope) or the third side of a right triangle from two sides (use pythagorean).",
      "tags": [
        "math",
        "distance between two points",
        "distance formula",
        "midpoint",
        "euclidean distance",
        "coordinates"
      ],
      "examples": [
        "distance-2d x1=0 y1=0 x2=3 y2=4",
        "distance-2d x1=1 y1=2 x2=4 y2=6"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "pythagorean",
      "name": "Pythagorean Theorem Calculator",
      "description": "Finds the missing side of a right triangle from any two of the legs a, b and hypotenuse c using a² + b² = c², and reports the area, perimeter and acute angles. Use when: You know two sides of a right triangle and need the third, or want to check whether three lengths form a right triangle. Do not use when: The triangle is not right-angled (use triangle-solver) or you need the distance between coordinates (use distance-2d).",
      "tags": [
        "math",
        "pythagorean theorem",
        "hypotenuse",
        "right triangle",
        "a2 + b2 = c2",
        "missing side"
      ],
      "examples": [
        "pythagorean a=3 b=4",
        "pythagorean a=5 c=13"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "rounding",
      "name": "Rounding Calculator",
      "description": "Rounds a number to a given number of decimal places (negative for tens, hundreds, …) or significant figures using round-half-away-from-zero, and also reports the ceiling, floor and truncated values at the same precision. Use when: You need a number rounded to a fixed number of decimals or significant figures, or its ceiling/floor at that precision, with the exact decimal behaviour (2.675 → 2.68). Do not use when: You want a number written in scientific or engineering notation (use scientific-notation).",
      "tags": [
        "math",
        "rounding",
        "round to decimal places",
        "significant figures",
        "ceiling",
        "floor"
      ],
      "examples": [
        "rounding value=2.675 precision=2 mode=decimals",
        "rounding value=12345.678 precision=3 mode=significant_figures"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "arithmetic-sequence",
      "name": "Arithmetic Sequence Calculator",
      "description": "Computes the n-th term and the sum of the first n terms of an arithmetic progression from the first term and the common difference, and lists the first terms. Use when: Terms increase or decrease by a constant amount (e.g. 2, 5, 8, …) and you need a specific term or the total of the first n terms. Do not use when: Terms are multiplied by a constant ratio (use geometric-sequence) or you need interest that compounds (use compound-interest).",
      "tags": [
        "math",
        "arithmetic sequence",
        "arithmetic progression",
        "nth term",
        "sum of terms",
        "common difference"
      ],
      "examples": [
        "arithmetic-sequence first_term=2 common_difference=3 n=10",
        "arithmetic-sequence first_term=5 common_difference=-2 n=6"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "geometric-sequence",
      "name": "Geometric Sequence Calculator",
      "description": "Computes the n-th term and the sum of the first n terms of a geometric progression from the first term and common ratio, plus the sum to infinity when |r| < 1. Use when: Each term is the previous one multiplied by a constant ratio (e.g. 3, 6, 12, …) and you need a term, a partial sum or the limit of the series. Do not use when: Terms change by a constant difference (use arithmetic-sequence) or you need a money value with periodic deposits (use future-value / compound-interest).",
      "tags": [
        "math",
        "geometric sequence",
        "geometric progression",
        "geometric series",
        "nth term",
        "sum to infinity"
      ],
      "examples": [
        "geometric-sequence first_term=3 common_ratio=2 n=5",
        "geometric-sequence first_term=1 common_ratio=0.5 n=4"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "modulo",
      "name": "Modulo Calculator",
      "description": "Divides one number by another and reports the remainder under the three common sign conventions (truncated as in C/JavaScript, floored as in Python, and the non-negative Euclidean modulo) together with the integer quotient. Use when: You need a mod b, the remainder of a division, or want to know how different programming languages treat negative operands. Do not use when: You need the prime factors or divisors of a number (use prime-factorization) or a change of number base (use base-converter).",
      "tags": [
        "math",
        "modulo",
        "mod",
        "remainder",
        "modulus",
        "a mod b"
      ],
      "examples": [
        "modulo dividend=17 divisor=5",
        "modulo dividend=-7 divisor=3"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "base-converter",
      "name": "Number Base Converter",
      "description": "Converts an integer written in one base (2–36) to another, using exact arbitrary-precision arithmetic, and always shows the binary, octal, decimal and hexadecimal forms. Use when: You need to convert between binary, octal, decimal, hexadecimal or any positional base up to 36, including large integers. Do not use when: The value has a fractional part, you need Roman numerals (use roman-numeral) or byte/bit unit conversions (use data-storage).",
      "tags": [
        "math",
        "base converter",
        "binary to decimal",
        "decimal to binary",
        "hex to decimal",
        "octal"
      ],
      "examples": [
        "base-converter value=ff from_base=16 to_base=10",
        "base-converter value=1010 from_base=2 to_base=16"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "scientific-notation",
      "name": "Scientific Notation Converter",
      "description": "Writes a number in normalised scientific notation m × 10^e with 1 ≤ |m| < 10, in E-notation, and in engineering notation (exponent a multiple of 3). Use when: You need a very large or very small number in scientific or engineering form, or its order of magnitude. Do not use when: You want to round a number to a given precision (use rounding) or compute a power (use exponent).",
      "tags": [
        "math",
        "scientific notation",
        "standard form",
        "engineering notation",
        "e notation",
        "order of magnitude"
      ],
      "examples": [
        "scientific-notation value=123400",
        "scientific-notation value=0.000123"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "circle",
      "name": "Circle Calculator",
      "description": "Computes the area, circumference, diameter and radius of a circle from either its radius or its diameter. Lengths are unit-agnostic: the area is in the square of the input unit. Use when: You know a circle's radius or diameter and need its area, circumference or the other dimension. Do not use when: The shape is an ellipse (use ellipse), a solid ball (use sphere) or a disc with thickness (use cylinder).",
      "tags": [
        "geometry",
        "circle",
        "area of a circle",
        "circumference",
        "radius",
        "diameter"
      ],
      "examples": [
        "circle radius=3",
        "circle diameter=10"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "triangle-area",
      "name": "Triangle Area Calculator",
      "description": "Computes the area of any triangle from base and height, from three sides (Heron's formula) or from two sides and their included angle in degrees, and reports which method was used. Use when: You need the area of a triangle and know either its base and height, all three sides, or two sides and the angle between them. Do not use when: You need the missing sides or angles as well (use triangle-solver), or the triangle is right-angled and you want all its parts (use right-triangle).",
      "tags": [
        "geometry",
        "triangle area",
        "heron's formula",
        "area of a triangle",
        "base and height",
        "sas area"
      ],
      "examples": [
        "triangle-area base=10 height=4",
        "triangle-area side_a=7 side_b=8 side_c=9"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "right-triangle",
      "name": "Right Triangle Calculator",
      "description": "Solves a right triangle from any two of its sides (two legs, or one leg and the hypotenuse) using the Pythagorean theorem, and returns all sides, the two acute angles in degrees, area, perimeter and the altitude to the hypotenuse. Use when: You know two sides of a right-angled triangle and need the third side, the angles or the area. Do not use when: The triangle has no right angle (use triangle-solver) or you only need the hypotenuse length (pythagorean gives just that).",
      "tags": [
        "geometry",
        "right triangle",
        "pythagorean theorem",
        "hypotenuse",
        "trigonometry",
        "legs"
      ],
      "examples": [
        "right-triangle leg_a=3 leg_b=4",
        "right-triangle leg_a=5 hypotenuse=13"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "triangle-solver",
      "name": "Triangle Solver",
      "description": "Solves a triangle from three sides (SSS) or from two sides and their included angle in degrees (SAS) with the law of cosines, returning all sides, all angles, perimeter, area, inradius, circumradius and the classification by sides and by angles. Use when: You know three sides, or two sides and the angle between them, and need the remaining sides and angles, the area or the triangle type. Do not use when: You know two angles and a side (ASA/AAS) or a non-included angle (SSA), which this calculator does not accept; for right triangles from two sides use right-triangle.",
      "tags": [
        "geometry",
        "triangle solver",
        "law of cosines",
        "sss",
        "sas",
        "triangle angles"
      ],
      "examples": [
        "triangle-solver side_a=3 side_b=4 side_c=5",
        "triangle-solver side_a=5 side_b=7 angle_c_deg=60"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "rectangle",
      "name": "Rectangle Calculator",
      "description": "Computes the area, perimeter and diagonal of a rectangle from its length and width. Lengths are unit-agnostic; the area is in the square of the input unit. Use when: You need the area, perimeter or diagonal of a rectangle or square (enter equal length and width). Do not use when: The shape is a box with depth (use rectangular-prism) or a slanted quadrilateral (use parallelogram or trapezoid).",
      "tags": [
        "geometry",
        "rectangle",
        "area of a rectangle",
        "perimeter",
        "diagonal",
        "square"
      ],
      "examples": [
        "rectangle length=5 width=3",
        "rectangle length=12 width=5"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "trapezoid",
      "name": "Trapezoid Calculator",
      "description": "Computes the area and midsegment of a trapezoid (trapezium) from its two parallel sides and height, and the perimeter when both non-parallel legs are given. Use when: You need the area of a quadrilateral with exactly one pair of parallel sides, or its perimeter when all four sides are known. Do not use when: Both pairs of sides are parallel (use parallelogram or rectangle) or you only know the four sides without the height (the height cannot be derived without an angle in general).",
      "tags": [
        "geometry",
        "trapezoid",
        "trapezium",
        "area of a trapezoid",
        "parallel sides",
        "midsegment"
      ],
      "examples": [
        "trapezoid base_a=8 base_b=5 height=4 leg_c=4.5 leg_d=5",
        "trapezoid base_a=10 base_b=6 height=3"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "parallelogram",
      "name": "Parallelogram Calculator",
      "description": "Computes the area of a parallelogram from base and height and, when the slanted side is given, its perimeter, the acute angle between base and side in degrees, and both diagonals. Use when: You need the area, perimeter, angles or diagonals of a quadrilateral whose opposite sides are parallel (including rhombi). Do not use when: All angles are right angles (use rectangle) or only one pair of sides is parallel (use trapezoid).",
      "tags": [
        "geometry",
        "parallelogram",
        "area of a parallelogram",
        "rhombus",
        "diagonals",
        "perimeter"
      ],
      "examples": [
        "parallelogram base=8 height=5 side=6",
        "parallelogram base=10 height=3"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "regular-polygon",
      "name": "Regular Polygon Calculator",
      "description": "Computes the area, perimeter, interior and exterior angles in degrees, apothem, circumradius and number of diagonals of a regular polygon from its number of sides and side length. Use when: You need properties of an equilateral, equiangular polygon (pentagon, hexagon, octagon, …) with 3 to 100 sides. Do not use when: The polygon is irregular (split it into triangles and use triangle-area) or is a square, for which rectangle also works.",
      "tags": [
        "geometry",
        "regular polygon",
        "hexagon",
        "pentagon",
        "octagon",
        "interior angle"
      ],
      "examples": [
        "regular-polygon number_of_sides=6 side_length=2",
        "regular-polygon number_of_sides=5 side_length=10"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "ellipse",
      "name": "Ellipse Calculator",
      "description": "Computes the area, approximate perimeter (Ramanujan's second approximation), eccentricity and focal distances of an ellipse from its semi-major and semi-minor axes. Use when: You need the area or circumference of an ellipse or oval, or the position of its foci, from the two half-axes. Do not use when: Both axes are equal (use circle for exact results) or you need the arc length of part of an ellipse, which requires elliptic integrals.",
      "tags": [
        "geometry",
        "ellipse",
        "area of an ellipse",
        "ellipse perimeter",
        "ramanujan",
        "eccentricity"
      ],
      "examples": [
        "ellipse semi_major_a=5 semi_minor_b=3",
        "ellipse semi_major_a=7 semi_minor_b=4"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "sphere",
      "name": "Sphere Calculator",
      "description": "Computes the volume, surface area, diameter and great-circle circumference of a sphere from its radius. The volume is in the cube and the surface area in the square of the input unit. Use when: You need the volume or surface area of a ball, globe, bubble or planet from its radius. Do not use when: The object is a hemisphere or spherical cap (halve or use the cap formula), an ellipsoid, or you only need a flat circle (use circle).",
      "tags": [
        "geometry",
        "sphere",
        "volume of a sphere",
        "surface area of a sphere",
        "ball",
        "radius"
      ],
      "examples": [
        "sphere radius=2",
        "sphere radius=6371"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "cylinder",
      "name": "Cylinder Calculator",
      "description": "Computes the volume, base area, lateral (curved) surface area and total surface area of a right circular cylinder from its radius and height. Use when: You need the capacity or surface of a can, tank, pipe, pillar or any straight circular cylinder. Do not use when: The cylinder is hollow (compute outer minus inner), tilted (oblique), or tapers to a point (use cone).",
      "tags": [
        "geometry",
        "cylinder",
        "volume of a cylinder",
        "surface area of a cylinder",
        "tank volume",
        "pipe"
      ],
      "examples": [
        "cylinder radius=3 height=5",
        "cylinder radius=1 height=1"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "cone",
      "name": "Cone Calculator",
      "description": "Computes the volume, slant height, base area, lateral (curved) surface area, total surface area and half-apex angle in degrees of a right circular cone from its base radius and height. Use when: You need the capacity or surface of a funnel, cone-shaped pile, roof or any right circular cone. Do not use when: The cone is truncated (frustum), oblique, or has a square base (use pyramid).",
      "tags": [
        "geometry",
        "cone",
        "volume of a cone",
        "slant height",
        "surface area of a cone",
        "lateral area"
      ],
      "examples": [
        "cone radius=3 height=4",
        "cone radius=5 height=12"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "rectangular-prism",
      "name": "Rectangular Prism Calculator",
      "description": "Computes the volume, total surface area, space diagonal and total edge length of a rectangular prism (cuboid or box) from its length, width and height. Use when: You need the capacity, surface or longest internal dimension of a box, room, aquarium, container or any cuboid. Do not use when: The base is not a rectangle (use cylinder or pyramid) or you only need the floor area (use rectangle).",
      "tags": [
        "geometry",
        "rectangular prism",
        "cuboid",
        "box volume",
        "surface area of a box",
        "space diagonal"
      ],
      "examples": [
        "rectangular-prism length=3 width=4 height=12",
        "rectangular-prism length=2 width=3 height=4"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "pyramid",
      "name": "Square Pyramid Calculator",
      "description": "Computes the volume, slant height, lateral edge, base area, lateral and total surface area and face slope in degrees of a right square pyramid from its base side and height. Use when: You need the volume or surface of a pyramid with a square base and the apex above the centre of the base. Do not use when: The base is a circle (use cone), a non-square rectangle or triangle, or the apex is off-centre (oblique pyramid).",
      "tags": [
        "geometry",
        "pyramid",
        "square pyramid",
        "volume of a pyramid",
        "slant height",
        "surface area of a pyramid"
      ],
      "examples": [
        "pyramid base_side=6 height=4",
        "pyramid base_side=230.4 height=146.6"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "descriptive-statistics",
      "name": "Descriptive Statistics Calculator",
      "description": "Computes summary statistics for a list of numbers: count, sum, mean, median, mode, range, sample and population variance and standard deviation, standard error, coefficient of variation, quartiles (linear interpolation) and skewness. Use when: You have a set of numeric observations and need its central tendency, spread or quartiles, e.g. the standard deviation of a data set. Do not use when: You need a single percentile or the percentile rank of one value (use percentile), a standardised score (use z-score), or statistics of two paired variables (use correlation or linear-regression).",
      "tags": [
        "statistics",
        "standard deviation",
        "mean median mode",
        "variance",
        "descriptive statistics",
        "quartiles"
      ],
      "examples": [
        "descriptive-statistics values=2,4,4,4,5,5,7,9",
        "descriptive-statistics values=4,8,15,16,23,42"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "z-score",
      "name": "Z-Score Calculator",
      "description": "Standardises a value against a mean and standard deviation (z = (x − μ) / σ) and reports the corresponding percentile and tail probabilities under the normal distribution. Use when: You need how many standard deviations a value lies from the mean, or the percentile a value corresponds to in a normally distributed population (test scores, measurements, quality control). Do not use when: You need the probability between two values or the density (use normal-distribution), the data are clearly not normal, or you need the empirical percentile rank within an actual data set (use percentile).",
      "tags": [
        "statistics",
        "z score",
        "standard score",
        "standardize",
        "how many standard deviations",
        "normal percentile"
      ],
      "examples": [
        "z-score value=1.96 mean=0 std_dev=1",
        "z-score value=85 mean=70 std_dev=10"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "normal-distribution",
      "name": "Normal Distribution Calculator",
      "description": "Computes cumulative probabilities P(X < x), P(X > x) and P(x < X < x2) and the density for a normal (Gaussian) distribution with a given mean and standard deviation. Use when: You need the probability that a normally distributed quantity falls below, above or between given values, or the z-scores of those values. Do not use when: The variable is a count of successes or events (use binomial-distribution or poisson-distribution), or you need the value at a given probability from real data (use percentile).",
      "tags": [
        "statistics",
        "normal distribution",
        "gaussian",
        "bell curve probability",
        "cumulative distribution",
        "area under the curve"
      ],
      "examples": [
        "normal-distribution x=1.96",
        "normal-distribution mean=100 std_dev=15 x=85 x2=115"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "confidence-interval",
      "name": "Confidence Interval Calculator",
      "description": "Computes a confidence interval for a population mean from the sample mean, standard deviation and sample size using the normal (z) critical value: mean ± z · s / √n. Use when: You have a sample mean, its standard deviation and the sample size and want the interval that likely contains the population mean at a given confidence level. Do not use when: The statistic is a proportion or survey percentage (use margin-of-error), or the sample is small (n < 30) with an unknown population SD, where a t-based interval is the correct choice and this z interval is slightly too narrow.",
      "tags": [
        "statistics",
        "confidence interval",
        "confidence interval for the mean",
        "margin of error",
        "95% confidence",
        "standard error"
      ],
      "examples": [
        "confidence-interval sample_mean=100 std_dev=15 sample_size=36 confidence_level_percent=95",
        "confidence-interval sample_mean=50 std_dev=8 sample_size=100 confidence_level_percent=99"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "sample-size",
      "name": "Sample Size Calculator",
      "description": "Computes the number of respondents needed to estimate a population proportion within a given margin of error at a given confidence level (Cochran's formula), with an optional finite population correction. Use when: You are planning a survey, poll or A/B test on a proportion and need to know how many people to sample for a target margin of error. Do not use when: You already have a sample and want its margin of error (use margin-of-error), or you are estimating a mean rather than a proportion (the formula would need the standard deviation instead of p(1 − p)).",
      "tags": [
        "statistics",
        "sample size",
        "survey sample size",
        "how many respondents",
        "cochran formula",
        "finite population correction"
      ],
      "examples": [
        "sample-size confidence_level_percent=95 margin_of_error_percent=5 expected_proportion_percent=50",
        "sample-size confidence_level_percent=95 margin_of_error_percent=5 expected_proportion_percent=50 population_size=1000"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "margin-of-error",
      "name": "Margin of Error Calculator",
      "description": "Computes the margin of error (half-width of the confidence interval) of a sample proportion from the sample size, confidence level and observed percentage, with an optional finite population correction. Use when: You have poll or survey results (n respondents, x % answering a certain way) and need the ± margin at a confidence level. Do not use when: You are still planning the survey and need the required sample size (use sample-size), or the statistic is a mean rather than a percentage (use confidence-interval).",
      "tags": [
        "statistics",
        "margin of error",
        "poll margin of error",
        "survey error",
        "confidence interval proportion",
        "sampling error"
      ],
      "examples": [
        "margin-of-error sample_size=1000 confidence_level_percent=95 proportion_percent=50",
        "margin-of-error sample_size=400 confidence_level_percent=99 proportion_percent=30"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "binomial-distribution",
      "name": "Binomial Distribution Calculator",
      "description": "Computes the probability of exactly, at most, at least, fewer than or more than k successes in n independent trials with success probability p, plus the mean, variance and standard deviation of the distribution. Use when: You have a fixed number of independent yes/no trials with a constant success probability (coin flips, defect counts in a batch, conversions among n visitors) and need the probability of a number of successes. Do not use when: Trials are not independent or p changes, the number of trials is not fixed, or you count events over time or space at an average rate (use poisson-distribution).",
      "tags": [
        "statistics",
        "binomial distribution",
        "binomial probability",
        "probability of k successes",
        "coin flip probability",
        "bernoulli trials"
      ],
      "examples": [
        "binomial-distribution trials=10 successes=3 probability_of_success=0.5",
        "binomial-distribution trials=20 successes=2 probability_of_success=0.1"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "poisson-distribution",
      "name": "Poisson Distribution Calculator",
      "description": "Computes the probability of exactly, at most, at least, fewer than or more than k events when events occur independently at a constant average rate λ per interval, plus the mean, variance and standard deviation. Use when: You count independent events over a fixed interval of time or space with a known average rate (calls per hour, defects per metre, arrivals per minute) and need the probability of a given count. Do not use when: The number of trials is fixed and each has a success probability (use binomial-distribution), the rate varies over the interval, or events cluster (over-dispersion).",
      "tags": [
        "statistics",
        "poisson distribution",
        "poisson probability",
        "events per interval",
        "rate lambda",
        "arrival probability"
      ],
      "examples": [
        "poisson-distribution lambda=3 events=2",
        "poisson-distribution lambda=5 events=0"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "probability-of-events",
      "name": "Probability of Two Events Calculator",
      "description": "Combines the probabilities of two events A and B that are either independent or mutually exclusive into the probabilities of both, at least one, exactly one, one but not the other, and neither occurring. Use when: You know P(A) and P(B) and how the events relate (independent or mutually exclusive) and need P(A and B), P(A or B), P(neither) or P(exactly one). Do not use when: The events are dependent with a known conditional probability (apply P(A and B) = P(A)·P(B|A) directly), you need the probability of k successes in repeated trials (use binomial-distribution), or you need an expected payoff (use expected-value).",
      "tags": [
        "statistics",
        "probability of two events",
        "and or probability",
        "independent events",
        "mutually exclusive",
        "at least one probability"
      ],
      "examples": [
        "probability-of-events probability_a=0.5 probability_b=0.5 relationship=independent",
        "probability-of-events probability_a=0.2 probability_b=0.3 relationship=mutually_exclusive"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "correlation",
      "name": "Correlation Coefficient Calculator",
      "description": "Computes the Pearson product-moment correlation coefficient r, the coefficient of determination r², and the sample covariance for two paired lists of numbers, with a strength/direction interpretation. Use when: You have paired measurements of two numeric variables and want to quantify the strength and direction of their linear relationship. Do not use when: You need the fitted line or predictions (use linear-regression), the relationship is clearly non-linear or the data are ranks/ordinal (Spearman's rank correlation is more appropriate), or you only have one variable (use descriptive-statistics).",
      "tags": [
        "statistics",
        "correlation coefficient",
        "pearson r",
        "r squared",
        "covariance",
        "correlation between two variables"
      ],
      "examples": [
        "correlation x_values=1,2,3,4,5 y_values=2,4,5,4,5",
        "correlation x_values=1,2,3,4 y_values=10,8,6,4"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "linear-regression",
      "name": "Linear Regression Calculator",
      "description": "Fits an ordinary least-squares line to paired (x, y) data and returns the slope, intercept, equation, Pearson r, R², the standard error of the estimate and an optional prediction for a new x. Use when: You want the best-fit straight line through paired data, its equation, or a predicted y for a given x (trend lines, calibration curves, simple forecasting). Do not use when: The relationship is curved or has several predictors (needs polynomial or multiple regression), or you only need the strength of association (use correlation).",
      "tags": [
        "statistics",
        "linear regression",
        "least squares",
        "line of best fit",
        "trend line",
        "slope and intercept"
      ],
      "examples": [
        "linear-regression x_values=1,2,3,4,5 y_values=2,4,5,4,5 x_new=6",
        "linear-regression x_values=0,1,2,3 y_values=1,3,5,7"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "weighted-average",
      "name": "Weighted Average Calculator",
      "description": "Computes the weighted arithmetic mean Σ(w·x) / Σw of a list of values and a matching list of weights, along with the total weight and the unweighted mean for comparison. Use when: Values contribute unequally to an average: course grades with credit weights, portfolio returns by allocation, survey answers with sampling weights, average price over different quantities. Do not use when: All items count equally (use descriptive-statistics for the plain mean), or the weights are probabilities of outcomes (use expected-value, which also gives the variance).",
      "tags": [
        "statistics",
        "weighted average",
        "weighted mean",
        "grade average with weights",
        "weighted score"
      ],
      "examples": [
        "weighted-average values=90,80,70 weights=0.5,0.3,0.2",
        "weighted-average values=4,8,15 weights=2,1,1"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "percentile",
      "name": "Percentile Calculator",
      "description": "For a list of numbers, computes the value at a given percentile (linear interpolation, as in Excel PERCENTILE.INC) and/or the percentile rank of a given value (percentage of values below it, counting ties as half). Use when: You need the k-th percentile of a data set (e.g. the 90th percentile response time) or want to know what percentile a particular value falls at within the data. Do not use when: You want a percentile from a normal distribution rather than actual data (use z-score or normal-distribution), or you need quartiles together with other summary statistics (use descriptive-statistics).",
      "tags": [
        "statistics",
        "percentile",
        "percentile rank",
        "90th percentile",
        "what percentile am i",
        "quantile"
      ],
      "examples": [
        "percentile values=15,20,35,40,50 percentile=40",
        "percentile values=2,4,4,4,5,5,7,9 value=5 percentile=90"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "expected-value",
      "name": "Expected Value Calculator",
      "description": "Computes the expected value E[X] = Σ x·p(x), the variance and the standard deviation of a discrete random variable from its list of outcomes and their probabilities. Use when: You have a set of possible outcomes (payoffs, scores, counts) with known probabilities and need the long-run average and its spread: bets, lotteries, insurance, decision analysis. Do not use when: The probabilities are unknown and you have observed data instead (use descriptive-statistics), or the weights are not probabilities (use weighted-average).",
      "tags": [
        "statistics",
        "expected value",
        "expected payoff",
        "mean of a probability distribution",
        "variance of discrete random variable",
        "ev calculator"
      ],
      "examples": [
        "expected-value values=0,10,100 probabilities=0.7,0.25,0.05",
        "expected-value values=1,2,3,4,5,6 probabilities=0.1666667,0.1666667,0.1666667,0.1666667,0.1666667,0.1666667"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "length",
      "name": "Length Converter",
      "description": "Converts a length or distance between metric (nm to km), imperial/US (in, ft, yd, mi), nautical and astronomical units using exact NIST factors (1 in = 0.0254 m, 1 mi = 1609.344 m). Use when: You need a distance, height or length in a different unit, e.g. miles to kilometres, feet to metres or inches to centimetres. Do not use when: You need an area (use area), a volume (use volume), or a speed (use speed); for walking distance from step counts use steps-to-distance.",
      "tags": [
        "conversion",
        "length converter",
        "miles to km",
        "feet to meters",
        "inches to cm",
        "distance conversion"
      ],
      "examples": [
        "length value=5 from_unit=mi to_unit=km",
        "length value=6 from_unit=ft to_unit=cm"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "mass",
      "name": "Mass / Weight Converter",
      "description": "Converts mass between metric units (μg to tonne), avoirdupois units (grain, oz, lb, stone, short and long ton) and carats using the exact definition 1 lb = 0.45359237 kg. Use when: You need body weight, ingredient weight or freight mass in another unit, e.g. pounds to kilograms, ounces to grams or stones to pounds. Do not use when: You need to convert weight to volume (needs a density; use density) or to force in newtons (use force).",
      "tags": [
        "conversion",
        "weight converter",
        "mass converter",
        "pounds to kg",
        "ounces to grams",
        "stone to pounds"
      ],
      "examples": [
        "mass value=150 from_unit=lb to_unit=kg",
        "mass value=2.5 from_unit=kg to_unit=oz"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "temperature",
      "name": "Temperature Converter",
      "description": "Converts temperatures between Celsius, Fahrenheit, Kelvin and Rankine with the exact defining relations (°F = °C × 9/5 + 32, K = °C + 273.15, °R = °F + 459.67) and rejects values below absolute zero. Use when: You need a weather, cooking, body or laboratory temperature in another scale, e.g. Fahrenheit to Celsius or Celsius to Kelvin. Do not use when: You need to convert a temperature difference (a change of 10 °C is 18 °F, not 50 °F: multiply by 9/5 without the offset) or heat energy (use energy).",
      "tags": [
        "conversion",
        "temperature converter",
        "fahrenheit to celsius",
        "celsius to fahrenheit",
        "kelvin",
        "rankine"
      ],
      "examples": [
        "temperature value=100 from_unit=F to_unit=C",
        "temperature value=25 from_unit=C to_unit=F"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "area",
      "name": "Area Converter",
      "description": "Converts areas between metric (mm² to km², hectare) and US/imperial units (in², ft², yd², acre, mi²) using exact factors (1 ft² = 0.09290304 m², 1 acre = 4046.8564224 m²). Use when: You need land, floor or surface area in another unit, e.g. square feet to square metres, acres to hectares or square miles to square kilometres. Do not use when: You need to compute an area from dimensions (use rectangle, circle or triangle-area) or material quantities for a floor (use flooring).",
      "tags": [
        "conversion",
        "area converter",
        "square feet to square meters",
        "acres to hectares",
        "square miles to km2",
        "land area"
      ],
      "examples": [
        "area value=1 from_unit=acre to_unit=ft2",
        "area value=120 from_unit=m2 to_unit=ft2"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "volume",
      "name": "Volume Converter",
      "description": "Converts volumes between metric units (mL, L, cm³, m³), US customary units (tsp to gallon, in³, ft³, yd³, oil barrel), imperial units (fl oz, pint, quart, gallon) and metric kitchen units, with exact definitions (1 US gal = 3.785411784 L, 1 imperial gal = 4.54609 L). Use when: You need a liquid or bulk volume in another unit, e.g. gallons to litres, cubic feet to cubic metres or millilitres to cups. Do not use when: You need a volume from dimensions (use cylinder, sphere or rectangular-prism), a recipe conversion with tablespoons and cups only (cooking-measurements is a focused subset), or mass from volume (use density).",
      "tags": [
        "conversion",
        "volume converter",
        "gallons to liters",
        "cubic feet to cubic meters",
        "ml to cups",
        "fluid ounces"
      ],
      "examples": [
        "volume value=1 from_unit=gal_us to_unit=L",
        "volume value=500 from_unit=mL to_unit=cup_us"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "speed",
      "name": "Speed Converter",
      "description": "Converts speeds between m/s, km/h, km/s, mph, ft/s, knots and Mach number using exact factors (1 mph = 0.44704 m/s, 1 kn = 1852/3600 m/s) and 340.294 m/s for Mach 1 at sea level. Use when: You need a vehicle, wind, running or aircraft speed in another unit, e.g. km/h to mph, knots to km/h or m/s to ft/s. Do not use when: You need running pace (min/km or min/mile, use pace-converter) or to derive speed from distance and time (use speed-distance-time).",
      "tags": [
        "conversion",
        "speed converter",
        "km/h to mph",
        "mph to km/h",
        "knots to mph",
        "m/s to km/h"
      ],
      "examples": [
        "speed value=100 from_unit=km/h to_unit=mph",
        "speed value=25 from_unit=kn to_unit=km/h"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "time",
      "name": "Time Converter",
      "description": "Converts durations between nanoseconds, microseconds, milliseconds, seconds, minutes, hours, days, weeks, fortnights, 30-day months, 365-day years and Julian years (365.25 days). Use when: You need a duration in another unit, e.g. hours to minutes, days to weeks or seconds to milliseconds. Do not use when: You need the time between two calendar dates (use date-difference), a date shifted by a duration (use add-days), or a clock-time difference (use time-duration).",
      "tags": [
        "conversion",
        "time converter",
        "hours to minutes",
        "days to weeks",
        "seconds to hours",
        "milliseconds"
      ],
      "examples": [
        "time value=3 from_unit=h to_unit=min",
        "time value=90 from_unit=day to_unit=week"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "data-storage",
      "name": "Data Storage Converter",
      "description": "Converts digital storage and transfer sizes between bits, bytes, decimal SI multiples (KB = 1000 B, MB, GB, TB, PB), binary IEC multiples (KiB = 1024 B, MiB, GiB, TiB, PiB) and kilobit/megabit/gigabit/terabit. Use when: You need a file, disk or memory size in another unit, e.g. GB to GiB, MB to bits or TB to GB, or want to explain why a '1 TB' drive shows as 931 GiB. Do not use when: You need transfer time from size and bandwidth (use download-time) or a number in binary/hex (use base-converter).",
      "tags": [
        "conversion",
        "data storage converter",
        "gb to gib",
        "mb to kb",
        "bytes to bits",
        "megabits to megabytes"
      ],
      "examples": [
        "data-storage value=1 from_unit=GB to_unit=GiB",
        "data-storage value=500 from_unit=MB to_unit=Mbit"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "energy",
      "name": "Energy Converter",
      "description": "Converts energy between joules (J to GJ), calories (thermochemical cal = 4.184 J, kcal), watt-hours (Wh, kWh, MWh), BTU (International Table, 1055.05585262 J), MMBTU, therm (EC), electronvolts, ergs and foot-pounds. Use when: You need an energy amount in another unit, e.g. kWh to MJ, kcal to kJ, BTU to kWh or therms to kWh for utility bills. Do not use when: You need power (rate of energy, use power), the cost of electricity (use electricity-cost) or calories from macronutrient grams (use calories-from-macros).",
      "tags": [
        "conversion",
        "energy converter",
        "kwh to mj",
        "kcal to kj",
        "btu to kwh",
        "joules to calories"
      ],
      "examples": [
        "energy value=100 from_unit=kWh to_unit=MJ",
        "energy value=2000 from_unit=kcal to_unit=kJ"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "pressure",
      "name": "Pressure Converter",
      "description": "Converts pressure between pascals (Pa to MPa), bar/millibar, standard atmospheres, psi and ksi, millimetres and inches of mercury, torr and technical atmospheres (kgf/cm²) using NIST factors (1 psi = 6894.757293168 Pa, 1 atm = 101325 Pa). Use when: You need tyre, weather, hydraulic, vacuum or blood pressure in another unit, e.g. psi to bar, atm to kPa or mmHg to kPa. Do not use when: You need to compute pressure from force and area (a physics calculation, not a unit conversion) or the gas law relation between pressure, volume and temperature (use ideal-gas-law).",
      "tags": [
        "conversion",
        "pressure converter",
        "psi to bar",
        "atm to kpa",
        "mmhg to kpa",
        "pascal to psi"
      ],
      "examples": [
        "pressure value=1 from_unit=atm to_unit=psi",
        "pressure value=32 from_unit=psi to_unit=bar"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "power",
      "name": "Power Converter",
      "description": "Converts power between watts (W to GW), mechanical horsepower (745.69987158227 W), metric horsepower (735.49875 W), BTU per hour, foot-pounds per second, kcal/h and tons of refrigeration. Use when: You need engine, motor, heater or air-conditioner power in another unit, e.g. hp to kW, kW to BTU/h or tons of refrigeration to kW. Do not use when: You need energy (use energy) or to compute power from work and time or voltage and current (use work-power or electric-power).",
      "tags": [
        "conversion",
        "power converter",
        "hp to kw",
        "kw to hp",
        "btu/h to kw",
        "watts to horsepower"
      ],
      "examples": [
        "power value=100 from_unit=hp to_unit=kW",
        "power value=2 from_unit=kW to_unit=BTU/h"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "angle",
      "name": "Angle Converter",
      "description": "Converts plane angles between degrees, radians, milliradians, gradians (gon), arcminutes, arcseconds and turns (revolutions) using π rad = 180° = 200 gon = 0.5 turn. Use when: You need an angle in another unit, e.g. degrees to radians for trigonometry, arcseconds for astronomy or turns for rotation counts. Do not use when: You need an angle from a slope or triangle (use slope, right-triangle or triangle-solver) or a rotational speed (use frequency for rpm and rad/s).",
      "tags": [
        "conversion",
        "angle converter",
        "degrees to radians",
        "radians to degrees",
        "gradians",
        "arcseconds"
      ],
      "examples": [
        "angle value=180 from_unit=deg to_unit=rad",
        "angle value=1 from_unit=rad to_unit=deg"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "fuel-economy",
      "name": "Fuel Economy Converter",
      "description": "Converts fuel consumption between litres per 100 km, kilometres per litre, miles per US gallon and miles per imperial gallon; L/100km is the base and the mpg relations are reciprocal (L/100km = 235.214583 / mpg_US). Use when: You need a car's fuel economy in another convention, e.g. mpg to L/100km, L/100km to km/L or US mpg to UK mpg. Do not use when: You need the fuel cost of a trip (use fuel-cost) or plain volume or distance conversions (use volume, length).",
      "tags": [
        "conversion",
        "fuel economy converter",
        "mpg to l/100km",
        "l/100km to mpg",
        "km per litre",
        "uk mpg to us mpg"
      ],
      "examples": [
        "fuel-economy value=30 from_unit=mpg_us to_unit=L/100km",
        "fuel-economy value=6 from_unit=L/100km to_unit=mpg_us"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "force",
      "name": "Force Converter",
      "description": "Converts force between newtons (N, kN), dynes, gram-force, kilogram-force (kilopond), ounce-force, pound-force and kips using exact factors (1 lbf = 4.4482216152605 N, 1 kgf = 9.80665 N). Use when: You need a load, thrust or weight-force in another unit, e.g. lbf to N, kgf to N or kN to kips for structural loads. Do not use when: You need to compute force from mass and acceleration (Newton's second law is a physics calculation, not a unit conversion), a spring force (use hookes-law) or plain mass units (use mass).",
      "tags": [
        "conversion",
        "force converter",
        "lbf to n",
        "kgf to n",
        "newtons to pounds force",
        "kip"
      ],
      "examples": [
        "force value=100 from_unit=lbf to_unit=N",
        "force value=500 from_unit=N to_unit=kgf"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "frequency",
      "name": "Frequency Converter",
      "description": "Converts frequency and rotational speed between hertz (Hz to THz), revolutions per minute, beats per minute, radians per second (angular frequency, ω = 2πf) and degrees per second. Use when: You need a rate of rotation or oscillation in another unit, e.g. rpm to Hz, GHz to MHz, rad/s to rpm or bpm to Hz. Do not use when: You need wavelength from frequency (use wavelength-frequency), a pendulum's period (use pendulum) or a time interval (use time).",
      "tags": [
        "conversion",
        "frequency converter",
        "rpm to hz",
        "hz to rpm",
        "rad/s to rpm",
        "ghz to mhz"
      ],
      "examples": [
        "frequency value=3000 from_unit=rpm to_unit=Hz",
        "frequency value=2.4 from_unit=GHz to_unit=MHz"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "density",
      "name": "Density Converter",
      "description": "Converts density between kg/m³, g/cm³, g/mL, kg/L, g/L, mg/L, lb/ft³, lb/in³, oz/in³ and lb per US gallon using exact mass and volume definitions (1 lb/ft³ = 16.01846337 kg/m³). Use when: You need a material or fluid density in another unit, e.g. g/cm³ to kg/m³, kg/m³ to lb/ft³ or g/mL to lb/gal. Do not use when: You need to compute density from mass and volume (a physics calculation, not a unit conversion) or concentration in mol/L (use molarity).",
      "tags": [
        "conversion",
        "density converter",
        "g/cm3 to kg/m3",
        "kg/m3 to lb/ft3",
        "lb/gal",
        "specific gravity"
      ],
      "examples": [
        "density value=1 from_unit=g/cm3 to_unit=lb/ft3",
        "density value=7850 from_unit=kg/m3 to_unit=lb/ft3"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "torque",
      "name": "Torque Converter",
      "description": "Converts torque (moment of force) between N·m, kN·m, N·cm, mN·m, lbf·ft, lbf·in, kgf·m, kgf·cm and ozf·in using exact force and length definitions (1 lbf·ft = 1.3558179483 N·m). Use when: You need a wrench, bolt or engine torque in another unit, e.g. lb-ft to N·m, N·m to lb-in or kgf·m to N·m. Do not use when: You need energy in joules or foot-pounds of work (use energy; torque and energy share dimensions but are different quantities) or the force alone (use force).",
      "tags": [
        "conversion",
        "torque converter",
        "lb-ft to nm",
        "nm to lb-ft",
        "in-lb to nm",
        "kgf m"
      ],
      "examples": [
        "torque value=100 from_unit=lbf_ft to_unit=Nm",
        "torque value=250 from_unit=Nm to_unit=lbf_ft"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "cooking-measurements",
      "name": "Cooking Measurement Converter",
      "description": "Converts kitchen volume measures between US customary teaspoons, tablespoons, fluid ounces, cups, pints, quarts and gallons, metric teaspoons (5 mL), tablespoons (15 mL) and cups (250 mL), imperial fluid ounces and pints, and millilitres/litres. Use when: You need to convert a recipe quantity between volume measures, e.g. cups to mL, tablespoons to teaspoons or fluid ounces to millilitres. Do not use when: You need to convert a volume to grams or ounces by weight (that needs the ingredient's density; use cooking-converter), to scale a whole recipe (use recipe-scaler), or non-kitchen volumes such as cubic metres (use volume).",
      "tags": [
        "conversion",
        "cooking measurement converter",
        "cups to ml",
        "tablespoons to teaspoons",
        "fluid ounces to ml",
        "recipe units"
      ],
      "examples": [
        "cooking-measurements value=2 from_unit=cup_us to_unit=mL",
        "cooking-measurements value=3 from_unit=tbsp to_unit=tsp"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "speed-distance-time",
      "name": "Speed, Distance & Time Calculator",
      "description": "Solves the uniform-motion relation speed = distance / time for whichever of the three quantities is omitted, and reports the speed in m/s, km/h and mph and the time as h:mm:ss. Use when: You know any two of distance, elapsed time and average speed for travel at constant (average) speed and need the third. Do not use when: Speed changes during the motion (use acceleration or free-fall), or you want a running pace per km or mile (use running-pace).",
      "tags": [
        "physics",
        "speed distance time",
        "average speed",
        "travel time",
        "velocity",
        "how long does it take"
      ],
      "examples": [
        "speed-distance-time distance_m=100 time_s=9.58",
        "speed-distance-time distance_m=150000 speed_m_s=25"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "acceleration",
      "name": "Acceleration Calculator",
      "description": "Computes average acceleration from initial velocity, final velocity and elapsed time, plus the velocity change, the distance covered assuming constant acceleration, and the acceleration expressed in g. Use when: You have start and end velocities over a known time interval and need the acceleration or deceleration, or the distance covered while changing speed uniformly (0–100 km/h times, braking). Do not use when: You know the net force and mass instead of velocities (use force), the motion is vertical under gravity alone (use free-fall), or you only need speed from distance and time (use speed-distance-time).",
      "tags": [
        "physics",
        "acceleration",
        "deceleration",
        "0 to 100",
        "braking",
        "kinematics"
      ],
      "examples": [
        "acceleration initial_velocity_m_s=0 final_velocity_m_s=27.78 time_s=8",
        "acceleration initial_velocity_m_s=30 final_velocity_m_s=0 time_s=5"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "newtons-second-law",
      "name": "Force Calculator",
      "description": "Computes net force from mass and acceleration with Newton's second law, reported in newtons, kilonewtons and pounds-force, together with the object's weight under standard gravity. Use when: You know a mass and its acceleration (or deceleration) and need the net force, or you need an object's weight in newtons or pounds-force from its mass. Do not use when: You need the gravitational pull between two bodies (use gravitational-force), a spring force (use hookes-law) or the force in circular motion (use centripetal-force).",
      "tags": [
        "physics",
        "force",
        "newton's second law",
        "f = ma",
        "weight",
        "newtons"
      ],
      "examples": [
        "newtons-second-law mass_kg=1200 acceleration_m_s2=3",
        "newtons-second-law mass_kg=0.145 acceleration_m_s2=2000"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "kinetic-energy",
      "name": "Kinetic Energy Calculator",
      "description": "Computes the translational kinetic energy of a moving mass from KE = ½·m·v², reported in joules, kilojoules, kilowatt-hours and kilocalories. Use when: You need the energy of motion of an object of known mass and speed (vehicle, projectile, ball), for example to compare impact or braking energies. Do not use when: Rotation contributes significantly (rotational energy ½·I·ω² is not included), speeds approach the speed of light (relativistic formula needed), or you need energy from height (use potential-energy).",
      "tags": [
        "physics",
        "kinetic energy",
        "energy of motion",
        "1/2 mv^2",
        "joules",
        "impact energy"
      ],
      "examples": [
        "kinetic-energy mass_kg=1200 velocity_m_s=25",
        "kinetic-energy mass_kg=0.145 velocity_m_s=40"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "potential-energy",
      "name": "Potential Energy Calculator",
      "description": "Computes the gravitational potential energy of a mass raised to a height near a planet's surface with PE = m·g·h (standard gravity by default), and the speed the mass would reach if it fell that height freely. Use when: You need the energy stored by lifting a mass to a height, the minimum work to lift it, or the energy released when it falls (lifted loads, pumped hydro, dropped objects). Do not use when: Heights are a significant fraction of the planet's radius (g is not constant; use gravitational-force), or you need elastic energy (use hookes-law) or energy of motion (use kinetic-energy).",
      "tags": [
        "physics",
        "potential energy",
        "gravitational potential energy",
        "mgh",
        "energy of height",
        "joules"
      ],
      "examples": [
        "potential-energy mass_kg=70 height_m=10",
        "potential-energy mass_kg=2 height_m=1.5 gravity_m_s2=9.81"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "work-power",
      "name": "Work & Power Calculator",
      "description": "Computes the mechanical work done by a constant force over a displacement, allowing for the angle between force and motion, and the average power when the duration is supplied. Use when: You know a constant force, the distance it acts over (optionally the angle and the time taken) and need the work in joules or the average power in watts, kilowatts or horsepower. Do not use when: The force varies with position (for springs use hookes-law), you need electrical power from volts and amps (use electric-power), or you need energy of motion (use kinetic-energy).",
      "tags": [
        "physics",
        "work",
        "power",
        "horsepower",
        "joules",
        "watts"
      ],
      "examples": [
        "work-power force_n=50 distance_m=10 time_s=4",
        "work-power force_n=100 distance_m=20 angle_degrees=60"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "momentum",
      "name": "Momentum Calculator",
      "description": "Computes linear momentum from mass and velocity, the matching kinetic energy, and, when a stopping time is given, the average force needed to bring the object to rest (impulse–momentum theorem). Use when: You need an object's momentum, or the average force involved in stopping or launching it over a known time (collisions, braking, catching a ball). Do not use when: You need the outcome of a two-body collision (conservation of momentum between two objects is not implemented), or only the energy of motion (use kinetic-energy).",
      "tags": [
        "physics",
        "momentum",
        "impulse",
        "p = mv",
        "stopping force",
        "collision"
      ],
      "examples": [
        "momentum mass_kg=1200 velocity_m_s=25 stop_time_s=3",
        "momentum mass_kg=0.057 velocity_m_s=50"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "free-fall",
      "name": "Free Fall Calculator",
      "description": "Computes the time to fall a given height from rest, or the height fallen in a given time, together with the final (impact) velocity, using h = ½·g·t² with no air resistance. Use when: An object is dropped from rest near a planet's surface and you need how long it falls, how far, or how fast it lands (a dropped tool, a stone in a well). Do not use when: Air drag matters (light or fast objects, skydivers, long falls near terminal velocity), the object has an initial velocity or launch angle (use projectile-motion), or heights are comparable to the planet's radius.",
      "tags": [
        "physics",
        "free fall",
        "fall time",
        "drop height",
        "impact velocity",
        "gravity"
      ],
      "examples": [
        "free-fall height_m=20",
        "free-fall time_s=3"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "projectile-motion",
      "name": "Projectile Motion Calculator",
      "description": "Computes time of flight, horizontal range, maximum height and impact speed for a projectile launched at a given speed and angle from an optional initial height, ignoring air resistance (closed-form kinematics). Use when: You need where and when a thrown, kicked or fired object lands on level ground, or its peak height, from launch speed and angle (and launch height). Do not use when: Air drag is significant (golf balls, bullets, shuttlecocks), the landing point is higher than the launch point, or the object is simply dropped (use free-fall).",
      "tags": [
        "physics",
        "projectile motion",
        "range",
        "trajectory",
        "maximum height",
        "time of flight"
      ],
      "examples": [
        "projectile-motion initial_speed_m_s=20 angle_degrees=45",
        "projectile-motion initial_speed_m_s=30 angle_degrees=30 initial_height_m=10"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "ohms-law",
      "name": "Ohm's Law Calculator",
      "description": "Solves Ohm's law V = I·R for whichever of voltage, current or resistance is omitted and reports the electrical power dissipated (P = V·I). Use when: You know two of voltage, current and resistance in a DC or purely resistive circuit and need the third and the power. Do not use when: The load is reactive (inductors or capacitors require impedance, not resistance), you want energy cost over time (use electric-power), or you need the equivalent resistance of several resistors (use resistors-series-parallel).",
      "tags": [
        "physics",
        "ohm's law",
        "voltage current resistance",
        "v = ir",
        "resistor",
        "electrical power"
      ],
      "examples": [
        "ohms-law voltage_v=12 resistance_ohm=220",
        "ohms-law current_a=2 resistance_ohm=50"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "electric-power",
      "name": "Electric Power Calculator",
      "description": "Computes electrical power from voltage and current (or the current drawn by a known power at a given voltage), the equivalent resistance, and, with hours of use and a tariff, the energy in kWh and its cost. Use when: You need the wattage or amperage of an appliance, whether it fits a circuit rating, or how much energy and money it uses over a period. Do not use when: The load has a power factor below 1 (motors, some electronics: P = V·I·cos φ), you only need V, I and R relations (use ohms-law), or you want a multi-appliance bill (use electricity-cost).",
      "tags": [
        "physics",
        "electric power",
        "watts",
        "amps to watts",
        "kwh",
        "electricity cost"
      ],
      "examples": [
        "electric-power voltage_v=230 current_a=6.5 usage_hours=2 price_per_kwh=0.3",
        "electric-power voltage_v=120 power_w=1500"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "density-mass-volume",
      "name": "Density Calculator",
      "description": "Solves ρ = m / V for whichever of density, mass or volume is omitted, and reports density in kg/m³ and g/cm³, volume in litres and cm³, and the specific gravity relative to water. Use when: You know two of mass, volume and density of an object or substance and need the third, e.g. the mass of a steel block, the volume of a litre of oil, or whether an object floats. Do not use when: The substance is a gas whose density depends strongly on pressure and temperature (use ideal-gas-law), or you need the volume of a shape first (use sphere, cylinder or rectangular-prism).",
      "tags": [
        "physics",
        "density",
        "mass volume density",
        "specific gravity",
        "kg/m3",
        "g/cm3"
      ],
      "examples": [
        "density-mass-volume mass_kg=2 volume_m3=0.0025",
        "density-mass-volume density_kg_m3=7850 volume_m3=0.001"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "pressure-force-area",
      "name": "Pressure Calculator",
      "description": "Computes pressure as force divided by the area it acts on, and reports it in pascals, kilopascals, bar, pounds per square inch and standard atmospheres. Use when: You know a force (or a weight in newtons) and the contact area and need the pressure: a load on a footing, a hydraulic piston, a heel on a floor. Do not use when: You need fluid pressure at depth (P = ρ·g·h is not implemented), gas pressure from temperature and amount (use ideal-gas-law), or the force from a mass first (use force).",
      "tags": [
        "physics",
        "pressure",
        "force per area",
        "pascal",
        "psi",
        "bar"
      ],
      "examples": [
        "pressure-force-area force_n=500 area_m2=0.02",
        "pressure-force-area force_n=700 area_m2=0.05"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "wavelength-frequency",
      "name": "Wavelength & Frequency Calculator",
      "description": "Converts between wavelength and frequency for a wave of known propagation speed (default: the speed of light in vacuum) and, for electromagnetic waves in vacuum, reports the photon energy E = h·f in joules and electronvolts. Use when: You know either the wavelength or the frequency of a light, radio or sound wave and need the other, or you need the photon energy of light of a given wavelength. Do not use when: The wave travels in a dispersive medium (glass, water) unless you supply the correct phase speed, or you need Doppler shifts or refraction.",
      "tags": [
        "physics",
        "wavelength",
        "frequency",
        "photon energy",
        "speed of light",
        "hertz"
      ],
      "examples": [
        "wavelength-frequency wavelength_m=5e-7",
        "wavelength-frequency frequency_hz=440 wave_speed_m_s=343"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "pendulum",
      "name": "Pendulum Period Calculator",
      "description": "Computes the period, frequency and angular frequency of a simple pendulum from its length with the small-angle formula T = 2π√(L/g); when an amplitude is given it also returns the exact period from the arithmetic–geometric mean. Use when: You need how long a pendulum of known length takes to swing on Earth or another body, or how much a large swing angle lengthens the period. Do not use when: The bob's size or the rod's mass is not negligible (physical pendulum, T = 2π√(I / (m·g·d))), or the oscillator is a mass on a spring (use hookes-law).",
      "tags": [
        "physics",
        "pendulum",
        "pendulum period",
        "simple harmonic motion",
        "frequency",
        "seconds pendulum"
      ],
      "examples": [
        "pendulum length_m=1 amplitude_degrees=30",
        "pendulum length_m=0.25"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "hookes-law",
      "name": "Hooke's Law Calculator",
      "description": "Computes the restoring force of a linear spring and the elastic potential energy stored at a given displacement, plus the natural period and frequency of a mass on that spring when a mass is supplied. Use when: You know a spring constant and how far the spring is stretched or compressed and need the force or stored energy, or the oscillation period of a spring–mass system. Do not use when: The spring is loaded beyond its elastic (linear) limit, or you need gravitational energy (use potential-energy) or a pendulum's period (use pendulum).",
      "tags": [
        "physics",
        "hooke's law",
        "spring force",
        "spring constant",
        "elastic potential energy",
        "spring oscillation"
      ],
      "examples": [
        "hookes-law spring_constant_n_m=200 displacement_m=0.05 mass_kg=0.5",
        "hookes-law spring_constant_n_m=5000 displacement_m=-0.12"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gravitational-force",
      "name": "Gravitational Force Calculator",
      "description": "Computes the attractive gravitational force between two point or spherically symmetric masses at a given centre-to-centre distance with Newton's law and the CODATA 2018 value of G, plus the acceleration each mass experiences. Use when: You need the gravitational pull between two bodies (planet and satellite, star and planet, two laboratory masses) or the surface gravity of a body from its mass and radius. Do not use when: You only need weight near Earth's surface (use force with 9.80665 m/s²), or relativistic effects matter (near black holes, precision orbits).",
      "tags": [
        "physics",
        "gravitational force",
        "universal gravitation",
        "newton's law of gravity",
        "gravitational constant",
        "surface gravity"
      ],
      "examples": [
        "gravitational-force mass1_kg=5.972e+24 mass2_kg=1 distance_m=6371000",
        "gravitational-force mass1_kg=1000 mass2_kg=1000 distance_m=1"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "centripetal-force",
      "name": "Centripetal Force Calculator",
      "description": "Computes the centripetal (centre-seeking) force and acceleration needed to keep a mass moving in a circle of given radius at a given speed, plus the angular velocity, rotation period and rpm. Use when: You need the force on a car in a bend, a mass on a string, a satellite or a centrifuge sample from mass, tangential speed and radius, or the g-load of circular motion. Do not use when: You know the angular speed (rpm) rather than the tangential speed (compute v = ω·r first), or the motion is not circular at constant speed.",
      "tags": [
        "physics",
        "centripetal force",
        "centripetal acceleration",
        "circular motion",
        "angular velocity",
        "rpm"
      ],
      "examples": [
        "centripetal-force mass_kg=1200 velocity_m_s=20 radius_m=50",
        "centripetal-force mass_kg=0.5 velocity_m_s=3 radius_m=0.75"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "specific-heat",
      "name": "Specific Heat Calculator",
      "description": "Computes the heat energy needed to change the temperature of a mass of material by a given amount from Q = m·c·ΔT, using the specific heat capacity of liquid water (4186 J/(kg·K)) by default. Use when: You need how much energy heats or cools a known mass of water, metal or another substance by a given number of degrees, without a phase change. Do not use when: The substance melts, boils or freezes within the range (latent heat is not included), or you need the final temperature when two bodies are mixed (calorimetry is not implemented).",
      "tags": [
        "physics",
        "specific heat",
        "heat energy",
        "q = mcΔt",
        "heating water",
        "thermal energy"
      ],
      "examples": [
        "specific-heat mass_kg=2 temperature_change_k=30",
        "specific-heat mass_kg=0.5 specific_heat_j_kg_k=897 temperature_change_k=50"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "resistors-series-parallel",
      "name": "Resistors in Series and Parallel Calculator",
      "description": "Computes the equivalent resistance of a list of resistors connected all in series (sum) and all in parallel (reciprocal of the sum of reciprocals), plus the parallel conductance. Use when: You have two or more resistor values and need the total resistance if they are wired in series or in parallel, or want to check a parallel combination against a target value. Do not use when: The network mixes series and parallel branches (reduce it group by group with repeated calls), the components are capacitors or inductors, or you need voltage, current or power for one resistor (use ohms-law).",
      "tags": [
        "physics",
        "resistors in series",
        "resistors in parallel",
        "equivalent resistance",
        "total resistance",
        "resistor network"
      ],
      "examples": [
        "resistors-series-parallel resistances_ohm=100,220,470",
        "resistors-series-parallel resistances_ohm=10,10"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "molar-mass",
      "name": "Molar Mass Calculator",
      "description": "Parses a chemical formula (including brackets, nested groups and hydrates) and sums IUPAC 2021 standard atomic weights to give the molar mass in g/mol, plus the atom count and mass-percent composition of each element. Use when: You have a chemical formula and need its molar mass (molecular weight), the number of atoms of each element, or its elemental mass-percent composition. Do not use when: You already know the molar mass and want to convert between grams and moles (use moles-mass) or need a solution concentration (use molarity).",
      "tags": [
        "chemistry",
        "molar mass",
        "molecular weight",
        "formula weight",
        "percent composition",
        "atomic weight"
      ],
      "examples": [
        "molar-mass formula=C6H12O6",
        "molar-mass formula=CuSO4·5H2O"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "moles-mass",
      "name": "Moles to Grams Calculator",
      "description": "Converts between mass in grams and amount in moles using the molar mass (from a formula or given directly), and reports the number of molecules or formula units from the Avogadro constant. Any two of molar mass, mass and moles give the third. Use when: You need to convert grams to moles or moles to grams for a substance, count the molecules in a sample, or back out a molar mass from a measured mass and amount. Do not use when: You only need the molar mass of a formula (use molar-mass), or you want a concentration in mol/L (use molarity).",
      "tags": [
        "chemistry",
        "moles to grams",
        "grams to moles",
        "mole conversion",
        "avogadro number",
        "number of molecules"
      ],
      "examples": [
        "moles-mass formula=H2O mass_g=36.03",
        "moles-mass formula=CO2 moles=0.5"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "molarity",
      "name": "Molarity Calculator",
      "description": "Computes molar concentration (mol/L) of a solution from the amount of solute (moles, or mass with a formula or molar mass) and the solution volume, or the moles and mass of solute needed to prepare a target molarity. Use when: You need the molarity of a solution from what was dissolved, or the grams of solute required for a given volume and target concentration. Do not use when: You are diluting an existing stock solution (use dilution), or you need a mass-based concentration such as % w/w, ppm or ppb (use mass-percent).",
      "tags": [
        "chemistry",
        "molarity",
        "molar concentration",
        "mol/L",
        "solution preparation",
        "how many grams for 1 M"
      ],
      "examples": [
        "molarity volume_l=0.5 mass_g=5.844 formula=NaCl",
        "molarity volume_l=0.25 target_molarity_mol_per_l=0.1 formula=NaOH"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "dilution",
      "name": "Dilution Calculator",
      "description": "Applies the dilution equation C1·V1 = C2·V2 to find the missing one of stock concentration, stock volume, final concentration or final volume, plus the solvent to add and the dilution factor. Use when: You are diluting a stock solution and need how much stock to take, the final volume to make up, or the concentration that results. Do not use when: You are preparing a solution from solid solute (use molarity) or the concentrations are in mass percent with very different densities (C1V1 = C2V2 assumes volumes are additive and the unit is amount per volume).",
      "tags": [
        "chemistry",
        "dilution",
        "c1v1 c2v2",
        "dilute stock solution",
        "dilution factor",
        "serial dilution"
      ],
      "examples": [
        "dilution stock_concentration=2 stock_volume=25 final_concentration=0.5",
        "dilution stock_concentration=0.1 stock_volume=10 final_volume=250"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "ideal-gas-law",
      "name": "Ideal Gas Law Calculator",
      "description": "Solves the ideal gas equation PV = nRT for whichever of pressure, volume, amount or temperature is left empty, with pressure in atm, kPa, bar, mmHg or psi and temperature in °C, K or °F. Use when: You know three of pressure, volume, moles and temperature of a gas and need the fourth, or the molar volume at given conditions. Do not use when: The gas is near condensation or at very high pressure (use a real-gas equation such as van der Waals), or you need the mass of gas without knowing its molar mass (combine with moles-mass).",
      "tags": [
        "chemistry",
        "ideal gas law",
        "pv=nrt",
        "gas constant",
        "molar volume",
        "stp"
      ],
      "examples": [
        "ideal-gas-law pressure=1 pressure_unit=atm moles=1 temperature=0 temperature_unit=celsius",
        "ideal-gas-law pressure=101.325 pressure_unit=kpa volume_l=5 temperature=25"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "ph",
      "name": "pH Calculator",
      "description": "Converts between pH, pOH, hydrogen-ion concentration and hydroxide-ion concentration at 25 °C (Kw = 1.0×10⁻¹⁴) from any one of them, and classifies the solution as acidic, neutral or basic. Use when: You know one of pH, pOH, [H⁺] or [OH⁻] for an aqueous solution (for example the concentration of a fully dissociated strong acid or base) and need the others. Do not use when: The solution contains a weak acid or base or a buffer, where [H⁺] is not equal to the nominal concentration (use henderson-hasselbalch for buffers), or the temperature differs a lot from 25 °C.",
      "tags": [
        "chemistry",
        "ph",
        "poh",
        "hydrogen ion concentration",
        "hydroxide concentration",
        "acid base"
      ],
      "examples": [
        "ph h_concentration_mol_per_l=0.001",
        "ph ph=8.5"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "half-life",
      "name": "Half-Life Calculator",
      "description": "Computes first-order exponential decay: given two of half-life, elapsed time and remaining amount (with an initial amount) it solves the third and reports the remaining fraction, number of half-lives, decay constant and mean lifetime. Use when: You need how much of a radioactive isotope, drug or other first-order decaying quantity remains after a time, or the half-life or elapsed time implied by a measured remaining amount. Do not use when: The process is not first-order (e.g. zero-order elimination, growth, or compound interest – use compound-interest for money) or several isotopes decay in a chain.",
      "tags": [
        "chemistry",
        "half life",
        "radioactive decay",
        "exponential decay",
        "decay constant",
        "carbon dating"
      ],
      "examples": [
        "half-life initial_amount=100 half_life=5730 elapsed_time=11460",
        "half-life initial_amount=80 remaining_amount=10 elapsed_time=24.06"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "percent-yield",
      "name": "Percent Yield Calculator",
      "description": "Divides the actual (experimental) yield by the theoretical yield to give percent yield, plus the amount and percentage of product lost. Use when: You have the theoretical yield from stoichiometry and the mass or moles actually isolated, and want the reaction's percent yield. Do not use when: You still need the theoretical yield itself (compute moles of product from the limiting reagent with moles-mass first), or you want atom economy, which compares molar masses of reagents and product rather than isolated yield.",
      "tags": [
        "chemistry",
        "percent yield",
        "theoretical yield",
        "actual yield",
        "reaction yield",
        "stoichiometry"
      ],
      "examples": [
        "percent-yield actual_yield=4.5 theoretical_yield=5",
        "percent-yield actual_yield=12.3 theoretical_yield=15"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "mass-percent",
      "name": "Mass Percent Calculator",
      "description": "Computes the mass percent (% w/w) of a solute from the solute mass and either the total solution mass or the solvent mass, and expresses the same concentration as mass fraction, parts per million and parts per billion. Use when: You need the % w/w, ppm or ppb concentration of a solute in a solution or mixture from masses. Do not use when: You need molarity (mol/L, use molarity), the percent composition of an element within a compound (use molar-mass), or volume-based units such as % v/v.",
      "tags": [
        "chemistry",
        "mass percent",
        "weight percent",
        "w/w",
        "ppm",
        "ppb"
      ],
      "examples": [
        "mass-percent solute_mass=5 solvent_mass=95",
        "mass-percent solute_mass=0.002 solution_mass=1000"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "henderson-hasselbalch",
      "name": "Henderson–Hasselbalch Calculator",
      "description": "Computes the pH of a buffer from the acid's pKa and the concentrations (or ratio) of conjugate base and weak acid with the Henderson–Hasselbalch equation, or the base/acid ratio required for a target pH. Use when: You are preparing or analysing a buffer and need its pH from pKa and composition, or the acid-to-base ratio that gives a chosen pH. Do not use when: The solution is a strong acid or base (use ph), the buffer is very dilute (below about 1 mM) or the pH is more than about 1.5 units from pKa, where the approximation breaks down.",
      "tags": [
        "chemistry",
        "henderson hasselbalch",
        "buffer ph",
        "pka",
        "conjugate base ratio",
        "buffer preparation"
      ],
      "examples": [
        "henderson-hasselbalch pka=4.76 base_concentration=0.2 acid_concentration=0.1",
        "henderson-hasselbalch pka=6.1 ph=7.4"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "age",
      "name": "Age Calculator",
      "description": "Computes the exact age on a given date as years, months and days by Gregorian calendar arithmetic, plus total days and weeks, the weekday of birth, and the date of and days until the next birthday. Use when: You need someone's exact age on a date, the total number of days lived, the weekday they were born on, or how many days remain until their next birthday. Do not use when: You need the difference between two arbitrary dates with a business-day count (use date-difference) or a countdown to an event (use days-until).",
      "tags": [
        "everyday",
        "age",
        "how old am I",
        "age in days",
        "birthday",
        "date of birth"
      ],
      "examples": [
        "age birth_date=1990-05-17 as_of_date=2026-09-23",
        "age birth_date=1985-12-25 as_of_date=2026-01-10"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "date-difference",
      "name": "Date Difference Calculator",
      "description": "Counts the days between two ISO dates and expresses the gap as weeks and days, as a calendar breakdown in years, months and days, and as business days (Monday–Friday, public holidays not excluded). Use when: You need the number of days, weeks or working days between two dates, or a calendar-style 'x years y months z days' difference. Do not use when: You want to add or subtract a number of days from a date (use add-days), or you need an age with the next birthday (use age).",
      "tags": [
        "everyday",
        "date difference",
        "days between dates",
        "business days",
        "working days",
        "weeks between dates"
      ],
      "examples": [
        "date-difference start_date=2026-01-01 end_date=2026-12-25",
        "date-difference start_date=2025-11-05 end_date=2026-03-15 include_end_date=true"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "add-days",
      "name": "Add or Subtract Days Calculator",
      "description": "Adds a signed number of days to an ISO date and returns the resulting date and its weekday, using Gregorian calendar arithmetic in UTC. Use when: You need the date that is N days after (or before) a given date, e.g. a deadline 90 days from today or a return date 14 days after departure. Do not use when: You need the number of days between two known dates (use date-difference) or want to skip weekends when counting (not supported here).",
      "tags": [
        "everyday",
        "add days to date",
        "days from today",
        "date plus days",
        "subtract days",
        "deadline date"
      ],
      "examples": [
        "add-days start_date=2026-09-23 days=90",
        "add-days start_date=2026-03-01 days=-30"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "days-until",
      "name": "Days Until Calculator",
      "description": "Counts the days from a reference date (default today) to a target date and reports the countdown as weeks and days, approximate months, a calendar breakdown and the target's weekday. Use when: You need a countdown to an event, deadline or holiday, or how many days ago a date was. Do not use when: You need business days or an inclusive count between two dates (use date-difference), or an age (use age).",
      "tags": [
        "everyday",
        "days until",
        "countdown",
        "how many days until",
        "days left",
        "days ago"
      ],
      "examples": [
        "days-until target_date=2026-12-25 from_date=2026-09-23",
        "days-until target_date=2027-01-01 from_date=2026-01-01"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "day-of-week",
      "name": "Day of the Week Calculator",
      "description": "Returns the weekday of any Gregorian date together with its day-of-year number, the ISO 8601 week number and week-based year, and whether it falls on a weekend. Use when: You need to know what weekday a date falls on, its ISO week number, or its ordinal day in the year. Do not use when: You need to count days between dates (use date-difference) or determine leap years (use leap-year).",
      "tags": [
        "everyday",
        "day of the week",
        "what day is it",
        "iso week number",
        "week number",
        "day of year"
      ],
      "examples": [
        "day-of-week date=2026-09-23",
        "day-of-week date=2021-01-01"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "time-duration",
      "name": "Time Duration Calculator",
      "description": "Computes the elapsed time between a start and an end clock time (24-hour HH:MM), optionally minus a break, handling intervals that cross midnight, and reports it as hours and minutes and as decimal hours. Use when: You need the length of a shift, meeting, trip or any interval given two clock times on the same or consecutive days. Do not use when: The interval spans more than 24 hours or several days (use date-difference), or you need weekly hours and pay (use work-hours).",
      "tags": [
        "everyday",
        "time duration",
        "hours between times",
        "time difference",
        "shift length",
        "elapsed time"
      ],
      "examples": [
        "time-duration start_time=09:30 end_time=17:45 break_minutes=30",
        "time-duration start_time=22:00 end_time=06:30"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "fuel-cost",
      "name": "Fuel Cost Calculator",
      "description": "Estimates the fuel needed for a trip and its cost from distance, fuel consumption in litres per 100 km and the price per litre, with the cost per person when it is shared. Use when: You want to budget a road trip or commute, or split fuel money between passengers, and know the car's consumption in L/100 km. Do not use when: Your consumption is in mpg or km/L (convert it first with fuel-economy), or you need total ownership costs such as tolls, wear or depreciation.",
      "tags": [
        "everyday",
        "fuel cost",
        "trip cost",
        "gas cost",
        "petrol cost",
        "road trip budget"
      ],
      "examples": [
        "fuel-cost distance_km=350 fuel_consumption_l_per_100km=7.5 fuel_price_per_liter=1.85 passengers=2",
        "fuel-cost distance_km=1200 fuel_consumption_l_per_100km=6.2 fuel_price_per_liter=1.6"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "electricity-cost",
      "name": "Electricity Cost Calculator",
      "description": "Converts an appliance's power draw and daily usage into kilowatt-hours and the running cost per day, over a chosen number of days, per 30-day month and per 365-day year, using the US DOE energy-use formula. Use when: You want to know what a heater, fridge, computer, light or EV charger costs to run, or compare two appliances by energy cost. Do not use when: The appliance cycles or has standby modes with unknown duty cycle (use a measured kWh figure or plug-in meter), or you need to convert energy units (use energy).",
      "tags": [
        "everyday",
        "electricity cost",
        "kwh calculator",
        "appliance running cost",
        "energy bill",
        "power consumption cost"
      ],
      "examples": [
        "electricity-cost power_watts=100 hours_per_day=5 price_per_kwh=0.15 days=30",
        "electricity-cost power_watts=1500 hours_per_day=8 price_per_kwh=0.3 days=90"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "bill-split",
      "name": "Bill Split Calculator",
      "description": "Adds an optional tip percentage to a bill and divides the total equally among a number of people, reporting the tip, the total and each person's share. Use when: A restaurant bill, taxi fare or shared purchase must be divided equally among several people, with or without a tip. Do not use when: Shares are unequal (itemised bills), you only need the tip amount for one payer (use tip), or the cost is a trip's fuel (use fuel-cost).",
      "tags": [
        "everyday",
        "split bill",
        "bill splitter",
        "split the check",
        "tip split",
        "share cost"
      ],
      "examples": [
        "bill-split total_bill=120 people=4 tip_percent=15",
        "bill-split total_bill=87.5 people=3"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "unit-price",
      "name": "Unit Price Comparison Calculator",
      "description": "Divides each price by its quantity to get the price per unit, tells which of two options is cheaper per unit and by what percentage. Use when: You are comparing two package sizes or brands of the same product (e.g. 500 g for 3.49 vs 1 kg for 5.99) and want the better value per unit. Do not use when: The two quantities are in different units (convert them to the same unit first, e.g. with mass or volume), or you need a discount on a single price (use discount).",
      "tags": [
        "everyday",
        "unit price",
        "price per unit",
        "price comparison",
        "cost per kg",
        "better value"
      ],
      "examples": [
        "unit-price price_a=3.49 quantity_a=0.5 price_b=5.99 quantity_b=1",
        "unit-price price_a=2 quantity_a=12 price_b=3.3 quantity_b=18"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "reading-time",
      "name": "Reading Time Calculator",
      "description": "Estimates how long a text takes to read silently from its word count and a reading speed, defaulting to 238 words per minute, the adult mean for non-fiction found in Brysbaert's 2019 meta-analysis; also gives the read-aloud time at 183 wpm. Use when: You need an estimated reading time for an article, book, speech or document, or want to convert a word count into minutes. Do not use when: You need typing speed (use typing-speed) or the text is in a language or script with very different reading rates (adjust words_per_minute).",
      "tags": [
        "everyday",
        "reading time",
        "words per minute",
        "how long to read",
        "word count to minutes",
        "speech length"
      ],
      "examples": [
        "reading-time word_count=1500",
        "reading-time word_count=80000 words_per_minute=260"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "typing-speed",
      "name": "Typing Speed Calculator",
      "description": "Computes gross words per minute from characters typed (one word = 5 characters) or from a word count, then net WPM after penalising uncorrected errors, plus accuracy and characters per minute. Use when: You timed a typing test and know the characters or words typed, the time and the number of errors, and want standard WPM figures. Do not use when: You need reading speed (use reading-time) or the test software already reports WPM under its own error rules.",
      "tags": [
        "everyday",
        "typing speed",
        "wpm calculator",
        "words per minute",
        "typing test",
        "net wpm"
      ],
      "examples": [
        "typing-speed characters_typed=1500 minutes=5 errors=10",
        "typing-speed words_typed=120 minutes=3 errors=4"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gpa",
      "name": "GPA Calculator",
      "description": "Computes a grade point average as the credit-weighted mean of course grade points (quality points divided by total credits), with an unweighted average when credits are omitted, and the nearest US letter grade on the 4.0 scale. Use when: You have grade points (e.g. A = 4.0, B+ = 3.3) and credit hours for several courses and want the semester or cumulative GPA. Do not use when: You need the score required on a final exam (use final-grade), or a general weighted mean of other quantities (use weighted-average).",
      "tags": [
        "everyday",
        "gpa calculator",
        "grade point average",
        "weighted gpa",
        "college gpa",
        "semester gpa"
      ],
      "examples": [
        "gpa grade_points=4,3.7,3.3,4 credits=3,4,3,3",
        "gpa grade_points=3,2.7,4,3.3"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "final-grade",
      "name": "Final Grade Calculator",
      "description": "Solves the weighted-average grade equation for the final exam score required to reach a desired overall grade, given the current grade and the final's weight, and reports whether that score is achievable. Use when: You know your current course grade and the final exam's weight and want the minimum final score for a target grade. Do not use when: Grades are combined by points or categories rather than a percentage weight (compute the weighted mean directly with weighted-average), or you need a GPA (use gpa).",
      "tags": [
        "everyday",
        "final grade calculator",
        "what do I need on my final",
        "exam score needed",
        "grade calculator",
        "final exam"
      ],
      "examples": [
        "final-grade current_grade_percent=85 final_weight_percent=30 desired_grade_percent=90",
        "final-grade current_grade_percent=78 final_weight_percent=40 desired_grade_percent=80"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "sleep-cycles",
      "name": "Sleep Cycle Calculator",
      "description": "Suggests bedtimes for a given wake-up time, or wake-up times for a given bedtime, so that sleep ends at the boundary of a full sleep cycle (default 90 minutes) after a typical time to fall asleep (default 14 minutes). Use when: You want to pick a bedtime or alarm time that completes 3–6 whole sleep cycles instead of waking mid-cycle. Do not use when: You have a sleep disorder or shift-work schedule needing clinical advice; cycle length varies between people and through the night, so treat the times as approximations.",
      "tags": [
        "everyday",
        "sleep calculator",
        "sleep cycles",
        "when to go to bed",
        "wake up time",
        "bedtime calculator"
      ],
      "examples": [
        "sleep-cycles mode=wake_up_at time=06:30",
        "sleep-cycles mode=go_to_bed_at time=23:00"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "aspect-ratio",
      "name": "Aspect Ratio Calculator",
      "description": "Reduces a width and height to their simplest ratio and decimal value, identifies the closest common ratio (16:9, 4:3, 3:2, 21:9 …) and scales the dimensions to a new width or height while keeping the ratio. Use when: You need the aspect ratio of an image, screen or video, or the matching height for a new width (or width for a new height) when resizing. Do not use when: You need pixel density, file size or a crop to a different ratio; this only keeps the existing proportions.",
      "tags": [
        "everyday",
        "aspect ratio",
        "16:9",
        "resize image keep ratio",
        "screen ratio",
        "ratio calculator"
      ],
      "examples": [
        "aspect-ratio width=1920 height=1080 new_width=1280",
        "aspect-ratio width=1080 height=1350 new_height=675"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "download-time",
      "name": "Download Time Calculator",
      "description": "Computes how long a file transfer takes from the file size (MB, GB, TB) and the connection speed (Mbit/s, MB/s or Gbit/s), converting bytes to bits at 8 bits per byte with decimal (SI) prefixes. Use when: You want to estimate how long a download, upload or backup will take at a given bandwidth, or compare connection speeds. Do not use when: You need to convert between data-storage units themselves (use data-storage); real transfers are also slowed by protocol overhead, server limits and Wi-Fi conditions.",
      "tags": [
        "everyday",
        "download time",
        "transfer time",
        "how long to download",
        "mbps to mb/s",
        "upload time"
      ],
      "examples": [
        "download-time file_size=4.7 size_unit=gb speed=100 speed_unit=mbit_per_s",
        "download-time file_size=1 size_unit=tb speed=1 speed_unit=gbit_per_s"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "leap-year",
      "name": "Leap Year Calculator",
      "description": "Applies the Gregorian leap-year rule (divisible by 4, except centuries not divisible by 400) to a year and reports the reason, the number of days in the year and in February, and the next and previous leap years. Use when: You need to know whether a year has 29 February, why, or when the next leap year occurs. Do not use when: You need the weekday or ISO week of a specific date (use day-of-week) or day counts between dates (use date-difference).",
      "tags": [
        "everyday",
        "leap year",
        "is it a leap year",
        "february 29",
        "leap day",
        "next leap year"
      ],
      "examples": [
        "leap-year year=2024",
        "leap-year year=1900"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "roman-numeral",
      "name": "Roman Numeral Converter",
      "description": "Converts an integer from 1 to 3999 into standard (subtractive-notation) Roman numerals, or parses a Roman numeral back into a number, and shows the value of each symbol group. Use when: You need to write a year, chapter or clock number in Roman numerals, or read one such as MCMXCIV. Do not use when: The number is 0, negative, 4000 or larger, or not an integer (standard Roman numerals cannot express these); for other number systems use base-converter.",
      "tags": [
        "everyday",
        "roman numerals",
        "roman numeral converter",
        "mcmxciv",
        "year in roman numerals",
        "roman to number"
      ],
      "examples": [
        "roman-numeral mode=to_roman value=1994",
        "roman-numeral mode=from_roman value=MMXXVI"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "work-hours",
      "name": "Work Hours Calculator",
      "description": "Derives paid hours per day from shift start and end times minus unpaid breaks, scales them to a week (working days), an average month (52/12 weeks) and a year (52 weeks), and multiplies by an optional hourly rate for pay. Use when: You want to know your working hours per week, month or year from a daily schedule, or the pay they represent at an hourly rate. Do not use when: Shifts vary day by day (sum each with time-duration), or you need salary conversions between periods without shift times (use salary-converter).",
      "tags": [
        "everyday",
        "work hours calculator",
        "hours per week",
        "hours per month",
        "timesheet",
        "hourly pay"
      ],
      "examples": [
        "work-hours start_time=09:00 end_time=17:30 break_minutes=30 days_per_week=5 hourly_rate=25",
        "work-hours start_time=22:00 end_time=06:00 break_minutes=45 days_per_week=4"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "recipe-scaler",
      "name": "Recipe Scaler",
      "description": "Computes the conversion factor between an original and a desired number of servings and multiplies a list of ingredient amounts by it. Use when: You need to enlarge or reduce a recipe for a different number of servings and want every ingredient quantity scaled consistently. Do not use when: You need to convert between measurement units (use cooking-converter) or to work with baker's percentages for dough (use bakers-percentage).",
      "tags": [
        "food",
        "recipe scaler",
        "scale recipe",
        "recipe conversion factor",
        "servings converter",
        "double a recipe"
      ],
      "examples": [
        "recipe-scaler original_servings=4 desired_servings=10 ingredient_amounts=200,3,0.5",
        "recipe-scaler original_servings=6 desired_servings=2 ingredient_amounts=300,2"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "cooking-converter",
      "name": "Cooking Measurement Converter",
      "description": "Converts a kitchen volume between US customary units (teaspoon, tablespoon, fluid ounce, cup, pint, quart), the 250 ml metric cup, millilitres and litres using the exact US definitions. Use when: A recipe uses cups, tablespoons or fluid ounces and you need millilitres (or the reverse), or you need to switch between US and metric cups. Do not use when: You need grams: converting volume to weight requires the ingredient's density (e.g. 1 US cup of flour ≈ 120 g but of water ≈ 237 g), which this calculator does not do.",
      "tags": [
        "food",
        "cooking conversion",
        "cups to ml",
        "tablespoons to teaspoons",
        "fluid ounces to ml",
        "kitchen measurements"
      ],
      "examples": [
        "cooking-converter value=2 from_unit=cup_us to_unit=ml",
        "cooking-converter value=3 from_unit=tbsp to_unit=tsp"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "coffee-ratio",
      "name": "Coffee Ratio Calculator",
      "description": "Computes the grams of ground coffee for a given amount of water (or the water for a given dose) from a brew ratio, using method-specific default ratios (drip and pour-over 1:16, French press 1:15, AeroPress 1:13, cold brew concentrate 1:8, espresso 1:2) or a custom ratio. Use when: You want to know how much coffee to use for a certain volume of water, how much water a dose of coffee needs, or the ratio implied by amounts you already used. Do not use when: You need caffeine content or extraction/TDS calculations; ratios here are by weight of dry coffee and water only.",
      "tags": [
        "food",
        "coffee ratio",
        "coffee to water ratio",
        "how much coffee",
        "pour over ratio",
        "french press ratio"
      ],
      "examples": [
        "coffee-ratio water_ml=500 brew_method=drip",
        "coffee-ratio coffee_g=18 brew_method=espresso"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "calories-from-macros",
      "name": "Calories from Macros Calculator",
      "description": "Converts grams of protein, carbohydrate, fat and alcohol into kilocalories and kilojoules with the Atwater general factors (4 / 4 / 9 / 7 kcal per gram) and reports each macronutrient's share of total energy. Use when: You have the macronutrient grams of a food, meal or daily intake and need total calories or the percentage split, e.g. to check a food label or diet plan. Do not use when: You want to go the other way, from a calorie target to gram targets (use macros), or need calorie needs (use tdee).",
      "tags": [
        "food",
        "calories from macros",
        "macro calories",
        "atwater factors",
        "protein carbs fat calories",
        "macronutrient percentages"
      ],
      "examples": [
        "calories-from-macros protein_g=30 carbs_g=40 fat_g=10",
        "calories-from-macros protein_g=25 carbs_g=50 fat_g=15 alcohol_g=14"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "pizza-dough",
      "name": "Pizza Dough Calculator",
      "description": "Computes the flour, water, salt, yeast and oil in grams for a number of pizza dough balls of a given weight from baker's percentages (hydration, salt, yeast, oil as % of flour). Use when: You want exact gram amounts for a batch of pizza dough balls, e.g. 4 balls of 250 g at 62 % hydration. Do not use when: You are starting from a known flour weight or need custom ingredients (use bakers-percentage), or you need bread with preferments or several flours.",
      "tags": [
        "food",
        "pizza dough calculator",
        "pizza dough hydration",
        "neapolitan pizza dough",
        "dough ball weight",
        "bakers percentage pizza"
      ],
      "examples": [
        "pizza-dough number_of_pizzas=4 ball_weight_g=250 hydration_percent=62 salt_percent=2 yeast_percent=0.3 oil_percent=0",
        "pizza-dough number_of_pizzas=2 ball_weight_g=280 hydration_percent=65 salt_percent=2.5 yeast_percent=0.5 oil_percent=2"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "brine",
      "name": "Brine Calculator",
      "description": "Computes the grams of salt (and optional sugar) for a wet brine from the water volume and a percentage concentration expressed relative to the water weight (6 % = 60 g per litre). Use when: You are brining poultry, pork or vegetables and need the salt for a given amount of water at a target strength. Do not use when: You need a dry brine or an equilibrium brine based on the meat's weight (salt = 0.5–2 % of meat + water weight), or curing with nitrite salts, which follow different rules.",
      "tags": [
        "food",
        "brine calculator",
        "salt brine ratio",
        "turkey brine",
        "chicken brine",
        "percent brine"
      ],
      "examples": [
        "brine water_liters=2 salt_percent=6 sugar_percent=3",
        "brine water_liters=4 salt_percent=3.5"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "rice-water",
      "name": "Rice to Water Ratio Calculator",
      "description": "Computes the water needed for a quantity of uncooked rice (cups or grams) using absorption-method ratios by rice type: long-grain white 1:1.5, jasmine 1:1.25, basmati 1:1.5, brown 1:2, sushi 1:1.1, wild 1:3. Use when: You are cooking rice by the absorption method (tight lid or rice cooker) and need the water amount for a given quantity and type of rice. Do not use when: You boil rice in excess water and drain it (ratio irrelevant), cook risotto or paella, or follow a package instruction that specifies a different ratio for that product.",
      "tags": [
        "food",
        "rice to water ratio",
        "how much water for rice",
        "jasmine rice ratio",
        "brown rice water",
        "rice cooker ratio"
      ],
      "examples": [
        "rice-water rice_cups=2 rice_type=jasmine",
        "rice-water rice_g=300 rice_type=basmati"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "bakers-percentage",
      "name": "Baker's Percentage Calculator",
      "description": "Converts a bread or dough formula between baker's percentages and grams: flour is 100 %, every other ingredient is expressed relative to flour weight; works in both directions and reports total dough weight and hydration. Use when: You know the flour weight and the formula percentages (or the ingredient grams) and want the other representation, e.g. to scale or compare bread recipes. Do not use when: You want a ready-made pizza formula from ball count and weight (use pizza-dough) or plain servings-based scaling (use recipe-scaler).",
      "tags": [
        "food",
        "bakers percentage",
        "baker's percentage calculator",
        "bread formula",
        "dough hydration",
        "flour weight percentages"
      ],
      "examples": [
        "bakers-percentage flour_g=500 ingredient_names=water,salt,yeast ingredient_percents=65,2,1",
        "bakers-percentage flour_g=1000 ingredient_names=water,salt ingredient_grams=700,20"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "turkey-cooking-time",
      "name": "Turkey Cooking Time Calculator",
      "description": "Looks up the USDA FSIS roasting timetable for a whole turkey at 325 °F (163 °C) by weight and stuffing, returning the time range in minutes, the 165 °F (74 °C) safe internal temperature and refrigerator thawing time. Use when: You need to plan how long a turkey of a given weight takes to roast in a conventional oven and when to start thawing it. Do not use when: You are deep-frying, smoking, spatchcocking, cooking a turkey breast only over 8 lb, or roasting at a different oven temperature; the USDA table covers whole birds at 325 °F only.",
      "tags": [
        "food",
        "turkey cooking time",
        "how long to cook a turkey",
        "turkey roasting time per pound",
        "stuffed turkey time",
        "turkey internal temperature"
      ],
      "examples": [
        "turkey-cooking-time weight=6.5 weight_unit=kg stuffed=false",
        "turkey-cooking-time weight=20 weight_unit=lb stuffed=true"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "flooring",
      "name": "Flooring Calculator",
      "description": "Computes the floor area of a rectangular room, adds a cutting-waste allowance and converts the result into the number of boxes to buy from the coverage printed on the packaging. Areas are reported in m² and ft². Use when: You need to order laminate, vinyl plank, hardwood, carpet tiles or underlay for a room and want the area with waste and the box count. Do not use when: You are counting individual tiles with grout joints (use tile), boards for an outdoor deck (use decking) or the room is L-shaped: split it into rectangles, run this for each and add the results (or use rectangle for the areas).",
      "tags": [
        "construction",
        "flooring calculator",
        "laminate",
        "vinyl plank",
        "hardwood",
        "square footage"
      ],
      "examples": [
        "flooring unit_system=metric room_length=5 room_width=4 waste_percent=10 box_coverage=2.2",
        "flooring unit_system=imperial room_length=15 room_width=12 waste_percent=10 box_coverage=20"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "paint",
      "name": "Paint Calculator",
      "description": "Estimates wall paint from the wall area (room length, width and height, or a given area), subtracting 1.9 m² per door and 1.4 m² per window, multiplying by the number of coats and dividing by the coverage rate; reports litres, US gallons and cans. Use when: You need to know how much paint to buy for the walls of a room or for a known wall area, in litres or gallons and cans. Do not use when: You need ceiling, floor or exterior siding paint with different coverage rates (enter the area and the product's coverage directly), or you need the wall area only (use rectangle).",
      "tags": [
        "construction",
        "paint calculator",
        "how much paint",
        "litres of paint",
        "gallons of paint",
        "wall area"
      ],
      "examples": [
        "paint unit_system=metric room_length=5 room_width=4 wall_height=2.4 doors=1 windows=2 coats=2 coverage=10 can_size=5",
        "paint unit_system=imperial room_length=15 room_width=12 wall_height=8 doors=2 windows=2 coats=2"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "concrete-slab",
      "name": "Concrete Slab Calculator",
      "description": "Computes the concrete volume of a rectangular slab, footing or pad from length, width and thickness, adds a waste allowance and converts it to cubic yards, cubic feet and the number of 80 lb, 60 lb and 25 kg bags of premixed concrete. Use when: You need the amount of ready-mix concrete to order or the number of premix bags for a slab, patio, shed base, footing or pad of uniform thickness. Do not use when: The pour is a cylinder such as a post hole or pier (use cylinder for the volume), or you need mortar for brickwork (use brick).",
      "tags": [
        "construction",
        "concrete calculator",
        "cubic yards of concrete",
        "concrete slab",
        "bags of concrete",
        "premix bags"
      ],
      "examples": [
        "concrete-slab unit_system=imperial length=10 width=20 thickness=4 waste_percent=10",
        "concrete-slab unit_system=metric length=4 width=3 thickness=10 waste_percent=10"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "tile",
      "name": "Tile Calculator",
      "description": "Counts the tiles needed for a floor or wall area from the tile dimensions plus the grout joint width, adds a cutting-waste allowance and converts to boxes when the tiles per box are known. Use when: You need to order ceramic, porcelain or stone tiles for a known area and tile size, including grout joints and waste. Do not use when: You are laying planks or sheet goods sold by area (use flooring), or need the area itself from room dimensions (use rectangle first).",
      "tags": [
        "construction",
        "tile calculator",
        "how many tiles",
        "grout joint",
        "tiles per square metre",
        "boxes of tiles"
      ],
      "examples": [
        "tile unit_system=metric area=20 tile_length=300 tile_width=300 grout_gap_mm=3 waste_percent=10 tiles_per_box=10",
        "tile unit_system=imperial area=120 tile_length=12 tile_width=24 grout_gap_mm=3 waste_percent=10 tiles_per_box=8"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "roof-pitch",
      "name": "Roof Pitch Calculator",
      "description": "Converts a roof slope given as rise and run, or as an angle, into the pitch expressed in rise per 12 units of run, the angle in degrees, the slope in percent and the rafter length multiplier (rafter length per unit of horizontal run). Use when: You need to convert between roof pitch notations (x:12, degrees, percent) or estimate rafter length from the horizontal run. Do not use when: You need a general right-triangle solution with all sides (use right-triangle) or a plain angle unit conversion (use angle).",
      "tags": [
        "construction",
        "roof pitch",
        "pitch to degrees",
        "roof slope",
        "rafter length",
        "x:12"
      ],
      "examples": [
        "roof-pitch rise=3 run=12 horizontal_run_length=5",
        "roof-pitch angle_degrees=30"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "stairs",
      "name": "Stair Calculator",
      "description": "Divides a total floor-to-floor rise into equal risers close to a target riser height, derives the tread count, total run, stringer length and stair angle, and checks the result against the IRC residential limits (riser ≤ 7¾ in / 196 mm, tread ≥ 10 in / 254 mm) and the 2R + T comfort rule. Use when: You are laying out a straight flight of interior or deck stairs and need the number of risers, the exact riser height, the total run and the stringer length. Do not use when: The stair has winders, landings or curves (design each straight flight separately), or you need a roof/rafter slope (use roof-pitch).",
      "tags": [
        "construction",
        "stair calculator",
        "riser height",
        "tread depth",
        "stringer length",
        "number of steps"
      ],
      "examples": [
        "stairs unit_system=imperial total_rise=106 ideal_riser_height=7 tread_depth=10.5",
        "stairs unit_system=metric total_rise=270 ideal_riser_height=18 tread_depth=27"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "wallpaper",
      "name": "Wallpaper Calculator",
      "description": "Estimates wallpaper rolls by the strip method: the strip length is the wall height plus 10 cm trim, rounded up to a whole pattern repeat; whole strips per roll are counted, door and window areas are deducted and the strips are converted to rolls. Use when: You need to know how many rolls of wallpaper to buy for a room from its perimeter (or wall area), height and the roll dimensions, with or without a pattern repeat. Do not use when: You are painting (use paint) or boarding (use drywall) the walls, or the paper is a mural sold by the panel.",
      "tags": [
        "construction",
        "wallpaper calculator",
        "rolls of wallpaper",
        "pattern repeat",
        "how many rolls",
        "wall covering"
      ],
      "examples": [
        "wallpaper unit_system=metric room_perimeter=16 wall_height=2.4 doors=1 windows=1",
        "wallpaper unit_system=imperial room_perimeter=48 wall_height=8 doors=2 windows=2 pattern_repeat=24"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gravel",
      "name": "Gravel Calculator",
      "description": "Computes the volume of loose aggregate needed to cover an area to a given depth and converts it to weight with a typical bulk density for gravel, crushed stone, sand, topsoil or mulch (or a custom density). Use when: You need to order gravel, crushed stone, sand, topsoil or bark mulch by volume (m³, yd³) or by weight (tonnes, US tons) for a driveway, path, bed or sub-base. Do not use when: The material is concrete (use concrete-slab) or you need the density of a specific product: use the supplier's figure via material = custom and density_t_per_m3.",
      "tags": [
        "construction",
        "gravel calculator",
        "cubic yards of gravel",
        "tonnes of gravel",
        "mulch calculator",
        "topsoil calculator"
      ],
      "examples": [
        "gravel unit_system=metric length=10 width=5 depth=5 material=gravel",
        "gravel unit_system=imperial length=20 width=10 depth=3 material=mulch"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "drywall",
      "name": "Drywall Calculator",
      "description": "Estimates the number of gypsum board sheets for walls (and optionally the ceiling) of a room with a waste allowance, plus screws at about one per square foot and joint compound at the USG rate of 10 gallons per 1,000 ft² of board. Use when: You need to order plasterboard/drywall sheets, screws and joint compound for a room or a known wall area. Do not use when: You need paint or wallpaper quantities for the finished wall (use paint or wallpaper), or metal-stud framing take-offs.",
      "tags": [
        "construction",
        "drywall calculator",
        "plasterboard sheets",
        "gypsum board",
        "drywall screws",
        "joint compound"
      ],
      "examples": [
        "drywall unit_system=imperial room_length=15 room_width=12 wall_height=8 include_ceiling=true sheet_size=4x8_ft waste_percent=10",
        "drywall unit_system=metric wall_area=40 waste_percent=10"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "fence",
      "name": "Fence Calculator",
      "description": "Estimates the posts, rails and pickets for a straight run of wooden fence from the total length, the maximum post spacing, the number and width of gates, the rails per section and the picket width plus gap. Use when: You need a material list (posts, rails, pickets) for a picket, privacy or post-and-rail fence of a known length. Do not use when: You need concrete for the post holes (use cylinder for the hole volume and concrete-slab for bags), or the fence is chain-link or panel fencing sold per panel (divide the length by the panel width instead).",
      "tags": [
        "construction",
        "fence calculator",
        "fence posts",
        "pickets",
        "fence rails",
        "privacy fence"
      ],
      "examples": [
        "fence unit_system=imperial total_length=100 post_spacing=8 gates=1 gate_width=4 rails_per_section=2 picket_width=5.5 picket_gap=0.5",
        "fence unit_system=metric total_length=30 post_spacing=2.4 gates=0 rails_per_section=3 picket_width=90 picket_gap=10"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "decking",
      "name": "Decking Calculator",
      "description": "Estimates the number of deck boards (rows of boards across the width, board lengths along the length, plus waste), the joists at a given spacing and the screws at two per board per joist for a rectangular deck. Use when: You need a material list for a rectangular timber or composite deck: boards, joists and fasteners. Do not use when: You need structural sizing of joists and beams (span tables depend on species, grade and load; see the AWC DCA 6 guide) or stairs to the deck (use stairs).",
      "tags": [
        "construction",
        "decking calculator",
        "deck boards",
        "how many deck boards",
        "joists",
        "deck screws"
      ],
      "examples": [
        "decking unit_system=metric deck_length=4 deck_width=3 board_width=140 board_gap=5 board_length=3.6 joist_spacing=400 waste_percent=5",
        "decking unit_system=imperial deck_length=16 deck_width=12 board_width=5.5 board_gap=0.1875 board_length=16 joist_spacing=16 waste_percent=5"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "board-feet",
      "name": "Board Feet Calculator",
      "description": "Computes board feet (the US lumber volume unit: 1 board foot = 144 cubic inches = a 1 in × 12 in × 12 in board) from nominal thickness and width in inches and length in feet, for a given quantity, with the total cost at a price per board foot. Use when: You are pricing or ordering hardwood or rough lumber sold by the board foot, or converting lumber dimensions into board feet, cubic feet or cubic metres. Do not use when: Lumber is sold by the linear foot or piece (dimensional softwood such as 2 × 4 studs), or you need deck board counts (use decking).",
      "tags": [
        "construction",
        "board feet",
        "board foot calculator",
        "lumber calculator",
        "hardwood pricing",
        "bf"
      ],
      "examples": [
        "board-feet thickness_in=1 width_in=6 length_ft=8 quantity=10 price_per_board_foot=5",
        "board-feet thickness_in=2 width_in=4 length_ft=8"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "brick",
      "name": "Brick Calculator",
      "description": "Counts the bricks in a single-leaf (half-brick, stretcher-bond) wall from its length and height using a standard brick size with its mortar joint, adds waste, and estimates the mortar volume geometrically and the bags of mortar mix from a manufacturer rule of thumb. Use when: You need the number of bricks and the mortar for a garden wall, veneer or single-skin wall of known face area. Do not use when: The wall is concrete block (use the block face 440 × 215 mm or 8 × 16 in as a custom brick) or two leaves thick: double the brick count, or use concrete-slab for footings.",
      "tags": [
        "construction",
        "brick calculator",
        "how many bricks",
        "bricks per square metre",
        "bricks per square foot",
        "mortar calculator"
      ],
      "examples": [
        "brick unit_system=imperial wall_length=20 wall_height=8 brick_size=us_modular waste_percent=5",
        "brick unit_system=metric wall_length=6 wall_height=2.4 brick_size=uk_standard waste_percent=5"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    }
  ],
  "supportsAuthenticatedExtendedCard": false
}