DelayEventCoordinator

Note

This campaign class and associated parameters are currently in beta release and have not yet been fully tested.

The DelayEventCoordinator coordinator class insert delays into coordinator event chains. This campaign event is typically used with BroadcastCoordinatorEvent to broadcast events after the delays.

Note

Parameters are case-sensitive. For Boolean parameters, set to 1 for true or 0 for false. Minimum, maximum, or default values of “NA” indicate that those values are not applicable for that parameter.

EMOD does not use true defaults; that is, if the dependency relationships indicate that a parameter is required, you must supply a value for it. However, many of the tools used to work with EMOD will use the default values provided below.

JSON does not permit comments, but you can add “dummy” parameters to add contextual information to your files.

The table below describes all possible parameters with which this class can be configured. The JSON example that follows shows one potential configuration.

Parameter

Data type

Minimum

Maximum

Default

Description

Example

Coordinator_Name

string

NA

NA

DelayEventCoordinator

The unique identifying coordinator name, which is useful with the output report, ReportCoordinatorEventRecorder.csv.

{
    "Event_Coordinator_Config": {
        "Coordinator_Name": "DelayEventCoordinator_10",
        "Delay_Complete_Event": "Completion_Delayed_Coordinator_Event_1",
        "Delay_Period_Distribution": "FIXED_DURATION",
        "Delay_Period_Fixed": 25,
        "Duration": 100,
        "Start_Trigger_Condition_List": [
            "Coordinator_Event_1"
        ],
        "Stop_Trigger_Condition_List": [],
        "class": "DelayEventCoordinator"
    },
    "Event_Name": "Delay",
    "Nodeset_Config": {
        "class": "NodeSetAll"
    },
    "Start_Day": 1,
    "Target_Demographic": "Everyone",
    "class": "CampaignEvent",
    "comment": "Delay"
}

Delay_Complete_Event

string

NA

NA

NA

The delay completion event to be included in the ReportCoordinatorEventRecorder.csv output report, upon completion of the delay period.

{
    "Event_Coordinator_Config": {
        "Coordinator_Name": "DelayEventCoordinator_10",
        "Delay_Complete_Event": "Completion_Delayed_Coordinator_Event_1",
        "Delay_Distribution": "GAUSSIAN_DURATION",
        "Delay_Period_Mean": 25,
        "Delay_Period_Std_Dev": 5,
        "Duration": 100,
        "Start_Trigger_Condition_List": [
            "Coordinator_Event_1"
        ],
        "Stop_Trigger_Condition_List": [],
        "class": "DelayEventCoordinator"
    },
    "Event_Name": "Delay",
    "Nodeset_Config": {
        "class": "NodeSetAll"
    },
    "Start_Day": 1,
    "Target_Demographic": "Everyone",
    "class": "CampaignEvent",
    "comment": "Delay"
}

Delay_Period_Constant

float

0

3.40282E+38

6

The delay period to use for all interventions when Delay_Period_Distribution is set to CONSTANT_DISTRIBUTION.

{
    "Delay_Period_Distribution": "CONSTANT_DISTRIBUTION",
    "Delay_Period_Constant": 8
}

Delay_Period_Distribution

enum

NA

NA

NOT_INITIALIZED

The distribution type to use for assigning the delay period for distributing interventions. Each assigned value is a random draw from the distribution.

Possible values are:

NOT_INITIALIZED

No distribution set.

CONSTANT_DISTRIBUTION

Use the same value for each individual. Set Delay_Period_Constant.

UNIFORM_DISTRIBUTION

Use a uniform distribution with a given minimum and maximum. Set Delay_Period_Max and Delay_Period_Min.

GAUSSIAN_DISTRIBUTION

The distribution is Gaussian (or normal). Set Delay_Period_Gaussian_Mean and Delay_Period_Gaussian_Std_Dev.

EXPONENTIAL_DISTRIBUTION

The distribution is exponential with a given mean. Set Delay_Period_Exponential.

