Home / PRD / Conventional DC Dashboard
Product requirements · locked conventional facility overview

Conventional DC Dashboard

A deterministic product contract for the facility alarm strip, power/cooling/environment/sustainability KPIs, contextual image, subsystem routes, basis drawers, generated design and FAQ in dc-conventional.html. The cockpit is a modeled teaching aid, not live BMS telemetry.

Engine CONV_CALC v1.0.0IT 1,850 kWFacility 2,682.5 kWMode SIMULATED

01 Purpose & problem

A conventional facility overview must reconcile electrical demand, cooling duty, environment, resilience and alarm state before routing a user to subsystem pages. Static marketing callouts cannot provide that trust; every primary result needs a denominator, source class and repeatable calculation.

Operational outcome

Expose abnormal state first, then the minimum site-level values needed to decide which subsystem to inspect.

Engineering outcome

Keep PUE, facility/IT load, CHW, WUE, carbon and fuel arithmetic on one immutable scenario and surface placeholders honestly.

02 Users & personas

PersonaGoalPrimary readSuccess condition
Facilities operatorDetermine whether the site is normal and where to drill next.Alarm strip → KPI strip → subsystem rail.Can name alarm count, comms/quality, active capacity and next subsystem.
Electrical engineerReconcile protected IT, facility input and UPS sharing.IT/Total/PUE, UPS A/B and EPMS route.Can reproduce facility load and normal/failover UPS percentages.
Mechanical engineerCheck CHW temperatures, flow basis and heat rejection.Cooling stats, Chiller Plant route and basis drawer.Can reproduce 7.6 K, 58.1 L/s and 1,927.1 kW.
Sustainability analystInterpret PUE, WUE, grid factor and CUE denominators.Efficiency panel and basis drawers.Can distinguish 0.42 facility-kWh grid factor from 0.609 IT-kWh CUE.
Commissioning / design reviewerTurn each value/control into a deterministic check.BoD, generated design, FAQ, PRD/manual and engine snapshot.No displayed fact lacks source class or known limitation.
Educator / learnerUnderstand the energy/water/fuel balance of a conventional DC.Photo context, formulas, glossary and subsystem pages.Can reproduce the worked scenario without treating it as site advice.

03 Scope & non-goals

In scope

  • Facility alarm/quality summary.
  • Site power, cooling, water, carbon, environment, safety, network and fuel overview.
  • Locked CONV_MODEL and derived CONV_CALC.snapshot.
  • Seven subsystem navigation routes, KPI basis drawers, generated design, FAQ and theme.
  • Tier-gated cockpit with separate public documentation.

Non-goals

  • No live BMS/EPMS/DCIM acquisition or control.
  • No configurable design calculator or field setpoint editor.
  • No outage historian, grid API, calibrated water meter or generator fuel curve.
  • No stamped engineering, procurement, safety or regulatory conclusion.
  • No claim that static “Normal/Online” rows are measured values.

04 Functional requirements

