SQL cookbook

77 PostgreSQL rules: the production engine. Each entry gives the inputs, parameters and outputs with their units, the parity status and a link to the SQL file. Python twins are in the pandas cookbook. To run a rule on your own database see Using SQL rules outside Open-FDD.

How a rule runs: the FDD hook passes one scoped, SI, wide history table (one column per role, one row per equipment and timestamp) and reads one row per equipment back. A fault must hold for its confirm time. A gap longer than one hour is unknown, not fault and not ok. fault_hours counts confirmed fault time. More in sql/fdd/README.md.

Units convention

  • Rules compute in SI only. The engineer declares each point’s unit in NF; ingest converts it to SI (open_fdd/data/units.json). Unknown or incompatible units are skipped, never guessed from the value.
  • Imperial is display-only. Differences (Δ°C) convert with a factor of 1.8 and no +32.
  • Fractions are 0-1, relative humidity is 0-100 %RH, statuses are 0/1.
Quantity SI unit (rules compute in this) Imperial display Also accepted (converted at ingest)
Temperature °C °F °F, K
Temperature difference Δ°C Δ°F Δ°F
Temperature rate Δ°C/h Δ°F/h Δ°F/h
Air pressure Pa inH₂O kPa, inH2O, psi, bar
Water pressure Pa psi kPa, inH2O, psi, bar
Air flow L/s cfm m³/s, m³/h, cfm, gpm
Water flow L/s gpm m³/s, m³/h, cfm, gpm
Power kW kW W, MW, Btu/h, ton, hp
Energy kWh kWh Wh, MWh, kBtu, MMBtu, therm
Relative humidity % % % (the SI unit only)
Concentration ppm ppm none
Command or position fraction, 0-1 % %, ratio
Status 0/1 0/1 bool

Rules by equipment

Air handling units (34): AHU-DUCTHI · AHU-SATDEV · AHU-SIMUL · CMD-1 · DMP-1 · ECON-1 · ECON-2 · ECON-3 · ECON-4 · ECON-5 · ECON-6 · ECON-7 · FC1 · FC10 · FC11 · FC12 · FC13-SAT-HIGH · FC14 · FC15 · FC2 · FC3 · FC4 · FC5 · FC6 · FC7 · FC8 · FC9 · MECH-OAT-1 · OA-1 · RESET-1 · SCHED-1 · SCHED-247 · TRIM-1 · VLV-1

VAV terminals (9): VAV-1 · VAV-2 · VAV-3 · VAV-4 · VAV-5 · VAV-6 · VAV-7 · VAV-AHU-LEAVE · VAV-REHEAT

Fan coil and zone equipment (9): FCU-CLG-COIL · FCU-CO2-DAMPER · FCU-DAMPER-POS · FCU-DEADBAND · FCU-HTG-COIL · FCU-MODE-CYCLE · FCU-SENSOR-NULL · FCU-VALVE-PASS-CLG · FCU-VALVE-PASS-HTG

Chillers and plants (9): CHW-1 · CHW-2 · CHW-3 · CHW-4 · CHW-NOLOAD-1 · CW-APR-1 · CW-FAN-1 · CW-OPT-1 · TRIM-4

Boilers (1): TRIM-3

Heat pumps (1): HP-1

Meters and utilities (2): UTIL-INTERVAL · UTIL-MONTHLY

Sensor validation and control loops (6): PID-HUNT-1 · SV-FLATLINE · SV-RANGE · SV-RATE · SV-SPIKE · SV-STALE

Weather (2): OAT-METEO · WX-1

General (4): AVG-ZONE-TEMP · FAN-RUNTIME-HOURS · FAULT-ELAPSED-HOURS · ZONE-COMFORT-PCT


Air handling units

AHU / RTU / MAU / DOAS: duct static, supply air, economizer, mixing and mode faults.

AHU-DUCTHI

Duct static pressure high

Priority P0 · Equipment ahu · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
duct_static duct-static-pressure Pressure Pa kPa, inH2O, psi, bar -248.84 to 1990.72 required
duct_static_sp duct-static-pressure-sp Pressure Pa kPa, inH2O, psi, bar - required
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 5 0 60 min
duct_high_margin High margin 62.21 12.442 248.84 Pa
minimum_active_coverage_pct † Min active coverage 5 0 100 %
pressure_on_min Pressure-on evidence 49.768 12.442 248.84 Pa
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

AHU-SATDEV

SAT deviation from setpoint

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 required
sat_sp discharge-air-temp-sp Temperature °C °F, K - required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 60 min
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
sat_dev_err SAT deviation 2.77778 0.555556 8.33333 Δ°C
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL and pandas gate ‘equipment on’ with different fan/pump proof order and thresholds

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

AHU-SIMUL

Heating and cooling simultaneous

Priority P0 · Equipment ahu · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
htg_valve_pct heating-valve Command or position 0-1 %, ratio 0 to 1 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 5 0 60 min
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min
valve_open_pct Valve open threshold 0.1 0.05 0.5 fraction (0-1)

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

CMD-1

Fan cmd/status mismatch

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 required

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 60 min

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

DMP-1

OA damper leakage

Priority P0 · Equipment ahu · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 required
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
leak_delta Leak ΔT 1.11111 0.277778 3.33333 Δ°C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

ECON-1

Economizer stuck closed when OAT favorable

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 required
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 required
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
fan_status fan-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 120 min
econ1_damper_max Stuck-closed damper frac 0.05 0 0.2 fraction (0-1)
econ1_oat_min Favorable OAT 12.7778 7.22222 21.1111 °C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

ECON-2

Economizing when outdoor air unfavorable

Priority P0 · Equipment ahu · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 5 0 60 min
econ2_damper Damper open frac 0.42 0.2 0.9 fraction (0-1)
econ2_oat_hi OAT high cutoff 17.2222 12.7778 26.6667 °C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

ECON-3

Mech cooling without integrated economizer

Priority P0 · Equipment ahu · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
web_oa_t web-outside-air-temp Temperature °C °F, K - optional
web_oa_dp web-outside-air-dewpoint Temperature °C °F, K - optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
clg_open_min Cooling valve open minimum 0.01 0 0.5 fraction (0-1)
confirm_min Fault confirm delay 5 0 60 min
econ3_damper_hi Integrated economizer damper 0.9 0.5 1 fraction (0-1)
econ3_db_max Free-cool OA dry-bulb max 22.2222 18.3333 26.6667 °C
econ3_db_min Free-cool OA dry-bulb min 15.5556 10 20 °C
econ3_dp_max Free-cool OA dew point max 15.5556 7.22222 20 °C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: weather source: SQL prefers equipment web_oa_* then as-of weather rows; pandas resolves its own web columns

ECON-4

Low estimated OA fraction

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 required
rat return-air-temp Temperature °C °F, K 4.44 to 37.78 required
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 60 min
minimum_active_coverage_pct † Min active coverage 5 0 100 %
oa_min_pct Min OA fraction 21 5 40 %
oat_rat_delta_min Min |RAT−OAT| for OA-fraction estimate (Δ°C) 1.22222 0.277778 5.55556 Δ°C
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL holds the fan-restart / mode-delay window over rolling rows, pandas GL36 suppresses after a mode change: differs by a few samples at fault edges

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

ECON-5

Preheat over-conditioning

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
preheat_leave_t preheat-leaving-temp Temperature °C °F, K - required
sat_sp discharge-air-temp-sp Temperature °C °F, K - required
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
htg_valve_pct heating-valve Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 60 min
htg_open_min Heating valve open minimum 0.01 0 0.5 fraction (0-1)
minimum_active_coverage_pct † Min active coverage 5 0 100 %
preheat_over Preheat over ΔT 1.22222 0.277778 4.44444 Δ°C
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

