Skip to main content
Version: Next

Interventions and Mitigation Planning

Once constraints are identified, the HCM allows operators to explore strategies to resolve them through the Intervention Module. This module models changes to both system-wide and local conditions, enabling comparative analysis of mitigation options against the base case. The Intervention Module is a seperate module within the Energy Workbench platform, designed to work seamlessly with the HCM. Please talk to Zepben about this module if you are interested in using it.

note

The Intervention Module is intended to run either on a single year or a range of contiguous years, not on multiple non-contiguous years. Attempting to do so will not result in an error, but will likely produce unexpected results.

For example:

  • Valid: {2026}, or {2026,2027,2028,2029,2030}
  • Invalid: {2026,2030}

Examples of systemic interventions include:

  • Phase rebalancing (PHASE_REBALANCING)
  • Controlled load power shifting (CONTROLLED_LOAD_HOT_WATER)
  • Tariff redesign (TARIFF_REFORM)
  • Dynamic voltage management (DVMS)

Examples of local interventions include:

  • Installation of community batteries (COMMUNITY_BESS)
  • LV STATCOMs (static var compensators) (LV_STATCOMS)
  • Off-load tap changer optimisation (DISTRIBUTION_TAP_OPTIMIZATION)

The Intervention Module produces results using the same framework as the core HCM, allowing direct comparison of constraint patterns before and after applying mitigation strategies.

Systemic interventions are applied across the entire network, while local interventions are targeted at specific locations. Local interventions use a two-stage process to identify and deploy solutions at problem locations, as described below.

How Candidate Generation and Allocation Works

Local interventions (COMMUNITY_BESS, LV_STATCOMS, DISTRIBUTION_TAP_OPTIMIZATION) use a two-stage process to identify and deploy solutions at problem locations.

Process Flow

Base Work Package Results

Does location exceed thresholds (as defined in intervention_candidate_criteria)? ──No──> Skip
↓ Yes
Candidate Created (stored in intervention_candidates)
(location, year, severity)

Ranked by Severity
(most severe constraints as per criteria = rank 1, next = rank 2, etc.)

Allocated by Year
(up to limit per year, as per intervention config `allocation_limit_per_year`)

Rerun Work Package with changes made

Intervention Work Package results

How It Works

1. Candidate Generation

  • Analyzes base work package results for each measurement zone and year
  • Creates candidate if location exceeds ALL specified thresholds in intervention_candidate_criteria
  • Tags candidate with earliest year threshold is exceeded

2. Ranking

  • COMMUNITY_BESS & LV_STATCOMS: Sum of gen_exceeding_normal_voltage_cecv + load_exceeding_normal_thermal_voltage_vcr
  • DISTRIBUTION_TAP_OPTIMIZATION: Weighted score from voltage deviation percentiles and hours outside limits
  • Lower rank number = more severe = higher implementation priority

3. Allocation

  • Deploys interventions to highest-ranked candidates first
  • Respects allocation_limit_per_year constraint
  • Phases deployment across years based on available capacity

Example

Candidates found:
- Location A: 2026, severity 150 → Rank 2
- Location B: 2027, severity 200 → Rank 1
- Location C: 2026, severity 100 → Rank 3

With allocation_limit_per_year = 2:
- 2026: Install at B, A
- 2027: Install at C

Key Points:

  • Candidates are generated from base work package analysis (not discovered during solve)
  • Worst problems addressed first within yearly deployment constraints
  • Year assignment determines when intervention becomes active in simulation