IDVisible element / requirementAcceptance
FR-01Preserve the cockpit tier gate while PRD and Manual remain public.Pro/Educator/Root policy remains owned by shared auth; docs contain no gate.
FR-02Provide Portfolio, DC Solutions, PRD and Manual links.All are visible in .header-left and keyboard reachable.
FR-03Show title, modeled status indicator and WIB clock.Clock changes only time; “LIVE” styling does not override simulated disclosure.
FR-04Provide Generate Design, FAQ and Theme controls.Each control opens/toggles the intended surface without changing the locked model.
FR-05Provide subsystem routes to EPMS, Data Hall, Chiller Plant, Fire, Fuel, Water and ICT.All seven links resolve and retain tooltip description.
FR-06Show alarm state, Critical, Warning, Maintenance/Bypass, Comms, Stale, Last Update, Data Quality and Scenario.Nine groups render before KPI content and use one snapshot/rule evaluation.
FR-07Evaluate overall state from critical/warning counts.CRITICAL outranks WARNING; NORMAL appears only when both are zero.
FR-08Evaluate PUE, chiller redundancy, environment and fuel thresholds deterministically.paintAlarmStrip(snapshot) returns identical counts over reloads.
FR-09Show maintenance count as installed minus running chillers.Locked scenario reads 1 (3 installed − 2 running).
FR-10Show PUE KPI and basis drawer.Value 1.45 and target ≤1.5 are distinct; drawer shows facility/IT inputs.
FR-11Show WUE KPI and basis drawer.1.20 L/kWh IT and 37.0 L/min equivalent makeup are traceable.
FR-12Show grid-factor KPI and basis drawer.0.42 kgCO₂/kWh facility is not labeled as CUE.
FR-13Show IT Load KPI and basis drawer.1,850 kW out of 2,000 kW design and utilization are shown.
FR-14Show Uptime KPI and basis drawer.99.98% remains labeled a design placeholder until event-bound.
FR-15Show Temperature KPI and basis drawer.22.4°C is labeled simulated and placed against the stated band.
FR-16Show Chillers KPI and basis drawer.2/3 and one spare reconcile to the snapshot.
FR-17Show Alarms KPI.Count and Normal text agree with the alarm strip.
FR-18Show six operational image callouts.PUE, IT, CHW, temperature, fuel and RH values retain units and engine binding where available.
FR-19Show Efficiency stats.PUE, WUE, Grid factor and CUE_IT remain separate rows with denominator tooltips.
FR-20Show Power stats.Total, IT and UPS A/B normal/failover values reconcile to the snapshot/display rule.
FR-21Show Cooling stats.CH-1/2, 2/3 chillers, 12/14 CRAHs, CHWS and CHWR remain visible; static vs engine-bound is disclosed.
FR-22Show Network & Reliability stats.Network, UPS topology and uptime rows retain state/source class.
FR-23Show Environment stats.Temperature, RH and differential pressure remain visible with units/source class.
FR-24Show Safety stats.FACP and VESDA rows remain labeled static modeled states.
FR-25Show Fuel stats.Main/day tank levels and 48 h bulk-tank autonomy retain scope.
FR-26Bind all primary derivations to one snapshot.No Math.random() affects PUE, WUE, grid factor, IT, total, CHW, temperature, RH or fuel.
FR-27Provide keyboard basis-drawer activation.Click/Enter/Space open formula/input/output/source; Escape/scrim/close dismiss.
FR-28Generate a full technical design report from the snapshot.Power, cooling, water, fire, fuel, ICT/BMS, carbon and cost sections use one captured basis.
FR-29Provide FAQ dialog.Ten questions disclose locked scenario, standards, arithmetic and educational scope.
FR-30Provide scroll-to-top, theme and responsive behavior.Controls remain named, reachable and do not cause horizontal overflow.

05 Data model & telemetry points

SignalSymbol / IDUnitNominal / semanticsSource binding
Overall alarm stateas-state, as-state-txtstateNORMAL/WARNING/ALARM from worst count.paintAlarmStrip(snapshot).
Critical / warningas-crit, as-warncount0 nominal; red/amber only when non-zero.Threshold rules.
Maintenance / bypassas-maintcount1 locked standby chiller.chillers_total − chillers_running.
Comms / staleas-comms, as-stalestate / countOK / 0 if versioned snapshot exists.snapshot.meta; no live transport.
Last updateas-update, clocklocal timeBrowser clock.rzTick().
Data quality / scenarioas-dq, as-scnquality / modeGOOD / Simulated.snapshot.meta.
PUEkpiPue, cPue, sPueratio1.45; warn above 1.5.snapshot.site.pue.
WUEkpiWue, sWueL/kWh IT1.20.snapshot.environment.wue_l_per_kwh.
Grid factorkpiCarbon, sCuekgCO₂/kWh facility0.42; not CUE.snapshot.environment.carbon_kg_per_facility_kwh.
CUE IT-basissCueItkgCO₂/kWh IT0.609, displayed 0.61.grid factor × PUE.
IT loadkpiIt, cIt, sItLoadkW / MW1,850 kW / 1.85 MW.snapshot.site.it_load_kw.
Facility loadsTotalLoadkW2,682.5, shown 2,683.snapshot.site.facility_load_kw.
Non-IT loadbasis/reportkW832.5.snapshot.site.non_it_load_kw.
UPS A/B loadsUpsA, sUpsB%46% normal / 92% failover, based on 2,000 kW/module display assumption.updateData().
CHWS / CHWRcChw, sChwSup, sChwRet°C7.2 / 14.8; primary chilled-water loop.snapshot.cooling.
CHW ΔT / flowbasis/reportK / L/s7.6 / 58.1.chwDeltaT(), chwFlowLps().
Heat rejectionbasis/reportkW1,927.1.heatRejectionKw().
Chiller countKPI / Cooling rowcount2/3 running; one maintenance/spare.snapshot.cooling.chillers_*.
Chiller unit stateCH-1 / CH-2 rows% / state85% / 78% static presentation.Static markup, not snapshot point.
CRAH countCooling rowcount12/14 static presentation.Static markup.
Temperature / RHkpiTemp, cTemp, cRh, sTempAvg, sRhAvg°C / %22.4 / 48; warn outside 18–27°C or 20–80% RH; critical temp >32°C.snapshot.environment.
Differential pressureEnvironment DPPa+2.1 static presentation.Static markup.
Fuel levelcFuel, sFuelMain%85; source model.snapshot.fuel.level_pct.
Day tankFuel Day Tank row%92 static presentation.Static markup.
Usable fuel / autonomyFuel Autonomy row / basisL / h45,900 L / 48.0 h; warn below 24 h, critical below 12 h.fuelUsableL(), fuelAutonomyHr().
Water equivalent flowbasis/reportL/min37.0.waterFlowLpmForWue().
Carbon ratebasis/reportkgCO₂/h1,126.7.carbonKgPerHr().
Network / topology / uptimeNetwork, UPS Topology, Uptime rowsstate / %Online / 2N OK / 99.98% placeholder.Static presentation and basis drawer disclosure.
SafetyFACP, VESDA rowsstateNormal static presentation.Static markup.
Active racksbasis/reportcount308 @6, 231 @8, 185 @10 kW/rack.activeRacks().