ECON-6

Economizing in freezing weather

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 required
web_oa_t web-outside-air-temp Temperature °C °F, K - optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 60 min
econ6_damper_max Winter min-OA damper 0.25 0.05 0.5 fraction (0-1)
econ6_oat_max Winter OAT ceiling -3.88889 -9.44444 4.44444 °C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

ECON-7

Economizer OK but not economizing

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
web_oa_t web-outside-air-temp Temperature °C °F, K - optional
web_oa_dp web-outside-air-dewpoint Temperature °C °F, K - optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
clg_open_min Cooling valve open minimum 0.05 0 0.5 fraction (0-1)
confirm_min Fault confirm delay 10 0 60 min
econ7_damper_min Economizing damper threshold 0.5 0.2 0.9 fraction (0-1)
econ7_db_max Econ-OK dry-bulb max 22.2222 18.3333 26.6667 °C
econ7_db_min Econ-OK dry-bulb floor (freeze guard) 1.66667 -6.66667 10 °C
econ7_dp_max Econ-OK dew point max 15.5556 7.22222 20 °C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: weather source: SQL prefers equipment web_oa_* then as-of weather rows; pandas resolves its own web columns

FC1

Duct static below SP at full fan

Priority P0 · Equipment ahu · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
duct_static duct-static-pressure Pressure Pa kPa, inH2O, psi, bar -248.84 to 1990.72 required
duct_static_sp duct-static-pressure-sp Pressure Pa kPa, inH2O, psi, bar - required
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 5 0 60 min
eps_dsp Duct-static error epsDSP (Pa) 29.8608 0 124.42 Pa
eps_vfd_spd VFD speed error epsVFDSPD (GL36 default 5%) 0.13 0 0.5 fraction (0-1)
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mode_delay_min Mode delay after fan-on 10 0 60 min
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min Startup delay 0 0 60 min

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

FC10

MAT-OAT delta while cooling and economizing

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 required
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
clg_on_min Cooling valve ON minimum (fraction) 0.01 0 0.5 fraction (0-1)
confirm_min Fault confirm delay 10 0 60 min
econ_full_open Econ damper full-open 0.9 0.5 1 fraction (0-1)
eps_mat MAT sensor eps 0.638889 0 5.55556 Δ°C
eps_oat † OAT sensor eps 0.638889 0 5.55556 Δ°C
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mix_tol Legacy master sensor tolerance (sets all eps values) 0.638889 0 5.55556 Δ°C
mode_delay_min Mode delay after fan-on 10 0 60 min
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FC11

OAT low vs SAT SP while cooling and economizing

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
sat_sp discharge-air-temp-sp Temperature °C °F, K - required
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
clg_on_min Cooling valve ON minimum (fraction) 0.01 0 0.5 fraction (0-1)
confirm_min Fault confirm delay 10 0 60 min
delta_supply_fan Supply-fan delta (Δ°C) 0.305556 0 2.77778 Δ°C
econ_full_open Econ damper full-open 0.9 0.5 1 fraction (0-1)
eps_oat † OAT sensor eps 0.638889 0 5.55556 Δ°C
eps_sat † SAT sensor eps 0.638889 0 5.55556 Δ°C
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mix_tol Legacy master sensor tolerance (sets all eps values) 0.638889 0 5.55556 Δ°C
mode_delay_min Mode delay after fan-on 10 0 60 min
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FC12

SAT above MAT while cooling

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 required
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 required
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
clg_on_min Cooling valve ON minimum (fraction) 0.01 0 0.5 fraction (0-1)
confirm_min Fault confirm delay 10 0 60 min
delta_supply_fan Supply-fan delta (Δ°C) 0.305556 0 2.77778 Δ°C
econ_full_open Econ damper full-open 0.9 0.5 1 fraction (0-1)
econ_min_pos Economizer OA damper minimum (fraction) 0.05 0 0.5 fraction (0-1)
eps_mat † MAT sensor eps 0.638889 0 5.55556 Δ°C
eps_sat † SAT sensor eps 0.638889 0 5.55556 Δ°C
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mix_tol Legacy master sensor tolerance (sets all eps values) 0.638889 0 5.55556 Δ°C
mode_delay_min Mode delay after fan-on 10 0 60 min
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min Startup delay 0 0 60 min
supply_tol † Supply tol (alias eps_sat) 0.638889 0 5.55556 Δ°C

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FC13-SAT-HIGH

SAT above setpoint at full cooling

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 required
sat_sp discharge-air-temp-sp Temperature °C °F, K - required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
clg_full_min Cooling valve full min 0.9 0.5 1 fraction (0-1)
confirm_min Fault confirm delay 10 0 60 min
econ_full_open Econ damper full-open 0.9 0.5 1 fraction (0-1)
econ_min_pos † Econ damper min pos 0.05 0 0.5 fraction (0-1)
eps_sat SAT sensor eps 0.638889 0 5.55556 Δ°C
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mode_delay_min Mode delay after fan-on 10 0 60 min
oa_damper_econ_low OA damper economizer low 0.05 0 0.5 fraction (0-1)
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL and pandas gate ‘equipment on’ with different fan/pump proof order and thresholds

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FC14

CHW coil ΔT when inactive (GL36 L)

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
cooling_coil_entering_temp cooling-coil-entering-temp Temperature °C °F, K - optional
cooling_coil_leaving_temp cooling-coil-leaving-temp Temperature °C °F, K - optional
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 optional
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 optional
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
clg_inactive_max † Cooling inactive max 0.01 0 0.5 fraction (0-1)
clg_on_min Cooling on min 0.01 0 1 fraction (0-1)
confirm_min Fault confirm delay 10 0 60 min
delta_supply_fan Supply-fan delta 0.305556 0 2.77778 Δ°C
econ_min_pos † Econ damper min pos 0.05 0 0.5 fraction (0-1)
eps_ccet † CHW coil entering eps 0.638889 0 5.55556 Δ°C
eps_cclt † CHW coil leaving eps 0.638889 0 5.55556 Δ°C
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
htg_on_min † Heating on min 0.01 0 1 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mix_tol Legacy master sensor tolerance (sets all eps values) 0.638889 0 5.55556 Δ°C
mode_delay_min Mode delay after fan-on 10 0 60 min
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL and pandas gate ‘equipment on’ with different fan/pump proof order and thresholds

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FC15

HW coil ΔT when inactive (GL36 M)

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
heating_coil_entering_temp heating-coil-entering-temp Temperature °C °F, K - optional
heating_coil_leaving_temp heating-coil-leaving-temp Temperature °C °F, K - optional
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 optional
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 optional
htg_valve_pct heating-valve Command or position 0-1 %, ratio 0 to 1 optional
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
clg_inactive_max † Cooling inactive max 0.01 0 0.5 fraction (0-1)
clg_on_min Cooling on min 0.01 0 1 fraction (0-1)
confirm_min Fault confirm delay 10 0 60 min
delta_supply_fan Supply-fan delta 0.305556 0 2.77778 Δ°C
econ_full_open † Econ damper full-open 0.9 0.5 1 fraction (0-1)
econ_min_pos † Econ damper min pos 0.05 0 0.5 fraction (0-1)
eps_hcet † HW coil entering eps 0.638889 0 5.55556 Δ°C
eps_hclt † HW coil leaving eps 0.638889 0 5.55556 Δ°C
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
htg_on_min Heating on min 0.01 0 1 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mix_tol Legacy master sensor tolerance (sets all eps values) 0.638889 0 5.55556 Δ°C
mode_delay_min Mode delay after fan-on 10 0 60 min
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FC2