WEIBULL_DISTRIBUTION

Use a Weibull distribution with a given shape and scale. Set Delay_Period_Kappa and Delay_Period_Lambda.

LOG_NORMAL_DISTRIBUTION

Use a log-normal distribution with a given mean and standard deviation of the natural log. Set Delay_Period_Log_Normal_Mu and Delay_Period_Log_Normal_Sigma.

POISSON_DISTRIBUTION

Use a Poisson distribution with a given mean. Set Delay_Period_Poisson_Mean.

DUAL_CONSTANT_DISTRIBUTION

Use a distribution where some individuals are set to a value of zero and the rest to a given value. Set Delay_Period_Proportion_0 and Peak_2_Value. This distribution does not use the parameters set for CONSTANT_DISTRIBUTION.

DUAL_EXPONENTIAL_DISTRIBUTION

Use two exponential distributions with given means. Set Delay_Period_Mean_1, Delay_Period_Mean_2, and Delay_Period_Proportion_1. This distribution does not use the parameters set for EXPONENTIAL_DISTRIBUTION.

{
    "Delay_Period_Distribution": "GAUSSIAN_DISTRIBUTION",
    "Delay_Period_Gaussian_Mean": 8,
    "Delay_Period_Gaussian_Std_Dev": 1.5
}

Delay_Period_Exponential

float

0

3.40282E+38

6

The mean of the delay period when Delay_Period_Distribution is set to EXPONENTIAL_DISTRIBUTION.

{
    "Delay_Period_Distribution": "EXPONENTIAL_DISTRIBUTION",
    "Delay_Period_Exponential": 4.25
}

Delay_Period_Gaussian_Mean

float

0

3.40282E+38

6

The mean of the delay period when Delay_Period_Distribution is set to GAUSSIAN_DISTRIBUTION.

{
    "Delay_Period_Distribution": "GAUSSIAN_DISTRIBUTION",
    "Delay_Period_Gaussian_Mean": 8,
    "Delay_Period_Gaussian_Std_Dev": 1.5
}

Delay_Period_Gaussian_Std_Dev

float

1.17549E-38

3.40282E+38

1

The standard deviation of the delay period when Delay_Period_Distribution is set to GAUSSIAN_DISTRIBUTION.

{
    "Delay_Period_Distribution": "GAUSSIAN_DISTRIBUTION",
    "Delay_Period_Gaussian_Mean": 8,
    "Delay_Period_Gaussian_Std_Dev": 1.5
}

Delay_Period_Kappa

float

1.17549E-38

3.40282E+38

1

The shape value for the delay period when Delay_Period_Distribution is set to WEIBULL_DISTRIBUTION.

{
    "Delay_Period_Distribution": "WEIBULL_DISTRIBUTION",
    "Delay_Period_Kappa": 0.9,
    "Delay_Period_Lambda": 1.5
}

Delay_Period_Lambda

float

1.17549E-38

3.40282E+38

1

The scale value for the delay period when Delay_Period_Distribution is set to WEIBULL_DISTRIBUTION.

{
    "Delay_Period_Distribution": "WEIBULL_DISTRIBUTION",
    "Delay_Period_Kappa": 0.9,
    "Delay_Period_Lambda": 1.5
}

Delay_Period_Log_Normal_Mu

float

-3.40282e+38

3.40282E+38

6

The mean of the natural log of the delay period when Delay_Period_Distribution is set to LOG_NORMAL_DISTRIBUTION.

{
    "Delay_Period_Distribution": "LOG_NORMAL_DISTRIBUTION",
    "Delay_Period_Log_Normal_Mu": 9,
    "Delay_Period_Log_Normal_Sigma": 2
}

Delay_Period_Log_Normal_Sigma

float

-3.40282e+38

3.40282E+38

1

The standard deviation of the natural log of the delay period when Delay_Period_Distribution is set to LOG_NORMAL_DISTRIBUTION.

