{
  "title": "Off-grid power planner",
  "human_url": "https://happytails.ai/en/calculators/off-grid-power-planner/",
  "agent_url": "https://happytails.ai/agents/en/calculators/off-grid-power-planner/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/off-grid-power-planner.md",
  "content": "Off-grid power planner\nBalance appliance daily energy with a user-supplied solar resource, then estimate PV power, nominal battery kWh/Ah and continuous/startup inverter allowances.\nHow to use Off-grid power planner\nEnter one appliance per line: name, quantity, running W, hours per day and total starting W per unit.\nEnter worst-month peak sun hours per day, total PV-to-load losses and storage autonomy.\nEnter depth of discharge, one-way discharge efficiency, nominal bank voltage and the startup coincidence assumption.\nSize a balancing array or check an entered array, then review any deficit and export JSON and CSV.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nUseful next steps\nAppliance electricity cost calculator\nHot water energy calculator\nInsulation calculator\nA daily energy budget\nDaily Wh sums quantity × running watts × duty-cycle hours. Worst-month peak sun hours is your sourced daily average, not a bundled climate value. Required PV meets the average daily load after the entered total loss budget. It includes no extra recovery margin after an autonomy event or probability of prolonged bad weather.\nStorage and voltage\nNominal battery kWh divides autonomy load by depth of discharge and the one-way battery-to-load efficiency. Ah is nominal Wh divided by bank voltage. The separate PV loss budget should include all relevant generation-to-load losses once; discharge efficiency changes battery capacity and is not multiplied into that PV budget a second time.\nPower and startup assumptions\nAll active appliances are assumed to run together for the continuous allowance. Starting W is the entire per-unit starting load, including running W. Startup can assume every unit starts together or one unit starts while all others run. Zero-hour appliances are inactive. This is an energy/power planning estimate; wiring, fusing, charge-controller sizing, power factor, surge duration and compliance are outside the result.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Appliance electricity cost calculator",
      "url": "https://happytails.ai/en/calculators/appliance-electricity-cost-calculator/"
    },
    {
      "name": "Hot water energy calculator",
      "url": "https://happytails.ai/en/calculators/hot-water-energy-calculator/"
    },
    {
      "name": "Insulation calculator",
      "url": "https://happytails.ai/en/calculators/insulation-calculator/"
    }
  ],
  "tool": {
    "id": "off-grid-power-planner",
    "category": "calculators",
    "built": true,
    "requirements": "Up to 100 uniquely named appliance rows and 100,000 characters. Quantity 1 to 10,000; running power 0 to 1 million W per unit; hours 0 to 24/day; starting power 0 to 10 million W and at least running power for active units. Positive sun hours up to 24/day; total losses 0 to 99%; positive autonomy up to 365 days; depth of discharge and one-way efficiency above 0 to 100%; bank voltage above 0 to 1,000 V; checked PV power 0 to 1 billion W. JSON report, results CSV and appliance CSV.",
    "implementation": {
      "fields": [
        {
          "key": "sunHours",
          "label": "Worst-month peak sun hours per day",
          "value": "",
          "type": "number",
          "min": 0,
          "max": 24,
          "step": "any",
          "help": "Required. Enter a sourced daily average for the design month; no regional irradiation is supplied."
        },
        {
          "key": "systemLoss",
          "label": "PV-to-load energy losses (%)",
          "value": 0,
          "type": "number",
          "min": 0,
          "max": 99,
          "step": "any",
          "help": "A single total budget for PV, wiring, charging/storage and conversion losses. Include each effect once."
        },
        {
          "key": "autonomyDays",
          "label": "Days of storage autonomy",
          "value": 2,
          "type": "number",
          "min": 0,
          "max": 365,
          "step": "any"
        },
        {
          "key": "depthOfDischarge",
          "label": "Allowed depth of discharge (%)",
          "value": 80,
          "type": "number",
          "min": 0,
          "max": 100,
          "step": "any"
        },
        {
          "key": "dischargeEfficiency",
          "label": "Battery-to-load discharge efficiency (%)",
          "value": 100,
          "type": "number",
          "min": 0,
          "max": 100,
          "step": "any",
          "help": "Used only to size nominal storage. Include inverter discharge losses once; this is a one-way fraction, not round-trip efficiency."
        },
        {
          "key": "batteryVoltage",
          "label": "Nominal battery-bank voltage (V)",
          "value": 48,
          "type": "number",
          "min": 0,
          "max": 1000,
          "step": "any"
        },
        {
          "key": "surgeMode",
          "label": "Startup coincidence assumption",
          "value": "All appliances start together",
          "type": "select",
          "values": [
            "All appliances start together",
            "One unit starts at a time"
          ]
        },
        {
          "key": "arrayMode",
          "label": "PV array calculation",
          "value": "Size required array",
          "type": "select",
          "values": [
            "Size required array",
            "Check entered array"
          ]
        },
        {
          "key": "arrayWatts",
          "label": "Entered PV nameplate capacity (W)",
          "value": 1000,
          "type": "number",
          "min": 0,
          "max": 1000000000,
          "step": "any",
          "showWhen": {
            "arrayMode": [
              "Check entered array"
            ]
          }
        }
      ],
      "registrationFamily": "home-energy-planning",
      "input": true,
      "live": false,
      "presentation": "metrics",
      "inputMaxLength": 100000,
      "inputErrorCode": "HOME_ENERGY_PLANNING_TOO_LONG",
      "note": "Calculated on your device for up to 100 appliances. This daily energy budget does not size cables, fuses, charge controllers or a compliant electrical installation.",
      "inputKeywords": [
        {
          "id": "home-energy-planning/off-grid-power-planner/appliances.header",
          "kind": "header",
          "code": "HOME_ENERGY_PLANNING_OFFGRID_HEADER",
          "fold": "lower",
          "values": {
            "appliance": [
              "appliance",
              "Appliance"
            ],
            "quantity": [
              "quantity",
              "Quantity"
            ],
            "watts": [
              "watts",
              "Watts"
            ],
            "hours": [
              "hours",
              "Hours"
            ],
            "surge": [
              "surge",
              "Surge"
            ]
          },
          "describedBy": [
            "Name the columns Appliance, Quantity, Watts, Hours and Surge, in that order, or omit the header.",
            "Appliance load list"
          ]
        }
      ],
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 100000,
        "inputMode": "text",
        "label": "Appliance load list",
        "placeholder": "Lights,4,10,5,10\nFridge,1,100,8,600",
        "help": "One appliance per line: name, quantity, running W, hours per day and total starting W per unit. Up to 100,000 characters. Review the settings before running.",
        "action": null
      },
      "mode": "explicit",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Off-grid power planner\n\n- Human page: https://happytails.ai/en/calculators/off-grid-power-planner/\n- Markdown: https://happytails.ai/en/calculators/off-grid-power-planner.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/off-grid-power-planner/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `off-grid-power-planner` |\n| Category | calculators |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nCalculated on your device for up to 100 appliances. This daily energy budget does not size cables, fuses, charge controllers or a compliant electrical installation.\n\n### Inputs and settings\n\nText input: Appliance load list.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\nLights,4,10,5,10\nFridge,1,100,8,600\n```\n\nOne appliance per line: name, quantity, running W, hours per day and total starting W per unit. Up to 100,000 characters. Review the settings before running.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `sunHours` | Worst-month peak sun hours per day | number | \"\" | min=0 max=24 step=any |\n| `systemLoss` | PV-to-load energy losses (%) | number | 0 | min=0 max=99 step=any |\n| `autonomyDays` | Days of storage autonomy | number | 2 | min=0 max=365 step=any |\n| `depthOfDischarge` | Allowed depth of discharge (%) | number | 80 | min=0 max=100 step=any |\n| `dischargeEfficiency` | Battery-to-load discharge efficiency (%) | number | 100 | min=0 max=100 step=any |\n| `batteryVoltage` | Nominal battery-bank voltage (V) | number | 48 | min=0 max=1000 step=any |\n| `surgeMode` | Startup coincidence assumption | select | \"All appliances start together\" | Allowed: All appliances start together, One unit starts at a time |\n| `arrayMode` | PV array calculation | select | \"Size required array\" | Allowed: Size required array, Check entered array |\n| `arrayWatts` | Entered PV nameplate capacity (W) | number | 1000 | min=0 max=1000000000 step=any |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nUp to 100 uniquely named appliance rows and 100,000 characters. Quantity 1 to 10,000; running power 0 to 1 million W per unit; hours 0 to 24/day; starting power 0 to 10 million W and at least running power for active units. Positive sun hours up to 24/day; total losses 0 to 99%; positive autonomy up to 365 days; depth of discharge and one-way efficiency above 0 to 100%; bank voltage above 0 to 1,000 V; checked PV power 0 to 1 billion W. JSON report, results CSV and appliance CSV.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"off-grid-power-planner\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"requirements\": \"Up to 100 uniquely named appliance rows and 100,000 characters. Quantity 1 to 10,000; running power 0 to 1 million W per unit; hours 0 to 24/day; starting power 0 to 10 million W and at least running power for active units. Positive sun hours up to 24/day; total losses 0 to 99%; positive autonomy up to 365 days; depth of discharge and one-way efficiency above 0 to 100%; bank voltage above 0 to 1,000 V; checked PV power 0 to 1 billion W. JSON report, results CSV and appliance CSV.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"sunHours\",\n        \"label\": \"Worst-month peak sun hours per day\",\n        \"value\": \"\",\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 24,\n        \"step\": \"any\",\n        \"help\": \"Required. Enter a sourced daily average for the design month; no regional irradiation is supplied.\"\n      },\n      {\n        \"key\": \"systemLoss\",\n        \"label\": \"PV-to-load energy losses (%)\",\n        \"value\": 0,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 99,\n        \"step\": \"any\",\n        \"help\": \"A single total budget for PV, wiring, charging/storage and conversion losses. Include each effect once.\"\n      },\n      {\n        \"key\": \"autonomyDays\",\n        \"label\": \"Days of storage autonomy\",\n        \"value\": 2,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 365,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"depthOfDischarge\",\n        \"label\": \"Allowed depth of discharge (%)\",\n        \"value\": 80,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 100,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"dischargeEfficiency\",\n        \"label\": \"Battery-to-load discharge efficiency (%)\",\n        \"value\": 100,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 100,\n        \"step\": \"any\",\n        \"help\": \"Used only to size nominal storage. Include inverter discharge losses once; this is a one-way fraction, not round-trip efficiency.\"\n      },\n      {\n        \"key\": \"batteryVoltage\",\n        \"label\": \"Nominal battery-bank voltage (V)\",\n        \"value\": 48,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 1000,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"surgeMode\",\n        \"label\": \"Startup coincidence assumption\",\n        \"value\": \"All appliances start together\",\n        \"type\": \"select\",\n        \"values\": [\n          \"All appliances start together\",\n          \"One unit starts at a time\"\n        ]\n      },\n      {\n        \"key\": \"arrayMode\",\n        \"label\": \"PV array calculation\",\n        \"value\": \"Size required array\",\n        \"type\": \"select\",\n        \"values\": [\n          \"Size required array\",\n          \"Check entered array\"\n        ]\n      },\n      {\n        \"key\": \"arrayWatts\",\n        \"label\": \"Entered PV nameplate capacity (W)\",\n        \"value\": 1000,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 1000000000,\n        \"step\": \"any\",\n        \"showWhen\": {\n          \"arrayMode\": [\n            \"Check entered array\"\n          ]\n        }\n      }\n    ],\n    \"registrationFamily\": \"home-energy-planning\",\n    \"input\": true,\n    \"live\": false,\n    \"presentation\": \"metrics\",\n    \"inputMaxLength\": 100000,\n    \"inputErrorCode\": \"HOME_ENERGY_PLANNING_TOO_LONG\",\n    \"note\": \"Calculated on your device for up to 100 appliances. This daily energy budget does not size cables, fuses, charge controllers or a compliant electrical installation.\",\n    \"inputKeywords\": [\n      {\n        \"id\": \"home-energy-planning/off-grid-power-planner/appliances.header\",\n        \"kind\": \"header\",\n        \"code\": \"HOME_ENERGY_PLANNING_OFFGRID_HEADER\",\n        \"fold\": \"lower\",\n        \"values\": {\n          \"appliance\": [\n            \"appliance\",\n            \"Appliance\"\n          ],\n          \"quantity\": [\n            \"quantity\",\n            \"Quantity\"\n          ],\n          \"watts\": [\n            \"watts\",\n            \"Watts\"\n          ],\n          \"hours\": [\n            \"hours\",\n            \"Hours\"\n          ],\n          \"surge\": [\n            \"surge\",\n            \"Surge\"\n          ]\n        },\n        \"describedBy\": [\n          \"Name the columns Appliance, Quantity, Watts, Hours and Surge, in that order, or omit the header.\",\n          \"Appliance load list\"\n        ]\n      }\n    ],\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 100000,\n      \"inputMode\": \"text\",\n      \"label\": \"Appliance load list\",\n      \"placeholder\": \"Lights,4,10,5,10\\nFridge,1,100,8,600\",\n      \"help\": \"One appliance per line: name, quantity, running W, hours per day and total starting W per unit. Up to 100,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nBalance appliance daily energy with a user-supplied solar resource, then estimate PV power, nominal battery kWh/Ah and continuous/startup inverter allowances.\n\n### How to use Off-grid power planner\n\n1. Enter one appliance per line: name, quantity, running W, hours per day and total starting W per unit.\n2. Enter worst-month peak sun hours per day, total PV-to-load losses and storage autonomy.\n3. Enter depth of discharge, one-way discharge efficiency, nominal bank voltage and the startup coincidence assumption.\n4. Size a balancing array or check an entered array, then review any deficit and export JSON and CSV.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n## Useful next steps\n\n- [Appliance electricity cost calculator](https://happytails.ai/en/calculators/appliance-electricity-cost-calculator/) ([Markdown](https://happytails.ai/en/calculators/appliance-electricity-cost-calculator.md))\n\n- [Hot water energy calculator](https://happytails.ai/en/calculators/hot-water-energy-calculator/) ([Markdown](https://happytails.ai/en/calculators/hot-water-energy-calculator.md))\n\n- [Insulation calculator](https://happytails.ai/en/calculators/insulation-calculator/) ([Markdown](https://happytails.ai/en/calculators/insulation-calculator.md))\n\n## A daily energy budget\n\nDaily Wh sums quantity × running watts × duty-cycle hours. Worst-month peak sun hours is your sourced daily average, not a bundled climate value. Required PV meets the average daily load after the entered total loss budget. It includes no extra recovery margin after an autonomy event or probability of prolonged bad weather.\n\n### Storage and voltage\n\nNominal battery kWh divides autonomy load by depth of discharge and the one-way battery-to-load efficiency. Ah is nominal Wh divided by bank voltage. The separate PV loss budget should include all relevant generation-to-load losses once; discharge efficiency changes battery capacity and is not multiplied into that PV budget a second time.\n\n### Power and startup assumptions\n\nAll active appliances are assumed to run together for the continuous allowance. Starting W is the entire per-unit starting load, including running W. Startup can assume every unit starts together or one unit starts while all others run. Zero-hour appliances are inactive. This is an energy/power planning estimate; wiring, fusing, charge-controller sizing, power factor, surge duration and compliance are outside the result.\n"
}