Mixed air below envelope

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 required
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
rat return-air-temp Temperature °C °F, K 4.44 to 37.78 required
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 60 min
eps_mat MAT sensor eps 0.638889 0 5.55556 Δ°C
eps_oat OAT sensor eps 0.638889 0 5.55556 Δ°C
eps_rat RAT sensor eps 0.638889 0 5.55556 Δ°C
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mix_tol Legacy master sensor tolerance (sets all eps values) 0.638889 0 5.55556 Δ°C
mode_delay_min Mode delay after fan-on 10 0 60 min
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min Startup delay 0 0 60 min

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FC3

Mixed air above envelope

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 required
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
rat return-air-temp Temperature °C °F, K 4.44 to 37.78 required
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 60 min
eps_mat MAT sensor eps 0.638889 0 5.55556 Δ°C
eps_oat OAT sensor eps 0.638889 0 5.55556 Δ°C
eps_rat RAT sensor eps 0.638889 0 5.55556 Δ°C
fan_on_min Fan ON fraction threshold 0.01 0 0.5 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mix_tol Legacy master sensor tolerance (sets all eps values) 0.638889 0 5.55556 Δ°C
mode_delay_min Mode delay after fan-on 10 0 60 min
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min Startup delay 0 0 60 min

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match; differs only on edge data: Same cause as FC8: the series begins with the fan already running (edge DST-week start is 18:00 local); pandas applies its 600 s operational startup holdoff at the first sample, SQL does not (verified by trimming the first 6 h of rows).

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FC4

PID hunting (operating-state oscillation)

Priority P0 · Equipment ahu · Confirm 60 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 60 0 60 min
delta_os_max Max operating-state entries per hour 5 1 30 count
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mode_delay_min † Mode delay after fan-on 10 0 60 min
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

FC5

SAT cold when heating commanded (GL36 D)

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 required
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 required
htg_valve_pct heating-valve Command or position 0-1 %, ratio 0 to 1 required
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 60 min
delta_supply_fan Supply-fan delta (Δ°C) 0.305556 0 2.77778 Δ°C
eps_mat MAT sensor eps 0.638889 0 5.55556 Δ°C
eps_sat † SAT sensor eps 0.638889 0 5.55556 Δ°C
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
htg_on_min Heating-command ON threshold 0.01 0 0.25 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mix_tol Legacy master sensor tolerance (sets all eps values) 0.638889 0 5.55556 Δ°C
mode_delay_min Mode delay after fan-on 10 0 60 min
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL holds the fan-restart / mode-delay window over rolling rows, pandas GL36 suppresses after a mode change: differs by a few samples at fault edges

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FC6

Estimated OA fraction mismatch

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 required
rat return-air-temp Temperature °C °F, K 4.44 to 37.78 required
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 required
vav_total_flow vav-total-airflow Flow L/s m³/s, m³/h, cfm, gpm - required
fan_status fan-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 60 min
eps_airflow Airflow fraction eps 0.15 0.05 1 fraction (0-1)
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
min_flow_design Design minimum outdoor airflow 2359.74 0 94389.4 L/s
minimum_active_coverage_pct Min active coverage 5 0 100 %
mode_delay_min Mode delay after fan-on 10 0 60 min
oat_rat_delta_min Min |OAT-RAT| 2.77778 0 16.6667 Δ°C
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min Startup delay 0 0 60 min

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL and pandas gate ‘equipment on’ with different fan/pump proof order and thresholds

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FC7

SAT low while heating at full

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 required
sat_sp discharge-air-temp-sp Temperature °C °F, K - required
htg_valve_pct heating-valve Command or position 0-1 %, ratio 0 to 1 required
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional
fan_status fan-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 60 min
eps_sat SAT sensor eps 0.638889 0 5.55556 Δ°C
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
htg_full_min Full-heating threshold (GL36 99%) 0.9 0.5 1 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mode_delay_min † Mode delay after fan-on 10 0 60 min
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL and pandas gate ‘equipment on’ with different fan/pump proof order and thresholds

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FC8

SAT vs MAT while economizing

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 required
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 required
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
clg_inactive_max Cooling valve inactive max (fraction) 0.1 0 0.5 fraction (0-1)
confirm_min Fault confirm delay 10 0 60 min
delta_supply_fan Supply-fan delta (Δ°C) 0.305556 0 2.77778 Δ°C
econ_min_pos Economizer OA damper minimum (fraction) 0.05 0 0.5 fraction (0-1)
eps_mat MAT sensor eps 0.638889 0 5.55556 Δ°C
eps_sat SAT sensor eps 0.638889 0 5.55556 Δ°C
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mix_tol Legacy master sensor tolerance (sets all eps values) 0.638889 0 5.55556 Δ°C
mode_delay_min Mode delay after fan-on 10 0 60 min
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min Startup delay 0 0 60 min
supply_tol Supply tol (alias eps_sat) 0.638889 0 5.55556 Δ°C

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match; differs only on edge data: Series starts with the fan already running (edge DST-week start is 18:00 local): pandas applies its 600 s operational startup holdoff at the first sample, SQL has none, so SQL confirms one 5-minute sample earlier. Verified: trimming the first 6 h of rows makes SQL equal pandas.

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FC9

OAT high vs SAT SP while economizing

Priority P0 · Equipment ahu · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
sat_sp discharge-air-temp-sp Temperature °C °F, K - required
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
clg_inactive_max Cooling valve inactive max (fraction) 0.1 0 0.5 fraction (0-1)
confirm_min Fault confirm delay 10 0 60 min
delta_supply_fan Supply-fan delta (Δ°C) 0.305556 0 2.77778 Δ°C
econ_min_pos Economizer OA damper minimum (fraction) 0.05 0 0.5 fraction (0-1)
eps_oat † OAT sensor eps 0.638889 0 5.55556 Δ°C
eps_sat † SAT sensor eps 0.638889 0 5.55556 Δ°C
fan_on_min Fan-on command min 0.01 0 1 fraction (0-1)
minimum_active_coverage_pct Min active coverage 5 0 100 %
mix_tol Legacy master sensor tolerance (sets all eps values) 0.638889 0 5.55556 Δ°C
mode_delay_min Mode delay after fan-on 10 0 60 min
require_operational_gate Require operational gate 1 0 1 0/1
startup_delay_min Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match; differs only on edge data: Same cause as FC8: the series begins with the fan already running; pandas holds off 600 s from the first sample, SQL does not (verified by trimming the start).

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

MECH-OAT-1

Mechanical cooling below 15.6 °C web OAT

Priority P0 · Equipment ahu, chiller, heatpump · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
web_oa_t web-outside-air-temp Temperature °C °F, K - required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 60 min
mech_oat_max Mech-cool OAT ceiling 15.5556 7.22222 18.3333 °C

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: pandas proves equipment/cooling from typed roles (mechanical_proof_mask, equipment_type); SQL ORs chiller status / valve

OA-1

Low OA fraction

Priority P0 · Equipment ahu · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 required
rat return-air-temp Temperature °C °F, K 4.44 to 37.78 required
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
min_oa_frac Min OA fraction 0.15 0.05 0.4 fraction (0-1)
minimum_active_coverage_pct † Min active coverage 5 0 100 %
oat_rat_guard OAT/RAT guard 1.22222 0.277778 3.33333 Δ°C
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL holds the fan-restart / mode-delay window over rolling rows, pandas GL36 suppresses after a mode change: differs by a few samples at fault edges

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

