OPC HDA, Historical Data Access, is the OPC Classic standard for retrieving archived process data from historians and time-series databases. Where OPC DA delivers live tag values in real time, OPC HDA delivers everything that has already been recorded, with the ability to request raw archive values, interpolated points, or computed aggregates over any time range.
Last reviewed: 2026Reading time: ~8 minTopics: OPC HDA, historians, raw data, aggregates, interpolation, OPC UA HA
What is OPC HDA?
OPC HDA, Historical Data Access, is an OPC Classic standard that defines a common interface for reading and writing archived process data stored in historians, time-series databases, and other data storage systems. It allows any compliant client application to retrieve historical tag values from any compliant server, regardless of which historian product is used, without custom integration code.
OPC HDA was defined by the OPC Foundation to complement OPC DA. While OPC DA provides access to current, real-time process values, OPC HDA provides access to everything that has already been stored in a historian archive. The same plant data flows through both: OPC DA delivers it live as it happens, and OPC HDA retrieves it later for trend analysis, reporting, root cause investigation, and regulatory compliance.
Before OPC HDA, every application that needed historical data from a process historian required a custom API integration with that specific historian product. Wonderware had its own SDK, OSIsoft PI had its own, and each third-party reporting tool had to be written and maintained against all of them. OPC HDA standardized the interface so that a reporting application built to the HDA standard could connect to any HDA-compliant historian, with no custom integration code required.
OPC HDA in the OPC family: OPC HDA is one of the three OPC Classic specifications. OPC DA handles real-time data. OPC A&E handles alarms and events. OPC HDA handles historical data. All three share the same COM/DCOM foundation and Windows dependency. TOP Server implements all three on a single installation alongside OPC UA, which carries historical access capability in its Part 11 specification.
OPC DA vs OPC HDA: the right tool for the right question
Engineers new to the OPC standards sometimes ask why two separate standards exist for what feels like the same data. The answer is that the access patterns, performance requirements, and use cases for real-time and historical data are fundamentally different, and a single interface cannot serve both well.
OPC DA, Data Access
Real-time data
Returns the current value of a tag right now
Subscription model: server pushes updates when values change
One value per tag per read: the present state
Optimized for low latency, high update frequency
Client question: "What is the temperature of reactor 4 right now?"
Used by: HMI displays, SCADA systems, real-time dashboards
OPC HDA, Historical Data Access
Archived data
Returns all values stored for a tag over a specified time range
Request/response model: client specifies time range, gets data set back
Potentially thousands of values per tag per read
Optimized for bulk retrieval, aggregation, and analysis
Client question: "What was reactor 4 temperature every minute for the last 30 days?"
Used by: reporting tools, quality systems, compliance software, analytics
A SCADA system that monitors live process values uses OPC DA. A reporting tool that generates a production efficiency report for last week uses OPC HDA to pull the underlying trend data from the historian. Both can be running simultaneously against the same historian platform without interfering with each other.
The three OPC HDA read types
OPC HDA defines three distinct ways a client can request historical data. Understanding the differences is essential for configuring integrations correctly and for explaining to non-engineering stakeholders why certain queries return different results than others.
Read type 1
Raw data
Returns exactly what the historian recorded: the actual value, quality, and timestamp as stored in the archive. No calculation or estimation is performed. If the historian recorded a value at 09:03:17 and the next value at 09:03:42, a raw read returns both those exact values with their exact timestamps.
Best for
Root cause analysis and investigations where you need the exact archive content. Regulatory compliance where only actual recorded values are acceptable. Data migration and validation. Any situation where computed estimates are not permitted in place of actual measurements.
Read type 2
Interpolated data
Returns values at requested timestamps even if no actual recorded value exists at those exact times. The server estimates the value at the requested timestamp using the raw data points on either side, typically through linear interpolation between adjacent values. If you ask for the temperature every 60 seconds but the historian stored values every 30 seconds, you get exactly one value per minute regardless of the underlying sample rate.
Best for
Trend displays and charts that need a consistent time axis. Comparing multiple tags that were recorded at different rates, normalized to a common interval. Process control applications where having a useful value at every time step matters more than strict raw-data accuracy. Advanced process control and optimization calculations.
Read type 3
Aggregate data
Returns a computed summary value for each time interval rather than individual data points. The client specifies the time range, the interval length, and the aggregate function (average, minimum, maximum, total, count, and others). The server performs the calculation across all raw data in each interval and returns one result per interval. A one-hour average across 24 hours returns 24 values, not thousands of raw points.
Best for
Operational reporting and dashboards where raw granularity is not needed. KPI and OEE calculations. Shift reports, batch summaries, and daily production totals. Any scenario where data volume reduction is required without losing the statistical shape of what happened.
OPC HDA aggregates: the standard calculation types
OPC HDA defines a set of standard aggregate functions that every compliant server is expected to support. This standardization is what allows a reporting tool to request an average without knowing which historian is on the other end. The aggregate types defined in the specification and carried forward into OPC UA historical access include:
Aggregate
What it returns
Typical use case
Average
The arithmetic mean of all good raw values in the interval. Bad-quality values are excluded from the calculation.
Shift production averages, temperature trend summaries, energy consumption reports
Time average
A time-weighted average that accounts for the duration each value was held before it changed. More accurate than a simple average for step-change variables.
Utility billing calculations, environmental monitoring where duration matters, flow-weighted averages
Minimum
The lowest good raw value in the interval, with the timestamp of the interval start.
Equipment health monitoring, alarm analysis, batch quality review
Maximum
The highest good raw value in the interval, with the timestamp of the interval start.
The lowest good raw value in the interval, with the exact timestamp when that minimum occurred.
Root cause analysis requiring when as well as what the minimum was
Maximum actual time
The highest good raw value in the interval, with the exact timestamp when that maximum occurred.
Peak detection with time context, alarm correlation
Count
The number of good raw values recorded in the interval.
Data completeness verification, audit trail confirmation, sampling rate validation
Total
The sum of all good raw values in the interval.
Production totals, energy totals, batch quantity accumulation
Interpolative
A calculated value at the start of each interval using interpolation between the nearest good data points.
Normalizing data to a standard time base for comparison across tags with different sample rates
Quality handling in aggregates: OPC HDA aggregates exclude bad-quality values from calculations by default. If an interval contains a mix of good and bad data, the aggregate is computed from the good values only, and the result carries a quality code indicating that some values were excluded. This ensures that a sensor failure or communication interruption during an interval does not silently corrupt an aggregate calculation without the client knowing.
Where OPC HDA is used in practice
OPC HDA serves a wide range of applications across industries wherever archived process data needs to be retrieved, analyzed, or reported in a standardized way.
📊
Operational reporting and KPIs
Shift reports, daily production summaries, and OEE dashboards all depend on aggregate reads from the historian. OPC HDA allows reporting tools to retrieve hourly averages, batch totals, and equipment utilization figures from any historian without custom integration per historian platform.
🔍
Root cause analysis and investigation
When a process deviation occurs, engineers need raw historical data around the time of the event, often spanning multiple tags across different time windows. OPC HDA raw reads retrieve the exact archive content for investigation without disturbing the live system or requiring database access.
📋
Regulatory compliance and audit trails
Pharmaceutical, food and beverage, and chemical industries operate under regulations that require demonstration that process parameters were within specification during production. OPC HDA provides standardized, auditable access to the historian record for batch records, electronic batch reports, and regulatory submissions.
📈
Trend analysis and process optimization
Long-term trend analysis over weeks, months, or years requires pulling large volumes of historical data, typically as aggregates to manage data volume. OPC HDA allows analytics applications to retrieve time-averaged trends for process optimization without direct historian database access.
⚡
Energy management and utilities billing
Time-weighted averages and total aggregates are used for energy consumption accounting, utility billing verification, and environmental monitoring. OPC HDA's time-average aggregate is specifically designed for these calculations where duration, not just value, matters.
🔗
Historian-to-historian migration and bridging
When migrating from one historian platform to another, OPC HDA provides a standardized read interface for extracting historical data from the source historian without requiring direct database access. TOP Server's HDA support makes it possible to pull data from one historian and feed it into another through a standard interface.
Historian platforms and OPC HDA compatibility
OPC HDA is supported by all major industrial process historian products. The standard was designed for exactly this interoperability: a reporting application that supports OPC HDA can connect to any of these historians through the same interface, with no platform-specific integration code.
AVEVA PI System
Previously OSIsoft PI
AVEVA Historian
Previously Wonderware
Honeywell Uniformance PHD
Honeywell
Aspen InfoPlus.21
AspenTech
eDNA Historian
Energy ICT
InfluxDB (via gateway)
InfluxData
Yokogawa Exaquantum
Yokogawa
GE Proficy Historian
GE Digital
ABB 800xA Historian
ABB
TOP Server HDA support: TOP Server implements OPC HDA on the same installation as OPC DA, OPC UA, and OPC A&E. This means a historian that exposes data through TOP Server's HDA interface can serve both real-time DA clients and historical HDA clients simultaneously, from the same server configuration. No separate HDA server software or additional configuration is required.
OPC HDA architecture: historian, HDA server, and client applications
OPC HDA vs OPC UA historical access
OPC UA carries historical data access capability in its Part 11 specification, known as UA Historical Access (UA HA). Like OPC HDA, UA HA supports raw, interpolated, and aggregate reads. Unlike OPC HDA, it runs over TCP/IP, works cross-platform, and has no DCOM dependency.
The practical relationship between the two is the same as the relationship between OPC DA and OPC UA generally: OPC HDA remains in active use across a large installed base of existing historian integrations. OPC UA historical access is the right architecture for new integrations, for cross-network deployments where DCOM is problematic, and for any environment where Linux-based or cloud-based clients need historian access.
Most historian vendors now expose both OPC HDA and OPC UA historical access interfaces simultaneously. Applications being built today should target UA historical access. Applications that are already integrated via OPC HDA and working reliably have no operational reason to migrate until other factors, such as a DCOM configuration problem or a platform modernization project, create a natural transition point.
Cogent DataHub as an HDA bridge: Cogent DataHub can bridge OPC HDA data to other protocols, including MQTT and OPC UA, and can tunnel OPC HDA connections across firewalls using the same DHTP tunneling mechanism it uses for OPC DA and UA. This allows HDA data from a historian to be accessed from IT networks or cloud environments without DCOM configuration, using the same architecture engineers already use for real-time OPC DA tunneling.
Frequently asked questions
What is the difference between raw and interpolated HDA reads?+−
A raw read returns exactly what the historian stored: the actual values at the exact timestamps they were recorded. If your historian recorded values at irregular intervals because it uses exception-based compression, a raw read reflects that irregularity. If the historian stored a value at 10:03:47 and the next at 10:04:12, those are the timestamps you get back.
An interpolated read returns values at the timestamps you specify, regardless of when the historian actually recorded them. If you ask for values every 60 seconds, you get one value per minute, estimated by interpolating between the nearest raw data points on either side. This is useful for generating consistent time-series data for trend displays or for normalizing tags recorded at different rates to a common time base.
Use raw reads when the actual recorded data matters, for example in compliance reporting or root cause investigation. Use interpolated reads when you need a regular time axis and estimated values are acceptable.
How does OPC HDA handle bad-quality data in aggregate calculations?+−
OPC HDA specifies that bad-quality values are excluded from aggregate calculations by default. If an interval contains a mix of good and bad values, the aggregate function is computed only from the good values. The result carries a quality code indicating that some values in the interval were excluded, so the client knows the aggregate was computed from a subset of the available data.
The treatment of uncertain-quality values is server-dependent. Each historian's OPC HDA server documentation should state how it handles uncertain values in aggregates. Some servers include them in calculations; others treat them as bad. For compliance-sensitive applications, it is worth verifying this behavior against the specific historian platform in use.
Can OPC HDA write data back to the historian, or is it read-only?+−
OPC HDA includes optional write-back interfaces that allow clients to insert, modify, or delete historical data values in the historian archive. These are optional interfaces: not all OPC HDA servers implement them, and write access typically requires specific authorization.
Write-back capability is used in scenarios such as inserting manually entered lab results into the process historian archive, correcting erroneous values caused by a known instrument fault, or loading historical data from one historian into another during a migration. It should be implemented carefully, as modifying historian records has compliance implications in regulated industries.
Is OPC HDA still relevant or has OPC UA replaced it?+−
OPC HDA remains in active use across a large installed base of historian integrations. The vast majority of industrial plants running process historians have applications integrated via OPC HDA that are working reliably and have no operational reason to migrate.
OPC UA Part 11 (Historical Access) provides equivalent functionality over TCP/IP without DCOM, and is the correct choice for new integrations. But the existence of OPC UA historical access does not obsolete working OPC HDA integrations any more than OPC UA obsoleted working OPC DA connections. The two coexist in the same environment, and most major historian vendors expose both interfaces simultaneously to serve both legacy and modern clients.
Does TOP Server implement OPC HDA for the devices it connects to?+−
TOP Server supports OPC HDA on the same installation as OPC DA, OPC UA, and OPC A&E. This means TOP Server can expose historical data to OPC HDA clients for any device it has a driver for. TOP Server's Local Historian plug-in collects and stores tag values locally, and the OPC HDA interface provides client access to that stored data.
This is particularly useful in scenarios where devices do not have their own historian, or where you want a standardized HDA interface to device-level data without deploying a full enterprise historian. It is also useful as a data collection point at the edge, buffering and storing data locally with HDA access, before forwarding aggregated or selected values to an enterprise historian upstream.
What is the difference between time average and simple average aggregates?+−
A simple average (the "Average" aggregate in OPC HDA) adds up all the raw values in the interval and divides by the number of values. Each value has equal weight regardless of how long it was held before the next change.
A time-weighted average (the "Time Average" aggregate) weights each value by how long it was held. If a flow rate was 100 units for 55 seconds and 200 units for 5 seconds, the simple average is 150. The time-weighted average is closer to 108, because the 100-unit value was held for most of the interval.
Time-weighted averages are more accurate for physical quantities that do not change instantaneously, which describes most process variables. They are required for utility billing calculations and certain environmental reporting standards. Simple averages are appropriate for counting-based variables or when all samples have equal weight regardless of duration.
Need OPC HDA connectivity for your historian?
Software Toolbox has supported OPC HDA integrations across every major historian platform since the standard was published. Whether you are connecting a reporting tool to an existing historian, migrating historian data, or building an edge collection architecture, we can help.