v1
latestOpenAPI 3.0.02026-07-241010520.6 KBUpdate System Loss Settings
Update the editable per-design system-loss settings.
The request body is a flat map of loss name to percentage. Only the losses you supply are updated; all others are left unchanged (partial update). Values are percentages between 0 and 100, accepted to one decimal place.
Updating system losses invalidates the design's performance simulation. This endpoint does not re-run the simulation — run it separately to recompute production. Until then, energy_production.up_to_date on the Design Summary will be false.
Locks
Some losses cannot be edited and a request to change them is rejected with 422:
- Financing lock — when a financing product is selected for the design, that product dictates every loss. The whole update is rejected. This is reflected on read as editable: false / locked_by_financier: "<code>", with every field locked: true and disabled_reason: "financier".
- Shading-engine lock — when the shading engine is enabled, the shading loss is computed automatically and cannot be set manually. A request including shading is rejected, and on read that field is locked: true with disabled_reason: "shading_engine_enabled".
Mapping to loss_summary stages
Each editable setting affects exactly one loss_summary output stage on the Design Summary:
| Setting | loss_summary stage (name) |
|---|---|
| soiling | irradiance_after_soiling_loss |
| snow | irradiance_after_snow_loss |
| shading | irradiance_after_shade_loss |
| mismatch | energy_after_mismatch_loss |
| connections | energy_after_connections_loss |
| wiring | energy_after_dc_wiring_loss |
| light_induced_degradation | energy_after_lid_loss |
| availability | energy_after_availability_loss |
| age | energy_after_age_loss |
| rating | energy_after_nameplate_loss |
| other | energy_after_other_loss |
The remaining loss_summary stages are engine-computed and have no editable input.
Path parameters
The ID of the tenant that the design is part of.
The ID of the design to update system loss settings for.
Request body
Example request
{
"system_loss_settings": {
"soiling": 2.5,
"shading": 3,
"mismatch": 2,
"wiring": 2,
"connections": 0.5,
"light_induced_degradation": 1.5,
"availability": 3
}
}Response
System loss settings successfully updated.
Example response
{
"system_loss_settings": {
"editable": true,
"values": {
"soiling": {
"value": 2
},
"snow": {
"value": 2
},
"shading": {
"value": 2
},
"mismatch": {
"value": 2
},
"wiring": {
"value": 2
},
"connections": {
"value": 2
},
"light_induced_degradation": {
"value": 2
},
"availability": {
"value": 2
},
"rating": {
"value": 2
},
"age": {
"value": 2
},
"other": {
"value": 2
}
}
}
}