RESET-1

SAT reset not tracking outdoor air

Priority P0 · Equipment ahu · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
sat_sp discharge-air-temp-sp Temperature °C °F, K - required
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
reset_err Reset error 1.66667 0.277778 5.55556 Δ°C
reset_oat_ref Reset OAT ref 18.3333 10 26.6667 °C
reset_sat_at_ref SAT SP at the reset OAT reference 11.1111 7.22222 18.3333 °C
reset_slope Reset slope 0.25 0.05 1 fraction (0-1)
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

SCHED-1

Excess / wasted unoccupied fan runtime when the zone is already in the comfort band (optimal-start / schedule misconfig signal). Without zone_t, falls back to unoccupied + fan_on (pandas sched1 base).

Priority P0 · Equipment ahu, zone_other · Confirm 30 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
occ_mode occupied Text text none - required
fan_status fan-status Status 0/1 bool 0 or 1 required
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 optional

Parameters

Parameter Label Default Min Max SI unit
comfort_high Zone comfort high 23.8889 12.7778 32.2222 °C
comfort_low Zone comfort low 21.1111 10 26.6667 °C
confirm_min Fault confirm delay 30 0 60 min

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

SCHED-247

Always-on fan or pump runtime

Priority P0 · Equipment ahu, vav, zone_other, chiller, boiler, heatpump · Confirm 60 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
fan_status fan-status Status 0/1 bool 0 or 1 optional
pump_status pump-status Status 0/1 bool 0 or 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
always_on_pct Always-on fraction 0.95 0.8 1 fraction (0-1)
confirm_min Fault confirm delay 60 0 60 min

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

TRIM-1

Duct static trim advisory

Priority P0 · Equipment ahu · Confirm 30 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
duct_static duct-static-pressure Pressure Pa kPa, inH2O, psi, bar -248.84 to 1990.72 required
duct_static_sp duct-static-pressure-sp Pressure Pa kPa, inH2O, psi, bar - optional
static_reset_request vav-pressure-request-sum Count count none - optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 30 0 60 min
duct_hi Duct static high 335.934 124.42 746.52 Pa
minimum_active_coverage_pct † Min active coverage 5 0 100 %
request_lo Request sum low 1 0 10 count
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL and pandas gate ‘equipment on’ with different fan/pump proof order and thresholds

VLV-1

Cooling valve leakage

Priority P0 · Equipment ahu · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 required
sat_sp discharge-air-temp-sp Temperature °C °F, K - required
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
mat_leak_delta SAT vs MAT leak ΔT 1.11111 0.277778 6.66667 Δ°C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
sat_err SAT vs SP leak ΔT 1.11111 0.277778 4.44444 Δ°C
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

VAV terminals

VAV boxes and other zone terminals: comfort, airflow, reheat and damper faults.

VAV-1

Zone comfort band during occupied hours when occupancy is set; unoccupied setback is VAV-2; no occupancy model or schedule → NOT_ASSESSED_NO_OCCUPANCY

Priority P0 · Equipment vav, zone_other, heatpump, baseboard · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 required
occ_mode occupied Text text none - optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_occupied Require occupied 1 0 1 0/1
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min
zone_t_hi Zone high 23.8889 22.2222 29.4444 °C
zone_t_lo Zone low 21.1111 12.7778 22.2222 °C

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match; differs only on edge data: Two input-handling differences: (1) NULL zone_t cells: SQL drops NULL rows (WHERE zone_t IS NOT NULL) and holds the previous sample’s state across the null run, pandas scores a NULL as not faulted; (2) planted out-of-range zone_t (80 degC): the pandas quality layer marks it OUT_OF_RANGE and excludes it, SQL scores the value as given.

VAV-2

Night setback miss — unoccupied zone above heating setback

Priority P0 · Equipment vav, zone_other, heatpump, baseboard · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 required
occ_mode occupied Text text none - required

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
setback_hi Setback high 20 12.7778 22.2222 °C
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

VAV-3

Excessive reheat during warm weather

Priority P0 · Equipment vav · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
reheat_valve_pct reheat-valve Command or position 0-1 %, ratio 0 to 1 required
zone_flow zone-airflow Flow L/s m³/s, m³/h, cfm, gpm - required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 5 0 60 min
flow_on_min Airflow-on min 11.7987 0 94.3894 L/s
minimum_active_coverage_pct † Min active coverage 5 0 100 %
reheat_oat Warm OAT 25.5556 18.3333 32.2222 °C
reheat_pct Reheat frac 0.52 0.1 1 fraction (0-1)
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

VAV-4

Damper stuck at full open

Priority P0 · Equipment vav · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
damper_pct damper Command or position 0-1 %, ratio 0 to 1 required
zone_flow zone-airflow Flow L/s m³/s, m³/h, cfm, gpm - required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
flow_on_min Airflow-on min 11.7987 0 94.3894 L/s
full_open_pct Full open frac 0.975 0.8 1 fraction (0-1)
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min
sustain_hours Sustain window 1.5 0.5 6 h

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

VAV-5

Airflow sensor bias

Priority P0 · Equipment vav · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
zone_flow zone-airflow Flow L/s m³/s, m³/h, cfm, gpm - required
damper_pct damper Command or position 0-1 %, ratio 0 to 1 required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
damper_closed_max Damper closed maximum 0.1 0 0.5 fraction (0-1)
flow_bias Airflow bias threshold 23.5973 4.71947 94.3894 L/s
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

VAV-6

Reheat when cooling available

Priority P0 · Equipment vav · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
reheat_valve_pct reheat-valve Command or position 0-1 %, ratio 0 to 1 required
clg_available clg-available Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
free_cool_oat Free-cool OAT 18.3333 7.22222 23.8889 °C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
reheat_pct Reheat frac 0.25 0.05 1 fraction (0-1)
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL holds the fan-restart / mode-delay window over rolling rows, pandas GL36 suppresses after a mode change: differs by a few samples at fault edges

VAV-7

Min airflow / fixed high flow

Priority P0 · Equipment vav · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
zone_flow zone-airflow Flow L/s m³/s, m³/h, cfm, gpm - required
min_flow_sp min-flow-sp Flow L/s m³/s, m³/h, cfm, gpm - optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
fixed_flow_hours Fixed-flow rolling window 1 0.25 6 h
fixed_flow_max_std Fixed-flow max std 7.0792 0.471947 37.7558 L/s
fixed_flow_min_mean Fixed-flow min mean 94.3894 23.5973 943.894 L/s
flow_on_min Airflow-on min 11.7987 0 94.3894 L/s
high_min_flow_sp High min-flow SP 117.987 23.5973 943.894 L/s
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match; differs only on edge data: Duplicate (equipment, timestamp) rows: SQL scores the rows as delivered, the reference de-duplicates first (the input contract is one row per timestamp). Verified: de-duplicating the rows before SQL makes SQL equal pandas.

VAV-AHU-LEAVE

VAV leave vs parent AHU SAT (fedBy)

Priority P0 · Equipment vav · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
vav_discharge_t vav-discharge-air-temp Temperature °C °F, K - required
ahu_sat ahu-discharge-air-temp Temperature °C °F, K - required
zone_flow zone-airflow Flow L/s m³/s, m³/h, cfm, gpm - required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
delta Leave Δ vs AHU SAT 4.44444 1.11111 13.8889 Δ°C
flow_on_min Airflow-on min 11.7987 0 94.3894 L/s

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL holds the fan-restart / mode-delay window over rolling rows, pandas GL36 suppresses after a mode change: differs by a few samples at fault edges

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

