Variables & Data Points

Variable Concepts

Understand variable properties, kinds, and the definition-instance pattern.

Variables are central to data acquisition in Fleetera. They represent measurable quantities on your assets — anything from power output and temperature to status flags and counters.

Variable kinds

Fleetera supports three kinds of variables:

Raw variables

Raw variables represent data that comes directly from physical equipment via a connector. The value is read from an external data source such as an OPC UA server or Modbus device.

Examples: temperature, pressure, flow_rate, vibration, voltage

Raw variables need a binding to specify which data point in the connector they read from.

Derived variables

Derived variables hold a value that is computed rather than read from equipment. They do not read data from connectors, so they never carry a binding.

The kind is retained for variables that already exist on your assets and for variables imported from a template file. Fleetera does not provide an in-product editor for authoring the calculation behind a derived variable — to compute a new value from your telemetry, define a KPI instead. A KPI definition covers the same ground with more: it applies to every asset in a population at once, runs on a schedule, records input completeness, and versions every change.

KPI variables

KPI variables hold the output of a KPI definition. They are created automatically on every matched asset when a KPI definition is enabled — you never create them by hand — and their values are computed on schedule by the Fleetera engine.

Examples: bess_rte_daily (daily round-trip efficiency), avg_active_power

Key differences between kinds

RawDerivedKPI
Value sourceExternal data source via a bindingComputed — no connector, no bindingTenant-level KPI definition computed by the engine
CreatedManually or from a templateFrom a templateAutomatically, when a KPI definition is enabled

Variable properties

PropertyDescription
KeyMachine-readable identifier in snake_case format (e.g., active_power). Auto-normalized from the name. Unique within the asset or template version.
NameHuman-readable label (e.g., "Active Power").
Kindraw, derived, or kpi.
Data TypeThe value type — Float, Double, Int32, UInt32, Boolean, String, or DateTime. See variable types.
Unit CodeOptional unit of measurement (e.g., kW, °C, rpm, %).
EnabledWhether the variable is actively collecting data. Can be toggled without deleting the variable.

Definitions vs. instances

Fleetera uses a template-instance pattern for variables:

Variable definitions (template-level)

Variable definitions live on asset templates. They act as blueprints that specify what variables an asset of that template type should have. Definitions include additional properties:

  • Sampling hint (ms) — a suggested collection interval (minimum 100ms)
  • Is index — marks the variable as an index or primary key column
  • Description — explanatory text about the variable

Variable instances (asset-level)

Variable instances live on individual assets. They are the concrete variables that hold actual data. Instances are created in one of two ways:

  • From a template — when you instantiate an asset from a template, all variable definitions are automatically cloned as instances. The instance retains a link (varDefId) back to its source definition.
  • Manually — you can add variables directly to any asset without a template.

Key differences

Definition (template)Instance (asset)
LocationTemplate versionIndividual asset
PurposeBlueprintActive data point
Sampling hintYesNo (controlled at binding level)
Is indexYesNo
Enabled toggleNoYes
Binding supportNoYes

Key normalization

Variable keys are automatically normalized to snake_case:

  • "Active Power" becomes active_power
  • "Flow Rate (m³/h)" becomes flow_rate_m_h
  • Spaces become underscores, special characters are removed, everything is lowercased

Keys must match the pattern ^[a-z0-9]+(_[a-z0-9]+)*$ and be unique within their scope (template version or asset).

On this page