Methods and data
Methods and data
Every number on this site is calculated from a named dataset, cited from a source, or calculated from your own input. Here is how.
Source and licence
Sample data: LBNL's public simulated chiller plant. The Plant Check samples and every sample-data figure on this site use two files from this public research dataset:
Granderson, J., Lin, G., Chen, Y., Casillas, A., et al. LBNL Fault Detection and Diagnostics Datasets. Lawrence Berkeley National Laboratory, 2022. Open Energy Data Initiative. https://doi.org/10.25984/1881324 (CC BY 4.0)
- Licence: CC BY 4.0.
- Changes: July slices, resampled from 1-minute values to 15-minute averages; point names unchanged.
The two files:
- Sample plant, no faults (July): Three chillers and three cooling towers serving a 12-storey Chicago office, fault-free case.
- Sample plant, cooling-tower fouling (July): The same plant with cooling tower 1's heat-transfer coefficient reduced to 65% (LBNL's 'fouling' fault).
The dataset
Both files have the same 77 points and a timestamp column, Datetime, with LBNL's point names as published.
Files
| File | Rows | Interval | First row | Last row | Period |
|---|---|---|---|---|---|
| Sample plant, no faults (July) | 2,976 | 15 min | Jul 1, 2018 | Jul 31, 2018 | 31.0 days |
| Sample plant, cooling-tower fouling (July) | 2,976 | 15 min | Jul 1, 2018 | Jul 31, 2018 | 31.0 days |
Points by prefix
| Prefix | Points | Point names |
|---|---|---|
| CHL | 27 | CHL_CD_FLOW_1–3, CHL_COMP_SPD_CTRL_1–3, CHL_CW_FLOW_1–3, CHL_POW_1–3, CHL_SWCD_TEMP_1–3, CHL_RW_TEMP_1–3, CHL_STA_1–3, CHL_RWCD_TEMP_1–3, CHL_SW_TEMP_1–3 |
| CT | 22 | CT_FAN_SPD_1–3, CT_FAN_SPD_CTRL_1–3, CT_FLOW_1–3, CT_POW_1–3, CT_RW_TEMP_1–3, CT_STA_1–3, CT_SW_TEMPSPT, CT_SW_TEMP_1–3 |
| CWL_SEC | 12 | CWL_SEC_CW_FLOW, CWL_SEC_DP, CWL_SEC_DPSPT, CWL_SEC_LOAD, CWL_SEC_PM_POW_1–2, CWL_SEC_PM_SPD_1–2, CWL_SEC_PM_STA_1–2, CWL_SEC_RW_TEMP, CWL_SEC_SW_TEMP |
| CWL_PRI | 7 | CWL_PRI_CW_FLOW, CWL_PRI_PM_POW_1–3, CWL_PRI_RW_TEMP, CWL_PRI_SW_TEMP, CWL_PRI_SW_TEMPSPT |
| CDWL | 6 | CDWL_CW_FLOW, CDWL_PM_POW_1–3, CDWL_RW_TEMP, CDWL_SW_TEMP |
| OA | 2 | OA_TEMP, OA_TEMP_WB |
| TWV | 1 | TWV_CTRL |
| All points | 77 |
The 77 points include no make-up, blowdown, conductivity or chemistry points, so this site shows no water-side numbers for the sample plant. Water-side numbers appear only in the calculators, driven by your own inputs.
The OA_TEMP / OA_TEMP_WB finding
LBNL's point inventory labels OA_TEMP as outdoor dry-bulb temperature and OA_TEMP_WB as outdoor wet-bulb temperature. Mapped by those labels in the fouled-tower file, Plant Check's physics check reports:
Wet-bulb is above dry-bulb in 98% of rows, which is physically impossible. The two columns may be swapped or mislabelled in the export.
Wet-bulb is not above dry-bulb · OA_TEMP_WB vs OA_TEMP · measured 97.8% of rows
By name vs reference mapping
| Point | Going by the label | Reference mapping |
|---|---|---|
| OA_TEMP | Outdoor dry-bulb temperature | Outdoor wet-bulb temperature |
| OA_TEMP_WB | Outdoor wet-bulb temperature | Outdoor dry-bulb temperature |
The reference assignment comes from the plant's documented control sequence, LBNL inventory §1.2, Eq. 3 (tower leaving-water setpoint = wet-bulb + 8 °F). Over 2,976 rows, the setpoint column CT_SW_TEMPSPT minus each outdoor column:
Control-sequence evidence
| Difference | Mean | Standard deviation |
|---|---|---|
| CT_SW_TEMPSPT − OA_TEMP | 7.93 °F | 0.76 °F |
| CT_SW_TEMPSPT − OA_TEMP_WB | 1.16 °F | 4.86 °F |
The setpoint follows OA_TEMP at a mean offset of 7.93 °F with a standard deviation of 0.76 °F, as the sequence requires of the wet-bulb; against OA_TEMP_WB the standard deviation is 4.86 °F.
Plant Check's check flags the pair when mapped by name; our reference mapping assigns them by the control-sequence evidence. The check never changes a mapping. The files are used as LBNL published them.
Physics checks
Plant Check runs 6 fixed engineering rules on every proposed mapping and again on the mapping you confirm. A rule that fires shows its warning; it never changes a mapping.
Below is every check on the fouled-tower file with the points mapped by their inventory labels: 24 checks, 1 flagged. With the reference mapping the same file gives 24 checks, 0 flagged.
Mapped by point name · Sample plant, cooling-tower fouling (July)
| Checked | Measured | Result |
|---|---|---|
| Temperatures are plausibleEvery mapped temperature stays within −20 to 140 °F after unit conversion. | ||
| Chilled-water supply temperatureCWL_PRI_SW_TEMP | 42.8–54.1 °F | ✓ PASS |
| Chilled-water return temperatureCWL_PRI_RW_TEMP | 42.9–62.8 °F | ✓ PASS |
| Condenser water to towerCDWL_RW_TEMP | 60.2–96.6 °F | ✓ PASS |
| Condenser water from towerCDWL_SW_TEMP | 60.0–88.3 °F | ✓ PASS |
| Outdoor wet-bulb temperatureOA_TEMP_WB | 53.2–94.8 °F | ✓ PASS |
| Outdoor dry-bulb temperatureOA_TEMP | 51.5–80.4 °F | ✓ PASS |
| Chilled-water supply is colder than returnFlags when supply is warmer than return in more than half the rows. | ||
| Chilled-water supply temperatureCWL_PRI_SW_TEMP vs CWL_PRI_RW_TEMP | 0.0% of rows | ✓ PASS |
| Water from the tower is colder than water to itFlags when water from the tower is warmer than water to the tower in more than half the rows. | ||
| Condenser water from towerCDWL_SW_TEMP vs CDWL_RW_TEMP | 0.0% of rows | ✓ PASS |
| Wet-bulb is not above dry-bulbFlags when wet-bulb exceeds dry-bulb in more than 5% of rows. | ||
| Outdoor wet-bulb temperatureOA_TEMP_WB vs OA_TEMP | 97.8% of rows | ⚠ FLAG |
| Wet-bulb is above dry-bulb in 98% of rows, which is physically impossible. The two columns may be swapped or mislabelled in the export. | ||
| Fan speed set as a fraction stays at or below 1Flags when a fan speed mapped as a fraction exceeds 1.05. | ||
| Cooling-tower fan speedCT_FAN_SPD_1 | max 1.00 | ✓ PASS |
| Power readings are not negativeFlags a power column with negative readings in more than 1% of rows. | ||
| CHL_POW_1 | 0.0% of rows negative | ✓ PASS |
| CHL_POW_2 | 0.0% of rows negative | ✓ PASS |
| CHL_POW_3 | 0.0% of rows negative | ✓ PASS |
| CT_POW_1 | 0.0% of rows negative | ✓ PASS |
| CT_POW_2 | 0.0% of rows negative | ✓ PASS |
| CT_POW_3 | 0.0% of rows negative | ✓ PASS |
| CDWL_PM_POW_1 | 0.0% of rows negative | ✓ PASS |
| CDWL_PM_POW_2 | 0.0% of rows negative | ✓ PASS |
| CDWL_PM_POW_3 | 0.0% of rows negative | ✓ PASS |
| CWL_PRI_PM_POW_1 | 0.0% of rows negative | ✓ PASS |
| CWL_PRI_PM_POW_2 | 0.0% of rows negative | ✓ PASS |
| CWL_PRI_PM_POW_3 | 0.0% of rows negative | ✓ PASS |
| CWL_SEC_PM_POW_1 | 0.0% of rows negative | ✓ PASS |
| CWL_SEC_PM_POW_2 | 0.0% of rows negative | ✓ PASS |
Metric definitions
Plant Check calculates every number it reports directly from the points you confirm, with the formulas below. It reports a metric only when the points it needs are mapped: the base requirement, plus any listed against it. We verify that each requirement is both sufficient and necessary.
Base requirement, every metricTimestamp and Chiller power, plus either Chilled-water flow, Chilled-water supply temperature and Chilled-water return temperature, or Measured cooling load.
| Metric | Unit | Needs beyond the base | Note |
|---|---|---|---|
| Period covered | days | Base only | none |
| Sampling interval | min | Base only | none |
| Hours with chillers running | h | Base only | none |
| Chiller electricity | kWh | Base only | none |
| Cooling delivered | ton-h | Base only | From chilled-water flow x delta-T when those points are mapped, otherwise from the measured load point. |
| Average load while running | tons | Base only | none |
| Peak load | tons | Base only | none |
| Chiller efficiency (energy-weighted) | kW/ton | Base only | Total chiller kWh divided by total ton-hours. |
| Chiller kW/ton, best 10% of running intervals | kW/ton | Base only | none |
| Chiller kW/ton, median running interval | kW/ton | Base only | none |
| Chiller kW/ton, worst 10% of running intervals | kW/ton | Base only | none |
| Cooling-tower fan electricity | kWh | Cooling-tower fan power | none |
| Tower fan energy per ton-hour | Wh/ton-h | Cooling-tower fan power | none |
| Pump electricity | kWh | Pump power | none |
| Whole-plant efficiency (chillers + towers + pumps mapped) | kW/ton | at least one of: Cooling-tower fan power or Pump power | none |
| Hours with chillers on below 5% of peak load | h | Base only | none |
| Plant electricity used in those standby hours | kWh | Base only | Chillers plus any mapped towers and pumps. |
| Share of plant electricity used in standby hours | % | Base only | none |
| Chilled-water delta-T (median while running) | °F | Chilled-water supply temperature and Chilled-water return temperature | none |
| Lift (median while running) | °F | Condenser water to tower and Chilled-water supply temperature | Condenser water leaving chillers minus chilled water leaving chillers. |
| Condenser-water range (median while running) | °F | Condenser water to tower and Condenser water from tower | none |
| Tower approach to wet-bulb (median while running) | °F | Condenser water from tower and Outdoor wet-bulb temperature | none |
| Tower approach, worst 10% of running intervals | °F | Condenser water from tower and Outdoor wet-bulb temperature | none |
| Mapped tower fan speed (median while running) | % | Cooling-tower fan speed | none |
| Share of running hours with the mapped tower fan at ≥95% speed | % | Cooling-tower fan speed | none |
The number rule
After the metrics are calculated, AI writes the explanation: a headline, findings, questions for the site and caveats. It is given the calculated metrics, notes on missing points, and which physics checks flagged. For the samples it is told where the data came from, but not which fault was introduced, so an explanation that points at the towers got there from the numbers. Apart from the metric values themselves, nothing it is given states a number: labels that name a percentile or threshold are reworded, and a flagged check is described without its measured share.
The rule it works under: it may not write a number, in digits or in words. Where it needs a figure, it cites one of the calculated metrics, and we insert the value and unit.
Every explanation is checked before you see it. A digit, a number word (such as eight, forty-four, half, twice, doubled or percent), or a citation of a figure we did not calculate rejects the whole explanation, and you see an error instead. In an accepted explanation, every number traces to a calculated metric.
Example drafts and what the check did with them
- Draft
- Approach sits at [Tower approach to wet-bulb (median while running)] while running.
- Published as
- Approach sits at 8.7 °F while running.
- Draft
- Approach is about 8 degrees.
- Why it was rejected
- It typed a number itself.
- Draft
- Approach is about eight degrees.
- Why it was rejected
- It wrote a number as a word ('eight').
- Draft
- Savings of [dollars saved: not a figure we calculate].
- Why it was rejected
- It cited a figure we never calculated.
These drafts are examples we wrote, not AI output. AI output appears on this site only from a recorded run, tagged Written by AI with its date, and shown unedited.
Reference mapping and AI output
In Plant Check, AI proposes a role and unit for every point, from its name and a profile of its values. The AI proposes and you confirm: you check or change each row before anything is calculated.
The sample-data figures on this site don't use an AI proposal. They use a reference mapping we wrote from LBNL's point inventory and checked against the data's physics: 23 of the 77 points carry a role.
Reference mapping · Sample plant, cooling-tower fouling (July)
REFERENCE MAPPING| Role | Points | Unit |
|---|---|---|
| Timestamp | Datetime | datetime |
| Chiller power | CHL_POW_1–3 | kW |
| Cooling-tower fan power | CT_POW_1–3 | kW |
| Pump power | CDWL_PM_POW_1–3, CWL_PRI_PM_POW_1–3, CWL_SEC_PM_POW_1–2 | kW |
| Measured cooling load | CWL_SEC_LOAD | W |
| Chilled-water flow | CWL_PRI_CW_FLOW | gpm |
| Chilled-water supply temperature | CWL_PRI_SW_TEMP | degF |
| Chilled-water return temperature | CWL_PRI_RW_TEMP | degF |
| Condenser water to tower | CDWL_RW_TEMP | degF |
| Condenser water from tower | CDWL_SW_TEMP | degF |
| Cooling-tower fan speed | CT_FAN_SPD_1 | fraction |
| Outdoor wet-bulb temperature | OA_TEMP | degF |
| Outdoor dry-bulb temperature | OA_TEMP_WB | degF |
| Not used | 54 points. Setpoints, statuses, per-equipment duplicates of plant-level points, pressures, control signals and anything else the analysis does not need. | |
One recorded AI run per file, shown unedited: how its proposed mapping compares with the reference mapping.
Sample plant, no faults (July)
78 of 78 points: the AI proposed the same role and unit as the reference mapping.
No differences.
Sample plant, cooling-tower fouling (July)
78 of 78 points: the AI proposed the same role and unit as the reference mapping.
No differences.
Check our numbers
The dataset is public. Download it from the DOI above, take the July slices at 15-minute averages, and apply the reference mapping and the metric definitions above to reproduce any sample-data number on this site. Questions about a number? Write to us at [email protected].