Skip to main content
Version: Next

How to set up HCM Scenarios

This guide walks you through the process of configuring HCM scenarios, from preparing the required data tables to creating scenario configurations that can be executed in work packages.

Prerequisites

Before configuring scenarios, ensure you understand the concept of HCM scenarios and have access to the database where input tables will be populated.

Required Input Tables

You'll need to populate these tables in the following order. See the Input Table Reference for complete field specifications.

1. Profile Tables (Foundation Data)

TablePurpose
pv_profilesTime-series solar generation patterns with technical specifications
ev_profilesElectric vehicle charging patterns by use case and charger level
bess_profilesBattery charge/discharge patterns with efficiency characteristics

2. Allocation Tables (Grouping Rules)

TablePurpose
pv_allocationsGroups PV profiles with probability weightings and locking rules
ev_allocationsGroups EV profiles with probability weightings and locking rules
bess_allocationsGroups BESS profiles with probability weightings and locking rules

3. Forecast Tables (Capacity Projections)

TablePurpose
pv_forecastsSolar capacity projections by network level and year
ev_forecastsEV quantity projections by class and network area
bess_forecastsBattery capacity projections by network level and year
demand_forecastsBackground load growth with uncertainty levels

4. Configuration Table (Scenario Definition)

TablePurpose
scenario_configurationLinks allocations and forecasts to create named scenarios

Step-by-Step Configuration Process

The configuration process follows the data architecture: ProfilesAllocationsForecastsScenario ConfigurationWork Package. Both allocations and forecasts feed independently into scenario configuration.

Step 1: Create Profile Data

Start by populating the profile tables with time-series behavioural data for each DER type.

Key considerations:

  • Ensure normalised_power arrays have the expected length (typically 17,520 intervals for 30-minute data)
  • Set appropriate phases values (1 or 3)
  • Use consistent intervals_per_year values across profiles
  • Include realistic technical parameters (DC/AC ratios, efficiencies)

Step 2: Define Allocation Strategies

Create allocation entries that group profiles and define distribution rules.

Notes:

lock_year Controls whether profiles are matched to specific years during allocation.

true — The system uses the represents_year field from the bess_profiles table to match each profile to the corresponding year in the scenario. This ensures year-appropriate profiles are used (e.g. a 2028 profile is only allocated to 2028 model runs). If this option is selected, ensure that all years have a valid matching profile, as otherwise the scenario will fail. false — Profiles are drawn from a general pool and can be allocated to any scenario year, regardless of their represents_year value. Useful when year-specific behaviour is not required or when profiles are intended to be representative across multiple years.

lock_feeder Controls whether DER profiles are restricted to a specific feeder during allocation.

true — The feeder code associated with the DER profile must match the feeder specified in feeder_code in bess_profiles. This ensures site-specific or feeder-specific DER behaviour is preserved and profiles are not applied outside their intended network location. false — Profile allocation is feeder-agnostic, allowing any eligible profile to be assigned to any feeder in the scenario. Suitable when DER behaviour is considered representative across the network rather than tied to a specific location.

probability_weighting The relative weighting used to influence profile selection during stochastic allocation. When multiple profiles are eligible (after applying lock_year and lock_feeder filters), this value controls how often each profile is selected relative to others. Only the proportional values matter (a profile with a weighting of 2.0 will be selected twice as often as one with 1.0), regardless of the absolute values used, although we recommend values out of 1.0 for simplicity. Profiles with a weighting of 0 or NULL are excluded from the pool entirely and will never be selected.

Step 3: Prepare Forecast Data

Populate forecast tables with capacity projections for each DER type.

Forecast level selection: Choose appropriate aggregation levels based on your data availability and analysis needs:

  • FEEDER for standard distribution planning Currently unsupported (but may be in the future): LV_FEEDER, SUBSTATION, SUB_GEOGRAPHICAL_REGION, GEOGRAPHICAL_REGION