VAV-REHEAT

Reheat valve stuck / no temp rise

Priority P0 · Equipment vav · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
reheat_valve_pct reheat-valve Command or position 0-1 %, ratio 0 to 1 required
vav_discharge_t vav-discharge-air-temp Temperature °C °F, K - required
vav_inlet_t vav-inlet-air-temp Temperature °C °F, K - required
zone_flow zone-airflow Flow L/s m³/s, m³/h, cfm, gpm - required
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
flow_on_min Airflow-on min 11.7987 0 94.3894 L/s
min_rise Min temp rise 1.66667 0.277778 8.33333 Δ°C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
reheat_cmd Reheat open frac 0.3 0.1 1 fraction (0-1)
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match; differs only on stress-only data: pandas operational gate holds a fan-running rule for startup_delay_seconds=600 after the fan proves on, SQL has no startup holdoff: a fault already present at fan start is confirmed one 5-minute sample earlier in SQL per fan start (0.1667 h over the two fan starts of the 8-equipment 7-day run); with the gate off pandas equals SQL

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

Fan coil and zone equipment

Fan coils, unit ventilators and other zone_other equipment.

FCU-CLG-COIL

Fan-on cooling coil under-delivery

Priority P1 · Equipment zone_other, general, ahu · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 required
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
htg_valve_pct heating-valve Command or position 0-1 %, ratio 0 to 1 required
damper_cmd damper-cmd Command or position 0-1 %, ratio 0 to 1 optional
damper_pct damper Command or position 0-1 %, ratio 0 to 1 optional
zone_co2 zone-co2 Concentration ppm none - optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 120 min
valve_open Valve open threshold 0.8 0.5 1 fraction (0-1)

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

FCU-CO2-DAMPER

High valid CO2 with low outdoor-air damper command

Priority P1 · Equipment zone_other, general, ahu · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
zone_co2 zone-co2 Concentration ppm none - required
damper_cmd damper-cmd Command or position 0-1 %, ratio 0 to 1 required
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 optional
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 optional
htg_valve_pct heating-valve Command or position 0-1 %, ratio 0 to 1 optional
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 optional
damper_pct damper Command or position 0-1 %, ratio 0 to 1 optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
co2_high_ppm High CO2 1000 600 2000 ppm
confirm_min Fault confirm delay 15 0 120 min
damper_low Low damper command 0.1 0 0.5 fraction (0-1)

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

FCU-DAMPER-POS

Damper feedback more than 15 points below command

Priority P1 · Equipment zone_other, general, ahu · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
damper_cmd damper-cmd Command or position 0-1 %, ratio 0 to 1 required
damper_pct damper Command or position 0-1 %, ratio 0 to 1 required
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 optional
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 optional
htg_valve_pct heating-valve Command or position 0-1 %, ratio 0 to 1 optional
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 optional
zone_co2 zone-co2 Concentration ppm none - optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
command_min Minimum command 0.15 0 1 fraction (0-1)
confirm_min Fault confirm delay 15 0 120 min
position_error Position error 0.15 0.05 0.5 fraction (0-1)

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

FCU-DEADBAND

Heating/cooling pass-through setpoint deadband below 1 C

Priority P1 · Equipment zone_other, general, ahu · Confirm immediate · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
cooling_sp cooling-sp Temperature °C °F, K - required
heating_sp heating-sp Temperature °C °F, K - required

Parameters

Parameter Label Default Min Max SI unit
confirm_min † Fault confirm delay 0 0 120 min
deadband Minimum deadband 1 0 5 Δ°C

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FCU-HTG-COIL

Fan-on heating coil under-delivery

Priority P1 · Equipment zone_other, general, ahu · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 required
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 required
htg_valve_pct heating-valve Command or position 0-1 %, ratio 0 to 1 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 optional
damper_cmd damper-cmd Command or position 0-1 %, ratio 0 to 1 optional
damper_pct damper Command or position 0-1 %, ratio 0 to 1 optional
zone_co2 zone-co2 Concentration ppm none - optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
coil_delta Minimum heating rise 3 0.555556 11.1111 Δ°C
confirm_min Fault confirm delay 15 0 120 min
valve_open Valve open threshold 0.8 0.5 1 fraction (0-1)

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL and pandas gate ‘equipment on’ with different fan/pump proof order and thresholds

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FCU-MODE-CYCLE

Four or more heat/cool valve mode changes in window

Priority P1 · Equipment zone_other, general, ahu · Confirm immediate · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
htg_valve_pct heating-valve Command or position 0-1 %, ratio 0 to 1 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required

Parameters

Parameter Label Default Min Max SI unit
confirm_min † Fault confirm delay 0 0 120 min
mode_changes Mode changes 4 1 20 count
mode_valve_min Active valve threshold 0.1 0 0.5 fraction (0-1)

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL holds the fan-restart / mode-delay window over rolling rows, pandas GL36 suppresses after a mode change: differs by a few samples at fault edges

FCU-SENSOR-NULL

Own zone setpoint present but zone temperature null for at least 90% of window

Priority P1 · Equipment zone_other, general, ahu · Confirm immediate · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
zone_air_temp_sp zone-air-temp-sp Temperature °C °F, K - required
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min † Fault confirm delay 0 0 120 min
null_fraction Null fraction 0.9 0.5 1 fraction (0-1)

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

FCU-VALVE-PASS-CLG

Cooling valve passing with both commands shut

Priority P1 · Equipment zone_other, general, ahu · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 required
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 required
htg_valve_pct heating-valve Command or position 0-1 %, ratio 0 to 1 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
damper_cmd damper-cmd Command or position 0-1 %, ratio 0 to 1 optional
damper_pct damper Command or position 0-1 %, ratio 0 to 1 optional
zone_co2 zone-co2 Concentration ppm none - optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 120 min
pass_delta Passing temperature drop 3 0.555556 11.1111 Δ°C

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match; differs only on edge data: Planted out-of-range zone_t (80 degC): the pandas quality layer marks those samples OUT_OF_RANGE and excludes them, SQL computes zone_t - sat on the value as given and faults.

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

FCU-VALVE-PASS-HTG

Heating valve passing with both commands shut

Priority P1 · Equipment zone_other, general, ahu · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 required
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 required
htg_valve_pct heating-valve Command or position 0-1 %, ratio 0 to 1 required
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 required
damper_cmd damper-cmd Command or position 0-1 %, ratio 0 to 1 optional
damper_pct damper Command or position 0-1 %, ratio 0 to 1 optional
zone_co2 zone-co2 Concentration ppm none - optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 120 min
pass_delta Passing temperature rise 3 0.555556 11.1111 Δ°C

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

Chillers and plants

Chillers, chilled water and condenser water plants, cooling towers.

CHW-1

Low chilled-water ΔT

Priority P0 · Equipment chiller, chwPlant · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
chw_supply_t chilled-water-supply-temp Temperature °C °F, K -1.11 to 26.67 required
chw_return_t chilled-water-return-temp Temperature °C °F, K -1.11 to 32.22 required
chw_pump_cmd chw-pump-cmd Command or position 0-1 %, ratio 0 to 1 optional
pump_status pump-status Status 0/1 bool 0 or 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional
chiller_current chiller-current Current A none (declare A) - optional
chiller_amps chiller-amps Current A none (declare A) - optional
chiller_power chiller-power Power kW W, MW, Btu/h, ton, hp -1 to 10000 optional
chw_flow chw-flow Flow L/s m³/s, m³/h, cfm, gpm -1 to 1500 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
min_dt Minimum delta-T 2.22222 0.555556 6.66667 Δ°C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL holds the fan-restart / mode-delay window over rolling rows, pandas GL36 suppresses after a mode change: differs by a few samples at fault edges

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

