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
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