Glossary · Subscriptions

Deadband (absolute)

An absolute deadband suppresses a data change unless the new value differs from the last reported one by at least DeadbandValue, expressed in the value's own engineering units. It is configured in the DataChangeFilter with DeadbandType Absolute, and it is the cheapest way to stop sensor noise from flooding a subscription.

The comparison is against the last reported value

Not the previous sample. That matters: a value drifting by less than the deadband per sample still reports eventually, once the accumulated difference crosses the threshold, so slow trends are not lost. What is lost is the fine structure of the movement, which is exactly the intent. Status changes are reported regardless of the deadband - the filter only suppresses value changes.

Choosing the number

Set it above the noise band and below the smallest change you care about. A thermocouple reading with plus or minus 0.2 degrees of noise takes a 0.5 degree deadband and stops chattering while still resolving a real process change. If the noise band and the significant change are the same size, no deadband will help - fix the instrument or filter in the device.

Where it does not apply

A deadband is meaningful only for numeric scalar values. Booleans, strings, enumerations and structures have no distance function, and a server may reject the filter with BadDeadbandFilterInvalid or ignore it. On arrays, servers vary in whether the deadband is evaluated element-wise, so verify behaviour before relying on it for array-valued tags.

Example

A 0.5 unit absolute deadband against a noisy signal

last reported 20.0

 sample   value   |diff to last reported|   reported?   new reference
   1      20.1            0.1                 no          20.0
   2      19.9            0.1                 no          20.0
   3      20.4            0.4                 no          20.0
   4      20.6            0.6                 YES         20.6
   5      20.9            0.3                 no          20.6
   6      21.2            0.6                 YES         21.2

Six samples, two notifications. The drift still gets through; the jitter does not.
The mistake people make: Setting the deadband in the units you assume rather than the units the node reports. On a server exposing a scaled raw integer, 0.5 is half a count, not half a degree, and the filter does nothing. Read the node's EngineeringUnits and EURange, or the underlying scaling, before choosing the number.

Defined in: Part 4 - Services, DataChangeFilter; Part 8 - Data Access for engineering units and ranges.

Last verified 7 September 2026 against OPC UA 1.05.07. OPC UA Connect is an educational resource and is not affiliated with the OPC Foundation.

Free download
OPC UA Server Acceptance Test Pack
A 40-check acceptance test you run against a vendor's server before commissioning sign-off. Weighted scoring, three hard gates, and a one-page verdict for the supplier meeting.
Get the free test pack →
Free, no course, no login