Validation Report · Thermal Systems

Boiler Module Validation

Eight validation stages across 280 in-scope scenarios, every stage cross-validated against EnergyPlus 26.1 (Boiler:HotWater, WaterHeater:Stratified, Schedule:File, LifeCycleCost). 278 of 280 scenarios PASS strict ASHRAE Guideline 14-2023 bands on annual fuel energy, hourly NMBE / CV(RMSE), peak fuel rate, and the financial-layer KPIs. The two documented FAILs are sub-minimum-cycling sinusoidal scenarios at PLR ≤ 0.10 on the 100 kW non-condensing boiler.

In-Scope Scenarios

280

Pass Rate

99.3%

EnergyPlus Cross-Validated Stages

8

Analytically Validated Stages

0

Featured · 2026 Boiler Validation Report

278 of 280 scenarios PASS strict ASHRAE G14-2023 vs EnergyPlus + analytical references

Eight stages, three commercial boiler classes, 8,760-hour realistic-load on each. Every stage cross-validated against an open EnergyPlus reference. Financial KPIs at 0.0000 % vs LifeCycleCost (NIST Handbook 135) and IRS Publication 946 MACRS GDS. 7 pages.

How to Read This Report

Independent-engineer guide to the boiler validation pack

Every number on this page traces to an audit-trace directory on the public CogenS repository. Here is what each section means and where the evidence lives.

1 · The headline numbers

Scenarios · Pass rate · EP-cross-validated stages

In-Scope Scenarios is the count after documented exclusions (cycling edge cases, off-design condensing temperatures). Pass Rate is strict ASHRAE Guideline 14-2023 unless the case sits in a relaxed regime that is documented on the Cover sheet of its served xlsx workbook. EnergyPlus Cross-Validated Stages counts every stage with a direct EP comparison — for boiler that is all 8.

2 · The gate tolerances

Strict ASHRAE G14-2023 + documented relaxed regimes

Strict bands: annual energy +/- 5 %, hourly NMBE +/- 10 %, hourly CV(RMSE) <= 30 %, peak +/- 10 %. FEMP M&V Tier 2 relaxed bands documented per scenario where two valid engines model the same equipment under different control philosophies. Financial-layer gates run at zero relaxation (0.0000 %) vs the published references.

3 · The sample workbooks

7-sheet Excel with live formulas

Every Stage section has a representative sample .xlsx download. Each workbook ships seven sheets: Cover (inputs + regime band + reference engine rationale), Inputs, CogenS Output, Reference Output, Comparison + Tolerances (live formulas for NMBE / CV(RMSE) / annual deviation you can re-score against your own bands), Gates, and Charts.

4 · The financial layer

Three independent references, all at 0.0000 %

Stage 6 validates total cost of ownership, NPV, IRR, payback, and MACRS-200%-DB depreciation against EnergyPlus LifeCycleCost (NIST Handbook 135), a polynomial-root IRR solver, a closed-form analytical NPV recompute, and the IRS Publication 946 GDS percentage tables.

5 · Tier 1 gates vs Tier 2 diagnostics

What gates the PASS vs what is reported alongside

A Tier 1 gate is the metric that gates the strict-band PASS verdict (annual energy, hourly NMBE / CV(RMSE), peak demand, trajectory match). A Tier 2 diagnostic is reported alongside but does not gate the verdict - examples include multi-unit units-operating discrepancies, per-size dispatch splits, and surface-area accounting conventions where two valid engines model the same physical quantity differently.

6 · The 2 documented out-of-strict-band cases

Sub-minimum cycling at PLR <= 0.10

Two of 189 Stage 1 scenarios fall outside the strict band: 100 kW non-condensing gas at PLR = 0.10 with sinusoidal load. Both engines hit the same operating-envelope edge (a boiler cannot stay stably on at 10 kW net thermal output for hours at a time). The regime sits outside normal project operation.

Stage-by-Stage Results

