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 fieldlocked: trueand
disabled_reason: "financier". - Shading-engine lock — when the shading engine is enabled, the
shadingloss is
computed automatically and cannot be set manually. A request includingshadingis
rejected, and on read that field islocked: truewith
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.