CHW-2

DP below SP at max pump speed

Priority P0 · Equipment chiller, chwPlant · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
chw_dp chw-diff-pressure Pressure Pa kPa, inH2O, psi, bar -6894.76 to 689476 required
chw_dp_sp chw-diff-pressure-sp Pressure Pa kPa, inH2O, psi, bar - required
chw_pump_cmd chw-pump-cmd Command or position 0-1 %, ratio 0 to 1 required
pump_status pump-status Status 0/1 bool 0 or 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional
chw_flow chw-flow Flow L/s m³/s, m³/h, cfm, gpm -1 to 1500 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 5 0 60 min
dp_margin DP margin 15168.5 3447.38 41368.5 Pa
minimum_active_coverage_pct † Min active coverage 5 0 100 %
pump_hi Pump high-speed threshold 0.87 0.5 1 fraction (0-1)
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

CHW-3

Plant supply temp outside deadband

Priority P0 · Equipment chiller, chwPlant · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
chw_supply_t chilled-water-supply-temp Temperature °C °F, K -1.11 to 26.67 required
chw_supply_sp chilled-water-supply-temp-sp Temperature °C °F, K - required
chw_pump_cmd chw-pump-cmd Command or position 0-1 %, ratio 0 to 1 required
pump_status pump-status Status 0/1 bool 0 or 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional
chw_flow chw-flow Flow L/s m³/s, m³/h, cfm, gpm -1 to 1500 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 5 0 60 min
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
sp_band SP band 1.22222 0.277778 3.33333 Δ°C
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

CHW-4

Flow high at max pump

Priority P0 · Equipment chiller, chwPlant · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
chw_flow chw-flow Flow L/s m³/s, m³/h, cfm, gpm -1 to 1500 required
chw_pump_cmd chw-pump-cmd Command or position 0-1 %, ratio 0 to 1 required
pump_status pump-status Status 0/1 bool 0 or 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 5 0 60 min
flow_hi Flow high 69.3992 12.618 189.271 L/s
minimum_active_coverage_pct † Min active coverage 5 0 100 %
pump_hi Pump high-speed threshold 0.87 0.5 1 fraction (0-1)
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

CHW-NOLOAD-1

Chiller running with no building load

Priority P0 · Equipment chiller, chwPlant · Confirm 30 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
chiller_status chiller-status Status 0/1 bool 0 or 1 optional
chiller_cmd chiller-cmd Command or position 0-1 %, ratio 0 to 1 optional
chw_pump_status chw-pump-status Status 0/1 bool 0 or 1 optional
chw_pump_cmd chw-pump-cmd Command or position 0-1 %, ratio 0 to 1 optional
building_zone_load_satisfied building-zone-load-satisfied Status 0/1 bool 0 or 1 optional
building_ahu_load_satisfied building-ahu-load-satisfied Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 30 0 60 min
load_sat_hi Load satisfaction high (no-load fault) 0.5 0 1 fraction (0-1)
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours
status - assessment status text

Parity known divergence: pandas proves equipment/cooling from typed roles (mechanical_proof_mask, equipment_type); SQL ORs chiller status / valve

CW-APR-1

High CW approach at full tower fan

Priority P0 · Equipment chiller, cooling_tower, chwPlant · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
cw_supply_t condenser-water-supply-temp Temperature °C °F, K 0 to 50 required
web_wb_t web-outside-air-wetbulb Temperature °C °F, K - required
tower_fan_cmd tower-fan-cmd Command or position 0-1 %, ratio 0 to 1 required
pump_status pump-status Status 0/1 bool 0 or 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional
chw_flow chw-flow Flow L/s m³/s, m³/h, cfm, gpm -1 to 1500 optional
chw_pump_cmd chw-pump-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
approach_max Max approach at full fan 4.44444 2.77778 8.33333 Δ°C
confirm_min Fault confirm delay 15 0 60 min
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min
tower_fan_hi Tower fan full-speed threshold 0.95 0.8 1 fraction (0-1)

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

CW-FAN-1

Excess tower fan energy vs wet-bulb limit

Priority P0 · Equipment chiller, cooling_tower, chwPlant · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
cw_supply_t condenser-water-supply-temp Temperature °C °F, K 0 to 50 required
web_wb_t web-outside-air-wetbulb Temperature °C °F, K - required
tower_fan_cmd tower-fan-cmd Command or position 0-1 %, ratio 0 to 1 required
pump_status pump-status Status 0/1 bool 0 or 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional
chw_flow chw-flow Flow L/s m³/s, m³/h, cfm, gpm -1 to 1500 optional
chw_pump_cmd chw-pump-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
cw_approach Design approach 3.88889 1.66667 8.33333 Δ°C
excess_beyond_approach Excess beyond approach 2.77778 1.11111 11.1111 Δ°C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min
tower_fan_hi Tower fan full-speed threshold 0.95 0.8 1 fraction (0-1)

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

CW-OPT-1

Condenser water not optimized vs wet-bulb

Priority P0 · Equipment chiller, cooling_tower, chwPlant · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
cw_supply_t condenser-water-supply-temp Temperature °C °F, K 0 to 50 required
web_wb_t web-outside-air-wetbulb Temperature °C °F, K - required
pump_status pump-status Status 0/1 bool 0 or 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional
chw_flow chw-flow Flow L/s m³/s, m³/h, cfm, gpm -1 to 1500 optional
chw_pump_cmd chw-pump-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
cw_approach Design approach 3.88889 1.66667 8.33333 Δ°C
cw_slack Slack below target 1.11111 0.277778 3.33333 Δ°C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

TRIM-4

CHW plant reset advisory

