# Solar panel output estimator

- Human page: https://happytails.ai/en/calculators/solar-panel-output-estimator/
- Markdown: https://happytails.ai/en/calculators/solar-panel-output-estimator.md
- Structured JSON: https://happytails.ai/agents/en/calculators/solar-panel-output-estimator/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `solar-panel-output-estimator` |
| 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. Enter your own annual resource or all 12 monthly resources. Annual-only data is spread uniformly per day; it does not predict seasonal output.

### Inputs and settings

No free-text input is required. Use the file inputs and/or settings below.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `systemKw` | Array nameplate DC capacity (kWp) | number | 4 | min=0 max=1000000 step=any |
| `year` | Calendar year | number | 2026 | min=1900 max=2200 step=1 |
| `resourceMode` | Resource input | select | "Annual resource" | Allowed: Annual resource, Monthly resources |
| `resourceUnit` | Resource unit | select | "Peak sun hours (h)" | Allowed: Peak sun hours (h), Irradiation (kWh/m²) |
| `resourceBasis` | Resource values represent | select | "Period totals" | Allowed: Period totals, Daily averages |
| `annualResource` | Annual resource or annual daily average | number | "" | min=0 max=8784 step=any |
| `months` | Monthly solar resources | textarea | "" |  |
| `orientationFactor` | Tilt and orientation multiplier | number | 1 | min=0 max=3 step=any |
| `inverterLoss` | Inverter conversion loss (%) | number | 0 | min=0 max=100 step=any |
| `temperatureLoss` | Temperature loss (%) | number | 0 | min=0 max=100 step=any |
| `shadingLoss` | Shading loss (%) | number | 0 | min=0 max=100 step=any |
| `soilingLoss` | Soiling loss (%) | number | 0 | min=0 max=100 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