{
    "Delay_Period_Distribution": "LOG_NORMAL_DISTRIBUTION",
    "Delay_Period_Log_Normal_Mu": 9,
    "Delay_Period_Log_Normal_Sigma": 2
}

Delay_Period_Max

float

0

3.40282E+38

1

The maximum delay period when Delay_Period_Distribution is set to UNIFORM_DISTRIBUTION.

{
    "Delay_Period_Distribution": "UNIFORM_DISTRIBUTION",
    "Delay_Period_Min": 2,
    "Delay_Period_Max": 7
}

Delay_Period_Mean_1

float

1.17549E-38

3.40282E+38

1

The mean of the first exponential distribution when Delay_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.

{
    "Delay_Period_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
    "Delay_Period_Mean_1": 4,
    "Delay_Period_Mean_2": 12,
    "Delay_Period_Proportion_1": 0.2
}

Delay_Period_Mean_2

float

1.17549E-38

3.40282E+38

1

The mean of the second exponential distribution when Delay_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.

{
    "Delay_Period_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
    "Delay_Period_Mean_1": 4,
    "Delay_Period_Mean_2": 12,
    "Delay_Period_Proportion_1": 0.2
}

Delay_Period_Min

float

0

3.40282E+38

0

The minimum delay period when Delay_Period_Distribution is set to UNIFORM_DISTRIBUTION.

{
    "Delay_Period_Distribution": "UNIFORM_DISTRIBUTION",
    "Delay_Period_Min": 2,
    "Delay_Period_Max": 7
}

Delay_Period_Peak_2_Value

float

0

3.40282E+38

1

The delay period value to assign to the remaining interventions when Delay_Period_Distribution is set to DUAL_CONSTANT_DISTRIBUTION.

{
    "Delay_Period_Distribution": "DUAL_CONSTANT_DISTRIBUTION",
    "Delay_Period_Proportion_0": 0.25,
    "Delay_Period_Peak_2_Value": 5
}

Delay_Period_Poisson_Mean

float

0

3.40282E+38

6

The mean of the delay period when Delay_Period_Distribution is set to POISSON_DISTRIBUTION.

{
    "Delay_Period_Distribution": "POISSON_DISTRIBUTION",
    "Delay_Period_Poisson_Mean": 5
}

Delay_Period_Proportion_0

float

0

1

1

The proportion of interventions to assign a value of zero delay when Delay_Period_Distribution is set to DUAL_CONSTANT_DISTRIBUTION.

{
    "Delay_Period_Distribution": "DUAL_CONSTANT_DISTRIBUTION",
    "Delay_Period_Proportion_0": 0.25,
    "Delay_Period_Peak_2_Value": 5
}

Delay_Period_Proportion_1

float

0

1

1

The proportion of interventions in the first exponential distribution when Delay_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION.

{
    "Delay_Period_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
    "Delay_Period_Mean_1": 4,
    "Delay_Period_Mean_2": 12,
    "Delay_Period_Proportion_1": 0.2
}

Duration

float

-1

3.40282e+38

-1

The number of days from when the delay event coordinator was created by the campaign event. Once the number of days has passed, the delay event coordinator will unregister for events and expire. The default value of ‘-1’ = never expire.

{
    "Event_Coordinator_Config": {
        "Coordinator_Name": "DelayEventCoordinator_10",
        "Delay_Complete_Event": "Completion_Delayed_Coordinator_Event_1",
        "Delay_Period_Distribution": "FIXED_DURATION",
        "Delay_Period_Fixed": 25,
        "Duration": 100,
        "Start_Trigger_Condition_List": [
            "Coordinator_Event_1"
        ],
        "Stop_Trigger_Condition_List": [],
        "class": "DelayEventCoordinator"
    },
    "Event_Name": "Delay",
    "Nodeset_Config": {
        "class": "NodeSetAll"
    },
    "Start_Day": 1,
    "Target_Demographic": "Everyone",
    "class": "CampaignEvent"
}