06 Formulas & derivations

Facility = IT × PUE = 1,850 × 1.45 = 2,682.5 kWNonIT = Facility − IT = 832.5 kWfacilityLoadKw(), nonItLoadKw(); Manual §03/06.
UPS loss = IT × (1/η − 1) = 1,850 × (1/0.96 − 1) = 77.1 kWShared module output = IT / 2 = 925 kWupsLossKw(), upsModuleKw(). Page percentage uses a separate 2,000 kW/module display rating.
ΔT = 14.8 − 7.2 = 7.6 KCHW flow = 1,850 / (4.186 × 7.6) = 58.1 L/sHeat rejection = IT + UPS loss = 1,927.1 kWchwDeltaT(), chwFlowLps(), heatRejectionKw().
Water flow = WUE × IT / 60 = 1.20 × 1,850 / 60 = 37.0 L/minAnnual WUE definition expressed as steady-state equivalent makeup; actual instantaneous tower demand varies.
Carbon rate = Facility × grid factor = 2,682.5 × 0.42 = 1,126.7 kgCO₂/hCUE_IT = grid factor × PUE = 0.42 × 1.45 = 0.609 kgCO₂/kWh ITDenominators remain explicit.
Usable fuel = 60,000 × 0.90 × 0.85 = 45,900 LAutonomy = 45,900 / 956 = 48.0 hfuelUsableL(), fuelAutonomyHr(); consumption is an engineering basis, not a live curve.

07 UX & interaction specification

InteractionRequired behaviorAccessibility / failure behavior
Alarm stripFirst read stays above disclaimer/KPIs and updates from one snapshot.State text/counts supplement color; no pulse-only meaning.
Subsystem railSeven routes disclose target subsystem.Keyboard links and tooltip text; decorative icons are not the only label.
KPI basisClick/Enter/Space opens formula, inputs, output, scope, denominator, source, mode and timestamp.Escape/scrim/close work and focus returns.
Generate DesignCapture one snapshot and generate a print-ready technical report.Popup block produces visible instruction; generated document remains printable and sourced.
FAQOpen ten expandable questions without changing data.Dialog has title, close button, Escape behavior and readable focus order.
ThemeSwitch light/dark and persist choice.Semantic states retain contrast; no white major surface in dark mode.
MobileHeader, KPI and panels wrap/stack without document overflow.Primary status and PRD/Manual remain reachable at 360 px.
Restricted accessUnauthorized user receives the shared upgrade/sign-in flow.Overlay is an alert dialog; public docs never inherit it.

08 Acceptance criteria

IDGiven / when / thenEvidence
AC-01Given the locked snapshot, then 1,850×1.45=2,682.5 kW and all three visible representations agree after rounding.Engine/DOM assertion.
AC-02Given repeated reloads, then all engine-bound KPI/callout/stat values are identical.Multi-reload comparison.
AC-03Given normal snapshot, then Critical=0, Warning=0, Maintenance=1, Comms=OK, Stale=0 and state=NORMAL.Direct rule/DOM assertion.
AC-04Given PUE >1.5, then warning count increments and overall state is WARNING unless critical exists.Injected snapshot fixture.
AC-05Given temperature >32°C or fuel autonomy <12 h, then critical count/state agree.Boundary fixtures.
AC-06Given 7.2/14.8°C, then ΔT=7.6 K and flow=58.1 L/s.Unit calculation.
AC-07Given WUE 1.20 and IT 1,850 kW, then equivalent flow=37.0 L/min.Unit calculation and basis drawer.
AC-08Given grid factor 0.42, then rate=1,126.7 kgCO₂/h and CUE_IT=0.609.Unit calculation and rendered stats.
AC-09Given fuel basis, then usable fuel=45,900 L and autonomy=48.0 h.Unit calculation and row.
AC-10Given each seven subsystem link, then destination resolves.Puppeteer navigation checks.
AC-11Given each basis-enabled KPI, then click/Enter/Space opens matching content and Escape closes.Keyboard interaction loop.
AC-12Given Generate Design, then the report contains the same snapshot values and no literal script closer breaks parsing.Popup capture, text checks, script audit.
AC-13Given FAQ, then all ten questions render and the dialog closes from button, Escape and scrim.Dialog E2E.
AC-14Given supported tiers, then cockpit unlocks; given free/demo, then gate remains.Tier fixtures.
AC-15Given 360 px width, then no horizontal document overflow occurs.Responsive measurement.
AC-16Given dark mode, then no major white content surface appears and status contrast remains legible.Computed-style screenshot.
AC-17Given PRD/Manual link injection, then exactly two anchors are added and no cockpit line is deleted.Git diff assertion.
AC-18Given a representative full journey, then no uncaught console/page error occurs.Captured browser error stream.

