How to run an Intervention Work Package
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 thenetwork_performance_metrics_enhancedtable - 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
meterPlacementConfigwithdistTransformers=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 toRANDOM, 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.