Priority P0 · Equipment chiller, chwPlant · Confirm 30 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
chw_supply_t chilled-water-supply-temp Temperature °C °F, K -1.11 to 26.67 required
chw_reset_request_sum chilled-water-reset-request-sum Count count none - required
pump_status pump-status Status 0/1 bool 0 or 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional
chw_flow chw-flow Flow L/s m³/s, m³/h, cfm, gpm -1 to 1500 optional
chw_pump_cmd chw-pump-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
chw_lo CHWS low 7.22222 1.66667 12.7778 °C
confirm_min Fault confirm delay 30 0 60 min
minimum_active_coverage_pct † Min active coverage 5 0 100 %
request_lo Request sum low 1 0 10 count
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match; differs only on stress-only data: role names, threshold and missing input are aligned (#1588: contract roles hot-water- / chilled-water-reset-request-sum, fault at request sum <= request_lo, an absent request sum is not assessed on either side). Residual: pandas applies its hydronic proof gate with the 600 s startup holdoff, SQL has no startup holdoff, so SQL confirms one 5-minute sample earlier per pump start; matches on the 2 x 3 and 4 x 3 datasets, differs on the 8 x 7 run

Boilers

Boiler plants.

TRIM-3

HWST trim advisory

Priority P0 · Equipment boiler · Confirm 30 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
hw_supply_t hot-water-supply-temp Temperature °C °F, K 4.44 to 104.44 required
hw_reset_request_sum hot-water-reset-request-sum Count count none - required
pump_status pump-status Status 0/1 bool 0 or 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional
chw_flow chw-flow Flow L/s m³/s, m³/h, cfm, gpm -1 to 1500 optional
chw_pump_cmd chw-pump-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 30 0 60 min
hwst_hi HWST high 71.1111 48.8889 93.3333 °C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
request_lo Request sum low 1 0 10 count
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match; differs only on stress-only data: role names, threshold and missing input are aligned (#1588: contract roles hot-water- / chilled-water-reset-request-sum, fault at request sum <= request_lo, an absent request sum is not assessed on either side). Residual: pandas applies its hydronic proof gate with the 600 s startup holdoff, SQL has no startup holdoff, so SQL confirms one 5-minute sample earlier per pump start; matches on the 2 x 3 and 4 x 3 datasets, differs on the 8 x 7 run

Heat pumps

Heat pumps.

HP-1

Discharge cold when heating

Priority P0 · Equipment heatpump · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 required
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 required
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 required
compressor_status compressor-status Status 0/1 bool 0 or 1 optional
fan_status fan-status Status 0/1 bool 0 or 1 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 60 min
min_sat Min discharge SAT 29.4444 21.1111 43.3333 °C
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min
zone_cold Zone cold threshold 20.5556 15.5556 22.2222 °C

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: SQL and pandas gate ‘equipment on’ with different fan/pump proof order and thresholds

Meters and utilities

Energy and demand meters, utility bill analytics.

UTIL-INTERVAL

BAS 15m vs utility interval (MAE threshold)

Priority P1 · Equipment meter, ahu, heatpump · Confirm immediate · SQL file · SQL only

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
kwh kwh Energy kWh Wh, MWh, kBtu, MMBtu, therm - optional
electric_kw electric-kw Power kW W, MW, Btu/h, ton, hp - optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min † Fault confirm delay 0 0 120 min
util_interval_mae Interval MAE threshold 5 0.5 100 kWh

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity SQL only

UTIL-MONTHLY

BAS monthly kWh vs utility monthly bills (% deviation)

Priority P1 · Equipment meter, ahu, heatpump · Confirm immediate · SQL file · SQL only

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
kwh kwh Energy kWh Wh, MWh, kBtu, MMBtu, therm - optional
electric_kw electric-kw Power kW W, MW, Btu/h, ton, hp - optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min † Fault confirm delay 0 0 120 min
util_pct_err Monthly kWh deviation 10 2 50 %

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity SQL only

Sensor validation and control loops

Range, flatline, spike, stale and rate checks on every modeled sensor; PID hunting.

PID-HUNT-1

Suspected control-output hunting

Priority P0 · Equipment ahu, vav, zone_other, chiller, boiler, heatpump · Confirm immediate · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_damper_pct outside-air-damper Command or position 0-1 %, ratio 0 to 1 optional
clg_valve_pct cooling-valve Command or position 0-1 %, ratio 0 to 1 optional
htg_valve_pct heating-valve Command or position 0-1 %, ratio 0 to 1 optional
damper_pct damper Command or position 0-1 %, ratio 0 to 1 optional
loop_enabled loop-enabled Status 0/1 bool 0 or 1 optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional

Parameters

Parameter Label Default Min Max SI unit
change_deadband_pct Ignore changes below 1 0 10 %
confirm_min Fault confirm delay 0 0 60 min
minimum_active_coverage_pct † Min active coverage 5 0 100 %
minimum_coverage_pct Min window sample coverage 80 50 100 %
minimum_equivalent_cycles Min equivalent cycles 2.5 0.5 10 count
minimum_reversals Min direction reversals 4 1 20 count
minimum_span_pct Minimum observed span 20 5 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min
total_variation_fault_pct Total variation fault threshold 500 50 2000 %
window_hours Hunting lookback window 1 0.25 4 h

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity match

SV-FLATLINE

Sensor flatline (stuck)

Priority P0 · Equipment ahu, vav, chiller, boiler, weather, zone_other, heatpump · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 optional
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 optional
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 optional
rat return-air-temp Temperature °C °F, K 4.44 to 37.78 optional
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 optional
chw_supply_t chilled-water-supply-temp Temperature °C °F, K -1.11 to 26.67 optional
chw_return_t chilled-water-return-temp Temperature °C °F, K -1.11 to 32.22 optional
hw_supply_t hot-water-supply-temp Temperature °C °F, K 4.44 to 104.44 optional
hw_return_t hot-water-return-temp Temperature °C °F, K 4.44 to 104.44 optional
oa_h outside-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
ra_h return-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
zone_rh zone-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
ma_h mixed-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
sa_h supply-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional
pump_status pump-status Status 0/1 bool 0 or 1 optional
chw_pump_cmd chw-pump-cmd Command or position 0-1 %, ratio 0 to 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional
zone_flow zone-airflow Flow L/s m³/s, m³/h, cfm, gpm - optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 5 0 60 min
flatline_hours Flatline window 1 0.25 12 h
flatline_tol Flatline tolerance 0.055556 0.011111 0.555556 Δ°C
max_silence_hours Max sensor silence 0.5 0.25 12 h
minimum_active_coverage_pct † Min active coverage 5 0 100 %
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
series_id - assessed sensor series
sensor_role - Haystack role of the sensor
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

SV-RANGE

Sensor out of hard range

Priority P0 · Equipment ahu, vav, chiller, boiler, weather, zone_other, heatpump, meter · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 optional
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 optional
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 optional
rat return-air-temp Temperature °C °F, K 4.44 to 37.78 optional
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 optional
chw_supply_t chilled-water-supply-temp Temperature °C °F, K -1.11 to 26.67 optional
chw_return_t chilled-water-return-temp Temperature °C °F, K -1.11 to 32.22 optional
hw_supply_t hot-water-supply-temp Temperature °C °F, K 4.44 to 104.44 optional
hw_return_t hot-water-return-temp Temperature °C °F, K 4.44 to 104.44 optional
oa_h outside-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
ra_h return-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
zone_rh zone-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
ma_h mixed-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
sa_h supply-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
duct_static duct-static-pressure Pressure Pa kPa, inH2O, psi, bar -248.84 to 1990.72 optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional
pump_status pump-status Status 0/1 bool 0 or 1 optional
chw_pump_cmd chw-pump-cmd Command or position 0-1 %, ratio 0 to 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional
zone_flow zone-airflow Flow L/s m³/s, m³/h, cfm, gpm - optional
kwh kwh Energy kWh Wh, MWh, kBtu, MMBtu, therm - optional
electric_kw electric-kw Power kW W, MW, Btu/h, ton, hp - optional
electric_kwh electric-kwh Energy kWh Wh, MWh, kBtu, MMBtu, therm - optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 5 0 60 min
max_silence_hours Max sensor silence 0.5 0.25 12 h
minimum_active_coverage_pct † Min active coverage 5 0 100 %
range_scale_humidity Humidity range scale 1 0.5 2 x (ratio)
range_scale_pressure Pressure / duct-static range scale 1 0.5 2 x (ratio)
range_scale_temperature Temp range scale 1 0.5 2 x (ratio)
require_operational_gate † Require operational gate 1 0 1 0/1
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
series_id - assessed sensor series
sensor_role - Haystack role of the sensor
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)

Parity match

SV-RATE

Context-aware sensor rate of change

Priority P0 · Equipment ahu, vav, chiller, boiler, weather, zone_other, heatpump · Confirm 10 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 optional
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 optional
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 optional
rat return-air-temp Temperature °C °F, K 4.44 to 37.78 optional
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 10 0 60 min
max_gap_hours Max sample gap 1 0.1 12 h
persistence_min † Fault persistence 10 5 60 min
sensor_span Sensor span 100 1 500 signal units
steady_fault_per_hour Steady-state slew limit 3.33333 0.555556 33.3333 Δ°C/h

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
series_id - assessed sensor series
sensor_role - Haystack role of the sensor
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)

