Working principles
A finding is evidence, not an opinion.
Every finding row carries the telemetry window it was drawn from, the specific tools the agent ran, the confidence the agent reached, and the dollar amount it sized. A claim that does not pass those four gates does not become a finding. The platform refuses to write a row that cannot defend itself in audit.
Every claim is hypothesis, not problem.
Findings are labelled H1, H2, H3 (hypotheses ranked by confidence), not P1, P2 (problems asserted as facts). The distinction matters because the agent is not present at the customer's site and cannot know with certainty that a compressor is degraded or a setpoint is wrong. The label commits to evidence-based reasoning and refuses to assert what was not stated by the operator or proven by the data.
Anchored to a specific evidence window.
Every finding names the time range its evidence was drawn from, the entities (assets, spaces, processes) it applied to, the meters or sensors that produced the data, and the baseline it compared against. A finding that cannot point at a window did not earn the right to exist.
Dollar amount or no row.
Findings without a defensible dollar figure are not filed. The agent's session may record an observation as 'seen but not sized,' and the next session at the next cadence may pick up the thread. The findings ledger is reserved for actionable conclusions, which means quantified conclusions.
Supersession, never mutation.
When a later finding addresses the same root cause as an earlier one with new evidence, the new finding supersedes the old via supersedes_id. Both rows remain on disk. The customer reads the latest; the audit reads the chain. Editing a prior finding's text or amount is structurally impossible.
The customer reads in business language, never internal vocabulary.
Internal framings (the Five Areas, the agent code keys, the strategy types, the playbook names) do not appear in customer-facing reports. The customer reads what is happening, what it costs, and what the recommended next step is. The vocabulary that the platform uses internally is for engineering, not for the operator.
The finding contract
Every finding row satisfies the same column-by-column contract. The contract is enforced at the database level (NOT NULL on the load-bearing columns, CHECK constraints on the enums) so a row that fails any clause does not land. The fields below are the ones that matter for audit; operational fields (created_by, updated_by, et cetera) are present too but are not load-bearing for the methodology.
Hypothesis labels
The platform commits to evidence-based reasoning at the language level. Findings are labelled as hypotheses (H1, H2, H3) ranked by the agent's confidence, not as problems (P1, P2) asserted as facts. The distinction prevents a finding from claiming more certainty than the evidence supports and makes the agent's reasoning explicit in the row itself.
H1
Highest confidence. Direct evidence visible in telemetry, corroborated across at least two independent signals, with no plausible alternative explanation surviving the agent's hypothesis space. Suitable for direct work-order dispatch by the Engineer, direct tariff-switch recommendation by the Broker, direct opportunity sizing by the Consultant.
H2
Medium confidence. Strong telemetry signal with a plausible alternative explanation the agent could not rule out. The finding is filed but accompanied by the alternative and the diagnostic step the operator can run to disambiguate. Common for early-stage equipment-degradation diagnoses where signature evidence is suggestive but baseline residual is the only confirmer.
H3
Lower confidence. Pattern visible in the data but the agent has not crossed the area's threshold for autonomous action. The row carries a note explaining what additional evidence would lift it to H2. Operators read H3 findings as prompts rather than recommendations.
Per-area minimum labels live in the agent registry. The Engineer cannot file H3 findings on equipment degradation; only H1 or H2. The Operator can file H3 waste findings as observation prompts. The Broker requires H1 for tariff switches because a wrong switch carries real cost.
Sizing
Every finding's amount field is computed by one of five methods. The method is recorded in amount_basis so a reviewer reading the row knows immediately how the figure was constructed. The platform refuses to file a finding whose sizing method does not match the area it claims.
Tariff-window weighted
Used for waste findings on metered loads. Per-tick energy delta multiplied by the tariff rate at that tick, summed over the evidence window, projected forward at the prior week's load shape.
Peak-shaving
Used for penalty findings on demand charges. Demand window kW reduction multiplied by the demand charge per kW, projected over the billing period.
Marginal tariff
Used for opportunity findings on tariff switches. Modelled tariff applied to the prior twelve months of load, compared against current tariff applied to the same load, net of switching cost.
Capex ROI
Used for opportunity findings that require investment (solar, battery, retrofit). Net present value over the asset's expected life, sensitivity-banded for tariff and discount-rate assumptions.
Continuation cost
Used for silence findings on equipment degradation. Cost of doing nothing, sized as the gap between current consumption and the rebuilt-equipment baseline, integrated over the time before secondary failure becomes likely.
The lifecycle
A finding moves through Recommended to In Progress to Resolved on the main path. Monitored is a side state for findings the operator wants to defer or watch. The state machine refuses illegal transitions (Resolved cannot go directly back to Recommended without a super-admin override, In Progress cannot skip to Monitored).
How the customer sees a finding
Findings appear on four surfaces, each with a different shape. The same row carries through all four; the rendering is tuned to the audience and the context.
The report
The long-form customer artefact. Three-to-six page PDF or web view that walks the customer through the period: what was found, what was sized, what was done, what is recommended. Findings appear grouped by area with the customer-facing title and the dollar amount; the underlying evidence is linked but not in-line.
The brief
The short-form customer artefact. One-page summary for periods where nothing material happened or for new customers before the first month of evidence has accumulated. Findings appear as a list with title and amount only.
The dashboard
The live surface. Findings show up in the active queue grouped by state (Recommended → In Progress → Monitored → Resolved). Operators triage from this surface; the dashboard is where state transitions happen.
The session detail
The deep-link surface. From any finding, the operator can open the session that produced it and read the full reasoning trace: which tools the agent called, what evidence it gathered, what hypotheses it considered and rejected. Used for dispute resolution and for training new operators.
Promotion to an Intervention
Most findings close through the normal state machine without ever becoming a financed Intervention. The ones that do follow the path below. The Intervention model documented at /methods/control-strategies-method picks up here.
The scoping conversation
When an operator chooses to act on a finding, the Diagnostic agent and the operator scope an Intervention in conversation: target entities, expected savings, IPMVP option. The finding becomes the origin row on the Intervention; the Intervention carries the scope; the strategy or the retrofit delivers the work.
What the work costs
If the Intervention needs equipment, the Consultant's finding (or the Engineer's, for retrofits) carries the capex band and the sensitivity analysis, so the customer sees the range before committing. Wattif charges for the work and passes equipment through at cost; it does not fund the deployment or take a percentage of what the deployment saves.
The finding stays linked
On Intervention creation, the finding's intervention_id column is populated. The finding remains in its original state (Recommended → In Progress) until the Intervention itself reaches Verified, at which point the finding moves to Resolved with a backreference to the verifications row.
Findings that do not become Interventions
Most findings are addressed without an Intervention at all: a tariff switch the customer makes directly, a setpoint change the operator applies, a contractor visit on a service contract that pre-exists. The finding closes through the normal state machine without ever touching the Intervention model.
How findings appear
The same finding row renders differently on different surfaces. The customer-facing report uses business language and an action CTA. The operator dashboard exposes hypothesis labels and amounts for triage. The reasoning deep-link surfaces the agent's consideration of alternatives, used for dispute and for training.
Findings for review
What we found this month
A fan-coil unit on Level 3 East ran all night every weekday
AUD 14 / monthThe unit holds 22 °C continuously while the zone is vacant 09:00-18:00 weekdays. Raising the setpoint during vacant windows recovers the saving with no comfort impact.
A demand charge spike pushed the bill into a higher band
AUD 84 / monthThree peak events on 2026-05-14 added an avoidable demand component. A controlled ramp on the chiller plant during the morning startup window prevents the recurrence.
Compressor C-3 is running 11 % above its baseline draw
AUD 240 / monthPower signature shifted gradually over the last 21 days. Likely refrigerant charge loss; can be addressed during the next service window.
A rooftop solar tap is feasible at the prevailing tariff
AUD 8,400 / yearModelled against the prior twelve months of load, a 65 kW rooftop installation pays back in 4.2 years before incentives. Full financial model is attached.
Internal vocabulary (Five Areas labels, agent code keys, playbook names) does not appear in the customer-facing report. Areas are present internally on the row for triage and routing.
Findings · operator triage
How this finding earned its place on the ledger
finding f-78b9c2-01 · session sess-78b9c2Filed
2026-06-15 14:00 SGT
by Operator
Evidence window
2026-05-15 → 2026-06-14
30 days · 99.4% coverage
Entities
asset · fcu-l3-east
zone L3-East · floor 3
Hypotheses considered
Vacancy waste during weekday 09:00-18:00
Setpoint flat at 22 °C across the window. Occupancy sensor reads 0 across the window. Valve runs at 76 % mean. Confidence supported by two independent signals (load_telemetry + context_telemetry).
Overcooling against actual setpoint requirement
Room reaches 21.4 °C at 14:00 against a 23 °C comfort target. Ruled in but defers to H1 because the broader vacancy pattern dominates the dollar amount.
Compressor cycling anomaly. Signature library check returned within-spec; baseline residual flat. Not a contributor.
Sizing
Failure modes
Every refusal is named and returns a structured error. The platform never writes a degraded row to make a session look productive. Sessions that hit a refusal close cleanly and surface the gap to the operator.
confidence_below_threshold
The agent's session reached a hypothesis but could not cross the area's minimum confidence. The session records the hypothesis as 'observed but not actionable'; no finding is filed. The next session at the next cadence may pick up the thread with additional evidence.
amount_undefendable
The agent has a hypothesis with sufficient confidence but cannot construct a defensible dollar figure (tariff data missing, evidence window too short for projection, sizing method not applicable to the load class). The session records the gap; no finding is filed until sizing becomes possible.
evidence_window_too_short
An agent attempting to file a finding from a window shorter than the area's minimum (forty-eight hours for waste, fourteen days for silence, twenty-eight days for opportunity sizing) is refused at write time. The platform requires enough evidence to be statistically meaningful per the area's standard.
supersession_required_no_prior
An agent attempting to file a finding that overlaps an existing un-superseded finding on the same root cause is required to either supersede or merge. Two parallel findings on the same issue with conflicting amounts is a refused state; one must defer to the other.
customer_vocabulary_violation
Internal vocabulary (Five Areas labels, agent code keys, playbook names) in a finding's title or summary is rejected at write time. The platform pattern-matches against the internal vocabulary list and refuses to file. This is a build-time check, not a runtime one; the surface that produces customer-facing copy strips internal vocabulary before submission.
How a reviewer reconstructs a finding
Any finding is reconstructible from five reads against the database. The chain runs from the facility to the row to the reasoning to the original telemetry, with the intervention link as the bridge across to the settlement engine when the finding became a contract.
facilities
the anchor
findings
the claim
agent_sessions
the reasoning
telemetry
the evidence
interventions
when it became a contract
Five reads. Every finding on the platform is reconstructible from the row to the reasoning to the original telemetry. A reviewer who wants to know whether a claim is defensible follows the chain left to right.
- Find the facility. facilities.id is the anchor.
- Read the finding. findings WHERE facility_id and (optionally) state, area, or agent_id carries the row in question with its evidence window, hypothesis label, amount, sizing basis, and recommended action.
- Read the session. agent_sessions joined on session_id is the agent run that produced the row. Hypothesis space, rejected alternatives, tools called, evidence gathered. The full reasoning trace.
- Read the telemetry. Using the evidence_window_start and evidence_window_end the agent recorded, load_telemetry and context_telemetry for the entities the finding applied to is the original data the conclusion was drawn from. Replay over this window reproduces the agent's evidence base.
- Read the supersession chain. supersedes_id walked recursively gives the full history of the platform's understanding of this root cause. Where the chain begins is the first agent run that surfaced the issue.
- Read the intervention. When intervention_id is populated, the finding became a financed contract. The audit chain across to /methods/mv-option-b-method begins here.
What is not yet in scope
The findings ledger is operational and producing rows every day on every opted-in facility. The items below are deliberately deferred so a reviewer is not surprised by what the paper does not claim.
- Cross-segment finding patterns. Each segment (food processing, hotel, office, refrigerated warehouse) accumulates its own library of common findings. A shared cross-segment pattern library that lifts the bar on confidence thresholds when the same finding has been settled hundreds of times is on the build queue.
- Customer-facing dispute path. Today findings are accepted, declined, or deferred by the operator. A formal dispute path that surfaces alternative hypotheses and asks the operator to confirm or reject is named but not yet built.
- Finding closure verification. The Engineer's repair-completion verification and the Operator's waste-cleared verification both exist as session steps. A unified closure verification that reads the finding's predicted savings and confirms against the verifier cron's output is on the build queue.
- Multi-currency sizing. The platform currently sizes findings in the facility's local currency. Portfolios that span currencies (regional chains, multinational customers) require a currency conversion that respects the tariff-window weighting; deferred until a customer spans regions.
- External review of the hypothesis labels. The H1/H2/H3 framing and the per-area confidence thresholds are the engineering team's; an external review of the calibration (whether H1 actually corresponds to ninety-five percent of actual resolutions matching the prediction) is on the plan for early 2027.
Standards alignment
The findings ledger draws on energy management standards for the evidence-window minimums and the projection methodology. External review of the hypothesis-label calibration is on the plan for early 2027.
IPMVP Core Concepts (Volume I, 2022). Defines the evidence base that the strongest findings settle against.
Efficiency Valuation OrganizationASHRAE Guideline 14-2014: Measurement of Energy, Demand, and Water Savings. Informs the evidence-window minimums and the projection methodology.
ASHRAEISO 50001: Energy management systems. The finding lifecycle operationalises the check phase of the plan-do-check-act loop.
ISO