Offshore oil wells: FoxALM on real field data
Sensor data from offshore oil wells, one sample per second, with every undesirable event labelled by experts. We ran the full FoxALM pipeline across all ten event classes. Every check we wrote from those labels before the first run passed.
The wells
Sensor data from offshore oil wells operated by a major oil company off the coast of Brazil, recorded at one sample per second, with undesirable events labelled by experts: from normal operation to severe slugging, flow instability and spurious safety-valve closure. We took one well record per event class, chosen by a fixed rule written down before selection, and used real well data only.
The records carry no alarm log, so alarms were generated from each sensor’s normal behaviour. Every event class was run three ways: raw thresholds, an ISA-18.2 on-delay filter, and a deadband. Ten classes, three variants, thirty runs, all on a single pipeline version.
What we checked
- Complete customer deliverables on all thirty runs, including with no HAZOP, DCS or SIS inputs supplied, the way a first engagement often starts.
- For all seven level-excursion classes, the fault detected inside the labelled window, with the detecting alarms at or after the labelled onset.
- Both dynamics faults, severe slugging and flow instability, identified by oscillation analysis rather than thresholds.
- The spurious safety-valve closure captured as a precursor followed by its consequence.
- Frozen and missing sensor channels surfaced in the customer output instead of silently dropped.
Hundreds of alarms, one phenomenon
The two dynamics faults are where alarm rationalization earns its keep.
What real data taught us
Real field data at one sample per second surfaced three defects in FoxALM that the simulated benchmark had not: a limit in how finely oscillation periods were measured, a fault in the KPI trend chart, and a crash on heavily rationalized alarm sets. All three were fixed before any result was published.
We also corrected our own test design in the open. We wrote 44 checks; two asked for fault detection on the fault-free well, which has no fault to detect. They were removed before publication and the count stated as 42.
What this did not test
The oscillation check confirms detection, not specificity: on the fault-free well, most sensors were also flagged as oscillating. Several analyses ran on every instance but were not checked against the labels here; their correctness rests on their written specifications and our standing conformance checks.
We state limits because a claim you can’t check is a claim you shouldn’t rely on.
Reproducible
Every input file is pinned by SHA-256. Each of the thirty runs has a committed manifest, all from a single auditable pipeline version.