Skip to main content
Version: 1.2.0

How to run an Intervention Work Package

Paid Feature - Only available for some customers

This feature is only available to certain customers. If you are interested in using this feature, please contact Zepben for more information.

This guide covers the practical steps for running an Intervention work package. For a conceptual overview of interventions and how candidates are generated and allocated, see What are Interventions and why are they useful?. For the full list of intervention types and their parameters, see Interventions Options.

An intervention work package is not a separate mutation - it is a normal work package (submitted with Mutation.run_work_package and WorkPackageInput, same as in How to run a Work Package) with an additional intervention block set, pointing back at a baseWorkPackageId.

Step 1: Run a base work package

The base work package is a regular (non-intervention) work package. Candidate-based interventions decide where to intervene using its results, so it must be configured correctly up front:

  • Enable enhanced metrics: set populateEnhancedMetrics=True. Candidate generation only reads the network_performance_metrics_enhanced table - no raw tables (energy_meters_raw, energy_meter_voltages_raw, overloads_raw, voltage_exceptions_raw) need to be stored.

  • Set Measurement Zones at the transformer level: configure meterPlacementConfig with distTransformers=True (see Meter Placement Config). Having a Feeder Head measurement zone is optional, but switch/LV circuit level zones are not supported for any work package feeding a candidate-based intervention. See Measurement Zones.

  • Use feederScenarioAllocationStrategy=ADDITIVE (the default). If overridden to RANDOM, the work package will fail to build for any of the four candidate-based intervention types.

  • Keep the year range single or contiguous (e.g. {2027,2028,2029,2030}, not {2027,2030}) for both the base and intervention work packages.

Step 2: Keep the intervention work package config aligned with the base

Run the intervention work package with the same configuration as the base, other than the intervention block itself (same load time range, model parameters, network topology fixers, feeders, years, etc.), otherwise you can't tell whether a result difference came from the intervention or from config drift.

Step 3: Configure and submit the intervention work package

Add an intervention block to a WorkPackageInput, pointing baseWorkPackageId at the base work package from Step 1, and submit it the same way as any other work package.

For a runnable example covering all intervention types, see run_intervention_work_package.py in the hosting-capacity-runner repo.

See Interventions Options for the detail on each intervention type.

Step 4: Monitor and interpret results

Monitoring works the same as any other work package - see How to run a Work Package and How to manage Work Packages.

Once complete, the intervention work package produces results in the same output tables as a regular work package, letting you directly compare constraint patterns before and after the intervention. See Output Tables.