09 Non-functional requirements

Performance

  • First meaningful overview within 2.5 s on a mid-tier mobile CPU with local assets.
  • One-second clock and five-second rebind remain idempotent and leak-free.
  • Generated report opens within 1 s after snapshot capture.

Accessibility

  • WCAG 2.2 AA, 44 px mobile actions and visible amber focus.
  • Basis cards and dialogs have full keyboard path.
  • Units, source and state remain available beyond color.

Reliability

  • Missing snapshot becomes FAULT/unavailable, never a silently trusted fallback.
  • All calculations stay pure and deterministic.
  • Static/placeholder rows remain explicitly classified.

Security

  • Shared auth owns the tier decision; no secret in markup.
  • Docs remain public and carry no auth bypass.
  • No dashboard interaction sends a control command.

10 Provenance & sources

SourceGovernsBinding / use
dc-conventional.htmlVisible controls, KPI cards, alarm rules, report, FAQ and gate.Primary implementation source.
js/conv-engine.jsImmutable constants and all primary derived values.CONV_MODEL, CONV_CALC.snapshot.
Conventional DC ManualFormula definitions, worked scenario, standards and limitations.Public methodology companion.
Conventional review docs 00, 01, 09 and 12Single capacity basis, dashboard direction, engineering calculations and QA criteria.Requirements/risk authority.
ISO/IEC 30134-2PUE/WUE definitions and denominator discipline.Efficiency KPIs.
ISO/IEC 30134-8CUE definition.0.609 kgCO₂/kWh IT derivation.
ASHRAE TC 9.9Thermal envelope context.22.4°C/48% interpretation; site setpoints still require approval.
ASHRAE 90.1 / CIBSE Guide F / EN 50600Facility energy and infrastructure design context.Design/report background, not automatic compliance.
Uptime Institute Tier StandardResilience/topology intent.Tier-III intent and fuel-resilience context; certification not claimed.
IEC 60364 / IEC 60909 / IEEE 1100Power installation, fault and power-quality context.Generated-design references; detailed studies out of scope.
NFPA 75/76IT fire-protection context.Safety subsystem reference; static Normal state is not compliance evidence.

11 Open questions & risks

Risk / open questionCurrent evidenceRequired resolution
“LIVE” label conflicts with modeled data.Header says LIVE while scenario/FAQ says Simulated/BOD locked.Replace or qualify the label in a separately authorized cockpit change.
Uptime is not measured.99.98% is a design placeholder with no event-log binding.Bind to dated downtime events or relabel as intent.
Several subsystem rows are static.CH-1/2 %, CRAH count, network, FACP, VESDA, DP and day tank are markup literals.Give each a model/source/quality/timestamp or label illustrative.
UPS percentage uses an unstored 2 MW/module rating.updateData() declares 2,000 kW locally while engine snapshot exposes shared output only.Move the rating into the immutable model and document topology precisely.
Alarm freshness is synthetic.Stale=0 because snapshot is frozen; Last Update is browser time.Distinguish model evaluation time from acquisition/sample time.
Maintenance semantics are overloaded.Standby chiller count is shown as Maint/Bypass.Separate planned maintenance, bypass and available standby capacity.
WUE flow is an annual-equivalent rate.37 L/min is not an instantaneous cooling-tower measurement.Keep scope label visible and bind actual makeup/blowdown if introduced.
Grid factor is fixed.0.42 has no displayed geography/date/version in the dashboard.Add source vintage and location/market basis before sustainability reporting.
Fuel consumption is a fixed design assumption.956 L/h is not coupled to a generator efficiency/load curve.Use vendor curve and running-set allocation for operational autonomy.
Generated design breadth exceeds validated snapshot.Report includes fire, water chemistry and cost assumptions beyond primary dashboard points.Maintain section-level source/assumption tags and independent calculation tests.
Access policy wording may drift.Comments, overlay and shared feature flags have changed historically between Pro/Educator/Root descriptions.Test the canonical policy; docs must not become an alternate access path.