Update 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:

Settingloss_summary stage (name)
soilingirradiance_after_soiling_loss
snowirradiance_after_snow_loss
shadingirradiance_after_shade_loss
mismatchenergy_after_mismatch_loss
connectionsenergy_after_connections_loss
wiringenergy_after_dc_wiring_loss
light_induced_degradationenergy_after_lid_loss
availabilityenergy_after_availability_loss
ageenergy_after_age_loss
ratingenergy_after_nameplate_loss
otherenergy_after_other_loss

The remaining loss_summary stages are engine-computed and have no editable input.

Path Params
uuid
required

The ID of the tenant that the design is part of.

uuid
required

The ID of the design to update system loss settings for.

Body Params
system_loss_settings
object

Map of loss name to percentage (0-100). Only the supplied losses are updated; any omitted loss is left unchanged. Unknown loss names are rejected.

Responses

Language
Credentials
Bearer
header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json