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)
| Table | Purpose |
|---|---|
| pv_profiles | Time-series solar generation patterns with technical specifications |
| ev_profiles | Electric vehicle charging patterns by use case and charger level |
| bess_profiles | Battery charge/discharge patterns with efficiency characteristics |
2. Allocation Tables (Grouping Rules)
| Table | Purpose |
|---|---|
| pv_allocations | Groups PV profiles with probability weightings and locking rules |
| ev_allocations | Groups EV profiles with probability weightings and locking rules |
| bess_allocations | Groups BESS profiles with probability weightings and locking rules |
3. Forecast Tables (Capacity Projections)
| Table | Purpose |
|---|---|
| pv_forecasts | Solar capacity projections by network level and year |
| ev_forecasts | EV quantity projections by class and network area |
| bess_forecasts | Battery capacity projections by network level and year |
| demand_forecasts | Background load growth with uncertainty levels |
4. Configuration Table (Scenario Definition)
| Table | Purpose |
|---|---|
| scenario_configuration | Links allocations and forecasts to create named scenarios |
Step-by-Step Configuration Process
The configuration process follows the data architecture: Profiles → Allocations → Forecasts → Scenario Configuration → Work Package. Both allocations and forecasts feed independently into scenario configuration.
Step 1: Create Profile Data
Start by populating the profile tables with time-series behavioral data for each DER type.
Key considerations:
- Ensure
normalised_powerarrays have the expected length (typically 17,520 intervals for 30-minute data) - Set appropriate
phasesvalues (1 or 3) - Use consistent
intervals_per_yearvalues 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.
Probability weighting requirements:
- All
probability_weightingvalues for profiles under the sameallocation_idmust sum to 1.0 per feeder - Use decimal values (e.g., 0.7 for 70%, 0.3 for 30%)
Locking mechanism choices:
- Set
lock_year = trueif profiles should only be used for specific years - Set
lock_feeder = trueif profiles should only be used for specific feeders - Use
falsefor maximum flexibility
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:
FEEDERfor 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_endvalues - 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.
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:
| Field | Purpose | Example Value |
|---|---|---|
scenario_id | Unique identifier | "high_solar_moderate_ev" |
scenario_name | Human-readable description | "High Solar with Moderate EV Adoption" |
pv_allocation_id | Reference to PV allocation strategy | "suburban_residential_pv" |
ev_allocation_id | Reference to EV allocation strategy | "mixed_vehicle_classes" |
bess_allocation_id | Reference to BESS allocation strategy | "residential_storage" |
pv_forecasts_scenario | Name of PV forecast data set | "high_solar_2030" |
ev_forecasts_scenario | Name of EV forecast data set | "moderate_ev_uptake" |
bess_forecasts_scenario | Name of BESS forecast data set | "conservative_storage" |
demand_forecasts_scenario | Name of demand forecast data set | "baseline_growth" |
pv_forecast_level | Network level for PV forecasts | "FEEDER" |
ev_forecast_level | Network level for EV forecasts | "FEEDER" |
bess_forecast_level | Network level for BESS forecasts | "FEEDER" |
demand_forecast_level | Network level for demand forecasts | "FEEDER" |
demand_forecast_poe | Probability of Exceedance level | 50 |
Example Scenario Configuration
Here's how you might configure different scenarios by mixing and matching components:
| Scenario Name | PV Forecast | BESS Forecast | EV Forecast | Demand Forecast | Use Case |
|---|---|---|---|---|---|
conservative_growth | Low adoption | Low adoption | Moderate adoption | Low growth | Conservative planning |
accelerated_solar | High adoption | Low adoption | Moderate adoption | Moderate growth | Solar-focused future |
aemo_step_change | High adoption | High adoption | High adoption | High growth | AEMO Step Change replication |
Quality Assurance Checklist
Before executing scenarios, verify:
Data Integrity:
- All referenced
allocation_idvalues 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:
- Probability weights sum to 1.0 per feeder for each allocation
- All
demand_forecast_poevalues 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 modeled scenario years (when using year locking)
- Referenced profile IDs exist in their respective profile tables
Temporal Alignment:
- Forecast years align with intended modeling periods
- Profile
represents_yearvalues 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.