Array capacity above 0 to 1 million kWp; calendar years 1900 to 2200. All 12 uniquely numbered months required in monthly mode. Resource daily average 0 to 24 equivalent sun hours; period totals at most 24 times the calendar days. Orientation multiplier 0 to 3; each loss 0 to 100%. Monthly row text up to 100,000 characters. JSON report, results CSV and 12-row monthly 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": "solar-panel-output-estimator",
  "category": "calculators",
  "built": true,
  "requirements": "Array capacity above 0 to 1 million kWp; calendar years 1900 to 2200. All 12 uniquely numbered months required in monthly mode. Resource daily average 0 to 24 equivalent sun hours; period totals at most 24 times the calendar days. Orientation multiplier 0 to 3; each loss 0 to 100%. Monthly row text up to 100,000 characters. JSON report, results CSV and 12-row monthly CSV.",
  "implementation": {
    "fields": [
      {
        "key": "systemKw",
        "label": "Array nameplate DC capacity (kWp)",
        "value": 4,
        "type": "number",
        "min": 0,
        "max": 1000000,
        "step": "any"
      },
      {
        "key": "year",
        "label": "Calendar year",
        "value": 2026,
        "type": "number",
        "min": 1900,
        "max": 2200,
        "step": 1
      },
      {
        "key": "resourceMode",
        "label": "Resource input",
        "value": "Annual resource",
        "type": "select",
        "values": [
          "Annual resource",
          "Monthly resources"
        ]
      },
      {
        "key": "resourceUnit",
        "label": "Resource unit",
        "value": "Peak sun hours (h)",
        "type": "select",
        "values": [
          "Peak sun hours (h)",
          "Irradiation (kWh/m²)"
        ],
        "help": "Both use an equivalent 1 kW/m² reference. Use an integrated resource total or daily average, not instantaneous irradiance in W/m²."
      },
      {
        "key": "resourceBasis",
        "label": "Resource values represent",
        "value": "Period totals",
        "type": "select",
        "values": [
          "Period totals",
          "Daily averages"
        ]
      },
      {
        "key": "annualResource",
        "label": "Annual resource or annual daily average",
        "value": "",
        "type": "number",
        "min": 0,
        "max": 8784,
        "step": "any",
        "help": "Required in annual mode. Enter a sourced annual total, or daily average if selected. No regional value is supplied.",
        "showWhen": {
          "resourceMode": [
            "Annual resource"
          ]
        }
      },
      {
        "key": "months",
        "label": "Monthly solar resources",
        "value": "",
        "type": "textarea",
        "maxLength": 100000,
        "help": "Enter month number 1 to 12 and resource, one row per month. All months are required, including explicit zero values.",
        "showWhen": {
          "resourceMode": [
            "Monthly resources"
          ]
        }
      },
      {
        "key": "orientationFactor",
        "label": "Tilt and orientation multiplier",
        "value": 1,
        "type": "number",
        "min": 0,
        "max": 3,
        "step": "any",
        "help": "Use 1 if your resource already describes the panel plane. Otherwise enter a sourced conversion multiplier; no angle-to-irradiation model is applied."
      },
      {
        "key": "inverterLoss",
        "label": "Inverter conversion loss (%)",
        "value": 0,
        "type": "number",
        "min": 0,
        "max": 100,
        "step": "any"
      },
      {
        "key": "temperatureLoss",
        "label": "Temperature loss (%)",
        "value": 0,
        "type": "number",
        "min": 0,
        "max": 100,
        "step": "any"
      },
      {
        "key": "shadingLoss",
        "label": "Shading loss (%)",
        "value": 0,
        "type": "number",
        "min": 0,
        "max": 100,
        "step": "any"
      },
      {
        "key": "soilingLoss",
        "label": "Soiling loss (%)",
        "value": 0,
        "type": "number",
        "min": 0,
        "max": 100,
        "step": "any"
      }
    ],
    "registrationFamily": "home-energy-planning",
    "input": false,
    "live": false,
    "presentation": "metrics",
    "note": "Calculated on your device. Enter your own annual resource or all 12 monthly resources. Annual-only data is spread uniformly per day; it does not predict seasonal output.",
    "inputKeywords": [
      {
        "id": "home-energy-planning/solar-panel-output-estimator/months.header",
        "kind": "header",
        "code": "HOME_ENERGY_PLANNING_MONTH_HEADER",
        "fold": "lower",
        "values": {
          "month": [
            "month",
            "Month"
          ],
          "resource": [
            "resource",
            "Resource"
          ]
        },
        "describedBy": [
          "Name the columns Month and Resource, in that order, or omit the header.",
          "Monthly solar resources"
        ]
      }
    ],
    "experience": {
      "automatic": false,
      "single": true,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Solar resource settings",
      "placeholder": "Use the fields below",
      "help": "Enter an annual solar resource or all 12 monthly resources in the settings. Monthly rows are month number 1 to 12 and resource. Up to 1,000,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

Estimate annual and monthly solar generation from your own integrated solar resource, array capacity, orientation multiplier and separate loss assumptions.

### How to use Solar panel output estimator

1. Enter array nameplate capacity and the calendar year.
2. Choose annual or all 12 monthly resources, their unit and whether values are period totals or daily averages.
3. Enter a sourced tilt/orientation multiplier and inverter, temperature, shading and soiling losses.
4. Review annual yield and the monthly table, then download the JSON report and CSV files.

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))

## Bring your own solar resource

Enter peak sun hours or integrated irradiation in kWh/m². At the 1 kW/m² reference they have the same numerical value. Instantaneous irradiance in W/m² is not a period energy input. No weather dataset or location lookup is included.

### Annual data has no seasonal profile

Annual-only data is allocated uniformly per calendar day, including leap day. Those monthly numbers are bookkeeping allocations, not seasonal forecasts. Enter all 12 monthly resources for a seasonal pattern, including zero for months with no resource.

### Orientation and losses

Use orientation multiplier 1 if the resource already describes the panel plane. Otherwise supply a conversion multiplier; entering tilt and azimuth angles is not enough to calculate it here. Loss factors multiply rather than add. Enter 0 for an effect already included elsewhere. This simplified estimate does not reproduce PVWatts or model hourly temperature, clipping, snow or availability.
