Self-Sufficiency
How the engine calculates self-sufficiency and self-consumption ratios, and how batteries and load profiles influence the results.
Definitions
The engine reports two complementary ratios. They measure different things:
| Metric | Formula | Meaning |
|---|---|---|
| Self-sufficiency | self_consumed_solar / total_consumption | % of your demand covered by your own solar |
| Self-consumption | self_consumed_solar / total_production | % of your solar production used on-site |
A system can have high self-consumption but low self-sufficiency (small system, almost nothing exported, but still buys most energy from the grid), or vice versa.
Both ratios are expressed as fractions (0–1) in the API response. Multiply by 100 for percentages.
Hourly simulation
Both metrics rely on the 8,760-hour simulation that the engine runs for each year. For every hour h:
production[h] = solar output based on irradiance, panel specs, orientation
consumption[h] = load profile value for that hour
surplus[h] = max(0, production[h] - consumption[h])
deficit[h] = max(0, consumption[h] - production[h])
Without a battery, all surplus is exported and all deficit is imported from the grid. Self-consumed solar equals production[h] - surplus[h] summed over the year.
The accuracy of consumption[h] is critical — see Accuracy for how different input methods affect the load profile.
Battery impact
Adding an electricBattery to the scan significantly increases self-sufficiency by shifting surplus solar to evening/night hours:
| Configuration | Typical self-sufficiency | Typical self-consumption |
|---|---|---|
| 4.4 kWp PV, no battery | 30–35% | 30–40% |
| 4.4 kWp PV + 5 kWh battery | 50–55% | 55–65% |
| 4.4 kWp PV + 10 kWh battery | 55–65% | 65–80% |
The battery is simulated hour by hour: surplus charges the battery (up to its power and capacity limits), and deficit discharges it. The engine respects maxChargeRateKw, maxDischargeRateKw, and round-trip efficiency (~90%).
Diminishing returns apply. Doubling battery capacity from 5 to 10 kWh typically adds only 10–15 percentage points of self-sufficiency, while doubling from 10 to 20 kWh might add only 5–8 pp.
Load profile accuracy
The quality of the load profile directly impacts the reliability of self-sufficiency predictions:
| Input method | Profile source | Self-sufficiency accuracy |
|---|---|---|
"studio" | Real 15-min / hourly measurements | ★★★★★ — actual consumption shape |
"known" | Synthetic profile scaled to yearlyKwh | ★★★★ — good annual total, generic shape |
"estimate" | Synthetic profile scaled to estimated kWh from householdSize | ★★★ — approximate |
With "studio" profiles, the engine uses the exact hourly pattern of the household, capturing evening peaks, weekend patterns, and seasonal variation. Synthetic profiles use a standardized Dutch residential load curve.
Interaction with goal
The goal parameter changes how the engine sizes the system, which in turn affects self-sufficiency:
"cost-savings" (default)
The optimizer finds the system size that maximizes financial return. This typically results in a system sized to match daytime consumption, yielding moderate self-sufficiency (30–50% without battery).
"self-sufficiency"
The optimizer maximizes on-site energy coverage. It will install the maximum allowed PV and battery capacity, often reaching 60–80% self-sufficiency. The trade-off is a longer payback period.