Parity known divergence: documented in sql/fdd/KNOWN_DIFFERENCES.md: pandas uses profile/median/persistence logic, SQL two consecutive exceedances

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

SV-SPIKE

Sensor rate-of-change spike

Priority P0 · Equipment ahu, vav, chiller, boiler, weather, zone_other, heatpump · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 optional
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 optional
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 optional
rat return-air-temp Temperature °C °F, K 4.44 to 37.78 optional
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 optional
chw_supply_t chilled-water-supply-temp Temperature °C °F, K -1.11 to 26.67 optional
chw_return_t chilled-water-return-temp Temperature °C °F, K -1.11 to 32.22 optional
hw_supply_t hot-water-supply-temp Temperature °C °F, K 4.44 to 104.44 optional
hw_return_t hot-water-return-temp Temperature °C °F, K 4.44 to 104.44 optional
oa_h outside-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
duct_static duct-static-pressure Pressure Pa kPa, inH2O, psi, bar -248.84 to 1990.72 optional
fan_status fan-status Status 0/1 bool 0 or 1 optional
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 optional
pump_status pump-status Status 0/1 bool 0 or 1 optional
chw_pump_cmd chw-pump-cmd Command or position 0-1 %, ratio 0 to 1 optional
chiller_status chiller-status Status 0/1 bool 0 or 1 optional
zone_flow zone-airflow Flow L/s m³/s, m³/h, cfm, gpm - optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 5 0 60 min
max_silence_hours Max sensor silence 0.5 0.25 12 h
minimum_active_coverage_pct Min active coverage 5 0 100 %
require_operational_gate Require operational gate 1 0 1 0/1
spike_scale † Spike limit scale (global) 1 0.25 3 x (ratio)
spike_scale_humidity Spike scale humidity 1 0.25 4 x (ratio)
spike_scale_pressure Spike scale pressure 1 0.25 4 x (ratio)
spike_scale_temperature Spike scale temperature 1 0.25 4 x (ratio)
startup_delay_min † Startup delay 0 0 60 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
series_id - assessed sensor series
sensor_role - Haystack role of the sensor
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)

Parity match

SV-STALE

Stale data (no fresh samples)

Priority P0 · Equipment ahu, vav, chiller, boiler, weather, zone_other, heatpump · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 optional
mat mixed-air-temp Temperature °C °F, K -28.89 to 43.33 optional
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 optional
rat return-air-temp Temperature °C °F, K 4.44 to 37.78 optional
sat discharge-air-temp Temperature °C °F, K -1.11 to 65.56 optional
chw_supply_t chilled-water-supply-temp Temperature °C °F, K -1.11 to 26.67 optional
chw_return_t chilled-water-return-temp Temperature °C °F, K -1.11 to 32.22 optional
hw_supply_t hot-water-supply-temp Temperature °C °F, K 4.44 to 104.44 optional
hw_return_t hot-water-return-temp Temperature °C °F, K 4.44 to 104.44 optional
oa_h outside-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
ra_h return-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
zone_rh zone-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
ma_h mixed-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional
sa_h supply-air-humidity Relative humidity %RH (0-100) none 0 to 100 optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 5 0 60 min
max_silence_hours Max sensor silence 0.5 0.25 12 h
stale_hours Stale window 2 0.25 12 h
stale_tol Stale tolerance 0.027778 0 0.555556 Δ°C

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
series_id - assessed sensor series
sensor_role - Haystack role of the sensor
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)

Parity match

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

Weather

Web weather versus the site’s own outside air sensor.

OAT-METEO

Equipment OAT vs weather-staged wx OAT

Priority P0 · Equipment ahu · Confirm 15 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required
web_oa_t web-outside-air-temp Temperature °C °F, K - optional

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 15 0 60 min
oat_err OAT vs meteo tolerance 2.77778 1.11111 11.1111 Δ°C
web_asof_margin_seconds Web as-of margin 300 0 1800 s
web_cadence_seconds Web weather cadence 1200 300 7200 s

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity known divergence: weather source: SQL prefers equipment web_oa_* then as-of weather rows; pandas resolves its own web columns

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

WX-1

OA temperature spike

Priority P0 · Equipment weather · Confirm 5 min · SQL file · pandas twin

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
oa_t outside-air-temp Temperature °C °F, K -51.11 to 54.44 required

Parameters

Parameter Label Default Min Max SI unit
confirm_min Fault confirm delay 5 0 60 min
spike_limit Spike limit 8.88889 2.22222 22.2222 Δ°C

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours
Parity match; differs only on edge data: Gap handling: SQL flags oa_t - previous sample above the fixed limit whatever the time between samples, pandas scales the limit by the sample gap (limit x dt/poll), so a real change across a >2 h gap is a spike in SQL only.

Imperial display: Δ°C parameters are differences, shown as Δ°F with no +32.

General

Rules that apply to any equipment: runtime, comfort and elapsed-time analytics.

AVG-ZONE-TEMP

Average zone temperature per equipment

Priority P0 · Equipment any equipment · Confirm immediate · SQL file · SQL only

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 required

Parameters

Parameter Label Default Min Max SI unit
confirm_min † Fault confirm delay 0 0 120 min
zone_t_hi † Zone comfort high (reference) 24.4444 22.2222 29.4444 °C
zone_t_lo † Zone comfort low (reference) 20 15.5556 22.2222 °C

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
avg_zone_temp °C mean zone temperature
min_zone_temp °C lowest zone temperature
max_zone_temp °C highest zone temperature

Parity SQL only

FAN-RUNTIME-HOURS

Fan running hours where fan_cmd > 5% (normalized 0-1)

Priority P0 · Equipment any equipment · Confirm immediate · SQL file · SQL only

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
fan_cmd fan-cmd Command or position 0-1 %, ratio 0 to 1 required

Parameters

Parameter Label Default Min Max SI unit
confirm_min † Fault confirm delay 0 0 120 min

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fan_runtime_hours h fan running time
total_hours h assessed time

Parity SQL only

FAULT-ELAPSED-HOURS

Comfort fault sample count → hours

Priority P0 · Equipment any equipment · Confirm immediate · SQL file · SQL only

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 required

Parameters

Parameter Label Default Min Max SI unit
confirm_min † Fault confirm delay 0 0 120 min
zone_t_hi Zone comfort high 24.4444 22.2222 29.4444 °C
zone_t_lo Zone comfort low 20 15.5556 22.2222 °C

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
fault_samples count samples in fault
fault_hours h confirmed fault time
covered_hours h time the rule could assess (known inputs, gate open)
fault_pct % fault_hours as a share of covered_hours

Parity SQL only

ZONE-COMFORT-PCT

Percent of samples in comfort band

Priority P0 · Equipment any equipment · Confirm immediate · SQL file · SQL only

Inputs

Role (SQL column) Haystack role Quantity SI unit Also accepted (converted at ingest) Expected range Needed
zone_t zone-air-temp Temperature °C °F, K 4.44 to 37.78 required

Parameters

Parameter Label Default Min Max SI unit
confirm_min † Fault confirm delay 0 0 120 min
zone_t_hi Zone comfort high 24.4444 22.2222 29.4444 °C
zone_t_lo Zone comfort low 20 15.5556 22.2222 °C

† informational: this control has no effect in the SQL template.

Outputs

Output Unit Meaning
equipment_id - equipment the row describes
comfort_pct % share of assessed time inside the comfort band

Parity SQL only