The AI is never asked “what is wrong with this machine?”. It only sees a machine once deterministic rules have found an event, and then it answers a scoped question: which of these known causes, which of these checks, how sure. Code has the final word. This keeps decisions fast, explainable and safe to show a technician.
The pipeline
- Rules run first.
Every signal in the window is profiled against its own baseline: how far it moved (z-score), when it started (onset), whether it left its normal band, froze, spiked or started hunting. Signals are mapped to roles (pressure, feedwater flow, DC bus, position error…) from their names, so the same rules work on any customer’s tag names. The rules decide whether there is an event at all, classify it, set a severity floor and rank the family’s candidate causes by how well each one’s expected evidence matches.
- The AI gets a scoped question.
Only if there is an event: a fast model receives a canonical state string and a fixed set of choices (event kinds, the candidate cause ids, their check ids) and must pick from them with confidences, in about a second. Anything outside the choices, below the confidence threshold, or late is discarded and the rules’ answer stands.
- Policy and safety have the final veto.
A safety-critical signal out of band (low water, flame loss, overpressure) forces severity to critical and blocks “normal”. “No action needed” needs the rules and a confident AI to agree. Safety-related causes the data supports are never dropped. Checks carry their safety level (lock out / tag out, qualified personnel), and wording that suggests bypassing a protective device is removed.
- Everything is logged and learns.
Each decision stores the state, the rules’ answer, the AI’s answer, the policy and any vetoes, with the engine, catalogue and state versions. When a technician confirms the actual cause, that label scores rules against AI per family, site and industry, and is the training set for a small dedicated classifier that will answer the same questions.
How it scales
| Adding | What changes | Code changes |
|---|---|---|
| A new site | Nothing: the same catalogue applies. Optional site policy (thresholds, AI on/off, notify level). | None |
| A new industry | An industry policy with stricter or looser thresholds (pharma and chemicals require more confidence before “normal”). | None |
| A new customer tag naming | Role patterns map names like FW_FLOW or feed_water_gpm to the same role. | A pattern, if a name is unusual |
| A new equipment family | A catalogue entry: hypotheses with their expected evidence, checks with safety levels, critical roles. | Data, reviewed by an engineer |
| A trained model | Answers the same questions on the same state strings; promoted per question only when it beats the current answer on confirmed outcomes. | Swap the stage-2 answerer |
Questions it answers
| Question | Choices | Version |
|---|---|---|
event_kind | fault, process_upset, sensor_fault, normal, insufficient_data | q1 |
cause_rank | hypothesis ids of the machine’s family (ranked, up to 3) | q1 |
next_check | check ids listed under the chosen causes | q1 |
severity | info, watch, act, critical | q1 |
Equipment families, causes and checks
The catalogue below is served live by GET /v1/decision-engine. Each cause lists the signal evidence the rules look for; each check has a safety level. This catalogue is reviewed and extended by InduQT’s engineers as confirmed outcomes come in.
Boilers & burners
Safety-critical: level down, flame down, pressure up.
| Cause | Evidence the rules look for | Checks |
|---|---|---|
Feedwater supply problem (pump, suction, deaerator, feed valve) (safety)feedwater_supply | feedwater flow down; level down; pressure down | Check feedwater pump discharge pressure and amps, suction strainer, and whether a standby pump started. [Qualified personnel] · Check deaerator or feed tank level and make-up valve operation. · Test the low-water cutoffs by the manufacturer’s blowdown procedure and confirm they trip the burner. [Qualified personnel] |
Steam demand above firing capacitysteam_demand_surge | steam flow up; pressure down; firing rate up | Compare steam demand with the boiler’s rated output and the time of the dip. · Ask the operator what changed: load, product, setpoint, manual interventions or maintenance in the window. |
Fuel supply restriction (gas pressure, regulator, strainer, valve)fuel_supply | fuel flow down; firing rate up; pressure down; stack temp down | Measure gas pressure upstream and downstream of the regulator at high fire. [Qualified personnel] · Inspect the fuel train strainer, regulator and safety shut-off valves for restriction. [Lock out / tag out] |
Combustion air problem (fan, damper linkage, intake)combustion_air | o2 down or up; co up; valve oscillating | Check the air damper and fuel valve linkage for slippage or play, against the commissioning settings. [Lock out / tag out] · Run a combustion analysis (O2, CO, stack temperature) at low, mid and high fire. [Qualified personnel] · Check the combustion-air proving switch and its sensing line. [Qualified personnel] |
Flame detection fault (scanner, sight tube, signal) (safety)flame_detection | flame down or spiky | Clean the scanner lens and sight tube, then read the flame signal at low and high fire. [Qualified personnel] · Review the controller’s alarm and event history for the window, and note the first alarm. |
Fouled or scaled heat-transfer surfacesheat_transfer_fouling | stack temp up; fuel flow up | Trend net stack temperature at the same firing rate over weeks; a steady rise means fouling. · Review boiler-water TDS, hardness and blowdown records. · Schedule a fireside or waterside tube inspection at the next shutdown. [Lock out / tag out] |
Control loop hunting (tuning, linkage hysteresis, valve stiction)control_tuning | pressure oscillating; firing rate oscillating; valve oscillating | Review the pressure control loop gains and the firing-rate response to a setpoint step. · Check the air damper and fuel valve linkage for slippage or play, against the commissioning settings. [Lock out / tag out] |
Sensor or transmitter faultsensor_fault | pressure flatline or spiky; temperature flatline or spiky; flow flatline or spiky; level flatline or spiky | Compare the reading with a local gauge or a second transmitter, and check its wiring, impulse line and calibration date. · Check the data path: gateway or PLC online, tag mapping, and whether the signal was frozen or substituted. |
Process or demand change, not an equipment faultprocess_change | steam flow up; load up; flow up | Ask the operator what changed: load, product, setpoint, manual interventions or maintenance in the window. · Review the controller’s alarm and event history for the window, and note the first alarm. |
Drives (VFDs)
| Cause | Evidence the rules look for | Checks |
|---|---|---|
Acceleration too fast for the loadaccel_overcurrent | current up; speed up | Compare the acceleration time and current limit with the load inertia; trend current during start. · Review the controller’s alarm and event history for the window, and note the first alarm. |
Regenerative energy on deceleration (DC bus overvoltage)regen_overvoltage | dc bus up; speed down | Lengthen deceleration or check the braking resistor and chopper; confirm the bus regulator setting. · Log line voltage on all three phases at the drive input and compare with trip times. [Qualified personnel] |
Supply dip or lost phase (DC bus undervoltage)supply_sag | dc bus down; voltage down | Log line voltage on all three phases at the drive input and compare with trip times. [Qualified personnel] · Check input fuses, contactor and terminal tightness on the line side. [Lock out / tag out] |
Mechanical overload or bindingmechanical_load | current up; load up; speed down; vibration up | With the drive locked out, check that the driven machine turns freely and the brake releases. [Lock out / tag out] · Check the motor nameplate data and motor overload settings in the drive. |
Motor or cable insulation faultmotor_insulation | current spiky | Insulation-test the motor and cable with them disconnected from the drive output. [Lock out / tag out] |
Drive or motor cooling problemdrive_cooling | temperature up | Check drive fans, heatsink and cabinet filters, and motor cooling. [Lock out / tag out] |
Sensor or transmitter faultsensor_fault | pressure flatline or spiky; temperature flatline or spiky; flow flatline or spiky; level flatline or spiky | Compare the reading with a local gauge or a second transmitter, and check its wiring, impulse line and calibration date. · Check the data path: gateway or PLC online, tag mapping, and whether the signal was frozen or substituted. |
Process or demand change, not an equipment faultprocess_change | steam flow up; load up; flow up | Ask the operator what changed: load, product, setpoint, manual interventions or maintenance in the window. · Review the controller’s alarm and event history for the window, and note the first alarm. |
CNC machines
| Cause | Evidence the rules look for | Checks |
|---|---|---|
Cut exceeds spindle power or torquespindle_overload | load up; current up; temperature up | Compare spindle load with the program: depth of cut, feed and speed at the time of the alarm. · Inspect the tool for wear or chipping. |
Axis following error: binding, lubrication or tuningaxis_following | position error up; current up | With the machine in a safe state, check the axis moves freely by hand-wheel at low speed and listen for binding. [Qualified personnel] · Check way-lube level, pump pressure and metering units. · Review servo gains and the position-deviation limit parameters against the builder’s values. [Qualified personnel] |
Thermal growth affecting accuracythermal_drift | temperature up | Compare part errors with machine warm-up time and ambient temperature. · Check coolant and spindle chiller temperatures. |
Way or spindle lubrication problemlubrication | pressure down; level down | Check way-lube level, pump pressure and metering units. |
Spindle bearing wearspindle_bearing | vibration up; temperature up | Measure spindle vibration and temperature at standard speeds and compare with baseline. |
Sensor or transmitter faultsensor_fault | pressure flatline or spiky; temperature flatline or spiky; flow flatline or spiky; level flatline or spiky | Compare the reading with a local gauge or a second transmitter, and check its wiring, impulse line and calibration date. · Check the data path: gateway or PLC online, tag mapping, and whether the signal was frozen or substituted. |
Process or demand change, not an equipment faultprocess_change | steam flow up; load up; flow up | Ask the operator what changed: load, product, setpoint, manual interventions or maintenance in the window. · Review the controller’s alarm and event history for the window, and note the first alarm. |
Servo motors & drives
| Cause | Evidence the rules look for | Checks |
|---|---|---|
Mechanical binding or overload on the axismechanical_binding | position error up; current up | With the axis in a safe state, check it moves freely through its stroke; look for crash damage, lubrication and couplings. [Qualified personnel] · Confirm the holding brake releases on servo-on (listen and measure brake voltage). [Qualified personnel] |
Gains too high for the load or a mechanical resonancetuning_resonance | position error oscillating; current oscillating; speed oscillating | Re-run auto-tuning or lower the gains, and add a notch filter at the resonance frequency. [Qualified personnel] · Calculate the load-to-motor inertia ratio and compare with the maker’s limit. |
Encoder or feedback noise (cable, shield, connector)feedback_noise | position error spiky; speed spiky | Inspect the encoder cable at flex points, connector pins and shield grounding; separate it from power cables. [Lock out / tag out] |
Regenerative energy on decelerationregen_overvoltage | dc bus up | Check the regenerative resistor is fitted, sized and enabled; lengthen deceleration. [Lock out / tag out] |
Sustained overload (duty cycle above the motor rating)thermal_overload | current up; temperature up | Compare RMS current over the duty cycle with the motor’s continuous rating. |
Sensor or transmitter faultsensor_fault | pressure flatline or spiky; temperature flatline or spiky; flow flatline or spiky; level flatline or spiky | Compare the reading with a local gauge or a second transmitter, and check its wiring, impulse line and calibration date. · Check the data path: gateway or PLC online, tag mapping, and whether the signal was frozen or substituted. |
Process or demand change, not an equipment faultprocess_change | steam flow up; load up; flow up | Ask the operator what changed: load, product, setpoint, manual interventions or maintenance in the window. · Review the controller’s alarm and event history for the window, and note the first alarm. |
Pumps, compressors, fans, chillers and conveyors
| Cause | Evidence the rules look for | Checks |
|---|---|---|
Suction starvation or cavitationcavitation_or_starvation | flow down; pressure oscillating or down; vibration up; current down | Check suction pressure, tank level, strainer and inlet valve position. |
Bearing wear or misalignmentbearing_wear | vibration up; temperature up | Measure vibration and bearing temperature and compare with the baseline. · Check coupling alignment and foundation bolts at the next stop. [Lock out / tag out] |
Blockage or closed valve downstreamblockage_or_restriction | pressure up; flow down; current down | Walk the discharge line: valve positions, filters and check valves. |
Cooling or lubrication problemoverheating | temperature up; stack temp up | Check oil level and condition, coolers and fans. [Lock out / tag out] |
Leak or demand above capacity (cannot hold pressure)leak_or_demand | pressure down; load up; current up | Compare demand with capacity and run a leak survey. · Ask the operator what changed: load, product, setpoint, manual interventions or maintenance in the window. |
Sensor or transmitter faultsensor_fault | pressure flatline or spiky; temperature flatline or spiky; flow flatline or spiky; level flatline or spiky | Compare the reading with a local gauge or a second transmitter, and check its wiring, impulse line and calibration date. · Check the data path: gateway or PLC online, tag mapping, and whether the signal was frozen or substituted. |
Process or demand change, not an equipment faultprocess_change | steam flow up; load up; flow up | Ask the operator what changed: load, product, setpoint, manual interventions or maintenance in the window. · Review the controller’s alarm and event history for the window, and note the first alarm. |
Policies by industry
| Industry | Min AI confidence | “Normal” needs | Insight from severity |
|---|---|---|---|
| Default | 0.6 | 0.8 | act |
| pharma | 0.75 | 0.9 | watch |
| food beverage | 0.65 | 0.8 | watch |
| power utilities | 0.7 | 0.9 | act |
| chemicals | 0.7 | 0.9 | watch |
| manufacturing | 0.6 | 0.8 | act |
| buildings | 0.6 | 0.8 | act |
Using it
curl -X POST "https://api.induqt.ai/v1/machines/$MACHINE_ID/decisions" \
-H "Authorization: Bearer $INDUQT_API_KEY" -H "Content-Type: application/json" -d '{}'curl -X POST "https://api.induqt.ai/v1/decisions/$DECISION_ID/outcome" \
-H "Authorization: Bearer $INDUQT_API_KEY" -H "Content-Type: application/json" \
-d '{ "confirmedCause": "feedwater_supply", "checkId": "feed_pump", "note": "Suction strainer blocked" }'curl "https://api.induqt.ai/v1/decision-engine/readout?groupBy=industry" -H "Authorization: Bearer $INDUQT_API_KEY"Decisions also run on their own when a signal leaves its normal band, and whenever a recording is analysed. In Claude, use the evaluate_machine, record_outcome and decision_criteria tools (MCP). Full request and response shapes are in the API reference.