Start_Trigger_Condition_List

array of strings

NA

NA

NA

The start trigger event condition list contains events defined in the Custom_Coordinator_Events config parameter that will trigger to start a new delay. If the delay event coordinator has already been triggered and is currently waiting for the duration of a delay, it will then ignore a new delay event. The list cannot be empty.

{
    "Event_Coordinator_Config": {
        "Coordinator_Name": "DelayEventCoordinator_10",
        "Delay_Complete_Event": "Completion_Delayed_Coordinator_Event_1",
        "Delay_Period_Distribution": "FIXED_DURATION",
        "Delay_Period_Fixed": 25,
        "Duration": 100,
        "Start_Trigger_Condition_List": [
            "Coordinator_Event_1"
        ],
        "Stop_Trigger_Condition_List": [],
        "class": "DelayEventCoordinator"
    },
    "Event_Name": "Delay",
    "Nodeset_Config": {
        "class": "NodeSetAll"
    },
    "Start_Day": 1,
    "Target_Demographic": "Everyone",
    "class": "CampaignEvent",
    "comment": "Delay"
}

Stop_Trigger_Condition_List

array of strings

NA

NA

NA

The stop trigger event condition list contains events defined in the Custom_Coordinator_Events config parameter that will trigger to stop a delay period, but does not stop the delay event coordinator. The event is not broadcast.

{
    "Event_Coordinator_Config": {
        "Coordinator_Name": "DelayEventCoordinator_10",
        "Delay_Complete_Event": "Completion_Delayed_Coordinator_Event_1",
        "Delay_Period_Distribution": "FIXED_DURATION",
        "Delay_Period_Fixed": 25,
        "Duration": 100,
        "Start_Trigger_Condition_List": [
            "Coordinator_Event_1"
        ],
        "Stop_Trigger_Condition_List": [],
        "class": "DelayEventCoordinator"
    },
    "Event_Name": "Delay",
    "Nodeset_Config": {
        "class": "NodeSetAll"
    },
    "Start_Day": 1,
    "Target_Demographic": "Everyone",
    "class": "CampaignEvent",
    "comment": "Delay"
}
{
  "Events": [
    {
      "comment": "Trigger to start Delay",
      "class": "CampaignEvent",
      "Start_Day": 2,
      "Nodeset_Config": {
        "class": "NodeSetAll"
      },
      "Event_Coordinator_Config": {
        "class": "BroadcastCoordinatorEvent",
        "Coordinator_Name": "Coordnator_1",
        "Cost_To_Consumer": 10,
        "Broadcast_Event": "Coordinator_Event_1"
      }
    },
    {
      "comment": "restart Delay",
      "class": "CampaignEvent",
      "Start_Day": 10,
      "Nodeset_Config": {
        "class": "NodeSetAll"
      },
      "Event_Coordinator_Config": {
        "class": "BroadcastCoordinatorEvent",
        "Coordinator_Name": "Coordnator_1",
        "Cost_To_Consumer": 10,
        "Broadcast_Event": "Coordinator_Event_1"
      }
    },
    {
      "comment": "Delay",
      "Event_Coordinator_Config": {
        "class": "DelayEventCoordinator",
        "Coordinator_Name": "DelayEventCoordinator_10",
        "Start_Trigger_Condition_List": [
          "Coordinator_Event_1"
        ],
        "Stop_Trigger_Condition_List": [],
        "Duration": 100,
        "Delay_Period_Distribution": "CONSTANT_DISTRIBUTION",
        "Delay_Complete_Event": "Completion_Delayed_Coordinator_Event_1",
        "Delay_Period_Constant": 25
      },
      "Event_Name": "Delay",
      "Nodeset_Config": {
        "class": "NodeSetAll"
      },
      "Start_Day": 1,
      "Target_Demographic": "Everyone",
      "class": "CampaignEvent"
    }
  ],
  "Use_Defaults": 1
}