StageScopeIn-ScopePassedReference Engine
Stage 1Single-unit isolated boiler under variable hot-water demand. Three equipment classes (non-condensing gas, electric resistance, condensing gas), six part-load ratios, three nominal capacities, three supply temperatures, and two simulation periods (one-week steady + one-week sinusoidal variable). Each scenario runs in CogenS and EnergyPlus with identical performance curves pulled from the production coefficient database. Two FAIL scenarios are documented in the matrix: sub-minimum-cycling sinusoidal at PLR ≤ 0.10 on the 100 kW non-condensing boiler, where both engines hit the same operating-envelope edge.189187/189EnergyPlus 26.1.0 Boiler:HotWater isolated topology (PlantLoop + LoadProfile:Plant). Curve:Cubic for non-condensing / electric (CogenS FuelPLC Quadratic / Cubic mapped to PLF cubic); Curve:Cubic-from-BiQuadratic for condensing (PLF sampled at the scenario's design return temperature). Scored against ASHRAE Guideline 14-2023.
Stage 1BAnnual cross-validation where both CogenS and EnergyPlus run the same 8,760-hour weather-derived heating load on the same boiler equipment. Three equipment classes (non-condensing gas, electric, condensing gas at 60 °C in-design) each on the same 500 kW capacity with the same Chicago O'Hare TMY3-derived hourly load. Scored against ASHRAE Guideline 14-2023 at annual / monthly (12 bins) / hourly (8,760 points) / peak resolution.33/3EnergyPlus 26.1.0 Boiler:HotWater isolated topology driven by a Schedule:File reading the same 8,760-row hourly CSV CogenS consumes via load_profile_kw. Condensing equipment scored under the relaxed +/-12% annual / +/-15% peak / +/-12% monthly NMBE / +/-15% hourly NMBE band (BiQuadratic 2D → 1D collapse documented on the Cover sheet).
Stage 2Multi-boiler plant where N identical units share a single hot-water load. Three equipment classes × three unit counts (N=2, N=3, N=4) × five system part-load ratios (10%, 25%, 50%, 75%, 100% of plant nameplate). Eight cases scoped out as documented control-law exclusions where the sub-minimum cycling regime is not validatable head-to-head. Tests how the staging rule (when to add the next unit) interacts with the per-unit performance curve.4444/44EnergyPlus 26.1.0 multi-unit Boiler:HotWater plant: N identical boilers on one PlantLoop under EP's 'Optimal' load-distribution scheme (loads each active unit to maximum PLR before adding the next). CogenS uses a band-fit staging rule that keeps operating units inside the optimum PLR range [0.44, 0.84]. Both valid staging philosophies; energy agreement scored under ASHRAE Guideline 14-2023, plus a units-operating discrepancy gate at +/- 1 unit / hour.
Stage 3Two-size boiler plant: 2 × 500 kW + 1 × 1,000 kW (= 2 MW plant) across five system PLRs and two equipment classes. The common topology where a smaller modulating boiler handles low-demand hours and a larger boiler stages in for peaks. CogenS' min-fuel proportional dispatch vs EP's 'Optimal' smallest-first scheme.1010/10EnergyPlus 26.1.0 multi-size Boiler:HotWater plant: 2 boilers at size_1 capacity + 1 boiler at size_2 capacity on a single PlantLoop. EP's 'Optimal' load-distribution scheme picks the smallest available active boiler first and loads it to max PLR before adding the next. CogenS' min-fuel proportional dispatch loads all sizes simultaneously at proportional PLRs. Total system fuel scored against ASHRAE G14 (the gating decision); per-size split is a dispatch-philosophy diagnostic.
Stage 4Isolated stratified hot-water tank, heaters disabled, decaying from a uniform 90 °C across 168 hours. Two tank volumes (10 / 50 m³) × three U-values (0.3 / 0.5 / 1.0 W/m²K) = 6 cases. Validates the tank's standby physics against EP's WaterHeater:Stratified.66/6EnergyPlus 26.1.0 WaterHeater:Stratified isolated standby tank with matched geometry (cylindrical, height = 4 × radius, 5 axial nodes), matched U-value, matched ambient (20 °C). Tank-average temperature trajectory scored against ASHRAE G14 hourly NMBE +/-10% / CV(RMSE) <= 30%. Re-scored July 2026 against the current stratified-tank engine; the previous engine's published figures are quoted alongside each gate rather than replaced silently.
Stage 4bCycling regime: 8 hours nightly charge (heater setpoint 82 °C) + 12 hours daily discharge (use-side LoadProfile:Plant draws 22 kW; 1.2 kW/m³ MOD or 2.2 kW/m³ DEEP) + 4 hours idle. Two tank volumes (10 / 50 m³) × two cycling depths (MOD, DEEP) = 4 cases, 168-hour week with 7 daily cycles each.44/4EnergyPlus 26.1.0 WaterHeater:Stratified TES with phased charge / discharge cycling — source side is an indirect boiler coil whose heater-1 setpoint schedule gates charge versus discharge. CogenS receives the matching signed charge / discharge schedule. Tank temperature trajectory + cumulative discharge energy gate; charge energy and shell-loss carry the documented Stage 4 sidewall-vs-full-surface convention.
Stage 5Coupled Boiler + TES plant: boiler maintains tank at setpoint while the load draws on the tank. Two equipment classes (non-condensing gas, electric) × two tank volumes (10 / 50 m³) × three system PLRs (30% / 50% / 70%) = 12 cases on the 1-week steady matrix, plus served annual TMY3-realistic canonicals (NONCOND gas + ELECTRIC variants) for full-year evidence, including a 20-year time-of-use financial layer on the Electric variant that gates cost of ownership with and without storage and the storage-incremental NPV against an analytical NIST HB135 present-value reference. (Internal rate of return and payback are reported alongside but are not gated — see the gate list.)1212/12EnergyPlus 26.1.0 coupled Boiler:HotWater + WaterHeater:Stratified plant: two PlantLoops with a Boiler:HotWater feeding the heater side of the tank under IndirectHeatPrimarySetpoint control, LoadProfile:Plant drawing the use side. Scored against ASHRAE G14 on boiler fuel + thermal (annual) + tank-temperature trajectory (hourly NMBE / CV(RMSE)). Re-scored July 2026 with the storage engine swapped and the boiler engine held fixed, so the movement is attributable to the tank; the previous engine's figures are quoted alongside each gate rather than replaced silently.
Stage 6Investment-grade financial outputs: total cost of ownership, net present value, internal rate of return, simple payback, and MACRS-200%-DB depreciation. Two cost bases (SMALL: 500 kW + 10 m³, LARGE: 2 MW + 50 m³) × six financial profiles (discount-rate sweep, inflation sweep, study-period sweep, base + MACRS tax treatment) = 12 cases.1212/12EnergyPlus 26.1 LifeCycleCost (NIST Handbook 135 reference implementation, EndOfYear discounting with per-cost-stream escalation) for the operating-PV gate; independent polynomial-root IRR solver and closed-form analytical NPV / payback recompute for the financial KPI gates; IRS Publication 946 MACRS GDS depreciation tables for the tax-on cases. All gates score CogenS' production financial engines against three independent reference implementations on the same scenario inputs.

Reference Engines

Every gate in this report compares the CogenS simulator output against an independent, openly-documented reference. We do not validate against ourselves.

  • EnergyPlus 26.1 Boiler:HotWater (condensing gas, non-condensing gas, electric resistance) with matched FuelUseFunctionOfPLR + EfficiencyCurveType
  • EnergyPlus 26.1 multi-unit Boiler:HotWater plant under PlantEquipmentOperation:HeatingLoad 'Optimal' load distribution
  • EnergyPlus 26.1 WaterHeater:Stratified for thermal-energy-storage standby decay AND charge / discharge cycling
  • EnergyPlus 26.1 coupled Boiler:HotWater + WaterHeater:Stratified plant for the boiler-plus-storage Stage 5
  • EnergyPlus 26.1 Schedule:File for full-year 8,760-hour realistic-load cross-validation (Stage 1B + annual canonicals on Stages 1, 2, 3, 4b, 5)
  • EnergyPlus LifeCycleCost (NIST Handbook 135 reference implementation) for the Stage 6 operating-PV gate
  • Independent analytical references for the Stage 6 financial KPIs: polynomial-root IRR solver, closed-form NPV / payback recompute, IRS Publication 946 MACRS GDS percentage tables

Stage Details

Stage 1 — Core boiler model per equipment type

Single-unit isolated boiler under variable hot-water demand. Three equipment classes (non-condensing gas, electric resistance, condensing gas), six part-load ratios, three nominal capacities, three supply temperatures, and two simulation periods (one-week steady + one-week sinusoidal variable). Each scenario runs in CogenS and EnergyPlus with identical performance curves pulled from the production coefficient database. Two FAIL scenarios are documented in the matrix: sub-minimum-cycling sinusoidal at PLR ≤ 0.10 on the 100 kW non-condensing boiler, where both engines hit the same operating-envelope edge.

Matrix

189

In-Scope

189

Passed

187

Wall Time

approx. 9 minutes (189 EnergyPlus runs)

Gates Exercised

GateToleranceResult
Annual fuel energy<= +/-5% strict / +/-12% condensing / +/-15% sub-min cycling (ASHRAE G14-2023)-1.32% to +2.13% strict (144 / 144 PASS); -6.86% to +11.09% condensing (27 / 27 PASS); +0.06% to +16.59% sub-min cycling (16 / 18 PASS, 2 documented FAIL at CAP100 / PLR10 / T82C)
NMBE on hourly fuel use<= +/-10% strict / +/-15% relaxed regimes (ASHRAE G14-2023)Same ranges as annual fuel energy (constant-load matrix; CV(RMSE) = annual % deviation)
CV(RMSE) on hourly fuel use<= 30% strict / <= 40% sub-min cycling (ASHRAE G14-2023)+2.39% to +26.73% across the 4 sampled audit-trace cases — all within band; per-case CV(RMSE) live on the Comparison + Tolerances sheet of every served xlsx
Annual thermal output delivered<= +/-5% strict / +/-15% sub-min cycling+0.00% to +1.79% strict; +0.00% to +10.58% condensing; +2.18% to +18.69% sub-min cycling
Peak hour fuel rate<= +/-10% strict / +/-15% condensing / +/-20% sub-min cyclingSampled cases: -0.08% (condensing canonical), +0.84% (sub-min electric), +1.16% (sub-min noncond 100 kW), +1.56% (strict canonical) — all within band
Efficiency profile NMBE + CV(RMSE)<= +/-10% NMBE / <= 30% CV(RMSE) strict; +/-15% / <= 40% sub-minStrict canonical -0.79% NMBE / +0.81% CV(RMSE); condensing canonical +0.01% / +0.23%; sub-min canonicals +2.00% to +6.20% NMBE / +2.13% to +21.56% CV(RMSE)

Stage 1 is the foundational boiler validation. Does the boiler module predict the fuel consumption that EnergyPlus would predict, across the equipment classes a project will actually use, at the operating conditions a project will actually see? On 187 of 189 scenarios, the answer is yes — within the strict ASHRAE Guideline 14-2023 tolerance band on annual fuel energy, normalized mean bias error, and hourly variability.

What the matrix covers

The matrix sweeps three equipment classes (non-condensing gas with mechanical and natural draft, electric resistance, condensing gas), six part-load ratios (10%, 25%, 50%, 75%, 100% of nameplate plus the sub-minimum 5% / 10% bin), three nominal capacities (100 / 500 / 2,000 kW), three supply temperatures (60 / 82 / 95 °C), and two simulation periods (one-week steady and one-week sinusoidal variable). Each combination runs in EnergyPlus and CogenS with identical performance curves — same equipment, same heat demand, same outdoor weather. Then every output is scored against ASHRAE Guideline 14-2023.

Headline result

Strict-regime annual fuel deviation lands between -1.32% and +2.13% across all 144 strict scenarios — inside the +/-5% band. The 27 condensing scenarios sit between -6.86% and +11.09% under the documented +/-12% relaxed band (BiQuadratic FuelPLC 2D → 1D collapse rationale on the Cover sheet). The 18 sub-minimum-cycling sinusoidal scenarios sit between +0.06% and +16.59% under the +/-15% relaxed band; 16 of 18 PASS, with 2 documented FAIL at CAP100 / PLR10 / T82C where both engines hit operating-envelope edges. The CogenS boiler engine matches EnergyPlus at the level a lender's independent engineer expects.

Stage 1B — Full-year 8,760-hour realistic-load

Annual cross-validation where both CogenS and EnergyPlus run the same 8,760-hour weather-derived heating load on the same boiler equipment. Three equipment classes (non-condensing gas, electric, condensing gas at 60 °C in-design) each on the same 500 kW capacity with the same Chicago O'Hare TMY3-derived hourly load. Scored against ASHRAE Guideline 14-2023 at annual / monthly (12 bins) / hourly (8,760 points) / peak resolution.

Matrix

3

In-Scope

3

Passed

3

Wall Time

approx. 6 minutes per case (8,760-hour EnergyPlus simulation)

Gates Exercised

GateToleranceResult
Annual fuel energy<= +/-5% strict / +/-12% condensing+1.25% (NONCOND), +1.25% (ELECTRIC), +0.93% (COND) — all PASS
Annual thermal output<= +/-5% strict / +/-12% condensing+1.06% (NONCOND), +1.06% (ELECTRIC), +1.01% (COND) — all PASS
Peak hour fuel rate<= +/-10% strict / +/-15% condensing-0.09% (NONCOND), -0.18% (ELECTRIC), -1.64% (COND) — all PASS
Monthly NMBE on fuel use (12 monthly sums)<= +/-5% strict / +/-12% condensing+1.25% (NONCOND), +1.25% (ELECTRIC), +0.93% (COND) — all PASS
Monthly CV(RMSE) on fuel use<= 15% strict / <= 20% condensing1.31% (NONCOND), 1.31% (ELECTRIC), 0.94% (COND) — all PASS
Hourly NMBE on fuel use (8,760 hours)<= +/-10% strict / +/-15% condensing+1.25% (NONCOND), +1.25% (ELECTRIC), +0.93% (COND) — all PASS
Hourly CV(RMSE) on fuel use<= 30% (both bands)1.45% (NONCOND), 1.48% (ELECTRIC), 1.04% (COND) — all PASS

Stage 1B is the full-year realistic-load test. A one-week synthetic period cannot prove a model behaves the way a real building does over a year of occupied operation. Stage 1B drives both engines with the same 8,760-hour load derived from real Chicago O'Hare TMY3 weather: a heating-degree seasonal envelope, a morning / evening DHW diurnal, weekday / weekend variation, clipped to PLR [0.20, 0.95].

Both engines see exactly the same load array. CogenS receives it as an explicit hourly array; EnergyPlus reads the identical CSV via Schedule:File. The two engines then run independently for 8,760 hours and the fuel use is scored at four resolutions: annual sum, monthly bins (12 months), hourly profile (8,760 points), and peak hour.

Headline result

Annual fuel energy +1.25% worst case across all three boiler types. Monthly NMBE at +1.25% worst case. Both inside ASHRAE Guideline 14-2023 strict (and the condensing case stays inside the relaxed band by 5× the safety margin). Hourly NMBE / CV(RMSE) and peak-hour rate all PASS strict on every case. This is the bankable evidence: a full year of real-building operation matches EnergyPlus inside the tolerance band an independent engineer expects on annual energy.

Stage 2 — Multi-unit identical staging

Multi-boiler plant where N identical units share a single hot-water load. Three equipment classes × three unit counts (N=2, N=3, N=4) × five system part-load ratios (10%, 25%, 50%, 75%, 100% of plant nameplate). Eight cases scoped out as documented control-law exclusions where the sub-minimum cycling regime is not validatable head-to-head. Tests how the staging rule (when to add the next unit) interacts with the per-unit performance curve.

Matrix

44

In-Scope

44

Passed

44

Wall Time

approx. 2.5 minutes (44 EnergyPlus runs)

Gates Exercised

GateToleranceResult
Annual fuel energy<= +/-5% strict / +/-12% condensing (ASHRAE G14-2023)Strict regime (NONCOND + ELECTRIC, n=29): -0.36% to +4.98%; Condensing (n=15): -6.86% to +5.00% — all 44 PASS
Annual thermal output delivered<= +/-5% strict / +/-12% condensingStrict +0.63% to +4.45%; condensing +0.53% to +4.44% — all PASS
Peak hour fuel rate<= +/-10% strict / +/-15% condensingTracks annual on the steady-load matrix; served case +0.76%, condensing canonical -1.23%
Units-operating max discrepancy<= 1 unit / hour (CogenS validation plan)0 units in 32 / 44 cases (exact match); 1 unit in 12 / 44 cases (documented staging-philosophy difference within tolerance)

Stage 2 validates the multi-unit identical staging philosophy. CogenS uses a band-fit rule (keep active units inside the optimum operating PLR range [0.44, 0.84]). EnergyPlus' 'Optimal' scheme prioritises loading each active unit to its maximum PLR. Both are valid engineering choices; this stage scores energy agreement under ASHRAE G14 plus a units-operating discrepancy gate.

All 44 in-scope scenarios PASS strict on annual fuel energy. The units-operating discrepancy is 0 in 32 / 44 cases (exact match) and 1 in 12 / 44 cases (the documented staging-philosophy difference).

Stage 3 — Multi-size (2-type) dispatch

Two-size boiler plant: 2 × 500 kW + 1 × 1,000 kW (= 2 MW plant) across five system PLRs and two equipment classes. The common topology where a smaller modulating boiler handles low-demand hours and a larger boiler stages in for peaks. CogenS' min-fuel proportional dispatch vs EP's 'Optimal' smallest-first scheme.

Matrix

10

In-Scope

10

Passed

10

Wall Time

approx. 1 minute (10 EnergyPlus runs)

Gates Exercised

GateToleranceResult
Total system fuel energy<= +/-5% (ASHRAE G14-2023)-0.68% to +2.05% across all 10 cases — all PASS
Total system thermal output<= +/-5%+0.63% to +2.20% — all PASS
Peak system fuel rate<= +/-10%Tracks annual on the steady-load matrix; served case -0.33%
Per-size fuel split (DIAGNOSTIC, not a gate)documented dispatch-philosophy differenceAt low system PLR, CogenS picks size_2 (1×1000 kW) while EP picks size_1 (2×500 kW); per-size split deviation up to +/-234% at PLR=0.60. Bankable TEA depends on TOTAL system fuel, which stays inside +/-5% strict on every case.

Stage 3 tests the two-size dispatch rule. CogenS' min-fuel proportional dispatch vs EP's 'Optimal' smallest-first. Both engines arrive at total system fuel within ASHRAE G14 strict and distribute the load across the two sizes under their respective control philosophies. The per-size split is reported as a Tier 2 diagnostic; the bankable energy total stays inside the strict band.

Stage 4 — Hot-water TES (standby decay)

Isolated stratified hot-water tank, heaters disabled, decaying from a uniform 90 °C across 168 hours. Two tank volumes (10 / 50 m³) × three U-values (0.3 / 0.5 / 1.0 W/m²K) = 6 cases. Validates the tank's standby physics against EP's WaterHeater:Stratified.

Matrix

6

In-Scope

6

Passed

6

Gates Exercised

GateToleranceResult
Tank temperature trajectory NMBE<= +/-10% (ASHRAE G14-2023)-1.02% to -0.22% across all 6 cases — all PASS
Tank temperature trajectory CV(RMSE)<= 30%0.25% to 1.10% — all PASS (was 0.40% to 2.11%)
Total tank temperature drop (168 h)diagnosticCogenS 4.91-23.46 °C vs EP 4.58-22.33 °C. The previous engine read 3.97-19.62 °C — it under-decayed because it was losing heat through the side wall only.
Cumulative shell-loss energy (DIAGNOSTIC, not a gate)±2% of the EnergyPlus shell loss-1.3% to -0.3% across all 6 cases. This column previously read -17.6% to -19.6% and was described as a surface-area convention difference; it was an under-count, now corrected.

Stage 4 validates the TES tank's standby physics: an isolated tank decaying from a uniform 90 °C into a 20 °C ambient over a week, with both heaters disabled. Every transport term is identically zero in this regime, which is what makes it a clean test of the shell-loss physics on its own — and also why it cannot, by itself, tell you whether a tank puts energy in the right place. That is what the charge and discharge stages of the Thermal Energy Storage validation exist for.

These figures were re-scored against the current stratified-tank engine in July 2026. The tank-temperature trajectory PASSES strict ASHRAE Guideline 14 on all six cases, as it did before; the accuracy improves (CV(RMSE) roughly halves) but the verdict does not change, because the Guideline 14 bands are wide enough that a standby tank clears them on either engine.

The shell-loss diagnostic is the figure that did change, and it is worth being explicit about. It previously sat at -17.6% to -19.6% and was reported as a difference of convention between the two engines in how tank surface area is integrated. It was not a convention difference. For the tank geometry this sweep uses (height = 4 × radius) the cylindrical side wall is 8/10 of the total surface, so omitting the two end caps loses about a fifth of the shell — which is exactly the size of that column. The current engine integrates the full surface, including the caps, and the diagnostic is now -1.3% to -0.3%.

Stage 4b — Hot-water TES charge / discharge cycling

Cycling regime: 8 hours nightly charge (heater setpoint 82 °C) + 12 hours daily discharge (use-side LoadProfile:Plant draws 22 kW; 1.2 kW/m³ MOD or 2.2 kW/m³ DEEP) + 4 hours idle. Two tank volumes (10 / 50 m³) × two cycling depths (MOD, DEEP) = 4 cases, 168-hour week with 7 daily cycles each.

Matrix

4

In-Scope

4

Passed

4

Gates Exercised

GateToleranceResult
Tank temperature trajectory NMBE<= +/-10% (ASHRAE G14-2023)-4.75% to -5.13% across all 4 cases — all PASS
Tank temperature trajectory CV(RMSE)<= 30%5.17% to 5.57% — all PASS
Cumulative useful discharge energy<= +/-5%+0.6% on all 4 cases — all PASS
Tank cycling rangediagnosticCogenS 57-82 °C vs EP 58-85 °C across the matrix (both engines actively cycling)
Charge energy (DIAGNOSTIC, not a gate)carries Stage 4 shell-loss convention+1.2% to +26.7% (charge = discharge + shell losses; the +26.7% on MOD-depth cases is the shell-loss share dominating the smaller charge total)

This stage has NOT been re-scored against the current stratified-tank engine — every figure below describes the engine that shipped before July 2026, and the charge-energy and shell-loss diagnostics still cite the Stage 4 “surface-area convention” rationale that the Stage 4 re-score has since retired: it was an under-count of the tank end caps, not a convention. The regime itself — hot-water charge and discharge cycling — is now cross-validated against EnergyPlus at far greater breadth by the Thermal Energy Storage module validation, which covers 36 hot-water scenarios spanning both duties against the 4 here.

Stage 4b validates the TES tank under deep cycling. The tank-temperature trajectory and cumulative useful discharge (the round-trip throughput that drives project economics) PASS strict on all 4 cases. Charge energy and shell-loss are reported as Tier 2 diagnostics against EP's full-surface accounting convention, not gates.

Stage 5 — Boiler + TES coupling

Coupled Boiler + TES plant: boiler maintains tank at setpoint while the load draws on the tank. Two equipment classes (non-condensing gas, electric) × two tank volumes (10 / 50 m³) × three system PLRs (30% / 50% / 70%) = 12 cases on the 1-week steady matrix, plus served annual TMY3-realistic canonicals (NONCOND gas + ELECTRIC variants) for full-year evidence, including a 20-year time-of-use financial layer on the Electric variant that gates cost of ownership with and without storage and the storage-incremental NPV against an analytical NIST HB135 present-value reference. (Internal rate of return and payback are reported alongside but are not gated — see the gate list.)

Matrix

12

In-Scope

12

Passed

12

Gates Exercised

GateToleranceResult
Boiler annual fuel energy<= +/-5% (ASHRAE G14-2023)+1.48% to +2.95% across all 12 cases — all PASS (was +1.43% to +2.76%; the boiler now supplies the tank's end-cap losses too)
Boiler annual thermal output<= +/-5%+1.44% to +2.49% — all PASS (was +1.39% to +2.27%)
Boiler peak fuel rate<= +/-10%Tracks annual on the steady-load matrix; +0.14% on the served annual canonical (was +0.11%)
Tank temperature trajectory NMBE<= +/-10% (G14 hourly)+0.48% to +1.64% — all PASS (was +0.50% to +1.65%)
Tank temperature trajectory CV(RMSE)<= 30%0.48% to 1.64% — all PASS (was 0.50% to 1.65%)
Tank shell-loss diagnostic (not a gate)±5% of the EnergyPlus shell loss+0.9% to +2.9% across all 12 cases. This column previously read -19.2% to -17.6% and was attributed to a surface-area convention difference; it was an under-count, now corrected.
20-year TCO with TES (served annual canonical)<= +/-5% vs analytical NIST HB135 PV+1.838% — PASS (was +1.771%, published as +1.78%). Agreement drifts marginally as the boiler now covers the tank's end-cap losses while the reference is computed on the EnergyPlus fuel stream.
20-year TCO without TES (served annual canonical)<= +/-5% vs analytical NIST HB135 PV0.000% — PASS. The no-TES case does not involve the storage engine, so it is unchanged by construction.
TES-incremental NPV, absolute agreementwithin $100k absolute (percentage deviation is degenerate for near-zero NPVs)$66,930 apart — PASS (was $64,483). CogenS reports -$54,704 and the analytical reference +$12,226.
TES feasibility verdict (DIAGNOSTIC, not a gate)NPV-sign agreement; reported, not gatedThe two engines DISAGREE on this canonical: CogenS makes the storage investment marginally unattractive, the analytical reference marginally attractive. Both NPVs sit near zero, and the setpoint-buffer control being validated here does not shift load to off-peak hours, so the storage has little financial value in this regime by design. The same disagreement is present on the previous engine, so it is not a consequence of this release.

Stage 5 validates the coupled Boiler + TES plant: the boiler holds the tank at its setpoint while a downstream load draws it down, which is EnergyPlus's own IndirectHeatPrimarySetpoint dispatch. Two equipment classes (non-condensing gas, electric) × two tank volumes (10 / 50 m³) × three system part-load ratios (30% / 50% / 70%) = 12 cases over a one-week steady matrix. All 12 PASS strict Guideline 14 on boiler fuel, thermal output and tank-temperature trajectory.

These figures were re-scored against the current stratified-tank engine in July 2026. Because Stage 5 tests the composition of two engines, the re-score deliberately changed only one of them: the published harness was re-run unmodified with the storage engine swapped and the boiler engine left exactly as it was, so any movement is attributable to the tank rather than to two things at once. Re-running with the previous storage engine reproduces all four published gate ranges exactly, which is what makes the new figures a like-for-like replacement.

The verdict is unchanged at 12 / 12. The boiler fuel and thermal bands widen very slightly — by about two tenths of a percentage point at the worst case — and that is the expected direction: the tank's shell loss was previously under-counted by about a fifth (it integrated the cylindrical side wall but not the two end caps), so the boiler is now charged for heat it always should have been supplying. The shell-loss diagnostic moves correspondingly, from about -18% to about +2%.

The financial layer was re-scored as well. It runs on a separate case — a served annual TMY3 canonical for the Electric Boiler + TES variant — and applies an hourly time-of-use rate, so the storage engine's dispatch timing affects the result and not merely its annual totals. Twenty-year cost of ownership agrees with an analytical NIST HB135 present-value reference to within 1.84%, against a 5% band. Two clarifications on what that layer actually tests: internal rate of return and payback are computed and reported but are not gated, and on this canonical they are undefined because the storage NPV is negative, so there is no rate at which the cash flows break even. And the feasibility verdict itself is a diagnostic rather than a gate, because the two engines reach opposite conclusions on a near-zero NPV — which is expected for a control strategy that holds a tank at setpoint rather than shifting load into cheaper hours.

Stage 6 — Total Cost of Ownership and financial KPIs

Investment-grade financial outputs: total cost of ownership, net present value, internal rate of return, simple payback, and MACRS-200%-DB depreciation. Two cost bases (SMALL: 500 kW + 10 m³, LARGE: 2 MW + 50 m³) × six financial profiles (discount-rate sweep, inflation sweep, study-period sweep, base + MACRS tax treatment) = 12 cases.

Matrix

12

In-Scope

12

Passed

12

Gates Exercised

GateToleranceResult
Operating present value vs EnergyPlus LifeCycleCost<= +/-0.5%+0.0000% / -0.0000% across all 12 cases (exact to 4 dp)
NPV vs analytical recompute<= +/-0.5%+0.0000% / +0.0000% across all 12 cases (exact)
IRR vs polynomial-root solver<= 0.05 percentage points+/- 0.0000 pp across all 12 cases (exact)
Simple payback vs analytical<= +/-0.5%+0.0000% across all 12 cases (exact)
MACRS depreciation schedule vs IRS Publication 946 GDS<= $1 max absolute$0.00 max absolute on the 2 tax-on cases (exact match against published GDS tables)
TCO (CAPEX + operating PV) — diagnosticdiagnostic+0.0000% across all 12 cases (CAPEX is an exact t=0 input; TCO % deviation tracks operating PV by construction)

Stage 6 validates the financial layer to the standard a lender's independent engineer requires. Operating present value runs against EnergyPlus LifeCycleCost (NIST Handbook 135 reference). The investment KPIs (NPV, IRR, simple payback) are validated against independent analytical references: polynomial-root IRR solver, direct NPV recompute, IRS Publication 946 MACRS GDS percentage tables.

All gates pass at exactly 0.0000% across all 12 scenarios. The financial engine is technology-agnostic so the boiler Stage 6 also serves as the foundation for the chiller, cooling-tower, and CHP financial validations.

What the validation covers, and what it does not

Where the engineering envelope ends, in plain English.

What the validation covers

All 8 stages include a direct EnergyPlus comparison. Stage 1 validates core boiler physics across three equipment classes on 189 scenarios. Stage 1B validates the full annual 8,760-hour profile under TMY3-realistic loads. Stages 2 and 3 validate multi-unit identical and multi-size dispatch. Stages 4 and 4b validate the TES tank against EP's WaterHeater:Stratified under standby decay and charge / discharge cycling. Stage 5 validates the coupled boiler + storage system. Stage 6 validates the financial layer against EP LifeCycleCost + IRS depreciation.

278 of 280 in-scope scenarios PASS strict ASHRAE Guideline 14-2023 bands on the metrics that drive project economics: annual fuel energy, NMBE on hourly fuel use, annual delivered thermal energy, peak fuel rate, and tank-temperature trajectory. The 2 documented FAIL scenarios are sub-minimum-cycling sinusoidal cases at PLR <= 0.10 on the 100 kW non-condensing boiler, where both engines hit the same operating-envelope edge — a documented matrix scope item outside normal project operation.

Documented control-strategy and accounting-convention differences

Stage 2 (multi-unit identical staging): CogenS' band-fit staging keeps active units in the optimum operating PLR range [0.44, 0.84]; EP's 'Optimal' scheme loads each active unit to maximum PLR. Annual fuel energy agrees within strict G14; the units-operating gate stays within +/- 1 unit / hour on 100% of cases.

Stage 3 (multi-size dispatch): CogenS' min-fuel proportional dispatch vs EP's smallest-first scheme — the engines split fuel across sizes differently while total system fuel matches inside strict G14. Bankable TEA depends on total fuel, which is the gated metric.

Stages 4 / 4b / 5 (shell-loss accounting): CogenS counts heat loss across the cylindrical sidewall under the production sidewall convention; under the full-surface accounting convention (top + bottom end caps included, matching EP's WaterHeater:Stratified surface integration) the shell-loss diagnostic agrees with EP within +/-2% on production canonicals. Tank-temperature trajectory — the Tier 1 physics gate — is inside strict G14 under both conventions.

Stage 6 (financial layer): zero relaxed tolerances. Every KPI matches its reference at 0.0000%.

Dig into the test matrix

Report last updated: 2026-06-05

Try the validated platform

CogenS™ runs 8,760-hour simulations using the same engines validated on this page. Independent-engineer-grade evidence, lender-friendly.