Cycle Rules

The rules behind cycles are very similar to those for states.

There are four main types of rule when creating cycles.

Rule TypeUsage
StartMarks the beginning of a cycle*
EndMarks the end of a cycle
IgnoreIgnores any matching times
MilestoneCaptures information about the asset performing actions

Of these, only the Start rule is actually required.

Rule Anatomy

Cycle rules can have the following properties…

PropertyMeaning
typeThe type of rule (start, end, ignore, milestone)
primaryThe property being matched against.
valueThe value to match with
triggerIf the rule is met at the start or end of the rule being met

Examples

The following rule starts the cycle the moment the resource enters the 'Loading' state…

{                   
   "type": "start",
   "primary": "State",					
   "value": "Loading"			
}

This is the same, but the cycle begins the moment the resource leaves the 'Loading' state…

{                   
   "type": "start",
   "primary": "State",					
   "value": "Loading",
   "trigger": "end"		
}

In both cases, without a “end” rule the cycle will end when the 'start' condition triggers again.

Ignore

Adding an Ignore rule will ensure that specific types of state are not added to any totals or analytics.

This is often used when you want to ignore certain kinds of 'noise', such as during staff breaks, changeovers and other human-related time losses.

The example below will ignore any time when the Location property starts with 'Delay_'.

{                   
	"type": "ignore",
	"primary": "Location",
	"value": "Delay_*"
}

Milestone

Milestones are statuses that are expected to be seen as part of a completed cycle.

If you have any milestones defined, a cycle can not be completed without having experienced at least one of the defined milestones.

This helps avoid recording cycles that were incomplete or caused by noise.

You can also capture data at milestones - this is very useful if you have several possible directions/routes/methods that a system might choose to use.

There are two additional properties for a milestone…

PropertyMeaning
captureThe property value to capture
asThe name of the KPI/point to capture

In the example below, our vehicles all load up on product from a single place, but unload at different areas around the site.

We can capture where they unloaded by recording the location when they reach the 'Unloading' state.

{                   
	"type": "milestone",
	"primary": "State",					
	"value": "Unloading",
	"capture": "Location",
	"as": "Destination",
        "trigger": "start"					
}