2. Baseline & Method Support

Summary: a good baseline turns raw readings into a meaningful delta. This module helps attestors apply the right method, compute a defensible baseline, and record the exact method_hash and baseline outputs so anyone can reproduce the result.

What a “method” is

A method is a published recipe that says how to turn evidence into a decision. It defines required fields, data filters, the baseline model, and how to compute results. Each method is identified by a stable method_hash (for example, keccak256 of the frozen spec). Attestors include this method_hash in Verification.v1 so the PoV trail shows exactly which rules were used.

Typical examples:

  • Energy (generation): simple pass with no baseline for metered production windows.

  • Energy (flex/DR events): compute baseline_wh and delta_wh against a pre-event model.

  • Carbon: follow a registry method to produce baseline_tco2e and reduction_tco2e.

Picking the right method

Choose a method that matches the claim type and context. Check that the canonical JSON has every required field, that the device is eligible, and that any external references (for example, weather station, grid node, meter class) are available. Record the selected method_hash in the attestor UI and in the signed output.

Baseline models you can use (simple, reproducible)

Static baseline: a fixed expected value per window (for example, from engineering specs). Easy to audit; low accuracy for variable systems.

Rolling median: compute the median of the last K comparable windows (same hour/day class). Good default; resistant to outliers.

Weather-normalized: regress past output on weather (for example, irradiance or temperature) and predict the expected value for this window. Better accuracy when weather swings.

Event-day controls (DR): mean or median of matched non-event days with similar profiles, minus any mandatory adjustment rule (for example, top-N rule).

Pick the simplest model that is accurate enough. Document its parameters and freeze them under the method spec.

What to record in the attestation

Attestors should include:

  • method_hash — the exact method version applied

  • baseline_wh (or baseline_tco2e for carbon) — expected value for the window

  • delta_wh (or reduction_tco2e) — measured minus baseline, after any mandated adjustments

  • inputs_hash — hash of auxiliary inputs used (for example, weather series, matched-day list), so reviewers can fetch and reproduce

These fields travel with Verification.v1 and make the calculation auditable.

Simple formulas

Energy (flex/DR):

Carbon (avoidance or removal):

Where f_method / g_method are deterministic functions defined in the method spec; their frozen text is what you hash into method_hash.

Reference snippets

Python (rolling median baseline):

TypeScript (weather-normalized, one-feature):

Store the coefficients, the matched history, and any filters in a compact JSON and hash it into inputs_hash.

Versioning and governance

Every change creates a new method_hash. Do not edit a method in place. Publish a human-readable PDF/Markdown, a machine-readable JSON (parameters, filters, equations), and a short test vector. The PoV Council approves new methods; explorers display which method_hash was used on each Verification.v1.

Clear behavior on change

If a method update would change past results, do not rewrite history. Keep old attestations tied to their original method_hash. For future windows, switch to the new hash. If a past result must be corrected, use the revocation/rectify flow and append a new attestation with a new method_hash and reasons.

Conformance (simple checklist)

Include method_hash in Verification.v1. For each window, compute and record baseline_wh (or baseline_tco2e) and delta_wh (or reduction_tco2e). Attach an inputs_hash for external series or matched-day lists. Make sure a reviewer can rerun the method and get the same numbers from the same inputs.

Drawing

Last updated