# Get Monthly HSU Losses

`GET /data/monthly_averages/soiling/hsu`

Get the monthly soiling-loss climatology for a site using the HSU model. Returns twelve monthly soiling loss fractions and precipitation totals, with optional fixed or optimised recurring wash schedules. The soiling climatology is calculated with data from 2007 to 2025.

## Parameters

### Query Parameters

| Name | Type | Required | Description | Accepted Values |
| --- | --- | --- | --- | --- |
| `latitude` | number (double) | yes | The latitude of the location (EPSG:4326). Must be between -90 and 90. |  |
| `longitude` | number (double) | yes | The longitude of the location (EPSG:4326). Must be between -180 and 180. |  |
| `cleaning_threshold` | number (double) | no | Amount of daily rainfall required to clean the panels (mm). Default is 1.0. |  |
| `depo_veloc_pm10` | number (double) | no | Deposition or settling velocity of PM10 particulates. [m/s]. Default is 0.004. |  |
| `depo_veloc_pm2_5` | number (double) | no | Deposition or settling velocity of PM2.5 particulates. [m/s]. Default is 0.0009. |  |
| `format` | string | no | Response format. Default is HTML if not supplied. | json, csv |
| `tilt` | number (double) | no | The angle (degrees) that the PV system is tilted off the horizontal. A tilt of 0 means the system faces directly upwards, and 90 means the system is vertical and facing the horizon. If you don't specify tilt, we use a default tilt angle based on the latitude you specify in your request. Must be between 0 and 90. |  |
| `wash_schedule` | WashSchedule | no | Optional. Omit to evaluate a no-wash climatology. For a fixed recurring wash schedule, specify wash dates as comma-separated MM-DD pairs (e.g. 05-01,09-15); the model applies those washes each year and the response echoes the same dates. For an optimized schedule, specify the number of washes per year as an integer (1-12). The service determines the wash schedule that minimizes annual soiling loss. The service evaluates schedules at monthly resolution with washes scheduled on the first day of each selected month. The response reports the selected month-day pairs. |  |

## Example request

### cURL

```bash
curl -X GET "https://api.solcast.com.au/data/monthly_averages/soiling/hsu?latitude=-33.8567&longitude=151.2152&format=json" \
  -H "Authorization: Bearer $API_KEY"
```

### Python

```python
import requests

params = {
    "latitude": "-33.8567",
    "longitude": "151.2152",
    "format": "json",
}

response = requests.get(
    "https://api.solcast.com.au/data/monthly_averages/soiling/hsu", params=params,
    headers={"Authorization": "Bearer API_KEY"},
)
data = response.json()
```

## Example response (200)

```json
{
  "monthly_averages": [
    {
      "hsu_loss_fraction": 0.0092,
      "month": 1,
      "precip_mm": 81.5263
    },
    {
      "hsu_loss_fraction": 0.007,
      "month": 2,
      "precip_mm": 114.2632
    },
    {
      "hsu_loss_fraction": 0.0053,
      "month": 3,
      "precip_mm": 122.1105
    }
  ]
}
```

## Responses

### 200 — OK

Schema: `HsuMonthlyAveragesDataResponse`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `monthly_averages` | HsuMonthlyAverage[] | no |  |
| `wash_dates` | WashDate[] | no |  |

Source: /docs/section/soiling#getDataMonthlyAveragesSoilingHsu
