Skip to main content

Documentation Index

Fetch the complete documentation index at: https://inorbitinc.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

KPI (Key Performance Indicator) definitions specify how to aggregate data from missions and incidents into meaningful metrics. These metrics help track fleet performance over time—mission success rates, area covered, incident frequency, and more.
KPI definitions are only supported at the account level.

When to Use

  • Performance dashboards: Display aggregated metrics in mission widgets
  • Success tracking: Calculate mission completion and success rates
  • Utilization metrics: Track active robots, missions per day, etc.
  • Custom aggregations: Build fleet-specific metrics from mission data fields

Spec Fields

FieldTypeRequiredDescription
labelstringYesHuman-readable label for dashboards.
unitstringNoUnit of measurement (e.g., "%", "meters", "seconds").
objectTypestringYesObject type to aggregate: "mission" or "incident".
fieldstringYesField to aggregate.
aggregationstringYesAggregation function (see below).
intervalMinutesnumberNoTime window for aggregation (e.g., 1440 for daily).
secondAggregationstringNoSecondary aggregation applied after the first.
filtersarrayNoFilters to apply before aggregation.

Aggregation Functions

FunctionDescription
SUMSum of all values
AVGAverage of all values
MINMinimum value
MAXMaximum value
COUNTCount of records
COUNT_DISTINCTCount of unique values

Filter Operators

OperatorDescription
=Equals
!=Not equals
>Greater than
<Less than
>=Greater than or equal
<=Less than or equal

Available Fields

Common Fields (all object types)

FieldDescription
idObject ID
entityIdRobot/entity ID
entityTypeEntity type
typeObject type
startTimeStart timestamp
endTimeEnd timestamp
data.labelObject label
data.durationDuration in milliseconds
data.estimatedDistanceEstimated distance covered

Mission-Specific Fields

FieldDescription
data.stateMission state string
data.statusMission status (ok, error, warn)
data.isSuccessBoolean success flag
data.isSuccessNumNumeric success (1 or 0) — useful for AVG
data.incidentsCountNumber of incidents during mission
data.completedPercentCompletion percentage (0-1)
data.data_${key}Custom mission data fields

Examples

Mission Success Rate

kind: KpiDefinition
apiVersion: v0.1
metadata:
  scope: account/<accountId>
  id: "mission-success-rate"
spec:
  label: "Mission Success Rate"
  unit: "%"
  objectType: "mission"
  field: "data.isSuccessNum"
  aggregation: "AVG"

Total Area Covered

kind: KpiDefinition
apiVersion: v0.1
metadata:
  scope: account/<accountId>
  id: "total-area-covered"
spec:
  label: "Total Area Covered"
  unit: "m²"
  objectType: "mission"
  field: "data.data_Area Covered"
  aggregation: "SUM"
  filters:
    - field: "data.state"
      operator: "="
      value: "completed"

Completed Missions Count

kind: KpiDefinition
apiVersion: v0.1
metadata:
  scope: account/<accountId>
  id: "completed-missions"
spec:
  label: "Completed Missions"
  objectType: "mission"
  field: "id"
  aggregation: "COUNT"
  filters:
    - field: "data.state"
      operator: "="
      value: "completed"

Average Active Robots Per Day

Uses two-stage aggregation: count unique robots per day, then average across days.
kind: KpiDefinition
apiVersion: v0.1
metadata:
  scope: account/<accountId>
  id: "active-robots-per-day"
spec:
  label: "Avg Active Robots"
  objectType: "mission"
  field: "entityId"
  aggregation: "COUNT_DISTINCT"
  intervalMinutes: 1440  # 24 hours
  secondAggregation: "AVG"
  filters:
    - field: "data.state"
      operator: "="
      value: "completed"

Average Mission Duration

kind: KpiDefinition
apiVersion: v0.1
metadata:
  scope: account/<accountId>
  id: "avg-mission-duration"
spec:
  label: "Avg Mission Duration"
  unit: "min"
  objectType: "mission"
  field: "data.duration"
  aggregation: "AVG"
  filters:
    - field: "data.state"
      operator: "="
      value: "completed"

Incident Count by Severity

kind: KpiDefinition
apiVersion: v0.1
metadata:
  scope: account/<accountId>
  id: "critical-incidents"
spec:
  label: "Critical Incidents"
  objectType: "incident"
  field: "id"
  aggregation: "COUNT"
  filters:
    - field: "severity"
      operator: "="
      value: "SEV 0"