Time period coverage:

  • Ensure forecasts cover all years you plan to model
  • Include appropriate financial_year_end values
  • For demand forecasts, specify relevant poe (Probability of Exceedance) levels

Step 4: Configure Scenarios

Create entries in the scenario_configuration table that combine your prepared components.

warning

Never name a custom scenario base. The system automatically includes a hardcoded base scenario representing current network conditions without additional DER uptake or demand changes. Naming your own scenario base will cause conflicts with this system baseline.

The base scenario can be called in the SYF config during work package configuration without needing to define it in the scenario_configuration table.

Core configuration elements:

FieldPurposeExample Value
scenario_idUnique identifier"high_solar_moderate_ev"
scenario_nameHuman-readable description"High Solar with Moderate EV Adoption"
pv_allocation_idReference to PV allocation strategy"suburban_residential_pv"
ev_allocation_idReference to EV allocation strategy"mixed_vehicle_classes"
bess_allocation_idReference to BESS allocation strategy"residential_storage"
pv_forecasts_scenarioName of PV forecast data set"high_solar_2030"
ev_forecasts_scenarioName of EV forecast data set"moderate_ev_uptake"
bess_forecasts_scenarioName of BESS forecast data set"conservative_storage"
demand_forecasts_scenarioName of demand forecast data set"baseline_growth"
pv_forecast_levelNetwork level for PV forecasts"FEEDER"
ev_forecast_levelNetwork level for EV forecasts"FEEDER"
bess_forecast_levelNetwork level for BESS forecasts"FEEDER"
demand_forecast_levelNetwork level for demand forecasts"FEEDER"
demand_forecast_poeProbability of Exceedance level50

Example Scenario Configuration

Here's how you might configure different scenarios by mixing and matching components:

Scenario NamePV ForecastBESS ForecastEV ForecastDemand ForecastUse Case
conservative_growthLow adoptionLow adoptionModerate adoptionLow growthConservative planning
accelerated_solarHigh adoptionLow adoptionModerate adoptionModerate growthSolar-focused future
aemo_step_changeHigh adoptionHigh adoptionHigh adoptionHigh growthAEMO Step Change replication

Quality Assurance Checklist

Before executing scenarios, verify:

Data Integrity:

  • All referenced allocation_id values exist in their respective allocation tables
  • All forecast scenario names exist in their respective forecast tables
  • All forecast levels are valid enum values
  • No scenario uses the reserved name base

Mathematical Validity:

  • All demand_forecast_poe values exist in the demand forecast data
  • Profile arrays have consistent lengths and valid value ranges

Cross-Reference Consistency:

  • Specified forecast levels have actual data in the forecast scenarios
  • Profile years cover all modelled scenario years (when using year locking)
  • Referenced profile IDs exist in their respective profile tables

Temporal Alignment:

  • Forecast years align with intended modelling periods
  • Profile represents_year values cover scenario requirements
  • Demand forecast time periods match other DER forecasts

Integration with Work Packages

Once scenarios are configured, they can be referenced in work package configurations as per the Work Package Configuration Guide.

Note: Scenarios run independently within work packages, allowing flexible comparison and incremental analysis. You can execute any combination of scenarios together without dependencies between them.

Once scenarios are configured, they can be referenced in work package configurations (the SYF Config: Scenarios, Years, Feeders) as per the Work Package Configuration Guide.

Troubleshooting Common Issues

Scenario validation failures:

  • Check that all referenced IDs exist in their respective tables
  • Verify probability weights sum correctly
  • Ensure forecast levels exist in the data

Missing data errors:

  • Confirm all required forecast scenarios are populated
  • Check that profile data covers the necessary time periods
  • Verify network codes exist at specified forecast levels

Performance issues:

  • Start with a small number of feeders and years for testing
  • Use appropriate forecast aggregation levels
  • Consider computational requirements when designing large scenario sets

Contact Zepben technical support for further assistance with complex configurations or issues.