# Off-grid power planner

- Human page: https://happytails.ai/en/calculators/off-grid-power-planner/
- Markdown: https://happytails.ai/en/calculators/off-grid-power-planner.md
- Structured JSON: https://happytails.ai/agents/en/calculators/off-grid-power-planner/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `off-grid-power-planner` |
| Category | calculators |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Use the visible action or interactive controls. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Calculated on your device for up to 100 appliances. This daily energy budget does not size cables, fuses, charge controllers or a compliant electrical installation.

### Inputs and settings

Text input: Appliance load list.

Example or placeholder shown in the interface (not a validated fixture):

```text
Lights,4,10,5,10
Fridge,1,100,8,600
```

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.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `sunHours` | Worst-month peak sun hours per day | number | "" | min=0 max=24 step=any |
| `systemLoss` | PV-to-load energy losses (%) | number | 0 | min=0 max=99 step=any |
| `autonomyDays` | Days of storage autonomy | number | 2 | min=0 max=365 step=any |
| `depthOfDischarge` | Allowed depth of discharge (%) | number | 80 | min=0 max=100 step=any |
| `dischargeEfficiency` | Battery-to-load discharge efficiency (%) | number | 100 | min=0 max=100 step=any |
| `batteryVoltage` | Nominal battery-bank voltage (V) | number | 48 | min=0 max=1000 step=any |
| `surgeMode` | Startup coincidence assumption | select | "All appliances start together" | Allowed: All appliances start together, One unit starts at a time |
| `arrayMode` | PV array calculation | select | "Size required array" | Allowed: Size required array, Check entered array |
| `arrayWatts` | Entered PV nameplate capacity (W) | number | 1000 | min=0 max=1000000000 step=any |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

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.

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

### Complete machine-readable capability record

```json
{
  "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"
  }
}
```

## Page guide

Balance appliance daily energy with a user-supplied solar resource, then estimate PV power, nominal battery kWh/Ah and continuous/startup inverter allowances.

### How to use Off-grid power planner

1. Enter one appliance per line: name, quantity, running W, hours per day and total starting W per unit.
2. Enter worst-month peak sun hours per day, total PV-to-load losses and storage autonomy.
3. Enter depth of discharge, one-way discharge efficiency, nominal bank voltage and the startup coincidence assumption.
4. Size a balancing array or check an entered array, then review any deficit and export JSON and CSV.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

## Useful next steps

- [Appliance electricity cost calculator](https://happytails.ai/en/calculators/appliance-electricity-cost-calculator/) ([Markdown](https://happytails.ai/en/calculators/appliance-electricity-cost-calculator.md))

- [Hot water energy calculator](https://happytails.ai/en/calculators/hot-water-energy-calculator/) ([Markdown](https://happytails.ai/en/calculators/hot-water-energy-calculator.md))

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

## A daily energy budget

Daily 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.

### Storage and voltage

Nominal 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.

### Power and startup assumptions

All 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.
