Accuracy

How the inputMethod, load profile, and feed-in data affect the reliability of scan results — and which combinations deliver the best predictions.


Accuracy tiers

The accuracy of scan results depends primarily on how well the engine knows the property's hourly consumption pattern. We distinguish two tiers based on the inputMethod:

TierInput methodStarsWhat the engine knows
Studio"studio"★★★★★Real measured consumption at 15-min or hourly resolution
Known"known"★★★★Exact annual total (from energy bill), but generic hourly shape

Each tier affects the hourly consumption[h] array used in the 8,760-hour simulation. Since self-consumption, self-sufficiency, and savings all depend on the hour-by-hour overlap between production and consumption, the load profile shape is the single most important accuracy driver.


Studio profile

With inputMethod: "studio", you provide a customProfileId that references a pre-uploaded load profile via the Studio API:

The engine uses the exact measured values for each hour of the year. This captures:

  • Evening peaks from cooking and EV charging
  • Weekend patterns (typically higher daytime consumption)
  • Seasonal variation (heating, lighting, holidays)
  • Baseload from always-on appliances

This is the gold standard for accuracy. Self-sufficiency predictions are typically within ±2–3% of actual performance.

Studio input

{
  "inputMethod": "studio",
  "customProfileId": "clx1234...",
  "yearlyKwh": 5200
}

Known consumption

With inputMethod: "known", you provide the annual consumption in kWh (typically from the energy bill) but no hourly breakdown:

Known input

{
  "inputMethod": "known",
  "yearlyKwh": 5200
}

The engine generates a synthetic load profile by scaling a standard Dutch residential consumption curve to match the provided yearlyKwh. The standard curve captures typical patterns (morning/evening peaks, seasonal variation) but does not reflect household-specific behaviour.

Accuracy impact: Annual totals (savings, payback) are typically within ±10–15% of actual. Hourly metrics (self-sufficiency) may deviate by ±5–8 percentage points due to the generic load shape.


Gross load reconstruction

When a property has existingPv (existing solar panels), the engine must reconstruct the gross load — the total consumption the household would have without any solar. This is critical because:

  1. Meter data and energy bills reflect net consumption (after solar self-consumption)
  2. The optimizer needs gross consumption to correctly model adding or replacing panels
  3. Without reconstruction, self-consumption from existing PV would be double-counted

All flows use the same universal formula:

gross[h] = max(0, import[h] − export[h] + production[h])

Why import − export + production?

Think of your electricity meter during a single hour. It records:

  • import — power drawn from the grid (what you buy)
  • export — power sent to the grid (solar surplus you sell)

Meanwhile, your solar panels produce production kW. Part of that production is consumed immediately (self-consumption), and the rest is exported. Your actual total consumption is:

consumption = import + self_consumption

Since self_consumption = production − export, we get:

consumption = import + (production − export)
          = import − export + production

The max(0, ...) clamp handles small numerical mismatches between weather model and actual solar output that could produce negative values.

Hourly energy balance

┌─────────────────────────────┐
│        Solar panels         │
│     production = 3.2 kW     │
└──────┬──────────────┬───────┘
       │              │
  self-consumed    exported
    2.0 kW         1.2 kW
       │              │
       ▼              ▼
┌─────────────┐  ┌─────────┐
│  Household  │  │  Grid   │
│  load: 3.5  │←─│ import  │
│     kW      │  │ 1.5 kW  │
└─────────────┘  └─────────┘

gross = 1.5 − 1.2 + 3.2 = 3.5 kW ✓

Source of each term

The three variables come from different sources depending on how the scan was created:

Sourceimportexportproduction
Studio — template + solarStudio result (net import per hour)Studio exportResultStudio productionResult
Studio — P1 + exportRaw P1 meter import (hourly)Raw P1 meter export (hourly)Calculated from panel specs + weather data
Studio — P1 import-onlyRaw P1 meter import (hourly)0 (no export column)Studio productionResult
Known + yearlyExportKwhStandard profile scaled to yearlyKwhyearlyExportKwh distributed hourly using solar production shapeCalculated from panel specs + weather data
Known, no exportStandard profile scaled to yearlyKwh0 (not provided)Calculated from panel specs + weather data

Feed-in data impact

Export data directly affects the accuracy of gross load reconstruction — it's not just a nice-to-have, it's used in the core formula.

Studio profiles (hourly export)

Smart meter P1 data can include both import and export columns at hourly resolution. When available, the engine uses the actual metered export in the reconstruction formula. This is the most accurate path because both sides (import and export) come from real measurements.

Known consumption (yearlyExportKwh)

When using inputMethod: "known" with existingPv, you can provide yearlyExportKwh — the annual feed-in total from your energy bill ("teruglevering"). The engine distributes this annual total across 8,760 hours using the calculated solar production shape:

export[h] = (production[h] / annual_production_sum) × yearlyExportKwh

This proportional distribution assumes export happens when the sun shines — a reasonable approximation that significantly improves gross load accuracy compared to assuming zero export.

Impact comparison

Export dataGross load qualityWhy
Hourly meter export (studio P1)★★★★★Real per-hour measurements
yearlyExportKwh (known)★★★★Annual total distributed using calculated solar production shape
No export data★★★Assumes all solar self-consumed — overestimates gross

Accuracy by scenario

Combining input method, existing PV, and feed-in data:

ScenarioInput methodExisting PVExport dataOverall accuracy
Studio + no existing PV"studio"NoN/A★★★★★
Studio + existing PV + export data"studio"YesYes★★★★★
Studio + existing PV, no export"studio"YesNo★★★★
Known + no existing PV"known"NoN/A★★★★
Known + existing PV"known"YesOptional★★★

Was this page helpful?