DEEP DIVE · CAPABILITIES 02 & 03
Data that arrives ready — and tells you how ready.
Plant data is high-velocity, gap-ridden, unit-inconsistent, and scattered across historians and protocols. Foundation's industrial timeseries datastore and pipelines turn it into something models and agents can trust — automatically, governed by the Domain, with honesty built into every number.
- GovernedOne model of the plant governs both what the data means and how it is processed.
- HonestEvery aggregate reports how much of it was measured and how much was imputed — real count versus filled count, per bucket.
- Level 3the whole plant's reasoning stays affordable to run continuously — which is what Level 3 demands.
- Testedhundreds of committed database tests, benchmarked fill performance into the tens of millions of rows
RAGGED IN · READY OUT
In: from any source
Field protocols and plant historians via Arundo Edge, IoT hubs, REST push, and file import — batched, validated, and idempotent on the way in. Numeric, JSON, string, and boolean series are all first-class. Below: what Foundation reads today.
Connects to what your plant already runs
- Historians
Inductive Automation Ignition
- Field protocols
AMQP
EtherNet/IPIEC 61850IEC 60870-5-104DNP3HART-IP
CAN bus (J1939)- Cloud
REST APIfile import
- Data and ML platforms
Governed by the Domain, literally
Configuration is not a settings page beside the data — it is the Domain. Each sensor's resolution, gap-fill window, freshness and offline thresholds live as attributes in the graph, and editing them changes the datastore's ingestion, validation, and aggregation behavior. One model of the plant governs both what the data means and how it is processed. No drift between documentation and reality, because they are the same object.
Transformation without the plumbing
Every model input carries its own data contract — period, resolution, aggregation, imputation, unit, lookback — so the pipeline is specified per input, by the Domain, not built per project:
- Time alignment is automatic:
- every input lands on a common time axis before a model sees it.
- Units convert in-flight:
- the model asks for bar, the sensor reports psi, Foundation converts — backed by a full unit registry with aliases, compound and custom units.
- Gap-filling is the query's choice:
- processed data stores interpolated and last-value columns side by side, so each consumer picks its imputation — interpolate, hold, zero, or none — with no recomputation.
- Misconfiguration is caught, not propagated:
- resolution policies fail or flag computes whose inputs don't land on the declared grid, before a wrong number becomes a wrong decision.
- History is an API call:
- backfill and recalculation over any period, with the same contracts.
Honesty as a feature
Every aggregate reports how much of it was measured and how much was imputed — real count versus filled count, per bucket. Every query's diagnostics say which storage tier served it. When an AI recommendation cites a number, you can see exactly how solid that number is. Autonomy runs on trust, and trust runs on this.
Fast and economical at plant scale
Per-sensor continuous aggregates (minute, ten-minute, hourly, daily) with smart routing: each query is classified and served from the cheapest source that answers it correctly — a matching rollup, a blend of tiers, or on-the-fly gap-fill over raw when nothing else will do. Retention, compression, and tiering are declared policies. The result: models reading daily averages never scan raw data, and the whole plant's reasoning stays affordable to run continuously — which is what Level 3 demands.
Engineered, and provably so
The data layer is the most heavily tested part of Foundation: hundreds of committed database tests, benchmarked fill performance into the tens of millions of rows, and a dedicated suite pinning down concurrency invariants. Boring rigor, on purpose — it is the floor everything else stands on.